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

Unified Diff: chrome/browser/apps/web_view_interactive_browsertest.cc

Issue 334923002: Remove ContentBrowserClient::GuestWebContentsAttached (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_adview
Patch Set: Added missing file Created 6 years, 6 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/apps/web_view_interactive_browsertest.cc
diff --git a/chrome/browser/apps/web_view_interactive_browsertest.cc b/chrome/browser/apps/web_view_interactive_browsertest.cc
index 1708893fd5fa6a6ebbda8bd3ab56a1b8f0b61708..c1a8cc8c1cd4b66d5dfcb4283433e40d064ce311 100644
--- a/chrome/browser/apps/web_view_interactive_browsertest.cc
+++ b/chrome/browser/apps/web_view_interactive_browsertest.cc
@@ -11,6 +11,8 @@
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/extensions/extension_test_message_listener.h"
#include "chrome/browser/guest_view/guest_view_base.h"
+#include "chrome/browser/guest_view/guest_view_manager.h"
+#include "chrome/browser/guest_view/guest_view_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.h"
#include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h"
@@ -32,13 +34,74 @@
using apps::AppWindow;
+class TestGuestViewManager : public GuestViewManager {
+ public:
+ explicit TestGuestViewManager(content::BrowserContext* context) :
+ GuestViewManager(context),
+ web_contents_(NULL) {}
+
+ content::WebContents* WaitForGuestCreated() {
+ if (web_contents_)
+ return web_contents_;
+
+ message_loop_runner_ = new content::MessageLoopRunner;
+ message_loop_runner_->Run();
+ return web_contents_;
+ }
+
+ private:
+ // GuestViewManager override:
+ virtual void AddGuest(int guest_instance_id,
+ content::WebContents* guest_web_contents) OVERRIDE{
+ GuestViewManager::AddGuest(guest_instance_id, guest_web_contents);
+ web_contents_ = guest_web_contents;
+
+ if (message_loop_runner_)
+ message_loop_runner_->Quit();
+ }
+
+ content::WebContents* web_contents_;
+ scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
+};
+
+// Test factory for creating test instances of GuestViewManager.
+class TestGuestViewManagerFactory : public GuestViewManagerFactory {
+ public:
+ TestGuestViewManagerFactory() :
+ test_guest_view_manager_(NULL) {}
+
+ virtual ~TestGuestViewManagerFactory() {}
+
+ virtual GuestViewManager* CreateGuestViewManager(
+ content::BrowserContext* context) OVERRIDE {
+ return GetManager(context);
+ }
+
+ TestGuestViewManager* GetManager(content::BrowserContext* context) {
+ if (!test_guest_view_manager_) {
+ test_guest_view_manager_ = new TestGuestViewManager(context);
+ }
+ return test_guest_view_manager_;
+ }
+
+ private:
+ TestGuestViewManager* test_guest_view_manager_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory);
+};
lazyboy 2014/06/13 17:40:01 nit: add \n
Fady Samuel 2014/06/16 14:35:40 Done.
class WebViewInteractiveTest
: public extensions::PlatformAppBrowserTest {
public:
WebViewInteractiveTest()
: corner_(gfx::Point()),
mouse_click_result_(false),
- first_click_(true) {}
+ first_click_(true) {
+ GuestViewManager::set_factory_for_testing(&factory_);
+ }
+
+ TestGuestViewManager* GetGuestViewManager() {
+ return factory_.GetManager(browser()->profile());
+ }
void MoveMouseInsideWindowWithListener(gfx::Point point,
const std::string& message) {
@@ -412,6 +475,7 @@ class WebViewInteractiveTest
}
protected:
+ TestGuestViewManagerFactory factory_;
content::WebContents* guest_web_contents_;
content::WebContents* embedder_web_contents_;
gfx::Point corner_;
@@ -422,38 +486,6 @@ class WebViewInteractiveTest
std::string last_drop_data_;
};
-// Used to get notified when a guest is created.
-class GuestContentBrowserClient : public chrome::ChromeContentBrowserClient {
- public:
- GuestContentBrowserClient() : web_contents_(NULL) {}
-
- content::WebContents* WaitForGuestCreated() {
- if (web_contents_)
- return web_contents_;
-
- message_loop_runner_ = new content::MessageLoopRunner;
- message_loop_runner_->Run();
- return web_contents_;
- }
-
- private:
- // ChromeContentBrowserClient implementation:
- virtual void GuestWebContentsAttached(
- content::WebContents* guest_web_contents,
- content::WebContents* embedder_web_contents,
- const base::DictionaryValue& extra_params) OVERRIDE {
- ChromeContentBrowserClient::GuestWebContentsAttached(
- guest_web_contents, embedder_web_contents, extra_params);
- web_contents_ = guest_web_contents;
-
- if (message_loop_runner_)
- message_loop_runner_->Quit();
- }
-
- content::WebContents* web_contents_;
- scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
-};
-
// ui_test_utils::SendMouseMoveSync doesn't seem to work on OS_MACOSX, and
// likely won't work on many other platforms as well, so for now this test
// is for Windows and Linux only. As of Sept 17th, 2013 this test is disabled
@@ -881,18 +913,13 @@ IN_PROC_BROWSER_TEST_F(WebViewInteractiveTest,
// view upon step #3. We simply read the input type's state after #3 to
// make sure it's not TEXT_INPUT_TYPE_NONE.
IN_PROC_BROWSER_TEST_F(WebViewInteractiveTest, Focus_FocusRestored) {
- GuestContentBrowserClient new_client;
- content::ContentBrowserClient* old_client =
- SetBrowserClientForTesting(&new_client);
-
content::WebContents* embedder_web_contents = NULL;
scoped_ptr<ExtensionTestMessageListener> done_listener(
RunAppHelper("testFocusRestored", "web_view/focus", NO_TEST_SERVER,
&embedder_web_contents));
ASSERT_TRUE(done_listener->WaitUntilSatisfied());
- content::WebContents* guest_web_contents = new_client.WaitForGuestCreated();
- // Reset the browser client so that we do not notice any unexpected behavior.
- SetBrowserClientForTesting(old_client);
+ content::WebContents* guest_web_contents =
+ GetGuestViewManager()->WaitForGuestCreated();
ASSERT_TRUE(guest_web_contents);
// 1) We click on the guest so that we get a focus event.

Powered by Google App Engine
This is Rietveld 408576698