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

Unified Diff: trunk/src/chrome/browser/content_settings/permission_queue_controller_unittest.cc

Issue 102163002: Revert 238283 "Infobar system refactor." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years 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: trunk/src/chrome/browser/content_settings/permission_queue_controller_unittest.cc
===================================================================
--- trunk/src/chrome/browser/content_settings/permission_queue_controller_unittest.cc (revision 238401)
+++ trunk/src/chrome/browser/content_settings/permission_queue_controller_unittest.cc (working copy)
@@ -7,10 +7,13 @@
#include "base/synchronization/waitable_event.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/content_settings/permission_request_id.h"
+#include "chrome/browser/infobars/infobar.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/common/content_settings_types.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_profile.h"
+#include "content/public/browser/notification_details.h"
+#include "content/public/browser/notification_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/mock_render_process_host.h"
#include "content/public/test/test_browser_thread.h"
@@ -19,9 +22,14 @@
// PermissionQueueControllerTests ---------------------------------------------
-class PermissionQueueControllerTests : public ChromeRenderViewHostTestHarness {
+class PermissionQueueControllerTests : public ChromeRenderViewHostTestHarness,
+ public content::NotificationObserver {
protected:
- PermissionQueueControllerTests() {}
+ PermissionQueueControllerTests() {
+ registrar_.Add(this,
+ chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED,
+ content::NotificationService::AllSources());
+ }
virtual ~PermissionQueueControllerTests() {}
PermissionRequestID RequestID(int bridge_id) {
@@ -38,6 +46,22 @@
InfoBarService::CreateForWebContents(web_contents());
}
+ // content::NotificationObserver:
+ virtual void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) OVERRIDE {
+ DCHECK_EQ(chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED, type);
+ // Delete the removed infobar. In normal Chrome code, this would be handled
+ // by the InfoBarContainer. It's safe to do this even if the queue
+ // controller Observe() function has not yet been called; see comments in
+ // PermissionQueueController::Observe().
+ // TODO(pkasting): This will no longer be necessary once the InfoBarService
+ // truly owns infobars.
+ delete content::Details<InfoBar::RemovedDetails>(details)->first;
+ }
+
+ content::NotificationRegistrar registrar_;
+
DISALLOW_COPY_AND_ASSIGN(PermissionQueueControllerTests);
};

Powered by Google App Engine
This is Rietveld 408576698