Index: ios/chrome/browser/experimental_flags.mm |
diff --git a/ios/chrome/browser/experimental_flags.mm b/ios/chrome/browser/experimental_flags.mm |
index 3880c9777d803cd8ece35311f600d206e23e1586..a84f60032b3c2dc3bbda2f2e30ac948a6b03b80e 100644 |
--- a/ios/chrome/browser/experimental_flags.mm |
+++ b/ios/chrome/browser/experimental_flags.mm |
@@ -44,6 +44,8 @@ NSString* const kSafariVCSignInDisabled = @"SafariVCSignInDisabled"; |
NSString* const kWhatsNewPromoStatus = @"WhatsNewPromoStatus"; |
const base::Feature kEnableSlimNavigationManager{ |
"EnableSlimNavigationManager", base::FEATURE_DISABLED_BY_DEFAULT}; |
+const base::Feature kEnableThirdPartyKeyboardWorkaround{ |
+ "EnableThirdPartyKeyboardWorkaround", base::FEATURE_ENABLED_BY_DEFAULT}; |
} // namespace |
@@ -304,4 +306,18 @@ bool IsSlimNavigationManagerEnabled() { |
return base::FeatureList::IsEnabled(kEnableSlimNavigationManager); |
} |
+bool IsThirdPartyKeyboardWorkaroundEnabled() { |
+ // Check if the experimental flag is forced on or off. |
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch(switches::kEnableThirdPartyKeyboardWorkaround)) { |
+ return true; |
+ } else if (command_line->HasSwitch( |
+ switches::kDisableThirdPartyKeyboardWorkaround)) { |
+ return false; |
+ } |
+ |
+ // Check if the Finch experiment is turned on. |
+ return base::FeatureList::IsEnabled(kEnableThirdPartyKeyboardWorkaround); |
+} |
+ |
} // namespace experimental_flags |