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;