Bug 68453

Summary: Repaint tests don't work in WebKit2
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Tools / TestsAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, andersca, aroben, darin, dglazkov, gustavo.noronha, gustavo, mitz, ossy, sam, simon.fraser, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 68644    
Bug Blocks:    
Attachments:
Description Flags
Have FrameView track repaint rects and expose them in WK1
none
Have FrameView track repaint rects and expose them in WK1
sam: review+
Expose repaint rects through WK2 private API
sam: review+, webkit.review.bot: commit-queue-
Use the repaint rects to generate the repaint overlay in DRT and WTR sam: review+, gustavo.noronha: commit-queue-

Simon Fraser (smfr)
Reported 2011-09-20 11:33:10 PDT
layoutTestController.display() does nothing in WebKit2. Making it behave the same way as WK1 is tricky, because the WebProcess would have to retain a bitmap for the entire page, with the alpha wash, and then copy parts over to the UI process. A better solution is to keep track of the repaint rects in WebCore, and add layout test controller API to retrieve them. We can then use these rects to synthesize the repaint pixel results.
Attachments
Have FrameView track repaint rects and expose them in WK1 (8.02 KB, patch)
2011-09-22 11:51 PDT, Simon Fraser (smfr)
no flags
Have FrameView track repaint rects and expose them in WK1 (8.16 KB, patch)
2011-09-23 17:37 PDT, Simon Fraser (smfr)
sam: review+
Expose repaint rects through WK2 private API (17.65 KB, patch)
2011-09-23 17:49 PDT, Simon Fraser (smfr)
sam: review+
webkit.review.bot: commit-queue-
Use the repaint rects to generate the repaint overlay in DRT and WTR (14.73 KB, patch)
2011-09-23 17:56 PDT, Simon Fraser (smfr)
sam: review+
gustavo.noronha: commit-queue-
Simon Fraser (smfr)
Comment 1 2011-09-22 11:51:08 PDT
Created attachment 108373 [details] Have FrameView track repaint rects and expose them in WK1
Adam Roben (:aroben)
Comment 2 2011-09-22 11:54:18 PDT
Comment on attachment 108373 [details] Have FrameView track repaint rects and expose them in WK1 View in context: https://bugs.webkit.org/attachment.cgi?id=108373&action=review > Source/WebKit/mac/WebView/WebViewPrivate.h:499 > +- (void)setTracksRepaints:(BOOL)flag; > +- (BOOL)isTrackingRepaints; > +- (void)resetTrackedRepaints; > +- (NSArray*)trackedRepaintRects; // Returned array contains rectValue NSValues. Do we need WebKit SPI for this? Can DRT make calls directly to window.internals from native code?
Adam Barth
Comment 3 2011-09-22 12:07:17 PDT
+dglazkov for the window.internals question.
Simon Fraser (smfr)
Comment 4 2011-09-23 17:37:57 PDT
Created attachment 108567 [details] Have FrameView track repaint rects and expose them in WK1
Simon Fraser (smfr)
Comment 5 2011-09-23 17:38:40 PDT
Comment on attachment 108567 [details] Have FrameView track repaint rects and expose them in WK1 Change from the previous patch is to have FrameView unapply the scroll offset from the rects.
Simon Fraser (smfr)
Comment 6 2011-09-23 17:49:16 PDT
Created attachment 108569 [details] Expose repaint rects through WK2 private API
Simon Fraser (smfr)
Comment 7 2011-09-23 17:56:10 PDT
Created attachment 108571 [details] Use the repaint rects to generate the repaint overlay in DRT and WTR
WebKit Review Bot
Comment 8 2011-09-23 20:51:51 PDT
Comment on attachment 108569 [details] Expose repaint rects through WK2 private API Attachment 108569 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/9840142
Gustavo Noronha (kov)
Comment 9 2011-09-24 04:30:04 PDT
Comment on attachment 108569 [details] Expose repaint rects through WK2 private API Attachment 108569 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/9844242
Collabora GTK+ EWS bot
Comment 10 2011-09-24 04:31:00 PDT
Comment on attachment 108571 [details] Use the repaint rects to generate the repaint overlay in DRT and WTR Attachment 108571 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/9856002
Simon Fraser (smfr)
Comment 11 2011-09-26 10:07:25 PDT
Later patches are failing because they require the FrameView changes.
Sam Weinig
Comment 12 2011-09-26 10:11:47 PDT
Comment on attachment 108567 [details] Have FrameView track repaint rects and expose them in WK1 View in context: https://bugs.webkit.org/attachment.cgi?id=108567&action=review > Source/WebCore/page/FrameView.h:454 > + bool m_isTrackingRepaints; // Used for testing. > + Vector<LayoutRect> m_trackedRepaintRects; This seems like it should be IntRects.
Sam Weinig
Comment 13 2011-09-26 10:15:13 PDT
Comment on attachment 108571 [details] Use the repaint rects to generate the repaint overlay in DRT and WTR View in context: https://bugs.webkit.org/attachment.cgi?id=108571&action=review > Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm:152 > + if (repaintRects) { > + > + for (NSValue *value in repaintRects) { Unnecessary newline.
Simon Fraser (smfr)
Comment 14 2011-09-26 11:56:27 PDT
Comment on attachment 108567 [details] Have FrameView track repaint rects and expose them in WK1 http://trac.webkit.org/changeset/95967
Simon Fraser (smfr)
Comment 15 2011-09-26 12:00:47 PDT
Comment on attachment 108569 [details] Expose repaint rects through WK2 private API http://trac.webkit.org/changeset/95968
Simon Fraser (smfr)
Comment 16 2011-09-26 15:33:40 PDT
Csaba Osztrogonác
Comment 17 2011-09-26 23:16:36 PDT
Note You need to log in before you can comment on or make changes to this bug.