Title: [139606] trunk/Tools
Revision
139606
Author
[email protected]
Date
2013-01-14 04:10:56 -0800 (Mon, 14 Jan 2013)

Log Message

Web Inspector: fix DRT to deliver simulated events to devtools front-end
https://bugs.webkit.org/show_bug.cgi?id=106650

Patch by Andrey Lushnikov <[email protected]> on 2013-01-14
Reviewed by Pavel Feldman.

Add separated m_devToolsTestInterfaces object to testShell which is
bind to devTools webview.

* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::initialize):
(TestShell::createMainWindow):
(TestShell::~TestShell):
(TestShell::showDevTools):
(TestShell::resetTestController):
(TestShell::bindJSObjectsToWindow):
(TestShell::createNewWindow):
* DumpRenderTree/chromium/TestShell.h:
(TestShell):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (139605 => 139606)


--- trunk/Tools/ChangeLog	2013-01-14 12:05:58 UTC (rev 139605)
+++ trunk/Tools/ChangeLog	2013-01-14 12:10:56 UTC (rev 139606)
@@ -1,3 +1,24 @@
+2013-01-14  Andrey Lushnikov  <[email protected]>
+
+        Web Inspector: fix DRT to deliver simulated events to devtools front-end
+        https://bugs.webkit.org/show_bug.cgi?id=106650
+
+        Reviewed by Pavel Feldman.
+
+        Add separated m_devToolsTestInterfaces object to testShell which is
+        bind to devTools webview.
+
+        * DumpRenderTree/chromium/TestShell.cpp:
+        (TestShell::initialize):
+        (TestShell::createMainWindow):
+        (TestShell::~TestShell):
+        (TestShell::showDevTools):
+        (TestShell::resetTestController):
+        (TestShell::bindJSObjectsToWindow):
+        (TestShell::createNewWindow):
+        * DumpRenderTree/chromium/TestShell.h:
+        (TestShell):
+
 2013-01-14  Alan Cutter  <[email protected]>
 
         Sheriffbot command aliases need test cases

Modified: trunk/Tools/DumpRenderTree/chromium/TestShell.cpp (139605 => 139606)


--- trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2013-01-14 12:05:58 UTC (rev 139605)
+++ trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2013-01-14 12:10:56 UTC (rev 139606)
@@ -161,8 +161,10 @@
 void TestShell::initialize()
 {
     m_testInterfaces = adoptPtr(new WebTestInterfaces());
+    m_devToolsTestInterfaces = adoptPtr(new WebTestInterfaces());
     m_testRunner = adoptPtr(new DRTTestRunner(this));
     m_testInterfaces->setTestRunner(m_testRunner.get());
+    m_devToolsTestInterfaces->setTestRunner(m_testRunner.get());
 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
     m_notificationPresenter = adoptPtr(new NotificationPresenter(this));
 #endif
@@ -182,7 +184,7 @@
 void TestShell::createMainWindow()
 {
     m_drtDevToolsAgent = adoptPtr(new DRTDevToolsAgent);
-    m_webViewHost = adoptPtr(createNewWindow(WebURL(), m_drtDevToolsAgent.get()));
+    m_webViewHost = adoptPtr(createNewWindow(WebURL(), m_drtDevToolsAgent.get(), m_testInterfaces.get()));
     m_webView = m_webViewHost->webView();
     m_testInterfaces->setDelegate(m_webViewHost.get());
     m_testInterfaces->setWebView(m_webView);
@@ -195,6 +197,8 @@
 {
     m_testInterfaces->setDelegate(0);
     m_testInterfaces->setWebView(0);
+    m_devToolsTestInterfaces->setDelegate(0);
+    m_devToolsTestInterfaces->setWebView(0);
     m_testRunner->setDelegate(0);
     m_testRunner->setWebView(0);
     m_drtDevToolsAgent->setWebView(0);
@@ -213,9 +217,11 @@
             ASSERT(false);
             return;
         }
-        m_devTools = createNewWindow(url);
+        m_devTools = createNewWindow(url, 0, m_devToolsTestInterfaces.get());
         m_devTools->webView()->settings()->setMemoryInfoEnabled(true);
         m_devTools->setLogConsoleOutput(false);
+        m_devToolsTestInterfaces->setDelegate(m_devTools);
+        m_devToolsTestInterfaces->setWebView(m_devTools->webView());
         ASSERT(m_devTools);
         createDRTDevToolsClient(m_drtDevToolsAgent.get());
     }
@@ -317,6 +323,7 @@
 {
     resetWebSettings(*webView());
     m_testInterfaces->resetAll();
+    m_devToolsTestInterfaces->resetAll();
     m_testRunner->reset();
     m_webViewHost->reset();
 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
@@ -740,27 +747,30 @@
 void TestShell::bindJSObjectsToWindow(WebFrame* frame)
 {
     WebTestingSupport::injectInternalsObject(frame);
-    m_testInterfaces->bindTo(frame);
+    if (m_devTools && m_devTools->webView() == frame->view())
+        m_devToolsTestInterfaces->bindTo(frame);
+    else
+        m_testInterfaces->bindTo(frame);
     m_testRunner->bindToJavascript(frame, WebString::fromUTF8("testRunner"));
     m_testRunner->bindToJavascript(frame, WebString::fromUTF8("layoutTestController"));
 }
 
 WebViewHost* TestShell::createNewWindow(const WebKit::WebURL& url)
 {
-    return createNewWindow(url, 0);
+    return createNewWindow(url, 0, m_testInterfaces.get());
 }
 
-WebViewHost* TestShell::createNewWindow(const WebKit::WebURL& url, DRTDevToolsAgent* devToolsAgent)
+WebViewHost* TestShell::createNewWindow(const WebKit::WebURL& url, DRTDevToolsAgent* devToolsAgent, WebTestInterfaces *testInterfaces)
 {
     WebTestProxy<WebViewHost, TestShell*>* host = new WebTestProxy<WebViewHost, TestShell*>(this);
-    host->setInterfaces(m_testInterfaces.get());
+    host->setInterfaces(testInterfaces);
     if (m_webViewHost)
         host->setDelegate(m_webViewHost.get());
     else
         host->setDelegate(host);
     host->setProxy(host);
     WebView* view = WebView::create(host);
-    view->setPermissionClient(m_testInterfaces->testRunner()->webPermissions());
+    view->setPermissionClient(testInterfaces->testRunner()->webPermissions());
     view->setDevToolsAgentClient(devToolsAgent);
     host->setWebWidget(view);
     m_prefs.applyTo(view);

Modified: trunk/Tools/DumpRenderTree/chromium/TestShell.h (139605 => 139606)


--- trunk/Tools/DumpRenderTree/chromium/TestShell.h	2013-01-14 12:05:58 UTC (rev 139605)
+++ trunk/Tools/DumpRenderTree/chromium/TestShell.h	2013-01-14 12:10:56 UTC (rev 139606)
@@ -189,7 +189,7 @@
     std::string normalizeLayoutTestURL(const std::string&);
 
 private:
-    WebViewHost* createNewWindow(const WebKit::WebURL&, DRTDevToolsAgent*);
+    WebViewHost* createNewWindow(const WebKit::WebURL&, DRTDevToolsAgent*, WebTestRunner::WebTestInterfaces*);
     void createMainWindow();
     void createDRTDevToolsClient(DRTDevToolsAgent*);
 
@@ -210,6 +210,7 @@
     OwnPtr<DRTDevToolsAgent> m_drtDevToolsAgent;
     OwnPtr<DRTDevToolsClient> m_drtDevToolsClient;
     OwnPtr<WebTestRunner::WebTestInterfaces> m_testInterfaces;
+    OwnPtr<WebTestRunner::WebTestInterfaces> m_devToolsTestInterfaces;
     OwnPtr<DRTTestRunner> m_testRunner;
 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
     OwnPtr<NotificationPresenter> m_notificationPresenter;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to