Title: [123384] trunk/Tools
Revision
123384
Author
[email protected]
Date
2012-07-23 14:24:22 -0700 (Mon, 23 Jul 2012)

Log Message

[Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController
https://bugs.webkit.org/show_bug.cgi?id=91459

Reviewed by Ryosuke Niwa.

Rather than having TestShell own and bind each of these _javascript_ APIs
individually, TestShell should delegate that work to TestInterfaces.
This patch moves AccessibilityController and TextInputController to be
the responsibility of TestInterfaces.

* DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp:
(TestInterfaces::TestInterfaces):
(TestInterfaces::~TestInterfaces):
(TestInterfaces::setWebView):
(TestInterfaces::bindTo):
(TestInterfaces::resetAll):
* DumpRenderTree/chromium/TestRunner/TestInterfaces.h:
(WebKit):
(TestInterfaces):
(TestInterfaces::accessibilityController):
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::initialize):
(TestShell::createMainWindow):
(TestShell::~TestShell):
(TestShell::resetTestController):
(TestShell::bindJSObjectsToWindow):
* DumpRenderTree/chromium/TestShell.h:
(TestShell::accessibilityController):
(TestShell):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (123383 => 123384)


--- trunk/Tools/ChangeLog	2012-07-23 21:23:29 UTC (rev 123383)
+++ trunk/Tools/ChangeLog	2012-07-23 21:24:22 UTC (rev 123384)
@@ -1,3 +1,35 @@
+2012-07-23  Adam Barth  <[email protected]>
+
+        [Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController
+        https://bugs.webkit.org/show_bug.cgi?id=91459
+
+        Reviewed by Ryosuke Niwa.
+
+        Rather than having TestShell own and bind each of these _javascript_ APIs
+        individually, TestShell should delegate that work to TestInterfaces.
+        This patch moves AccessibilityController and TextInputController to be
+        the responsibility of TestInterfaces.
+
+        * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp:
+        (TestInterfaces::TestInterfaces):
+        (TestInterfaces::~TestInterfaces):
+        (TestInterfaces::setWebView):
+        (TestInterfaces::bindTo):
+        (TestInterfaces::resetAll):
+        * DumpRenderTree/chromium/TestRunner/TestInterfaces.h:
+        (WebKit):
+        (TestInterfaces):
+        (TestInterfaces::accessibilityController):
+        * DumpRenderTree/chromium/TestShell.cpp:
+        (TestShell::initialize):
+        (TestShell::createMainWindow):
+        (TestShell::~TestShell):
+        (TestShell::resetTestController):
+        (TestShell::bindJSObjectsToWindow):
+        * DumpRenderTree/chromium/TestShell.h:
+        (TestShell::accessibilityController):
+        (TestShell):
+
 2012-07-23  Balazs Kelemen  <[email protected]>
 
         nrwt swallows early exceptions

Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp (123383 => 123384)


--- trunk/Tools/DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp	2012-07-23 21:23:29 UTC (rev 123383)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp	2012-07-23 21:24:22 UTC (rev 123384)
@@ -31,43 +31,67 @@
 #include "config.h"
 #include "TestInterfaces.h"
 
+#include "AccessibilityController.h"
 #include "GamepadController.h"
+#include "TextInputController.h"
 #include "platform/WebString.h"
 
 #include <wtf/OwnPtr.h>
 
 using WebKit::WebFrame;
 using WebKit::WebString;
+using WebKit::WebView;
 
 class TestInterfaces::Internal {
 public:
     Internal();
     ~Internal();
 
+    void setWebView(WebView* webView);
     void bindTo(WebFrame*);
     void resetAll();
 
+    AccessibilityController* accessibilityController() { return m_accessibilityController.get(); }
+
 private:
+    OwnPtr<AccessibilityController> m_accessibilityController;
     OwnPtr<GamepadController> m_gamepadController;
+    OwnPtr<TextInputController> m_textInputController;
 };
 
 TestInterfaces::Internal::Internal()
 {
+    m_accessibilityController = adoptPtr(new AccessibilityController());
     m_gamepadController = adoptPtr(new GamepadController());
+    m_textInputController = adoptPtr(new TextInputController());
 }
 
 TestInterfaces::Internal::~Internal()
 {
+    m_accessibilityController->setWebView(0);
+    // m_gamepadController doesn't depend on WebView.
+    m_textInputController->setWebView(0);
 }
 
+void TestInterfaces::Internal::setWebView(WebView* webView)
+{
+    m_accessibilityController->setWebView(webView);
+    // m_gamepadController doesn't depend on WebView.
+    m_textInputController->setWebView(webView);
+}
+
 void TestInterfaces::Internal::bindTo(WebFrame* frame)
 {
+    m_accessibilityController->bindToJavascript(frame, WebString::fromUTF8("accessibilityController"));
     m_gamepadController->bindToJavascript(frame, WebString::fromUTF8("gamepadController"));
+    m_textInputController->bindToJavascript(frame, WebString::fromUTF8("textInputController"));
 }
 
 void TestInterfaces::Internal::resetAll()
 {
+    m_accessibilityController->reset();
     m_gamepadController->reset();
+    // m_textInputController doesn't have any state to reset.
 }
 
 TestInterfaces::TestInterfaces()
@@ -80,6 +104,11 @@
     delete m_internal;
 }
 
+void TestInterfaces::setWebView(WebView* webView)
+{
+    m_internal->setWebView(webView);
+}
+
 void TestInterfaces::bindTo(WebFrame* frame)
 {
     m_internal->bindTo(frame);
@@ -89,3 +118,8 @@
 {
     m_internal->resetAll();
 }
+
+AccessibilityController* TestInterfaces::accessibilityController()
+{
+    return m_internal->accessibilityController();
+}

Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/TestInterfaces.h (123383 => 123384)


--- trunk/Tools/DumpRenderTree/chromium/TestRunner/TestInterfaces.h	2012-07-23 21:23:29 UTC (rev 123383)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/TestInterfaces.h	2012-07-23 21:24:22 UTC (rev 123384)
@@ -33,16 +33,22 @@
 
 namespace WebKit {
 class WebFrame;
+class WebView;
 }
 
+class AccessibilityController;
+
 class TestInterfaces {
 public:
     TestInterfaces();
     ~TestInterfaces();
 
+    void setWebView(WebKit::WebView* webView);
     void bindTo(WebKit::WebFrame*);
     void resetAll();
 
+    AccessibilityController* accessibilityController();
+
 private:
     class Internal;
     Internal* m_internal;

Modified: trunk/Tools/DumpRenderTree/chromium/TestShell.cpp (123383 => 123384)


--- trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2012-07-23 21:23:29 UTC (rev 123383)
+++ trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2012-07-23 21:24:22 UTC (rev 123384)
@@ -145,11 +145,9 @@
 void TestShell::initialize()
 {
     m_webPermissions = adoptPtr(new WebPermissions(this));
-    m_accessibilityController = adoptPtr(new AccessibilityController());
     m_testInterfaces = adoptPtr(new TestInterfaces());
     m_layoutTestController = adoptPtr(new LayoutTestController(this));
     m_eventSender = adoptPtr(new EventSender(this));
-    m_textInputController = adoptPtr(new TextInputController());
 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
     m_notificationPresenter = adoptPtr(new NotificationPresenter(this));
 #endif
@@ -173,15 +171,13 @@
     m_drtDevToolsAgent = adoptPtr(new DRTDevToolsAgent);
     m_webViewHost = adoptPtr(createNewWindow(WebURL(), m_drtDevToolsAgent.get()));
     m_webView = m_webViewHost->webView();
-    m_accessibilityController->setWebView(m_webView);
-    m_textInputController->setWebView(m_webView);
+    m_testInterfaces->setWebView(m_webView);
     m_drtDevToolsAgent->setWebView(m_webView);
 }
 
 TestShell::~TestShell()
 {
-    m_accessibilityController->setWebView(0);
-    m_textInputController->setWebView(0);
+    m_testInterfaces->setWebView(0);
     m_drtDevToolsAgent->setWebView(0);
 }
 
@@ -292,7 +288,6 @@
 {
     resetWebSettings(*webView());
     m_webPermissions->reset();
-    m_accessibilityController->reset();
     m_testInterfaces->resetAll();
     m_layoutTestController->reset();
     m_eventSender->reset();
@@ -721,12 +716,10 @@
 void TestShell::bindJSObjectsToWindow(WebFrame* frame)
 {
     WebTestingSupport::injectInternalsObject(frame);
-    m_accessibilityController->bindToJavascript(frame, WebString::fromUTF8("accessibilityController"));
     m_testInterfaces->bindTo(frame);
     m_layoutTestController->bindToJavascript(frame, WebString::fromUTF8("layoutTestController"));
     m_layoutTestController->bindToJavascript(frame, WebString::fromUTF8("testRunner"));
     m_eventSender->bindToJavascript(frame, WebString::fromUTF8("eventSender"));
-    m_textInputController->bindToJavascript(frame, WebString::fromUTF8("textInputController"));
 }
 
 WebViewHost* TestShell::createNewWindow(const WebKit::WebURL& url)

Modified: trunk/Tools/DumpRenderTree/chromium/TestShell.h (123383 => 123384)


--- trunk/Tools/DumpRenderTree/chromium/TestShell.h	2012-07-23 21:23:29 UTC (rev 123383)
+++ trunk/Tools/DumpRenderTree/chromium/TestShell.h	2012-07-23 21:24:22 UTC (rev 123384)
@@ -38,7 +38,6 @@
 #include "NotificationPresenter.h"
 #include "TestEventPrinter.h"
 #include "TestInterfaces.h"
-#include "TextInputController.h"
 #include "WebPreferences.h"
 #include "WebViewHost.h"
 #include <string>
@@ -93,7 +92,7 @@
     WebViewHost* webViewHost() const { return m_webViewHost.get(); }
     LayoutTestController* layoutTestController() const { return m_layoutTestController.get(); }
     EventSender* eventSender() const { return m_eventSender.get(); }
-    AccessibilityController* accessibilityController() const { return m_accessibilityController.get(); }
+    AccessibilityController* accessibilityController() const { return m_testInterfaces->accessibilityController(); }
 #if ENABLE(NOTIFICATIONS)
     NotificationPresenter* notificationPresenter() const { return m_notificationPresenter.get(); }
 #endif
@@ -214,11 +213,9 @@
     OwnPtr<WebPermissions> m_webPermissions;
     OwnPtr<DRTDevToolsAgent> m_drtDevToolsAgent;
     OwnPtr<DRTDevToolsClient> m_drtDevToolsClient;
-    OwnPtr<AccessibilityController> m_accessibilityController;
     OwnPtr<TestInterfaces> m_testInterfaces;
     OwnPtr<EventSender> m_eventSender;
     OwnPtr<LayoutTestController> m_layoutTestController;
-    OwnPtr<TextInputController> m_textInputController;
 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
     OwnPtr<NotificationPresenter> m_notificationPresenter;
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to