Index: chrome/browser/ui/website_settings/permission_bubble_manager.cc |
diff --git a/chrome/browser/ui/website_settings/permission_bubble_manager.cc b/chrome/browser/ui/website_settings/permission_bubble_manager.cc |
index 4a64dae46e13957d0ae08ca686879b4213d6a598..b8d26d5a1882a3d93349eac362d03aef1586da36 100644 |
--- a/chrome/browser/ui/website_settings/permission_bubble_manager.cc |
+++ b/chrome/browser/ui/website_settings/permission_bubble_manager.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
#include "base/command_line.h" |
+#include "base/metrics/field_trial.h" |
#include "base/metrics/user_metrics_action.h" |
#include "chrome/browser/ui/website_settings/permission_bubble_request.h" |
#include "chrome/common/chrome_switches.h" |
@@ -14,6 +15,11 @@ |
namespace { |
+// String constants to control whether bubbles are enabled by default. |
+const char kTrialName[] = "PermissionBubbleRollout"; |
+const char kEnabled[] = "Enabled"; |
+const char kDisabled[] = "Disabled"; |
+ |
class CancelledRequest : public PermissionBubbleRequest { |
public: |
explicit CancelledRequest(PermissionBubbleRequest* cancelled) |
@@ -53,14 +59,20 @@ DEFINE_WEB_CONTENTS_USER_DATA_KEY(PermissionBubbleManager); |
// static |
bool PermissionBubbleManager::Enabled() { |
+ // Command line flags take precedence. |
if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnablePermissionsBubbles)) |
return true; |
- |
if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kDisablePermissionsBubbles)) |
return false; |
+ std::string group(base::FieldTrialList::FindFullName(kTrialName)); |
+ if (group == kEnabled) |
+ return true; |
+ if (group == kDisabled) |
+ return false; |
+ |
return false; |
} |