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

Unified Diff: extensions/browser/guest_view/test_guest_view_manager.cc

Issue 1066563006: GuestView: Move GuestViewManager extension dependencies to ExtensionsGuestViewManagerDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@extensions_guest_view_message_filter
Patch Set: Fixed more tests Created 5 years, 8 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: extensions/browser/guest_view/test_guest_view_manager.cc
diff --git a/extensions/browser/guest_view/test_guest_view_manager.cc b/extensions/browser/guest_view/test_guest_view_manager.cc
index ce7b12525bae6dff2f2fa04c46d2f98f35e359c4..dc81ec377dd49ab8910177ca7515c97adda74b26 100644
--- a/extensions/browser/guest_view/test_guest_view_manager.cc
+++ b/extensions/browser/guest_view/test_guest_view_manager.cc
@@ -10,6 +10,7 @@
#include "extensions/browser/app_window/app_window.h"
#include "extensions/browser/app_window/app_window_registry.h"
#include "extensions/browser/extension_host.h"
+#include "extensions/browser/guest_view/extensions_guest_view_manager_delegate.h"
#include "extensions/browser/process_manager.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_paths.h"
@@ -17,16 +18,21 @@
#include "extensions/shell/test/shell_test.h"
#include "extensions/test/extension_test_message_listener.h"
+using guestview::GuestViewManagerDelegate;
+
namespace extensions {
-TestGuestViewManager::TestGuestViewManager(content::BrowserContext* context)
- : GuestViewManager(context) {
+TestGuestViewManager::TestGuestViewManager(
+ content::BrowserContext* context,
+ scoped_ptr<GuestViewManagerDelegate> delegate)
+ : GuestViewManager(context, delegate.Pass()),
+ num_guests_created_(0) {
}
TestGuestViewManager::~TestGuestViewManager() {
}
-int TestGuestViewManager::GetNumGuests() const {
+int TestGuestViewManager::GetNumGuestsActive() const {
return guest_web_contents_by_instance_id_.size();
}
@@ -53,8 +59,12 @@ void TestGuestViewManager::WaitForGuestCreated() {
}
content::WebContents* TestGuestViewManager::WaitForSingleGuestCreated() {
- if (GetNumGuests() == 0)
+ if (!GetNumGuestsActive()) {
+ // Guests have been created and subsequently destroyed.
+ if (num_guests_created() > 0)
+ return nullptr;
WaitForGuestCreated();
+ }
return GetLastGuestCreated();
}
@@ -67,6 +77,8 @@ void TestGuestViewManager::AddGuest(int guest_instance_id,
linked_ptr<content::WebContentsDestroyedWatcher>(
new content::WebContentsDestroyedWatcher(guest_web_contents)));
+ ++num_guests_created_;
+
if (created_message_loop_runner_.get())
created_message_loop_runner_->Quit();
}
@@ -84,17 +96,12 @@ TestGuestViewManagerFactory::~TestGuestViewManagerFactory() {
}
GuestViewManager* TestGuestViewManagerFactory::CreateGuestViewManager(
- content::BrowserContext* context) {
- return GetManager(context);
-}
-
-// This function gets called from GuestViewManager::FromBrowserContext(),
-// where test_guest_view_manager_ is assigned to a linked_ptr that takes care
-// of deleting it.
-TestGuestViewManager* TestGuestViewManagerFactory::GetManager(
- content::BrowserContext* context) {
- DCHECK(!test_guest_view_manager_);
- test_guest_view_manager_ = new TestGuestViewManager(context);
+ content::BrowserContext* context,
+ scoped_ptr<guestview::GuestViewManagerDelegate> delegate) {
+ if (!test_guest_view_manager_) {
+ test_guest_view_manager_ =
+ new TestGuestViewManager(context, delegate.Pass());
+ }
return test_guest_view_manager_;
}

Powered by Google App Engine
This is Rietveld 408576698