Modified: trunk/Tools/ChangeLog (137991 => 137992)
--- trunk/Tools/ChangeLog 2012-12-18 07:34:20 UTC (rev 137991)
+++ trunk/Tools/ChangeLog 2012-12-18 07:58:35 UTC (rev 137992)
@@ -1,3 +1,27 @@
+2012-12-17 Jochen Eisinger <[email protected]>
+
+ [chromium] Fix methods in TestRunner that directly modify the settings instead of going through WebPreferences
+ https://bugs.webkit.org/show_bug.cgi?id=105154
+
+ Reviewed by Tony Chang.
+
+ If the settings are modified directly, the embedder can't keep track of
+ them and might accidentially override the changed settings.
+
+ * DumpRenderTree/chromium/TestRunner/public/WebPreferences.h:
+ (WebPreferences):
+ * DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:
+ (WebTestRunner::TestRunner::TestRunner):
+ (WebTestRunner::TestRunner::setAsynchronousSpellCheckingEnabled):
+ (WebTestRunner):
+ (WebTestRunner::TestRunner::setMinimumTimerInterval):
+ (WebTestRunner::TestRunner::setTouchDragDropEnabled):
+ * DumpRenderTree/chromium/TestRunner/src/TestRunner.h:
+ (TestRunner):
+ * DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp:
+ (WebTestRunner::WebPreferences::reset):
+ (WebTestRunner::WebPreferences::applyTo):
+
2012-12-17 Julien Chaffraix <[email protected]>
Unreviewed unit test skipping.
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebPreferences.h (137991 => 137992)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebPreferences.h 2012-12-18 07:34:20 UTC (rev 137991)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebPreferences.h 2012-12-18 07:58:35 UTC (rev 137992)
@@ -101,6 +101,9 @@
bool mockScrollbarsEnabled;
bool cssCustomFilterEnabled;
bool shouldRespectImageOrientation;
+ bool asynchronousSpellCheckingEnabled;
+ double minimumTimerInterval;
+ bool touchDragDropEnabled;
WebPreferences() { reset(); }
void reset();
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp (137991 => 137992)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp 2012-12-18 07:34:20 UTC (rev 137991)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp 2012-12-18 07:58:35 UTC (rev 137992)
@@ -66,7 +66,6 @@
{
// Methods implemented in terms of chromium's public WebKit API.
bindMethod("setTabKeyCyclesThroughElements", &TestRunner::setTabKeyCyclesThroughElements);
- bindMethod("setAsynchronousSpellCheckingEnabled", &TestRunner::setAsynchronousSpellCheckingEnabled);
bindMethod("execCommand", &TestRunner::execCommand);
bindMethod("isCommandEnabled", &TestRunner::isCommandEnabled);
bindMethod("pauseAnimationAtTimeOnElementWithId", &TestRunner::pauseAnimationAtTimeOnElementWithId);
@@ -89,7 +88,6 @@
bindMethod("loseCompositorContext", &TestRunner::loseCompositorContext);
bindMethod("markerTextForListItem", &TestRunner::markerTextForListItem);
bindMethod("findString", &TestRunner::findString);
- bindMethod("setMinimumTimerInterval", &TestRunner::setMinimumTimerInterval);
bindMethod("setAutofilled", &TestRunner::setAutofilled);
bindMethod("setValueForUser", &TestRunner::setValueForUser);
bindMethod("enableFixedLayoutMode", &TestRunner::enableFixedLayoutMode);
@@ -100,7 +98,6 @@
bindMethod("setPageVisibility", &TestRunner::setPageVisibility);
bindMethod("setTextDirection", &TestRunner::setTextDirection);
bindMethod("textSurroundingNode", &TestRunner::textSurroundingNode);
- bindMethod("setTouchDragDropEnabled", &TestRunner::setTouchDragDropEnabled);
// The following modify WebPreferences.
bindMethod("setUserStyleSheetEnabled", &TestRunner::setUserStyleSheetEnabled);
@@ -113,6 +110,9 @@
bindMethod("setAllowFileAccessFromFileURLs", &TestRunner::setAllowFileAccessFromFileURLs);
bindMethod("overridePreference", &TestRunner::overridePreference);
bindMethod("setPluginsEnabled", &TestRunner::setPluginsEnabled);
+ bindMethod("setAsynchronousSpellCheckingEnabled", &TestRunner::setAsynchronousSpellCheckingEnabled);
+ bindMethod("setMinimumTimerInterval", &TestRunner::setMinimumTimerInterval);
+ bindMethod("setTouchDragDropEnabled", &TestRunner::setTouchDragDropEnabled);
// Properties.
bindProperty("workerThreadCount", &TestRunner::workerThreadCount);
@@ -182,13 +182,6 @@
result->setNull();
}
-void TestRunner::setAsynchronousSpellCheckingEnabled(const CppArgumentList& arguments, CppVariant* result)
-{
- if (arguments.size() > 0 && arguments[0].isBool())
- m_webView->settings()->setAsynchronousSpellCheckingEnabled(cppVariantToBool(arguments[0]));
- result->setNull();
-}
-
void TestRunner::execCommand(const CppArgumentList& arguments, CppVariant* result)
{
result->setNull();
@@ -539,14 +532,6 @@
result->set(findResult);
}
-void TestRunner::setMinimumTimerInterval(const CppArgumentList& arguments, CppVariant* result)
-{
- result->setNull();
- if (arguments.size() < 1 || !arguments[0].isNumber())
- return;
- m_webView->settings()->setMinimumTimerInterval(arguments[0].toDouble());
-}
-
void TestRunner::setAutofilled(const CppArgumentList& arguments, CppVariant* result)
{
result->setNull();
@@ -681,15 +666,6 @@
result->set(surroundingText.textContent().utf8());
}
-void TestRunner::setTouchDragDropEnabled(const CppArgumentList& arguments, CppVariant* result)
-{
- result->setNull();
- if (arguments.size() != 1 || !arguments[0].isBool())
- return;
-
- m_webView->settings()->setTouchDragDropEnabled(arguments[0].toBoolean());
-}
-
void TestRunner::setUserStyleSheetEnabled(const CppArgumentList& arguments, CppVariant* result)
{
if (arguments.size() > 0 && arguments[0].isBool()) {
@@ -834,6 +810,33 @@
result->setNull();
}
+void TestRunner::setAsynchronousSpellCheckingEnabled(const CppArgumentList& arguments, CppVariant* result)
+{
+ if (arguments.size() > 0 && arguments[0].isBool()) {
+ m_delegate->preferences()->asynchronousSpellCheckingEnabled = cppVariantToBool(arguments[0]);
+ m_delegate->applyPreferences();
+ }
+ result->setNull();
+}
+
+void TestRunner::setMinimumTimerInterval(const CppArgumentList& arguments, CppVariant* result)
+{
+ if (arguments.size() > 0 && arguments[0].isNumber()) {
+ m_delegate->preferences()->minimumTimerInterval = arguments[0].toDouble();
+ m_delegate->applyPreferences();
+ }
+ result->setNull();
+}
+
+void TestRunner::setTouchDragDropEnabled(const CppArgumentList& arguments, CppVariant* result)
+{
+ if (arguments.size() > 0 && arguments[0].isBool()) {
+ m_delegate->preferences()->touchDragDropEnabled = arguments[0].toBoolean();
+ m_delegate->applyPreferences();
+ }
+ result->setNull();
+}
+
void TestRunner::workerThreadCount(CppVariant* result)
{
result->set(static_cast<int>(WebWorkerInfo::dedicatedWorkerCount()));
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h (137991 => 137992)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h 2012-12-18 07:34:20 UTC (rev 137991)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h 2012-12-18 07:58:35 UTC (rev 137992)
@@ -71,9 +71,6 @@
// or inserts a '\t' char in text area
void setTabKeyCyclesThroughElements(const CppArgumentList&, CppVariant*);
- // Changes asynchronous spellchecking flag on the settings.
- void setAsynchronousSpellCheckingEnabled(const CppArgumentList&, CppVariant*);
-
// Executes an internal command (superset of document.execCommand() commands).
void execCommand(const CppArgumentList&, CppVariant*);
@@ -113,8 +110,6 @@
void markerTextForListItem(const CppArgumentList&, CppVariant*);
void findString(const CppArgumentList&, CppVariant*);
- void setMinimumTimerInterval(const CppArgumentList&, CppVariant*);
-
// Expects the first argument to be an input element and the second argument to be a boolean.
// Forwards the setAutofilled() call to the element.
void setAutofilled(const CppArgumentList&, CppVariant*);
@@ -147,7 +142,6 @@
// point coordinates relative to the node and the fourth the maximum text
// length to retrieve.
void textSurroundingNode(const CppArgumentList&, CppVariant*);
- void setTouchDragDropEnabled(const CppArgumentList&, CppVariant*);
///////////////////////////////////////////////////////////////////////////
// Methods modifying WebPreferences.
@@ -172,6 +166,12 @@
// Enable or disable plugins.
void setPluginsEnabled(const CppArgumentList&, CppVariant*);
+ // Changes asynchronous spellchecking flag on the settings.
+ void setAsynchronousSpellCheckingEnabled(const CppArgumentList&, CppVariant*);
+
+ void setMinimumTimerInterval(const CppArgumentList&, CppVariant*);
+ void setTouchDragDropEnabled(const CppArgumentList&, CppVariant*);
+
///////////////////////////////////////////////////////////////////////////
// Properties
void workerThreadCount(CppVariant*);
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp (137991 => 137992)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp 2012-12-18 07:34:20 UTC (rev 137991)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp 2012-12-18 07:58:35 UTC (rev 137992)
@@ -129,6 +129,9 @@
mockScrollbarsEnabled = false;
cssCustomFilterEnabled = false;
shouldRespectImageOrientation = false;
+ asynchronousSpellCheckingEnabled = false;
+ minimumTimerInterval = 0.010; // 10 milliseconds.
+ touchDragDropEnabled = false;
}
void WebPreferences::applyTo(WebView* webView)
@@ -196,6 +199,9 @@
settings->setMediaPlaybackRequiresUserGesture(mediaPlaybackRequiresUserGesture);
settings->setMockScrollbarsEnabled(mockScrollbarsEnabled);
settings->setShouldRespectImageOrientation(shouldRespectImageOrientation);
+ settings->setAsynchronousSpellCheckingEnabled(asynchronousSpellCheckingEnabled);
+ settings->setMinimumTimerInterval(minimumTimerInterval);
+ settings->setTouchDragDropEnabled(touchDragDropEnabled);
// Fixed values.
settings->setTextDirectionSubmenuInclusionBehaviorNeverIncluded();