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 |