Title: [92341] trunk
Revision
92341
Author
[email protected]
Date
2011-08-03 19:01:31 -0700 (Wed, 03 Aug 2011)

Log Message

Implement EventSender.scalePageBy()
https://bugs.webkit.org/show_bug.cgi?id=58013

Patch by Kentaro Hara <[email protected]> on 2011-08-03
Reviewed by Darin Fisher.

Implemented EventSender.scalePageBy(f, x, y), which scales a page by a factor of f
and then sets a scroll position to (x, y). Enabled the tests that had been waiting
for the implementation of EventSender.scalePageBy(f, x, y).

Source/WebKit/chromium:

Tests: compositing/scaling/tiled-layer-recursion.html
       fast/repaint/scale-page-shrink.html
       fast/dom/Element/scale-page-client-rects.html
       fast/dom/Range/scale-page-client-rects.html
       fast/events/scroll-in-scaled-page-with-overflow-hidden.html
       fast/dom/Element/scale-page-bounding-client-rect.html
       fast/dom/Range/scale-page-bounding-client-rect.html

* public/WebView.h:
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::scalePage): A wrapper method for scalePage() in WebCore.
* src/WebViewImpl.h:

Tools:

Tests: compositing/scaling/tiled-layer-recursion.html
       fast/repaint/scale-page-shrink.html
       fast/dom/Element/scale-page-client-rects.html
       fast/dom/Range/scale-page-client-rects.html
       fast/events/scroll-in-scaled-page-with-overflow-hidden.html
       fast/dom/Element/scale-page-bounding-client-rect.html
       fast/dom/Range/scale-page-bounding-client-rect.html

* DumpRenderTree/chromium/EventSender.cpp:
(EventSender::EventSender): Added bindings for scalePageBy().
(EventSender::scalePageBy): A wrapper method for scalePage() in WebView.
* DumpRenderTree/chromium/EventSender.h:
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::resetTestController): Resets the scale factor to 1.

LayoutTests:

* platform/chromium-linux/compositing/scaling/tiled-layer-recursion-expected.png: Added.
* platform/chromium-linux/fast/repaint/scale-page-shrink-expected.png: Added.
* platform/chromium-linux/fast/repaint/scale-page-shrink-expected.txt: Added.
* platform/chromium-mac/fast/dom/Element/scale-page-bounding-client-rect-expected.txt: Removed.
* platform/chromium-mac/fast/dom/Range/scale-page-bounding-client-rect-expected.txt: Removed.
* platform/chromium-win/fast/dom/Element/scale-page-bounding-client-rect-expected.txt: Removed.
* platform/chromium-win/fast/dom/Element/scale-page-client-rects-expected.txt: Removed.
* platform/chromium-win/fast/dom/Range/scale-page-bounding-client-rect-expected.txt: Removed.
* platform/chromium-win/fast/dom/Range/scale-page-client-rects-expected.txt: Removed.
* platform/chromium/test_expectations.txt: Enabled one test. Enabled two tests for chromium-linux.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (92340 => 92341)


--- trunk/LayoutTests/ChangeLog	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/ChangeLog	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,3 +1,25 @@
+2011-08-03  Kentaro Hara  <[email protected]>
+
+        Implement EventSender.scalePageBy()
+        https://bugs.webkit.org/show_bug.cgi?id=58013
+
+        Reviewed by Darin Fisher.
+
+        Implemented EventSender.scalePageBy(f, x, y), which scales a page by a factor of f
+        and then sets a scroll position to (x, y). Enabled the tests that had been waiting
+        for the implementation of EventSender.scalePageBy(f, x, y).
+
+        * platform/chromium-linux/compositing/scaling/tiled-layer-recursion-expected.png: Added.
+        * platform/chromium-linux/fast/repaint/scale-page-shrink-expected.png: Added.
+        * platform/chromium-linux/fast/repaint/scale-page-shrink-expected.txt: Added.
+        * platform/chromium-mac/fast/dom/Element/scale-page-bounding-client-rect-expected.txt: Removed.
+        * platform/chromium-mac/fast/dom/Range/scale-page-bounding-client-rect-expected.txt: Removed.
+        * platform/chromium-win/fast/dom/Element/scale-page-bounding-client-rect-expected.txt: Removed.
+        * platform/chromium-win/fast/dom/Element/scale-page-client-rects-expected.txt: Removed.
+        * platform/chromium-win/fast/dom/Range/scale-page-bounding-client-rect-expected.txt: Removed.
+        * platform/chromium-win/fast/dom/Range/scale-page-client-rects-expected.txt: Removed.
+        * platform/chromium/test_expectations.txt: Enabled one test. Enabled two tests for chromium-linux.
+
 2011-08-03  Ian Henderson  <[email protected]>
 
         Draw rectangular box shadow for elements with border-radius if no corners are visible

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (92340 => 92341)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -594,9 +594,9 @@
 BUGCR24197 SKIP : fast/css/disabled-author-styles.html = FAIL
 
 // Needs eventSender.scalePageBy().
-BUGWK58013 : fast/repaint/scale-page-shrink.html = IMAGE+TEXT
-BUGWK58013 : fast/events/scroll-in-scaled-page-with-overflow-hidden.html = TEXT
-BUGWK58013 SKIP : compositing/scaling/tiled-layer-recursion.html = FAIL
+// These failures are going to be removed as a rebase line after the patch for bug 58013 is landed.
+BUGWK58013 WIN MAC : fast/repaint/scale-page-shrink.html = IMAGE+TEXT
+BUGWK58013 WIN MAC : compositing/scaling/tiled-layer-recursion.html = FAIL
 
 // -----------------------------------------------------------------
 // Inspector tests

Added: trunk/LayoutTests/platform/chromium-linux/compositing/scaling/tiled-layer-recursion-expected.png (0 => 92341)


--- trunk/LayoutTests/platform/chromium-linux/compositing/scaling/tiled-layer-recursion-expected.png	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium-linux/compositing/scaling/tiled-layer-recursion-expected.png	2011-08-04 02:01:31 UTC (rev 92341)
@@ -0,0 +1,6 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksumbc0b60917eac94d4b8d383c0347eaf5a.\xD5\x9AIDATx\x9C\xED\xDD1N\xE3X\x80a!M5[\xE6\x9C\x81"]n\x90\x83L\xB9{\xDF \x9D\x8B9C\xCEA\xB7#\xA5fV#Dp\xE0_X\xC8\xF7U\x8E\xF3^A\xF1\xEB=\xC7^\xDC\xDF\xDF\xCC0M\xD3\xDD\xDDݩw\x97\xCB\xE5j\xB5\x86\xE1\xFA\xA7\xF0\x89\x8D\xE3\xB8\xD9l\xE6\x8CYX\xC1x\xD14M\xABSsF^\xFD׳\xF8\x9E\xD9<)\xB0b &\xB0^iǣ\xE7\xC0k<\xD4\xD5\xD1\xC6Xg{\xDCU\x87\x8D%\xB0\xCEsXTOθ\xD1(\xC0y^\xBCݨ,\x80ج\xACş\x8Ba\xF1_\xCF8\xE9׏_߿}\xFF\xE8Y0׼,u\xEA~\xF0H+\x80\xCF\xC45X\xB3\x9C\xBA\xEB\xD5!\x810\xCBz\xBD><\xB9\xDF\xF9\xF9\xF3\xA7\x8B\xDCb &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b\xD7=\x80\xCFg\xBB\xDD>~y{{\xFB\xF8\xA5\xC08\xDBz\xBD~8\xD8\xEF\xF7\x87\xEF\xDA"\x88Y\xC18\x9B-B\x80\x98-B\x80we\xE0l\xB6b\xB6ޕ\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88]\xF4>\x87\xEDv;s\xA4\xC0\x98\xE5\xE6\xE6fΰ\xDDng\x8B &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b v\xFD\xD1\xF8v\xBB\xDD̑`\x96\xCDf3g\xD88\x8E\xB6b &\xB0b \xE6"w\x80\xF3,\x8BÓ\xF7\xF7\x{1FF3ED}`\x9C\xE7qK=#\xB0\xCE\xF6\xB8\xA8{K`\xBC\xC6CW\xD6\xD5 \xB0^\xEDh]
+ '\xB0^\xB6\.\xE7\x8FX/[\xADV\xE38\xBE8l\xC7\xD5j\xB58\xB5w\xF8\xD8\xE2\xAF#7{\xDE\xCD\xDF?\xFE\xFE\xE3\xDB=\x86i\x9A\xEE\xEE\xEEN\xBD\xBB\.W\xAB\xD50\xFF\xD6\xF3\xA3.\xD3\xEFf:\xCB\xF50\xE38n6\x9B\x87\x8E\xE3\xB8^\xAF_35\xFE\xF7\xB6\xDB\xED\xCD\xCD\xCDG\xCF\xDE\xD5n\xB7\x9B\x99@s\x86=v5Mӹ\x9F\xB8\x9B\xCDf\x9A\xA6\xB3>reg\xE0y\xE7\xF6\xD2\xC9_ιN\xE0+9\xFA\xE7W8X\xEA\x8AK\xB6\xDDnO\xF0\xE5%\x8Du$\xB0\xD4p\xC9\xDE\xDEXOK]\xBC\xB1\xB1\xAE\x9F\xBC\xDEl6\xCF4\xD6~\xBF\xCB\x83\xCF\xE2\xF7\xBF\xFA\xE1\x97`Ν؟qd\x8B\xD0]\x80K\xF6ƺN]䮱\xB8d\xB7\xB7\xB7\xA7\xF8\xF2\xDE^W\xC33\xB7i\xD0X\xC0\xA5I\xEAj\x86\xAB\xE5r\x99|\xC0Wun/]\xADV+\xBF8e\xC7s\x9F\xF7\xBCxX
+\x9B\xA6\xC93s\x9EX.\x97\xE7\xD6\xD50\xFFN'\xE6FO\xF7\xEC_IEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/platform/chromium-linux/fast/repaint/scale-page-shrink-expected.png (0 => 92341)


--- trunk/LayoutTests/platform/chromium-linux/fast/repaint/scale-page-shrink-expected.png	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium-linux/fast/repaint/scale-page-shrink-expected.png	2011-08-04 02:01:31 UTC (rev 92341)
@@ -0,0 +1,8 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksum50f633235423d736b2abb75e4985d605\xC0v\x83oIDATx\x9C\xED\xDB]oUe\xDE\xC0\xE1\xDD\xD2\xF6\x80(\xBE$\x81Lt<\x9B\xC4c?\xC2\xF3)<\x98\x8F\xE1ט̑\x891\xA3bl\x82
+\xA3 h\xA8\xDB:
+jAZ0J \x94\xDD\xFDl\xD3\xF1q\x9C\xC9\xCC<\xBFgr]M\xD7Z\xF7\xFA\xAF{\xEF\xEC\x83_\xFA25\x8Ft\xA6\xF5\xFE\xDB\xFC5\xB0F\xA3\xD1\xCE\xD7\xC6\xDF[\xF9\xCFO\xF8\xF7\xD6\xFF\xFC\x96p\xEF\xAF^\xFA\xC5\xC9\xD1h\xF4\xB7\xCB\xFE\xF1\x99_|\xFF\xF0\xE1\xC3\xED\xED\xED\xBF}\xD0\xDF;\xFF\xAB\xFD7\xDE\xE0\xB7l\xD7믿>\x8E=\xFA\xD1G\xBD\xF4\xD2K\xA7O\x9F>r\xE4\xC8\xE7\x9F\xFE\xF0\xE1ù\xB9\xB9\xD5\xD5կ\xBF\xFE\xFA\xF6\xED\xDBW\xAE\y\xE6\x99g\xD6\xD7\xD7/^\xBC\xB8\xB6\xB6v\xF0\xE0\xC1\xB7\xDEzk4=\xF1\xC4\xB3\xB3\xB3\xE7ϟ\x8DF.\سg\xCF\xEA\xEA\xEA\xF5\xEB\xD7ggg\x8F;\xB6\xBC\xBC\xFC\xF8\xE3\x8Fomm}\xF3\xCD7W\xAE\Y[[;~\xFC\xF8\xB5k\xD7v\xEF\xDE=77\xB7\xB2\xB2r\xE3ƍ\x95\x95\x95\xE9\xE9\xE9\xE5\xE5\xE53g\xCElmm\xAD\xAD\xADmmmݸqc\xF7\xEEݳ\xB3\xB3+++\x9B\x9B\x9B{\xF7\xEE]YYy\xF2\xC9'/\\xB8033s\xF2\xE4\xC9\xE7\x9E{\xEE\xFA\xF5\xEB\x9F~\xFA\xE9\x8B/\xBEx\xECرC\x87M\xB6z\xF0\xE0\xC1\xA3G\x8Fnmm\x9D>}z\xFF\xFE\xFD7o\xDE\^^\x8FǓײ\xB0\xB0\xB0\xFF\xFE\x8D\x8D\x8Dk׮MMM\xBD\xFF\xFE\xFB\xB7o\xDF~\xFE\xF9\xE7\x87\xC3\xE1w\xDF}777\xF7\xC5_L\x86O\xD7\xD7\xD7\xC7\xE3\xF1\xA9S\xA7\xE6\xE6\xE6<x\xB0\xBA\xBA\xBA\xB8\xB8\xF8\xC2/\xAC\xAC\xAC\\xBAt\xE9\xEEݻo\xBE\xF9\xE6\xCC\xCC̳\xCF>\xFB\xED\xB7\xDF^\xB8pa{{\xFB\xA9\xA7\x9EZYY\xF9\xEC\xB3\xCF\xD6\xD7\xD7w\xEDڵ\xBC\xBC|\xE8С˗/\xFF\xF0\xC3333\x97/_^\\\YYٷo\xDF\xC6\xC6\xC6\xFD\xFB\x{1D75D7}Ϟ=\xBB\xB5\xB5\xB5gϞ\xE1p833\xB3\xBA\xBA\xFA\xE3\x8F?>x\xF0\xE0֭[sss\xB3\xB3\xB3\x8F\xFAC\xFCk~\xFA	ց>\xBC\xB8\xB8x\xFC\xF8\xF1\xD1h\xB4\xB9\xB99??\xEF޽'Nܺukuu\xF5ܹs׮]\x87o\xBF\xFD\xF6\xAD[\xB7\x83\xC1\xD3O?\xFD\xCE;\xEFܻwo0lll\x87\xC33g\xCE,--]\xBDzu}}}iii<\xCF\xCE\xCE~\xF9\xE5\x97\xC3\xE1p2aiiimmmvvv2|}}\xFD\xDDw\xDF\x8F\xC7\xF3\xF3\xF3ׯ_?p\xE0\xC0\xC1\x83766\xE6\xE7\xE7?\xFC\xF0\xC3\xC9䅅\x85\xF7\xDE{o4-,,\xAC\xAD\xAD\xAD\xAF\xAF_\xBAt\xE9\xF4\xE9\xD3\xDF\xFF\xFD\xFC\xFC\xFC\xFD\xFB\xF7\x83\xC1\xC7\xBC\xB3\xD5\xCD\xCD\xCDɜ={\xF6,..N&6\xC7{lqq\xF1…\xF3\xF3\xF3\xC3\xE1𫯾\x9A\xFC	\xDA\xFA\xFA\xFA|0\x89\xB9\xA7\x9F~\xFA\xF2\xE5˓[VVVfgg\x8F?\xBE\xB4\xB44n޼9\xD9\xD5ŋ\xAF^\xBDz\xF7\xEE\xDD\xF3\xE7ϯ\xAD\xAD\x9D:u\xEA\xF6\xED\xDB'N\x9C\x98l\xF5\xF6\xED\xDB[[[\x93\xA7\x83'N|\xF2\xC9'\x93o޼9\x97\x96\x96N\x9E<y\xE7Ν\xCD\xCD\xCD={\xF6\xBC\xF1\xC6\x937\xE4ҥKǎ\xBBs\xE7\xCE\xFC\xFC\xFC\xFA\xFA\xFA\xA3\xF9\\xFFS\xE3\xF1\xF8/\xDF\xFD\xE5\xCFW\xFF<9\xDEmO\xEF\x9A\xDB\xDB\xDB\xD3\xD3\xD3;\x87?]\xDD\xDEo\x8Fw\xCD욬L
+\xA6\xA7\xA7w.MMMMMM\xFD\xE2??\x{16BAC7}_>\xBC3|\xE7\xEAx<ޙ399\xFC4y<\x8F\xB7\xC7ӻ\xA6\xC7\xE3\xF1\xD4\xD4\xD4΄_\xD9\xD9\xEAd\xD9\xCFGMOO\xFF\xE2\xB5L\xE6O\x9E\xBB\xB3\xB7\xBFNmO\xEF\x9A\xDE9\xDCy\xA5\x93e/?\xF3\xF2\xAB\x87_\xFD\xF9S&\xDFO֏F\xA3]\xBBv\xED\\xDD2\x8D\xA6\xA6\xA6\xA6\xA7\xFF\xCF\xF6Μ9s\xE4ȑ}\xFB\xF6\xED\xAC<w\xEE\xDC+\xAF\xBC2\x8FϞ={\xE4ȑ\xBD{\xF7\xFE\xEA[
+\xFC\xC6M\x8D\xC7\xE3?\x9E\xFB\xE3\x8E\xFF\xE1Q\xEF\xE4?\xC3k\xBF\xEDO\xFF\xF3\xA7G\xBD\xE07\xCD\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@lf0\xFCn\xDF\xEF^\xFB\xFDk\x8Fz'\xFF^=\xFC\xEA\xA3\xDE\xF0[75\x8F\xF5\xFE\xAB\xF8!@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@\xEC\xAE\xAB\x87Au\x89+IEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/platform/chromium-linux/fast/repaint/scale-page-shrink-expected.txt (0 => 92341)


--- trunk/LayoutTests/platform/chromium-linux/fast/repaint/scale-page-shrink-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium-linux/fast/repaint/scale-page-shrink-expected.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -0,0 +1,9 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock (anonymous) at (0,0) size 784x20
+        RenderText {#text} at (0,0) size 686x19
+          text run at (0,0) width 686: "This test must be run in DumpRenderTree as a pixel test. There should not be visual aritfacts after scaling the page."
+      RenderBlock {DIV} at (0,20) size 500x500 [bgcolor=#008000]

Deleted: trunk/LayoutTests/platform/chromium-mac/fast/dom/Element/scale-page-bounding-client-rect-expected.txt (92340 => 92341)


--- trunk/LayoutTests/platform/chromium-mac/fast/dom/Element/scale-page-bounding-client-rect-expected.txt	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/platform/chromium-mac/fast/dom/Element/scale-page-bounding-client-rect-expected.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,2 +0,0 @@
-CONSOLE MESSAGE: line 12: Uncaught TypeError: Object [object Object] has no method 'scalePageBy'
-This test must be run via DumpRenderTree.

Deleted: trunk/LayoutTests/platform/chromium-mac/fast/dom/Range/scale-page-bounding-client-rect-expected.txt (92340 => 92341)


--- trunk/LayoutTests/platform/chromium-mac/fast/dom/Range/scale-page-bounding-client-rect-expected.txt	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/platform/chromium-mac/fast/dom/Range/scale-page-bounding-client-rect-expected.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,2 +0,0 @@
-CONSOLE MESSAGE: line 14: Uncaught TypeError: Object [object Object] has no method 'scalePageBy'
-This test must be run via DumpRenderTree.

Deleted: trunk/LayoutTests/platform/chromium-win/fast/dom/Element/scale-page-bounding-client-rect-expected.txt (92340 => 92341)


--- trunk/LayoutTests/platform/chromium-win/fast/dom/Element/scale-page-bounding-client-rect-expected.txt	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/platform/chromium-win/fast/dom/Element/scale-page-bounding-client-rect-expected.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,2 +0,0 @@
-CONSOLE MESSAGE: line 12: Uncaught TypeError: Object [object Object] has no method 'scalePageBy'
-This test must be run via DumpRenderTree.

Deleted: trunk/LayoutTests/platform/chromium-win/fast/dom/Element/scale-page-client-rects-expected.txt (92340 => 92341)


--- trunk/LayoutTests/platform/chromium-win/fast/dom/Element/scale-page-client-rects-expected.txt	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/platform/chromium-win/fast/dom/Element/scale-page-client-rects-expected.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,2 +0,0 @@
-CONSOLE MESSAGE: line 12: Uncaught TypeError: Object [object Object] has no method 'scalePageBy'
-This test must be run via DumpRenderTree.

Deleted: trunk/LayoutTests/platform/chromium-win/fast/dom/Range/scale-page-bounding-client-rect-expected.txt (92340 => 92341)


--- trunk/LayoutTests/platform/chromium-win/fast/dom/Range/scale-page-bounding-client-rect-expected.txt	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/platform/chromium-win/fast/dom/Range/scale-page-bounding-client-rect-expected.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,2 +0,0 @@
-CONSOLE MESSAGE: line 14: Uncaught TypeError: Object [object Object] has no method 'scalePageBy'
-This test must be run via DumpRenderTree.

Deleted: trunk/LayoutTests/platform/chromium-win/fast/dom/Range/scale-page-client-rects-expected.txt (92340 => 92341)


--- trunk/LayoutTests/platform/chromium-win/fast/dom/Range/scale-page-client-rects-expected.txt	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/LayoutTests/platform/chromium-win/fast/dom/Range/scale-page-client-rects-expected.txt	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,2 +0,0 @@
-CONSOLE MESSAGE: line 15: Uncaught TypeError: Object [object Object] has no method 'scalePageBy'
-This test must be run via DumpRenderTree.

Modified: trunk/Source/WebKit/chromium/ChangeLog (92340 => 92341)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,3 +1,27 @@
+2011-08-03  Kentaro Hara  <[email protected]>
+
+        Implement EventSender.scalePageBy()
+        https://bugs.webkit.org/show_bug.cgi?id=58013
+
+        Reviewed by Darin Fisher.
+
+        Implemented EventSender.scalePageBy(f, x, y), which scales a page by a factor of f
+        and then sets a scroll position to (x, y). Enabled the tests that had been waiting
+        for the implementation of EventSender.scalePageBy(f, x, y).
+
+        Tests: compositing/scaling/tiled-layer-recursion.html
+               fast/repaint/scale-page-shrink.html
+               fast/dom/Element/scale-page-client-rects.html
+               fast/dom/Range/scale-page-client-rects.html
+               fast/events/scroll-in-scaled-page-with-overflow-hidden.html
+               fast/dom/Element/scale-page-bounding-client-rect.html
+               fast/dom/Range/scale-page-bounding-client-rect.html
+
+        * public/WebView.h:
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::scalePage): A wrapper method for scalePage() in WebCore.
+        * src/WebViewImpl.h:
+
 2011-08-03  Darin Fisher  <[email protected]>
 
         [Chromium] Rename WEBKIT_API to WEBKIT_EXPORT.

Modified: trunk/Source/WebKit/chromium/public/WebView.h (92340 => 92341)


--- trunk/Source/WebKit/chromium/public/WebView.h	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Source/WebKit/chromium/public/WebView.h	2011-08-04 02:01:31 UTC (rev 92341)
@@ -203,7 +203,12 @@
     WEBKIT_EXPORT static double zoomLevelToZoomFactor(double zoomLevel);
     WEBKIT_EXPORT static double zoomFactorToZoomLevel(double factor);
 
+    // Scales a page by a factor of scaleFactor and then sets a scroll position to (x, y).
+    // scalePage() magnifies and shrinks a page without affecting layout.
+    // On the other hand, zooming affects layout of the page.
+    virtual void scalePage(float scaleFactor, WebPoint origin) = 0;
 
+
     // Media ---------------------------------------------------------------
 
     // Performs the specified action on the node at the given location.

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (92340 => 92341)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1841,6 +1841,18 @@
     return log(factor) / log(textSizeMultiplierRatio);
 }
 
+void WebViewImpl::scalePage(float scaleFactor, WebPoint origin)
+{
+    if (!page())
+        return;
+
+    Frame* frame = page()->mainFrame();
+    if (!frame)
+        return;
+
+    frame->scalePage(scaleFactor, origin);
+}
+
 void WebViewImpl::performMediaPlayerAction(const WebMediaPlayerAction& action,
                                            const WebPoint& location)
 {

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.h (92340 => 92341)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.h	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.h	2011-08-04 02:01:31 UTC (rev 92341)
@@ -154,6 +154,7 @@
     virtual double setZoomLevel(bool textOnly, double zoomLevel);
     virtual void zoomLimitsChanged(double minimumZoomLevel,
                                    double maximumZoomLevel);
+    virtual void scalePage(float scaleFactor, WebPoint origin);
     virtual void performMediaPlayerAction(
         const WebMediaPlayerAction& action,
         const WebPoint& location);

Modified: trunk/Tools/ChangeLog (92340 => 92341)


--- trunk/Tools/ChangeLog	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Tools/ChangeLog	2011-08-04 02:01:31 UTC (rev 92341)
@@ -1,3 +1,29 @@
+2011-08-03  Kentaro Hara  <[email protected]>
+
+        Implement EventSender.scalePageBy()
+        https://bugs.webkit.org/show_bug.cgi?id=58013
+
+        Reviewed by Darin Fisher.
+
+        Implemented EventSender.scalePageBy(f, x, y), which scales a page by a factor of f
+        and then sets a scroll position to (x, y). Enabled the tests that had been waiting
+        for the implementation of EventSender.scalePageBy(f, x, y).
+
+        Tests: compositing/scaling/tiled-layer-recursion.html
+               fast/repaint/scale-page-shrink.html
+               fast/dom/Element/scale-page-client-rects.html
+               fast/dom/Range/scale-page-client-rects.html
+               fast/events/scroll-in-scaled-page-with-overflow-hidden.html
+               fast/dom/Element/scale-page-bounding-client-rect.html
+               fast/dom/Range/scale-page-bounding-client-rect.html
+
+        * DumpRenderTree/chromium/EventSender.cpp:
+        (EventSender::EventSender): Added bindings for scalePageBy().
+        (EventSender::scalePageBy): A wrapper method for scalePage() in WebView.
+        * DumpRenderTree/chromium/EventSender.h:
+        * DumpRenderTree/chromium/TestShell.cpp:
+        (TestShell::resetTestController): Resets the scale factor to 1.
+
 2011-08-03  David Levin  <[email protected]>
 
         Rename WEBKIT_API to WEBKIT_EXPORT in check-webkit-style.

Modified: trunk/Tools/DumpRenderTree/chromium/EventSender.cpp (92340 => 92341)


--- trunk/Tools/DumpRenderTree/chromium/EventSender.cpp	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Tools/DumpRenderTree/chromium/EventSender.cpp	2011-08-04 02:01:31 UTC (rev 92341)
@@ -280,6 +280,7 @@
     bindMethod("updateTouchPoint", &EventSender::updateTouchPoint);
     bindMethod("zoomPageIn", &EventSender::zoomPageIn);
     bindMethod("zoomPageOut", &EventSender::zoomPageOut);
+    bindMethod("scalePageBy", &EventSender::scalePageBy);
 
     // When set to true (the default value), we batch mouse move and mouse up
     // events so we can simulate drag & drop.
@@ -698,6 +699,18 @@
     result->setNull();
 }
 
+void EventSender::scalePageBy(const CppArgumentList& arguments, CppVariant* result)
+{
+    if (arguments.size() < 3 || !arguments[0].isNumber() || !arguments[1].isNumber() || !arguments[2].isNumber())
+        return;
+
+    float scaleFactor = static_cast<float>(arguments[0].toDouble());
+    int x = arguments[1].toInt32();
+    int y = arguments[2].toInt32();
+    webview()->scalePage(scaleFactor, WebPoint(x, y));
+    result->setNull();
+}
+
 void EventSender::mouseScrollBy(const CppArgumentList& arguments, CppVariant* result)
 {
     handleMouseWheel(arguments, result, false);

Modified: trunk/Tools/DumpRenderTree/chromium/EventSender.h (92340 => 92341)


--- trunk/Tools/DumpRenderTree/chromium/EventSender.h	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Tools/DumpRenderTree/chromium/EventSender.h	2011-08-04 02:01:31 UTC (rev 92341)
@@ -76,6 +76,7 @@
     void textZoomOut(const CppArgumentList&, CppVariant*);
     void zoomPageIn(const CppArgumentList&, CppVariant*);
     void zoomPageOut(const CppArgumentList&, CppVariant*);
+    void scalePageBy(const CppArgumentList&, CppVariant*);
     void mouseScrollBy(const CppArgumentList&, CppVariant*);
     void continuousMouseScrollBy(const CppArgumentList&, CppVariant*);
     void scheduleAsynchronousClick(const CppArgumentList&, CppVariant*);

Modified: trunk/Tools/DumpRenderTree/chromium/TestShell.cpp (92340 => 92341)


--- trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2011-08-04 01:51:07 UTC (rev 92340)
+++ trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2011-08-04 02:01:31 UTC (rev 92341)
@@ -44,6 +44,7 @@
 #include "WebTestingSupport.h"
 #include "WebKit.h"
 #include "WebPermissions.h"
+#include "WebPoint.h"
 #include "WebRuntimeFeatures.h"
 #include "WebScriptController.h"
 #include "WebSettings.h"
@@ -265,6 +266,7 @@
     m_drtDevToolsAgent->reset();
     if (m_drtDevToolsClient)
         m_drtDevToolsClient->reset();
+    webView()->scalePage(1, WebPoint(0, 0));
     webView()->mainFrame()->clearOpener();
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to