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

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

Issue 885373004: Use customization mode by default in permission bubbles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test fixes etc. 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
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/field_trial.h"
9 #include "base/metrics/user_metrics_action.h" 9 #include "base/metrics/user_metrics_action.h"
10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" 10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 return false; 76 return false;
77 } 77 }
78 78
79 PermissionBubbleManager::PermissionBubbleManager( 79 PermissionBubbleManager::PermissionBubbleManager(
80 content::WebContents* web_contents) 80 content::WebContents* web_contents)
81 : content::WebContentsObserver(web_contents), 81 : content::WebContentsObserver(web_contents),
82 require_user_gesture_(false), 82 require_user_gesture_(false),
83 bubble_showing_(false), 83 bubble_showing_(false),
84 view_(NULL), 84 view_(NULL),
85 request_url_has_loaded_(false), 85 request_url_has_loaded_(false),
86 customization_mode_(false),
87 weak_factory_(this) {} 86 weak_factory_(this) {}
88 87
89 PermissionBubbleManager::~PermissionBubbleManager() { 88 PermissionBubbleManager::~PermissionBubbleManager() {
90 if (view_ != NULL) 89 if (view_ != NULL)
91 view_->SetDelegate(NULL); 90 view_->SetDelegate(NULL);
92 91
93 std::vector<PermissionBubbleRequest*>::iterator requests_iter; 92 std::vector<PermissionBubbleRequest*>::iterator requests_iter;
94 for (requests_iter = requests_.begin(); 93 for (requests_iter = requests_.begin();
95 requests_iter != requests_.end(); 94 requests_iter != requests_.end();
96 requests_iter++) { 95 requests_iter++) {
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 web_contents()->RemoveUserData(UserDataKey()); 263 web_contents()->RemoveUserData(UserDataKey());
265 // That was the equivalent of "delete this". This object is now destroyed; 264 // That was the equivalent of "delete this". This object is now destroyed;
266 // returning from this function is the only safe thing to do. 265 // returning from this function is the only safe thing to do.
267 } 266 }
268 267
269 void PermissionBubbleManager::ToggleAccept(int request_index, bool new_value) { 268 void PermissionBubbleManager::ToggleAccept(int request_index, bool new_value) {
270 DCHECK(request_index < static_cast<int>(accept_states_.size())); 269 DCHECK(request_index < static_cast<int>(accept_states_.size()));
271 accept_states_[request_index] = new_value; 270 accept_states_[request_index] = new_value;
272 } 271 }
273 272
274 void PermissionBubbleManager::SetCustomizationMode() {
275 customization_mode_ = true;
276 if (view_)
277 view_->Show(requests_, accept_states_, customization_mode_);
278 }
279
280 void PermissionBubbleManager::Accept() { 273 void PermissionBubbleManager::Accept() {
281 std::vector<PermissionBubbleRequest*>::iterator requests_iter; 274 std::vector<PermissionBubbleRequest*>::iterator requests_iter;
282 std::vector<bool>::iterator accepts_iter = accept_states_.begin(); 275 std::vector<bool>::iterator accepts_iter = accept_states_.begin();
283 for (requests_iter = requests_.begin(), accepts_iter = accept_states_.begin(); 276 for (requests_iter = requests_.begin(), accepts_iter = accept_states_.begin();
284 requests_iter != requests_.end(); 277 requests_iter != requests_.end();
285 requests_iter++, accepts_iter++) { 278 requests_iter++, accepts_iter++) {
286 if (*accepts_iter) 279 if (*accepts_iter)
287 (*requests_iter)->PermissionGranted(); 280 (*requests_iter)->PermissionGranted();
288 else 281 else
289 (*requests_iter)->PermissionDenied(); 282 (*requests_iter)->PermissionDenied();
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 // Sets the default value for each request to be 'accept'. 338 // Sets the default value for each request to be 'accept'.
346 // TODO(leng): Currently all requests default to true. If that changes: 339 // TODO(leng): Currently all requests default to true. If that changes:
347 // a) Add additional accept_state queues to store default values. 340 // a) Add additional accept_state queues to store default values.
348 // b) Change the request API to provide the default value. 341 // b) Change the request API to provide the default value.
349 accept_states_.resize(requests_.size(), true); 342 accept_states_.resize(requests_.size(), true);
350 } 343 }
351 344
352 // Note: this should appear above Show() for testing, since in that 345 // Note: this should appear above Show() for testing, since in that
353 // case we may do in-line calling of finalization. 346 // case we may do in-line calling of finalization.
354 bubble_showing_ = true; 347 bubble_showing_ = true;
355 view_->Show(requests_, accept_states_, customization_mode_); 348 view_->Show(requests_, accept_states_);
356 } 349 }
357 350
358 void PermissionBubbleManager::FinalizeBubble() { 351 void PermissionBubbleManager::FinalizeBubble() {
359 if (view_) 352 if (view_)
360 view_->Hide(); 353 view_->Hide();
361 bubble_showing_ = false; 354 bubble_showing_ = false;
362 355
363 std::vector<PermissionBubbleRequest*>::iterator requests_iter; 356 std::vector<PermissionBubbleRequest*>::iterator requests_iter;
364 for (requests_iter = requests_.begin(); 357 for (requests_iter = requests_.begin();
365 requests_iter != requests_.end(); 358 requests_iter != requests_.end();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 bool PermissionBubbleManager::HasUserGestureRequest( 407 bool PermissionBubbleManager::HasUserGestureRequest(
415 const std::vector<PermissionBubbleRequest*>& queue) { 408 const std::vector<PermissionBubbleRequest*>& queue) {
416 std::vector<PermissionBubbleRequest*>::const_iterator iter; 409 std::vector<PermissionBubbleRequest*>::const_iterator iter;
417 for (iter = queue.begin(); iter != queue.end(); iter++) { 410 for (iter = queue.begin(); iter != queue.end(); iter++) {
418 if ((*iter)->HasUserGesture()) 411 if ((*iter)->HasUserGesture())
419 return true; 412 return true;
420 } 413 }
421 return false; 414 return false;
422 } 415 }
423 416
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698