Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: chrome/browser/ui/website_settings/permission_bubble_manager.cc

Issue 791033004: Control permission bubbles with Finch flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Default to false Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/website_settings/permission_bubble_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" 5 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/field_trial.h"
8 #include "base/metrics/user_metrics_action.h" 9 #include "base/metrics/user_metrics_action.h"
9 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" 10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
10 #include "chrome/common/chrome_switches.h" 11 #include "chrome/common/chrome_switches.h"
11 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
12 #include "content/public/browser/navigation_details.h" 13 #include "content/public/browser/navigation_details.h"
13 #include "content/public/browser/user_metrics.h" 14 #include "content/public/browser/user_metrics.h"
14 15
15 namespace { 16 namespace {
16 17
18 // String constants to control whether bubbles are enabled by default.
19 const char kTrialName[] = "PermissionBubbleRollout";
20 const char kEnabled[] = "Enabled";
21 const char kDisabled[] = "Disabled";
22
17 class CancelledRequest : public PermissionBubbleRequest { 23 class CancelledRequest : public PermissionBubbleRequest {
18 public: 24 public:
19 explicit CancelledRequest(PermissionBubbleRequest* cancelled) 25 explicit CancelledRequest(PermissionBubbleRequest* cancelled)
20 : icon_(cancelled->GetIconID()), 26 : icon_(cancelled->GetIconID()),
21 message_text_(cancelled->GetMessageText()), 27 message_text_(cancelled->GetMessageText()),
22 message_fragment_(cancelled->GetMessageTextFragment()), 28 message_fragment_(cancelled->GetMessageTextFragment()),
23 user_gesture_(cancelled->HasUserGesture()), 29 user_gesture_(cancelled->HasUserGesture()),
24 hostname_(cancelled->GetRequestingHostname()) {} 30 hostname_(cancelled->GetRequestingHostname()) {}
25 ~CancelledRequest() override {} 31 ~CancelledRequest() override {}
26 32
(...skipping 19 matching lines...) Expand all
46 bool user_gesture_; 52 bool user_gesture_;
47 GURL hostname_; 53 GURL hostname_;
48 }; 54 };
49 55
50 } // namespace 56 } // namespace
51 57
52 DEFINE_WEB_CONTENTS_USER_DATA_KEY(PermissionBubbleManager); 58 DEFINE_WEB_CONTENTS_USER_DATA_KEY(PermissionBubbleManager);
53 59
54 // static 60 // static
55 bool PermissionBubbleManager::Enabled() { 61 bool PermissionBubbleManager::Enabled() {
62 // Command line flags take precedence.
56 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 63 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
57 switches::kEnablePermissionsBubbles)) 64 switches::kEnablePermissionsBubbles))
58 return true; 65 return true;
59
60 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 66 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
61 switches::kDisablePermissionsBubbles)) 67 switches::kDisablePermissionsBubbles))
62 return false; 68 return false;
63 69
70 std::string group(base::FieldTrialList::FindFullName(kTrialName));
71 if (group == kEnabled)
72 return true;
73 if (group == kDisabled)
74 return false;
75
64 return false; 76 return false;
65 } 77 }
66 78
67 PermissionBubbleManager::PermissionBubbleManager( 79 PermissionBubbleManager::PermissionBubbleManager(
68 content::WebContents* web_contents) 80 content::WebContents* web_contents)
69 : content::WebContentsObserver(web_contents), 81 : content::WebContentsObserver(web_contents),
70 require_user_gesture_(false), 82 require_user_gesture_(false),
71 bubble_showing_(false), 83 bubble_showing_(false),
72 view_(NULL), 84 view_(NULL),
73 request_url_has_loaded_(false), 85 request_url_has_loaded_(false),
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 bool PermissionBubbleManager::HasUserGestureRequest( 414 bool PermissionBubbleManager::HasUserGestureRequest(
403 const std::vector<PermissionBubbleRequest*>& queue) { 415 const std::vector<PermissionBubbleRequest*>& queue) {
404 std::vector<PermissionBubbleRequest*>::const_iterator iter; 416 std::vector<PermissionBubbleRequest*>::const_iterator iter;
405 for (iter = queue.begin(); iter != queue.end(); iter++) { 417 for (iter = queue.begin(); iter != queue.end(); iter++) {
406 if ((*iter)->HasUserGesture()) 418 if ((*iter)->HasUserGesture())
407 return true; 419 return true;
408 } 420 }
409 return false; 421 return false;
410 } 422 }
411 423
OLDNEW
« no previous file with comments | « chrome/browser/ui/website_settings/permission_bubble_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698