Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install Mozc into %ProgramFiles%\Mozc rather than %ProgramFiles(x86)%\Mozc #1086

Open
yukawa opened this issue Oct 17, 2024 · 0 comments
Open
Assignees

Comments

@yukawa
Copy link
Collaborator

yukawa commented Oct 17, 2024

Description

Historically we have been installing Mozc into %ProgramFiles(x86)%\Mozc (e.g. C:\Program Files (x86)\Mozc) rather than %ProgramFiles%\Mozc even on 64-bint environment as that is how Google Japanese Input has been doing since 2009.

This is going to be much more confusing when we start supporting Windows Arm64 environment, where we may see the following 3 "Program Files" directories.

  • C:\Program Files: 64-bit binaries for both Arm64 and x86_64
  • C:\Program Files (Arm): arm 32-bit binaries
  • C:\Program Files (x86): x86 32-bit binaries

Let's see if we can migrate from %ProgramFiles(x86)%\Mozc to %ProgramFiles%\Mozc without disturbing existing (Google Japanese Input) users, as one of preparations to support Windows Arm64 environments.

Steps to reproduce

Steps to reproduce the behavior:

  1. Install some older version of Mozc, which is to be installed into %ProgramFiles(x86)%\Mozc.
  2. Launch some app and select Mozc.
  3. Build a new version of Mozc, which is to be installed into %ProgramFiles%\Mozc.
  4. msiexec.exe /i Mozc64.msi /qn REBOOT=ReallySuppress

Screenshots

Mozc continues working on the app launched at the step 2.

Version or commit-id

8c8a446

Environment

  • OS: Windows 11 23H2

Additional context

yukawa added a commit to yukawa/mozc that referenced this issue Oct 17, 2024
This is a preparation to switch Mozc's installation directory from

  %ProgramFiles(x86)%\Mozc

into

  %ProgramFiles%\Mozc

without user observable downtime (google#1086).

Currently the directory

  %ProgramFiles(x86)%\Mozc

is effectively hard coded in 'mozc_tip{32,64}.dll'. This means if older
versions of 'mozc_tip{32,64}.dll' continue assuming the previous
installation directory until it is unloaded or the process is restarted.

To avoid such mismatch, with this commit

  SystemUtil::GetServerDirectory()

starts dynamically retrieving Mozc's installation directory from
registry by checking COM entries of 'mozc_tip64.dll'. If it fails, we
fall back to the previous behavior.

Note that this is the first step of the migration and we cannot go to
the next step until 'mozc_tip{32,64}.dll' with this commit is deployed
to users.
yukawa added a commit to yukawa/mozc that referenced this issue Oct 17, 2024
This is a preparation to switch Mozc's installation directory from

  %ProgramFiles(x86)%\Mozc

into

  %ProgramFiles%\Mozc

without user observable downtime (google#1086).

Currently the directory

  %ProgramFiles(x86)%\Mozc

is effectively hard coded in 'mozc_tip{32,64}.dll'. This means if older
versions of 'mozc_tip{32,64}.dll' continue assuming the previous
installation directory until it is unloaded or the process is restarted.

To avoid such mismatch, with this commit

  SystemUtil::GetServerDirectory()

starts dynamically retrieving Mozc's installation directory from
registry by checking COM entries of 'mozc_tip64.dll'. If it fails, we
fall back to the previous behavior.

Note that this is the first step of the migration and we cannot go to
the next step until 'mozc_tip{32,64}.dll' with this commit is deployed
to users.
hiroyuki-komatsu pushed a commit that referenced this issue Oct 21, 2024
This is a preparation to switch Mozc's installation directory from

  %ProgramFiles(x86)%\Mozc

into

  %ProgramFiles%\Mozc

without user observable downtime (#1086).

Currently the directory

  %ProgramFiles(x86)%\Mozc

is effectively hard coded in 'mozc_tip{32,64}.dll'. This means if older
versions of 'mozc_tip{32,64}.dll' continue assuming the previous
installation directory until it is unloaded or the process is restarted.

To avoid such mismatch, with this commit

  SystemUtil::GetServerDirectory()

starts dynamically retrieving Mozc's installation directory from
registry by checking COM entries of 'mozc_tip64.dll'. If it fails, we
fall back to the previous behavior.

Note that this is the first step of the migration and we cannot go to
the next step until 'mozc_tip{32,64}.dll' with this commit is deployed
to users.

PiperOrigin-RevId: 688083089
@yukawa yukawa self-assigned this Nov 2, 2024
yukawa added a commit to yukawa/mozc that referenced this issue Dec 3, 2024
The current implementation of

  ProgramFilesX86Cache::TryProgramFilesPath

is unnecessarily complex. We can always use CSIDL_PROGRAM_FILESX86 not
only within 64-bit processes but also within 32-bit processes.

There must be no observable behavior change in this commit.

This is a preparation to build Mozc as an ARM64 executable (google#1130).

See google#1086 for how and when we can stop relying on this historical
installation location.
hiroyuki-komatsu pushed a commit that referenced this issue Dec 4, 2024
The current implementation of

  ProgramFilesX86Cache::TryProgramFilesPath

is unnecessarily complex. We can always use CSIDL_PROGRAM_FILESX86 not
only within 64-bit processes but also within 32-bit processes.

There must be no observable behavior change in this commit.

This is a preparation to build Mozc as an ARM64 executable (#1130).

See #1086 for how and when we can stop relying on this historical
installation location.

PiperOrigin-RevId: 702632385
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant