2012å¹´ä»ã«ãã£ãã㨠- Mozc ç·¨
Mozc 1.10.1389.102 ãå ¬éãããã¨ãããã¨ãã£ã¨æ¸ããæãã® 2012年やったこと - Mozc 編 - NyaRuRuが地球にいたころ ã®ç¶ãï¼2012 å¹´ã«ãã£ã¦ãããã¨ã®ä»åå ¬éåï¼
Support IBus 1.5
Red Hat ã«ãã£ã¦ä¸»å°ããï¼GNU/Linux çéã§ä½¿ããã¦ãã Input Method Framework ã§ããã¨ããã® IBus ãï¼ã¡ã¸ã£ã¼ã¢ãããã¼ãã«ããã£ã¦è¨å®ãã¡ã¤ã«ã®è§£éãå¤ããã¨ãã決å®ãä¸ããã¨ããï¼æåã®å¤åã«æ°ã¥ããã¦ã¼ã¶ã¼ã IME å´ã«ãã°ãç»é²ãã¦ãããã¨ã«ãªãï¼IME å´ã§è¨å®ãã¡ã¤ã«ãå¤æ´ãããã¨ã§å¯¾å¦ãããã¨ã«ãªã£ãã¨ããæ¡ä»¶ï¼
平常å¿å¹³å¸¸å¿ã¨èªåã«è¨ãèããã¤ã¤æ·¡ã
ã¨å¯¾å¦ï¼
Increase opaque buffer size for x32
Mozc ãæ¥æ¬èªå ¥åãæä¾ãã¦ããã¨ããã® Chromium OS ããï¼x32 ã§ãã«ããã㨠static assert ã«å¼ã£ããã£ããããããã¡ãµã¤ãºå¤æ´ãã¦ãã¨ãã£ã¦ãããã°ï¼ãããªèº«è¿ã« x32 ãæ¤è¨ä¸ã®ããã¸ã§ã¯ãããã£ãã®ãã¨ããé©ãã®æ°æã¡ã§æ·¡ã ã¨å¯¾å¦â¦â¦ãããã ãã©ï¼ãã®å¾è²ã ãã£ã¦ Chromium OS ã®æ¥æ¬èªå ¥å㯠PNaCl ã§ãã«ããã Mozc ã使ããããã¨ã«ãªã£ãããï¼ãã¶ããã®ä¿®æ£ã¯ç¡æå³ãªã¯ãâ¦â¦
ããã»ã¹ééä¿¡ã® AppContainer 対å¿
Windows 8 ã§å°å
¥ããã AppContainer ãµã³ãããã¯ã¹ä¸ã§åä½ããã¹ãã¢ã¢ããªãã Mozc ã使ãã«ã¯ã©ãããã°ãããèãã¦å®è£
ããï¼ã¨ãããä»äºï¼
Mozc ã®ããã« out-of-process åã® IME ã«ã¨ã£ã¦ï¼ãµã³ãããã¯ã¹ã¯å¤©æµï¼å®é Windows 8 ã®ãã¼ã¿ãã¹ãã®æ®µéããè²ã
å®é¨ãè¡ã£ã¦ãã¦ï¼AppContainer ããå¤é¨ããã»ã¹ã¸ã¯åç´ã«ååä»ããã¤ãã§éä¿¡ã§ããªãã¨ããã®ã¯åãã£ã¦ããâ¦â¦ãã ãã©åæã«ã©ããããããªãéãã¦ããæ¥ã
ï¼ãã¡ããèã¯çãï¼ãã«ãããã»ã¹è¨è¨ãè¦ç´ãã¨ããã®ã¯ï¼Mozc ã®ã³ã¼ãè¦æ¨¡ã§ã¯æ¢ã«æªå¤¢ã¨è¨ã£ã¦ããï¼ã¹ãã¢ã¢ããªå¯¾å¿ã諦ããã¨ããé¸æã¾ã§ããããªãã®ç¾å®å³ãæã¤ã¨ããç¶æ³ï¼ã»ãã¨èãçãã£ãæ¥ã
ï¼
çµå± AppContainer 導入による Windows 開発への影響 - NyaRuRuが地球にいたころ ã§ç´¹ä»ããããã«ï¼ååä»ããã¤ãã® DACL ã«ã¨ã³ããªã追å ããã°ããã¨ããæ
å ±ãçºè¦ãã»ã£ã¨è¸ããªã§ä¸ãããã®ã 8 æé ï¼
ã¡ãªã¿ã«ãã®ææ³ï¼API ã®èª¬æãèªãã«ï¼out-of-process ã§åä½ããã¢ã¯ã»ã·ããªãã£ç³»å¸¸é§ã½ããã¸ã®é
æ
®ããæ®ãããè£å£ã®ããã«ãèªããï¼å¤åã¨äºææ§ã®éã§ç¶±æ¸¡ãããã Microsoft ãããé
æ
®ããªããã°ï¼ä»ã§ã没å
¥å UI 㧠Mozc ã¯åä½ããªãã¾ã¾ã ã£ããããããªãï¼
ä»åå
¬éãããã³ã¼ãã§ã¯ï¼ä»¥ä¸ã®ãã¡ "(A;;GA;;;AC)" ã足ãã¦ããé¨åãããï¼
https://code.google.com/p/mozc/source/browse/trunk/src/base/win_sandbox.cc?r=131#247
case WinSandbox::kSharablePipe: // Sharable Named Pipe: // - Deny Remote Acccess // - Allow general access to LocalSystem // - Allow general access to Built-in Administorators // - Allow general access to the current user // - Allow general access to ALL APPLICATION PACKAGES // - Allow read/write access to low integrity ssdl += L"D:(D;;GA;;;NU)(A;;GA;;;SY)(A;;GA;;;BA)"; if (SystemUtil::IsWindows8OrLater()) { ssdl += L"(A;;GA;;;AC)"; } ssdl += allow_user; if (SystemUtil::IsVistaOrLater()) { ssdl += allow_rw_low_integrity; } break;
Mozc ã Windows 8 対å¿ãããã«ããã£ã¦ï¼æãéè¦ã ã£ãã®ã¯ãã®ä¸è¡ã ã¨ãã£ã¦ãéè¨ã§ã¯ãªãï¼
TSF å対å¿
Windows 8 ã®æ²¡å ¥å UI ã§ã¯ TSF ãã¼ã¹ã® IME (æ£ç¢ºã«ã¯ Text Input Processor; TIP) 以å¤ã¯ä½¿ããªãã¨ããã®ã¯å²ã¨ç¥ããã話ï¼ãããå®éã® ã¨ãã迫害ã¯ããã«ã¨ã©ã¾ããï¼ãã¹ã¯ãããã¢ã¼ãã§ã IMM32 ãã¼ã¹ã® IME ã«ã¯æ¬¡ã®ãããªå¶éãããï¼
- è¨èªãã¼ API ã使ç¨ãã¦ï¼éç¥é åã«ã¢ã¤ã³ã³ã表示ã§ããªã
- è¨èªè¨å®ãã IME ã®è¨å®ç»é¢ãéããªã
æ£ç´ Windows 8 ã§ã¯ IMM32 ãã¼ã¹ã® IME ã¯ç¾å®çã¨ã¯è¨ããªãããããªããããï¼
ãã®ãããªçç±ããã£ã¦ï¼Mozc ã TSF ã«å対å¿ãããã®ã¯å²ã¨æ©ããã¡ãã決å¿ãã¦ããï¼ãã£ã¨ãï¼ããã»ã¹ééä¿¡ã®åé¡ã®æ¹ãããé ãçãã£ãã®ã§ TSF ã®åé¡ã¯å²ã¨æ¾ç½®æ°å³ã ã£ãï¼
ããã»ã¹ééä¿¡ã®åé¡ãçä»ãã¦ï¼Chromium ã® TSF 対å¿ãä¸æ®µè½ãã¨ããã§ï¼ä¸äººã§æ·¡ã
㨠TSF 対å¿ãéå§ï¼ãããç¡äº 12 æä¸ã«ãã¹ã¦ãªãªã¼ã¹ï¼çæéã«å¤§éã®ã³ã¼ãã¬ãã¥ã¼ãããªãã¦ãããååã«æè¬ï¼
ãããã¦ï¼IMM32/TSF ã¨ã®é¢ãããã¾ãå¢ããï¼
- å¦çæ代㫠C# 㧠TSF ãã¼ã¹ã® IME ãéä¸ã¾ã§ä½ã
- å¦çæ代㫠Windows Vista åã TSF 対å¿è¨äºãæ¸ããã CEDEC ã§è¬æ¼ããã
- å ¥ç¤¾å¾ï¼TSF ã§æ¸ããã¦ããå代 Mozc ã¯ã©ã¤ã¢ã³ãã®éçºãæä¼ã
- Windows XP ç°å¢ã§ã® CUAS ã«çµ¶æãï¼IMM32 㧠Mozc ã¯ã©ã¤ã¢ã³ããã¼ãããæ¸ãç´ã
- Chromium ã® TSF 対å¿ãææ®
- Windows 8 åãã« Mozc ã¯ã©ã¤ã¢ã³ãã TSF ã§æ¸ãç´ã (New!)
ä»åæ¸ãæ£ããããã³ã¼ãã¯ãã®ãããã«è¦ããã¨ãã§ããï¼
https://code.google.com/p/mozc/source/browse/trunk/src/#src%2Fwin32%2Ftip
vcbuild ãã Ninja ã¸ã®ç§»è¡
2012 å¹´æ«ï¼TSF 対å¿ã³ã¼ããä¸éããªãªã¼ã¹ãçµãã£ãå¾ï¼ååãã¡ãä¼æã¢ã¼ãã«å
¥ãã®ã横ç®ã«å§ããå¹´æ«ãã«ããã¤ãã©ã¤ã³å¤§æé¤ï¼
Mozc ã® Windows ãã«ãã¯ï¼gyp ã®ãããã§æè»æ§ãé«ãï¼ã¿ã¼ã²ããã¨ãªã Visual C++ ã®ãã¼ã¸ã§ã³ãå¤æ´ããã®ã¯å®¹æã§ããï¼å®éæå
ã®éçºã§ã¯ Visual C++ 2012 + Visual Assist X ã§å¿«é©éçºã¨ãããã¨ãå²ã¨ç°¡åã«ã§ãã¦ããï¼ä¸æ¹ï¼ãã«ããµã¼ãã¼ã¯ãã¾ã ã« Visual C++ 2008 ã使ã£ã¦ããï¼ããã«é¢ãã¦æè¿ä»¥ä¸ã®ãããªæ¸å¿µç¹ããã£ãï¼
- Chromium ãããã©ã«ãã³ã³ãã¤ã©ã Visual C++ 2008 ãã Visual C++ 2010 ã«ç§»è¡ãã
- Visual C++ 2010 ã«ãªãã¨ï¼nullptr ã auto ã使ããããã«ãªã
ãããªããã§ï¼Mozc ã®ããã©ã«ãã³ã³ãã¤ã©ã Visual C++ 2008 ãã Visual C++ 2010 ã«å¤æ´ãããã¨æãç«ã¤ï¼
ãã®å¤æ´ã§åé¡ã«ãªãã®ã¯ï¼å¾æ¥ã³ãã³ãã©ã¤ã³ããã®ãã«ãã«ä½¿ã£ã¦ãã vcbuild.exe ã使ããªããªãï¼.NET ãã¼ã¹ã® msbuild.exe ã«ç§»è¡ããªããã°ãªããªããã¨ã§ããï¼å¯éåã®ãã«ããµã¼ãã¼ã« .NET ãã¼ã¹ã®è¤éãªä¾åé¢ä¿ãæã¡è¾¼ãã®ã¯ãããããªãï¼ããã§ï¼æè¿ Chromium ã§ãä½µç¨ããã¦ãã ninja ã使ã£ã¦ã¿ããã¨ã«ããï¼
Ninja ã¯ï¼å½æ Chromium ãã¼ã ã«å¨ç±ãã¦ãã Evan Martin ã«ãã make 代æ¿ãã¼ã«ã§ï¼gyp ã CMake ã®ãããªãã¼ã«ããèªåçæããããã«ãè¨å®ãèªã¿è¾¼ããã¨ãåæã«ï¼ã¨ã«ããé«éã«åä½ãããã¨ãç®æãã¦ããï¼Ninja 㯠Chromium éçºã§å¤ç¨ããã¦ããã ãã§ãªãï¼æè¿ã¯ LLVM ã®ãã㪠CMake å©ç¨ããã¸ã§ã¯ãã«ããã¡ã³ãåºãã¦ããããã ï¼ä»å vcbuild.exe ã§ã¯ãªã Ninja ãæ¡ç¨ããããä¸ã¤ã®çç±ã¯ï¼ç¤¾å
ã§å¢ããæã¡ã¤ã¤ãããã¼ã«ã«ã¯ãªãã¹ãä¹ã£ãã£ã¦ããã¨ããçµé¨åãããï¼å°ã£ãã¨ãã«èãããããï¼èªåã®çµé¨ãååã®å½¹ã«ç«ã¤ãã¨ãããï¼
ãã£ã¨ãï¼Chromium ä»éããã¸ã§ã¯ãã«ãããã¡ãªè©±ã¨ãã¦ï¼Chromium ãå¿
è¦ã«ãªã£ãé¨åã ãå®è£
ããï¼ä»ã¯æªå®è£
ã¨ããã®ã¯ä»åãåãï¼Mozc ã gyp + Ninja + Visual C++ 2010 ã§å¿«é©ã«ãã«ãããã«ã¯ï¼gyp ã® Ninja åãã¸ã§ãã¬ã¼ã¿å´ã«ããã¤ã追å å®è£
ãè¡ãå¿
è¦ããã£ãï¼12 æé ãã£ãã¨ããããã¢ããã¹ããªã¼ã ãã¦ãã姿ã以ä¸ã«è¦ããã¨ãã§ããï¼
移è¡ã¯ç¡äºäºå®ãã¦ããæéã§çµããï¼ç¾å¨ã® Mozc ã®ãã«ããµã¼ãã¼ã¯ gyp + Ninja + Visual C++ 2010 ã§åãã¦ããï¼