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

Unified Diff: chrome/browser/ui/website_settings/permission_bubble_manager.cc

Issue 176053002: [WebsiteSettings] Change permission bubble API to adapt to new mocks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add multi-download bubble changes. Created 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/website_settings/permission_bubble_manager.cc
diff --git a/chrome/browser/ui/website_settings/permission_bubble_manager.cc b/chrome/browser/ui/website_settings/permission_bubble_manager.cc
index 09b2add4dd9a78aeb3d7738a9af5e457b9b948af..60202ebe904f018a6ef298d8b3dd55ae3ef45f67 100644
--- a/chrome/browser/ui/website_settings/permission_bubble_manager.cc
+++ b/chrome/browser/ui/website_settings/permission_bubble_manager.cc
@@ -24,23 +24,65 @@ bool PermissionBubbleManager::Enabled() {
switches::kEnablePermissionsBubbles);
}
+
+
+PermissionBubbleManager::PermissionBubbleManager(
+ content::WebContents* web_contents)
+ : content::WebContentsObserver(web_contents),
+ bubble_showing_(false),
+ view_(NULL),
+ customization_mode_(false) {
+ timer_.reset(new base::Timer(FROM_HERE,
+ base::TimeDelta::FromMilliseconds(kPermissionsCoalesceIntervalMs),
+ base::Bind(&PermissionBubbleManager::ShowBubble, base::Unretained(this)),
+ false));
+}
+
+PermissionBubbleManager::~PermissionBubbleManager() {
+ if (view_ != NULL)
+ view_->SetDelegate(NULL);
+
+ std::vector<PermissionBubbleRequest*>::iterator requests_iter;
+ for (requests_iter = requests_.begin();
+ requests_iter != requests_.end();
+ requests_iter++) {
+ (*requests_iter)->RequestFinished();
+ }
+ for (requests_iter = queued_requests_.begin();
+ requests_iter != queued_requests_.end();
+ requests_iter++) {
+ (*requests_iter)->RequestFinished();
+ }
+}
+
void PermissionBubbleManager::AddRequest(PermissionBubbleRequest* request) {
- // Don't re-add an existing request.
+ // Don't re-add an existing request or one with a duplicate text request.
std::vector<PermissionBubbleRequest*>::iterator requests_iter;
for (requests_iter = requests_.begin();
requests_iter != requests_.end();
requests_iter++) {
if (*requests_iter == request)
return;
+ // TODO(gbillock): worry about the requesting host name as well.
+ if ((*requests_iter)->GetMessageTextFragment() ==
+ request->GetMessageTextFragment()) {
+ request->RequestFinished();
+ return;
+ }
+ }
+ for (requests_iter = queued_requests_.begin();
+ requests_iter != queued_requests_.end();
+ requests_iter++) {
+ if (*requests_iter == request)
+ return;
+ if ((*requests_iter)->GetMessageTextFragment() ==
+ request->GetMessageTextFragment()) {
+ request->RequestFinished();
+ return;
+ }
}
if (bubble_showing_) {
- for (requests_iter = queued_requests_.begin();
- requests_iter != queued_requests_.end();
- requests_iter++) {
- if (*requests_iter == request)
- return;
- }
queued_requests_.push_back(request);
return;
}
@@ -54,6 +96,11 @@ void PermissionBubbleManager::AddRequest(PermissionBubbleRequest* request) {
timer_->Reset();
}
+void PermissionBubbleManager::CancelRequest(PermissionBubbleRequest* request) {
+ // TODO(gbillock): implement
+ NOTREACHED();
+}
+
void PermissionBubbleManager::SetView(PermissionBubbleView* view) {
if (view == view_)
return;
@@ -78,26 +125,6 @@ void PermissionBubbleManager::SetView(PermissionBubbleView* view) {
view_->Hide();
}
-PermissionBubbleManager::PermissionBubbleManager(
- content::WebContents* web_contents)
- : content::WebContentsObserver(web_contents),
- bubble_showing_(false),
- view_(NULL),
- customization_mode_(false) {
- timer_.reset(new base::Timer(FROM_HERE,
- base::TimeDelta::FromMilliseconds(kPermissionsCoalesceIntervalMs),
- base::Bind(&PermissionBubbleManager::ShowBubble, base::Unretained(this)),
- false));
-}
-
-PermissionBubbleManager::~PermissionBubbleManager() {
- if (view_ != NULL) {
- view_->SetDelegate(NULL);
- view_->Hide();
- bubble_showing_ = false;
- }
-}
-
void PermissionBubbleManager::DidFinishLoad(
int64 frame_id,
const GURL& validated_url,

Powered by Google App Engine
This is Rietveld 408576698