Historically GoogleJapaneseInput64.msi have installed 32-bit executables unless it really needs to be 64-bit, mostly because to minimize build time and differences from GoogleJapaneseInput32.msi.
At the same time, in general 64-bit executables have more capability on 64-bit Windows (e.g. better ASLR, newer CPU features, some APIs such as special user-mode APC). Maybe it's time to start distributing more 64-bit versions executables.
With this CL, GoogleJapaneseInput64.msi will install 64-bit versions of the following executables.
- GoogleIMEJaRenderer.exe
- GoogleIMEJaCacheService.exe
- GoogleIMEJaConverter.exe
PiperOrigin-RevId: 522965093
Creating `C:\work` actually requires Administrator privilege. Let's use actual user profile directory so as not to confuse people.
PiperOrigin-RevId: 522758447
Visual Studio 2017 15.3 and later do bundle `ninja.exe`, which means that we no longer need to ask developers to check out `depot_tools` for such a build environment.
To simplify build instructions, this CL updates the default value of `--msvs_version` option to be '2019' from '2017' with removing all the references to `depot_tools` from the build instructions.
#codehealth
PiperOrigin-RevId: 522758283
It seems that Windows CI occasionally takes more than 60 min, which is greater than our current configuration `timeout-minutes: 60`.
While we can increase timeout, it would be nice if we can run both `build` and `runtests` in parallel for faster turnaround time.
#codehealth
PiperOrigin-RevId: 522754666
`Win32RendererUtil::GetWindowClassName()` is no longer used in production.
We do not need to keep and test it any more.
#codehealth
PiperOrigin-RevId: 522727324
Now that `CandidateWindowLayout::initialized()` and `CandidateWindowLayout::has_exclude_region()` are guaranteed to return the same value, we can simply remove the later.
#codehealth
PiperOrigin-RevId: 522724184
mozc_dll_module has both DLL main and TipDllModule. TipDllModule is referenced by many components, which resulted in cyclic dependencies. This CL split them into separate files and moves the entry point and related functions to mozc_tip_main.cc.
PiperOrigin-RevId: 522723942
WRL::ComPtr is an improved version of COM object wrapper by Microsoft. ATL::CComPtr lacks newer C++ semantics and doesn't always work with final classes.
More changes will follow.
PiperOrigin-RevId: 522723761
Now that the following fields are always initialized with the same value, we can simply merge them without changing any observable behavior.
- `CandidateWindowLayout::initialized_`
- `CandidateWindowLayout::has_exclude_region_`
#codehealth
PiperOrigin-RevId: 522720050
We no longer mock `WorkingAreaInterface`. `NativeWorkingAreaAPI::GetWorkingAreaFromPoint()` can now be directly exposed as a flat function.
#codehealth
PiperOrigin-RevId: 522704762
Now that `LayoutManager::GetDefaultGuiFont()` is no longer used, we can delete dead code such as `SystemPreferenceInterface`, `NativeSystemPreferenceAPI`, `SystemPreferenceEmulatorImpl`, and `SystemPreferenceFactory`.
PiperOrigin-RevId: 522622499
Now that `LayoutManager::LayoutCandidateWindowFor{Suggestion,Conversion}()` have exactly the same implementation, we can safely merge them into a single method `LayoutManager::LayoutCandidateWindow()`.
#codehealth
PiperOrigin-RevId: 522606981
`LayoutCandidateWindowByCompositionTarget` no longer uses its parameter `compatibility_mode` and `for_suggestion`.
We should be able to safely remove these two parameters.
#codehealth
PiperOrigin-RevId: 522602336
Now that `composition_form_topleft.has_value()` always returns `false`, we can safely delete dead code such as
- `CanUseExcludeRegionInCandidateFrom`
- `UpdateCandidateWindowFromBasePosAndFontHeight`
- `LayoutCandidateWindowByCandidateForm`
#codehealth
PiperOrigin-RevId: 522515842
`ninja.exe` hard-codes `"Note: including file: "` as an expected prefix
when parsing outputs from `cl.exe /showIncludes`.
ce700488e0/src/clparser.cc (L44-L58)
To make this work under non English environment, an environment variable
`VSLANG=1033` needs to be set, where `1033` comes from Windows Language ID for `en-US` that is `MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)`.
Fixes#708.
PiperOrigin-RevId: 522498609
Ordered maps and sets with std::string keys will be modified to support heterogenous lookup.
Specifically, std::less<> will be added as a comparator to compatible container types,
e.g. std::map<std::string, T> → std::map<std::string, T, std::less<>>.
For these types, heterogeneous lookup for string keys reduces friction in APIs, and allows `absl::string_view`s
to be used for lookup, instead of having to construct a temporary std::string.
An important benefit of this LSC is aiding in the migration from `const std::string&` to `absl::string_view`
near any map locus (the importance of which is outlined in go/recommending-stringview and
go/string-ref-to-string-view-lsc).
LSC Doc: go/string-keyed-heterogeneous-lookup-lsc
#string-keyed-transparent-lookup-lsc #codehealth
Tested:
Local presubmit tests passed.
PiperOrigin-RevId: 522380849
On Windows Vista and later OSes we can just rely on `PIPE_REJECT_REMOTE_CLIENTS` to protect named pipe instances from remote accesses. We no longer need to have a deny DACL for `SDDL_NETWORK`, which can have tricky side effect when a process is invoked in a non-interactive way (e.g. "ssh").
PiperOrigin-RevId: 522153220
With this CL `python build_mozc.py runtests -c Debug` is also executed in CI for Windows.
Overall latency impact is roughly 20 min, which is hopefully acceptable.
Debug build is chosen because Visual C++ Debug binaries have revealed multiple issues that were not detected by GCC/Clang debug binaries.
#codehealth
PiperOrigin-RevId: 521652700
With this CL `build_mozc.py gyp` no longer dumps 'environment.x86' and 'environment.x64' to console, which is a bit too verbose.
#codehealth
PiperOrigin-RevId: 521618886
Now that `composition_form_topleft.has_value()` always returns `false`, we can safely delete `LayoutIndicatorWindowByCompositionForm()`, which is guaranteed to return `false` without doing anything.
#codehealth
PiperOrigin-RevId: 521499224