Chromium Code Reviews| 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 50 base::string16 message_text_; | 50 base::string16 message_text_; |
| 51 base::string16 message_fragment_; | 51 base::string16 message_fragment_; |
| 52 bool user_gesture_; | 52 bool user_gesture_; |
| 53 GURL hostname_; | 53 GURL hostname_; |
| 54 }; | 54 }; |
| 55 | 55 |
| 56 } // namespace | 56 } // namespace |
| 57 | 57 |
| 58 DEFINE_WEB_CONTENTS_USER_DATA_KEY(PermissionBubbleManager); | 58 DEFINE_WEB_CONTENTS_USER_DATA_KEY(PermissionBubbleManager); |
| 59 | 59 |
| 60 // PermissionBubbleManager::Observer ------------------------------------------- | |
| 61 PermissionBubbleManager::Observer::~Observer() { | |
| 62 } | |
| 63 | |
| 64 void PermissionBubbleManager::Observer::OnBubbleAdded() { | |
| 65 } | |
| 66 | |
| 67 // PermissionBubbleManager ----------------------------------------------------- | |
| 68 | |
| 60 // static | 69 // static |
| 61 bool PermissionBubbleManager::Enabled() { | 70 bool PermissionBubbleManager::Enabled() { |
| 62 // Command line flags take precedence. | 71 // Command line flags take precedence. |
| 63 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 72 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 64 switches::kEnablePermissionsBubbles)) | 73 switches::kEnablePermissionsBubbles)) |
| 65 return true; | 74 return true; |
| 66 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 75 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 67 switches::kDisablePermissionsBubbles)) | 76 switches::kDisablePermissionsBubbles)) |
| 68 return false; | 77 return false; |
| 69 | 78 |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 339 // TODO(leng): Currently all requests default to true. If that changes: | 348 // TODO(leng): Currently all requests default to true. If that changes: |
| 340 // a) Add additional accept_state queues to store default values. | 349 // a) Add additional accept_state queues to store default values. |
| 341 // b) Change the request API to provide the default value. | 350 // b) Change the request API to provide the default value. |
| 342 accept_states_.resize(requests_.size(), true); | 351 accept_states_.resize(requests_.size(), true); |
| 343 } | 352 } |
| 344 | 353 |
| 345 // Note: this should appear above Show() for testing, since in that | 354 // Note: this should appear above Show() for testing, since in that |
| 346 // case we may do in-line calling of finalization. | 355 // case we may do in-line calling of finalization. |
| 347 bubble_showing_ = true; | 356 bubble_showing_ = true; |
| 348 view_->Show(requests_, accept_states_); | 357 view_->Show(requests_, accept_states_); |
| 358 NotifyBubbleAdded(view_); | |
|
msw
2015/06/04 01:22:08
Instead of adding the observer and responder class
felt
2015/06/05 00:38:21
There is one disadvantage of the set_auto_response
| |
| 349 } | 359 } |
| 350 | 360 |
| 351 void PermissionBubbleManager::FinalizeBubble() { | 361 void PermissionBubbleManager::FinalizeBubble() { |
| 352 if (view_) | 362 if (view_) |
| 353 view_->Hide(); | 363 view_->Hide(); |
| 354 bubble_showing_ = false; | 364 bubble_showing_ = false; |
| 355 | 365 |
| 356 std::vector<PermissionBubbleRequest*>::iterator requests_iter; | 366 std::vector<PermissionBubbleRequest*>::iterator requests_iter; |
| 357 for (requests_iter = requests_.begin(); | 367 for (requests_iter = requests_.begin(); |
| 358 requests_iter != requests_.end(); | 368 requests_iter != requests_.end(); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 407 bool PermissionBubbleManager::HasUserGestureRequest( | 417 bool PermissionBubbleManager::HasUserGestureRequest( |
| 408 const std::vector<PermissionBubbleRequest*>& queue) { | 418 const std::vector<PermissionBubbleRequest*>& queue) { |
| 409 std::vector<PermissionBubbleRequest*>::const_iterator iter; | 419 std::vector<PermissionBubbleRequest*>::const_iterator iter; |
| 410 for (iter = queue.begin(); iter != queue.end(); iter++) { | 420 for (iter = queue.begin(); iter != queue.end(); iter++) { |
| 411 if ((*iter)->HasUserGesture()) | 421 if ((*iter)->HasUserGesture()) |
| 412 return true; | 422 return true; |
| 413 } | 423 } |
| 414 return false; | 424 return false; |
| 415 } | 425 } |
| 416 | 426 |
| 427 void PermissionBubbleManager::AddObserver(Observer* obs) { | |
| 428 observer_list_.AddObserver(obs); | |
| 429 } | |
| 430 | |
| 431 void PermissionBubbleManager::RemoveObserver(Observer* obs) { | |
| 432 observer_list_.RemoveObserver(obs); | |
| 433 } | |
| 434 | |
| 435 void PermissionBubbleManager::NotifyBubbleAdded(PermissionBubbleView* bubble) { | |
| 436 FOR_EACH_OBSERVER(Observer, observer_list_, OnBubbleAdded()); | |
| 437 } | |
| OLD | NEW |