Skip to content

Always use CustomAction to register COM DLLs#1500

Merged
hiroyuki-komatsu merged 1 commit into
google:masterfrom
ciceroaware:issue_1086_prep3
May 10, 2026
Merged

Always use CustomAction to register COM DLLs#1500
hiroyuki-komatsu merged 1 commit into
google:masterfrom
ciceroaware:issue_1086_prep3

Conversation

@yukawa
Copy link
Copy Markdown
Collaborator

@yukawa yukawa commented May 2, 2026

Description

This is a preparation to change the Mozc's installation directory from "Program Files (x86)" to "Program Files" not only for new installations but also for existing installations (#1086).

The ground truth is that TSF-based IMEs need to register their COM DLLs to the registry key HKEY_CLASSES_ROOT\CLSID, and there are basically two ways to do it in the installer (MSI file):

  • A. Use custom action in WiX, which calls Win32 registry APIs to manually manipulate the registry.
  • B. Declare COM information in the pre-defined database of MSI file, and let MSI engine to register the COM DLLs.

Mozc started with the method A, then switched to the method B (e467907), then switched back to methods A only for universal installer (96bab12), and now is fully switching back to the method A for all the installers with this commit.

The problem is that the method B is feasible only when the COM DLL file name and destination path are determined at the build time, and it is not the case for both universal installer and installation directory migration. Now that all the installers we build (x64 only, ARM64 only, and universal) hit such limitation, there is no reason to keep the method B code path.

Issue IDs

Steps to test new behaviors (if any)

  • OS: Windows 11 25H2
  • Steps:
    1. Confirm you can still use Mozc after installation
  • Steps:
    1. Confirm you can still use Mozc after upgrading installation
  • Steps:
    1. Confirm you can still use Mozc after installation in ARM64 environment

This is a preparation to change the Mozc's installation directory from
"Program Files (x86)" to "Program Files" not only for new installations
but also for existing installations (google#1086).

The ground truth is that TSF-based IMEs need to register their COM DLLs
to the registry key "HKEY_CLASSES_ROOT\CLSID", and there are basically
two ways to do it in the installer (MSI file):

 A. Use custom action in WiX, which calls Win32 registry APIs to
    manually manipulate the registry.
 B. Declare COM information in the pre-defined database of MSI file, and
    let MSI engine to register the COM DLLs.

Mozc started with the method A, then switched to the method B [1], then
switched back to methods A only for universal installer [2], and now is
fully switching back to the method A for all the installers with this
commit.

The problem is that the method B is feasible only when the COM DLL file
name and destination path are determined at the build time, and it is
not the case for both universal installer and installation directory
migration. Now that all the installers we build (x64 only, ARM64 only,
and universal) hit such limitation, there is no reason to keep the
method B code path.

 [1]: e467907
 [2]: 96bab12
@yukawa yukawa force-pushed the issue_1086_prep3 branch from 69261d2 to 2168bd6 Compare May 2, 2026 04:49
@hiroyuki-komatsu hiroyuki-komatsu merged commit 82dca34 into google:master May 10, 2026
1 check passed
@yukawa yukawa deleted the issue_1086_prep3 branch May 10, 2026 08:39
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

Successfully merging this pull request may close these issues.

2 participants