| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |