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