Title: [121453] trunk/Tools
- Revision
- 121453
- Author
- [email protected]
- Date
- 2012-06-28 12:45:09 -0700 (Thu, 28 Jun 2012)
Log Message
[Chromium] Chromium's LayoutTestController is missing setBackingScaleFactor
https://bugs.webkit.org/show_bug.cgi?id=83635
Patch by Terry Anderson <[email protected]> on 2012-06-28
Reviewed by Adam Barth.
Added InvokeCallbackTask, a new derived class of MethodTask. When
setBackingScaleFactor is called, a call to setDeviceScaleFactor in
WebView is made and then postTask is used to invoke the callback
function specified in testRunner.setBackingScaleFactor.
* DumpRenderTree/chromium/LayoutTestController.cpp:
(LayoutTestController::LayoutTestController):
(InvokeCallbackTask):
(InvokeCallbackTask::InvokeCallbackTask):
(InvokeCallbackTask::runIfValid):
(LayoutTestController::setBackingScaleFactor):
* DumpRenderTree/chromium/LayoutTestController.h:
(LayoutTestController):
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (121452 => 121453)
--- trunk/Tools/ChangeLog 2012-06-28 19:37:20 UTC (rev 121452)
+++ trunk/Tools/ChangeLog 2012-06-28 19:45:09 UTC (rev 121453)
@@ -1,3 +1,24 @@
+2012-06-28 Terry Anderson <[email protected]>
+
+ [Chromium] Chromium's LayoutTestController is missing setBackingScaleFactor
+ https://bugs.webkit.org/show_bug.cgi?id=83635
+
+ Reviewed by Adam Barth.
+
+ Added InvokeCallbackTask, a new derived class of MethodTask. When
+ setBackingScaleFactor is called, a call to setDeviceScaleFactor in
+ WebView is made and then postTask is used to invoke the callback
+ function specified in testRunner.setBackingScaleFactor.
+
+ * DumpRenderTree/chromium/LayoutTestController.cpp:
+ (LayoutTestController::LayoutTestController):
+ (InvokeCallbackTask):
+ (InvokeCallbackTask::InvokeCallbackTask):
+ (InvokeCallbackTask::runIfValid):
+ (LayoutTestController::setBackingScaleFactor):
+ * DumpRenderTree/chromium/LayoutTestController.h:
+ (LayoutTestController):
+
2012-06-28 Ojan Vafai <[email protected]>
Make rebaseline-test and rebaseline-expectations work for non-Chromium ports
Modified: trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp (121452 => 121453)
--- trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp 2012-06-28 19:37:20 UTC (rev 121452)
+++ trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp 2012-06-28 19:45:09 UTC (rev 121453)
@@ -73,10 +73,7 @@
#include <limits>
#include <sstream>
#include <wtf/text/WTFString.h>
-
-#if OS(WINDOWS)
#include <wtf/OwnArrayPtr.h>
-#endif
#if OS(LINUX) || OS(ANDROID)
#include "linux/WebFontRendering.h"
@@ -221,6 +218,7 @@
bindMethod("setScrollbarPolicy", &LayoutTestController::setScrollbarPolicy);
bindMethod("setSelectTrailingWhitespaceEnabled", &LayoutTestController::setSelectTrailingWhitespaceEnabled);
bindMethod("setTextSubpixelPositioning", &LayoutTestController::setTextSubpixelPositioning);
+ bindMethod("setBackingScaleFactor", &LayoutTestController::setBackingScaleFactor);
bindMethod("setSmartInsertDeleteEnabled", &LayoutTestController::setSmartInsertDeleteEnabled);
bindMethod("setStopProvisionalFrameLoads", &LayoutTestController::setStopProvisionalFrameLoads);
bindMethod("setTabKeyCyclesThroughElements", &LayoutTestController::setTabKeyCyclesThroughElements);
@@ -2211,6 +2209,40 @@
result->setNull();
}
+class InvokeCallbackTask : public MethodTask<LayoutTestController> {
+public:
+ InvokeCallbackTask(LayoutTestController* object, PassOwnArrayPtr<CppVariant> callbackArguments, uint32_t numberOfArguments)
+ : MethodTask<LayoutTestController>(object)
+ , m_callbackArguments(callbackArguments)
+ , m_numberOfArguments(numberOfArguments)
+ {
+ }
+
+ virtual void runIfValid()
+ {
+ CppVariant invokeResult;
+ m_callbackArguments[0].invokeDefault(m_callbackArguments.get(), m_numberOfArguments, invokeResult);
+ }
+
+private:
+ OwnArrayPtr<CppVariant> m_callbackArguments;
+ uint32_t m_numberOfArguments;
+};
+
+void LayoutTestController::setBackingScaleFactor(const CppArgumentList& arguments, CppVariant* result)
+{
+ if (arguments.size() < 2 || !arguments[0].isNumber() || !arguments[1].isObject())
+ return;
+
+ float value = arguments[0].value.doubleValue;
+ m_shell->webView()->setDeviceScaleFactor(value);
+
+ OwnArrayPtr<CppVariant> callbackArguments = adoptArrayPtr(new CppVariant[1]);
+ callbackArguments[0].set(arguments[1]);
+ result->setNull();
+ postTask(new InvokeCallbackTask(this, callbackArguments.release(), 1));
+}
+
void LayoutTestController::setPluginsEnabled(const CppArgumentList& arguments, CppVariant* result)
{
if (arguments.size() > 0 && arguments[0].isBool()) {
Modified: trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h (121452 => 121453)
--- trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h 2012-06-28 19:37:20 UTC (rev 121452)
+++ trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h 2012-06-28 19:45:09 UTC (rev 121453)
@@ -453,6 +453,9 @@
// resulting in the changed setting being ignored.
void setTextSubpixelPositioning(const CppArgumentList&, CppVariant*);
+ // Used to set the device scale factor.
+ void setBackingScaleFactor(const CppArgumentList&, CppVariant*);
+
public:
// The following methods are not exposed to _javascript_.
void setWorkQueueFrozen(bool frozen) { m_workQueue.setFrozen(frozen); }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes