Revert "Reland "[IME] Remove IME UIL flags.""
This reverts commit b7ab664da791fa343cd657634d210034cd3116d0.
Reason for revert: The inputs.VirtualKeyboard are failing again (right after this CL was relanded.
https://ci.chromium.org/p/chrome/builders/ci/chromeos-betty-pi-arc-cfi-thin-lto-chrome/12767
(see the overview and blamelist tabs)
Original change's description:
> Reland "[IME] Remove IME UIL flags."
>
> This reverts commit 583caa18f537ed1029fd80c98bc7d8fda3cc23c1.
>
> Reason for revert: The failed tast tests have been fixed in crrev.com/c/2509530. So reland the flags updates now.
>
> Original change's description:
> > Revert "[IME] Remove IME UIL flags."
> >
> > This reverts commit 20fb36e3013a858109ecbf871d059e32edae1816.
> >
> > Reason for revert: speculative revert for chrome_all_tast_tests
> > failures affecting inputs.VirtualKeyboard* tests, for example
> > https://ci.chromium.org/p/chrome/builders/ci/chromeos-betty-pi-arc-chrome/9751
> >
> > Original change's description:
> > > [IME] Remove IME UIL flags.
> > >
> > > Simplify the UIL/IME service dev/testing.
> > >
> > > TEST=simple chrome
> > > BUG=b/171846787
> > >
> > > Change-Id: Ibeef37bc89b848cffd5a4a08d5619d41a5c35b33
> > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2507236
> > > Reviewed-by: Darren Shen <[email protected]>
> > > Commit-Queue: Leo Zhang <[email protected]>
> > > Cr-Commit-Position: refs/heads/master@{#822479}
> >
> > [email protected],[email protected],[email protected]
> >
> > Change-Id: I2c2a4ccda60320dd7099afcfc28a12122b11e982
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: b/171846787
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2509749
> > Reviewed-by: Mikel Astiz <[email protected]>
> > Commit-Queue: Mikel Astiz <[email protected]>
> > Cr-Commit-Position: refs/heads/master@{#822582}
>
> [email protected],[email protected],[email protected],[email protected]
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: b/171846787
> Change-Id: Ia120b5b89fba677cf3f9ecc592ebc1bd5db14804
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2512630
> Reviewed-by: Leo Zhang <[email protected]>
> Commit-Queue: Leo Zhang <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#823077}
[email protected],[email protected],[email protected],[email protected]
Change-Id: I8f8cb41509b168d5e3dbc0e77f51f48077330d9f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/171846787
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2513647
Reviewed-by: Michael Ershov <[email protected]>
Commit-Queue: Michael Ershov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#823097}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 1e28ecb3..2084664 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3581,6 +3581,18 @@
flag_descriptions::kImeEmojiSuggestAdditionName,
flag_descriptions::kImeEmojiSuggestAdditionDescription, kOsCrOS,
FEATURE_VALUE_TYPE(chromeos::features::kEmojiSuggestAddition)},
+ {"enable-cros-ime-input-logic-fst",
+ flag_descriptions::kImeInputLogicFstName,
+ flag_descriptions::kImeInputLogicFstDescription, kOsCrOS,
+ FEATURE_VALUE_TYPE(chromeos::features::kImeInputLogicFst)},
+ {"enable-cros-ime-input-logic-hmm",
+ flag_descriptions::kImeInputLogicHmmName,
+ flag_descriptions::kImeInputLogicHmmDescription, kOsCrOS,
+ FEATURE_VALUE_TYPE(chromeos::features::kImeInputLogicHmm)},
+ {"enable-cros-ime-input-logic-mozc",
+ flag_descriptions::kImeInputLogicMozcName,
+ flag_descriptions::kImeInputLogicMozcDescription, kOsCrOS,
+ FEATURE_VALUE_TYPE(chromeos::features::kImeInputLogicMozc)},
{"enable-cros-ime-mozc-proto", flag_descriptions::kImeMozcProtoName,
flag_descriptions::kImeMozcProtoDescription, kOsCrOS,
FEATURE_VALUE_TYPE(chromeos::features::kImeMozcProto)},
diff --git a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
index 97d57a44..19f5426 100644
--- a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
+++ b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
@@ -410,21 +410,23 @@
"floatingkeyboarddefault",
base::FeatureList::IsEnabled(
chromeos::features::kVirtualKeyboardFloatingDefault)));
-
- // Flag used to enable system built-in IME decoder instead of NaCl.
- bool mojoDecoder =
- base::FeatureList::IsEnabled(chromeos::features::kImeMojoDecoder);
- features->AppendString(GenerateFeatureFlag("usemojodecoder", mojoDecoder));
- // Enabling MojoDecoder implies the 2 previous flags are auto-enabled.
- // * fstinputlogic
- // * hmminputlogic
- // TODO(b/171846787): Remove the 3 flags after they are removed from clients.
- features->AppendString(GenerateFeatureFlag("fstinputlogic", mojoDecoder));
- features->AppendString(GenerateFeatureFlag("hmminputlogic", mojoDecoder));
features->AppendString(GenerateFeatureFlag(
"imemozcproto",
base::FeatureList::IsEnabled(chromeos::features::kImeMozcProto)));
-
+ // 3 flags below are used to enable IME new APIs on each decoder.
+ features->AppendString(GenerateFeatureFlag(
+ "fstinputlogic",
+ base::FeatureList::IsEnabled(chromeos::features::kImeInputLogicFst)));
+ features->AppendString(GenerateFeatureFlag(
+ "hmminputlogic",
+ base::FeatureList::IsEnabled(chromeos::features::kImeInputLogicHmm)));
+ features->AppendString(GenerateFeatureFlag(
+ "mozcinputlogic",
+ base::FeatureList::IsEnabled(chromeos::features::kImeInputLogicMozc)));
+ // Flag used to enable system built-in IME decoder instead of NaCl.
+ features->AppendString(GenerateFeatureFlag(
+ "usemojodecoder",
+ base::FeatureList::IsEnabled(chromeos::features::kImeMojoDecoder)));
features->AppendString(GenerateFeatureFlag(
"borderedkey", base::FeatureList::IsEnabled(
chromeos::features::kVirtualKeyboardBorderedKey)));
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 779d83c..535be313 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1350,6 +1350,21 @@
"expiry_milestone": 90
},
{
+ "name": "enable-cros-ime-input-logic-fst",
+ "owners": [ "[email protected]" ],
+ "expiry_milestone": 90
+ },
+ {
+ "name": "enable-cros-ime-input-logic-hmm",
+ "owners": [ "[email protected]" ],
+ "expiry_milestone": 90
+ },
+ {
+ "name": "enable-cros-ime-input-logic-mozc",
+ "owners": [ "[email protected]" ],
+ "expiry_milestone": 90
+ },
+ {
"name": "enable-cros-ime-mozc-proto",
"owners": [ "[email protected]" ],
"expiry_milestone": 90
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 7c995b3..4e3cf562 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -4221,6 +4221,18 @@
const char kImeEmojiSuggestAdditionDescription[] =
"Enable emoji suggestion as addition to the text written for native IME.";
+const char kImeInputLogicFstName[] = "Enable FST Input Logic on IME";
+const char kImeInputLogicFstDescription[] =
+ "Enable FST Input Logic to replace the IME legacy input logic on NaCl";
+
+const char kImeInputLogicHmmName[] = "Enable HMM Input Logic on IME";
+const char kImeInputLogicHmmDescription[] =
+ "Enable HMM Input Logic to replace the IME legacy input logic on NaCl";
+
+const char kImeInputLogicMozcName[] = "Enable MOZC Input Logic on IME";
+const char kImeInputLogicMozcDescription[] =
+ "Enable MOZC Input Logic to replace the IME legacy input logic on NaCl";
+
const char kImeMozcProtoName[] = "Enable protobuf on Japanese IME";
const char kImeMozcProtoDescription[] =
"Enable Japanese IME to use protobuf as interactive message format to "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index d108a1c..17a957b 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2460,6 +2460,15 @@
extern const char kImeEmojiSuggestAdditionName[];
extern const char kImeEmojiSuggestAdditionDescription[];
+extern const char kImeInputLogicFstName[];
+extern const char kImeInputLogicFstDescription[];
+
+extern const char kImeInputLogicHmmName[];
+extern const char kImeInputLogicHmmDescription[];
+
+extern const char kImeInputLogicMozcName[];
+extern const char kImeInputLogicMozcDescription[];
+
extern const char kImeMozcProtoName[];
extern const char kImeMozcProtoDescription[];
diff --git a/chromeos/constants/chromeos_features.cc b/chromeos/constants/chromeos_features.cc
index f8c959bb..cc7a3a9 100644
--- a/chromeos/constants/chromeos_features.cc
+++ b/chromeos/constants/chromeos_features.cc
@@ -367,6 +367,21 @@
const base::Feature kHelpAppSearchServiceIntegration{
"HelpAppSearchServiceIntegration", base::FEATURE_DISABLED_BY_DEFAULT};
+// Enable or disable Unified Input Logic for HMM decoder in the IME extension
+// on Chrome OS.
+const base::Feature kImeInputLogicHmm{"ImeInputLogicHmm",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
+// Enable or disable Unified Input Logic for FST decoder in the IME extension
+// on Chrome OS.
+const base::Feature kImeInputLogicFst{"ImeInputLogicFst",
+ base::FEATURE_ENABLED_BY_DEFAULT};
+
+// Enable or disable Unified Input Logic for Mozc decoder in the IME extension
+// on Chrome OS.
+const base::Feature kImeInputLogicMozc{"ImeInputLogicMozc",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
// Enable or disable IME decoder via Mojo connection on Chrome OS.
const base::Feature kImeMojoDecoder{"ImeMojoDecoder",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chromeos/constants/chromeos_features.h b/chromeos/constants/chromeos_features.h
index b93d23c..5a1cbf5 100644
--- a/chromeos/constants/chromeos_features.h
+++ b/chromeos/constants/chromeos_features.h
@@ -170,6 +170,12 @@
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const base::Feature kHelpAppSearchServiceIntegration;
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
+extern const base::Feature kImeInputLogicHmm;
+COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
+extern const base::Feature kImeInputLogicFst;
+COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
+extern const base::Feature kImeInputLogicMozc;
+COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const base::Feature kImeMojoDecoder;
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const base::Feature kImeOptionsInSettings;