Index: chrome/browser/ui/website_settings/permission_bubble_responder.cc |
diff --git a/chrome/browser/ui/website_settings/permission_bubble_responder.cc b/chrome/browser/ui/website_settings/permission_bubble_responder.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d0a858d04095738e4fa3e69b3f4df267b7d4acb7 |
--- /dev/null |
+++ b/chrome/browser/ui/website_settings/permission_bubble_responder.cc |
@@ -0,0 +1,34 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/ui/website_settings/permission_bubble_responder.h" |
+ |
+#include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
+ |
+PermissionBubbleResponder::PermissionBubbleResponder( |
+ PermissionBubbleManager* manager, |
+ BubbleResponse desired_response) |
+ : manager_(manager), desired_response_(desired_response) { |
+ manager_->AddObserver(this); |
+} |
+ |
+PermissionBubbleResponder::~PermissionBubbleResponder() { |
+ manager_->RemoveObserver(this); |
+} |
+ |
+void PermissionBubbleResponder::OnBubbleAdded() { |
+ manager_->RemoveObserver(this); |
+ Respond(); |
+} |
+ |
+void PermissionBubbleResponder::Respond() { |
+ switch (desired_response_) { |
+ case ACCEPT_ALL: |
+ manager_->Accept(); |
+ case DENY_ALL: |
+ manager_->Deny(); |
+ case DISMISS: |
+ manager_->Closing(); |
+ } |
+} |