To reproduce: 1. Go to http://www.youtube.com/watch?v=CKJgcEgvx4U&feature=topvideos_entertainment 2. Scroll the page quickly The YouTube video doesn't scroll at the same speed as the rest of the page. This does not happen in WebKit1.
<rdar://problem/8483441>
Created attachment 92322 [details] Clip and reposition windowed plugins when the UI process paints
Comment on attachment 92322 [details] Clip and reposition windowed plugins when the UI process paints View in context: https://bugs.webkit.org/attachment.cgi?id=92322&action=review > Source/WebKit2/UIProcess/win/WebView.cpp:1542 > +enum RedrawOrNot { DoNotRedraw, Redraw }; > +static void setWindowRegion(HWND window, PassOwnPtr<HRGN> popRegion, RedrawOrNot redrawOrNot) > +{ Given this is only called in one place, why not always redraw? Do you have plans to use this elsewhere?
Comment on attachment 92322 [details] Clip and reposition windowed plugins when the UI process paints View in context: https://bugs.webkit.org/attachment.cgi?id=92322&action=review > Source/WebKit2/UIProcess/win/WebView.cpp:1560 > + HashMap<HWND, ChildWindowGeometry>::const_iterator end = geometriesToUpdate.end(); > + for (HashMap<HWND, ChildWindowGeometry>::const_iterator it = geometriesToUpdate.begin(); it != end; ++it) { In WebKit2 we declare both iterators inside the for loop: HashMap<HWND, ChildWindowGeometry>::const_iterator it = geometriesToUpdate.begin(), end = geometriesToUpdate.end(); > Source/WebKit2/WebProcess/Plugins/PluginController.h:93 > + virtual void scheduleWindowedPluginGeometryUpdate(HWND, const WebCore::IntRect& newRectInParentClientCoordinates, const WebCore::IntRect& clipRectInPluginWindowCoordinates) = 0; Please add a comment to indicate what this function does, like with nativeParentWindow().
Comment on attachment 92322 [details] Clip and reposition windowed plugins when the UI process paints View in context: https://bugs.webkit.org/attachment.cgi?id=92322&action=review >> Source/WebKit2/UIProcess/win/WebView.cpp:1542 >> +{ > > Given this is only called in one place, why not always redraw? Do you have plans to use this elsewhere? I don't have any immediate plans, no. I'll remove it. (Though having the parameter does make the call to ::SetWindowRgn a little clearer.) >> Source/WebKit2/UIProcess/win/WebView.cpp:1560 >> + for (HashMap<HWND, ChildWindowGeometry>::const_iterator it = geometriesToUpdate.begin(); it != end; ++it) { > > In WebKit2 we declare both iterators inside the for loop: > > HashMap<HWND, ChildWindowGeometry>::const_iterator it = geometriesToUpdate.begin(), end = geometriesToUpdate.end(); Fixed. >> Source/WebKit2/WebProcess/Plugins/PluginController.h:93 >> + virtual void scheduleWindowedPluginGeometryUpdate(HWND, const WebCore::IntRect& newRectInParentClientCoordinates, const WebCore::IntRect& clipRectInPluginWindowCoordinates) = 0; > > Please add a comment to indicate what this function does, like with nativeParentWindow(). Added this comment: // Tells the controller that the given HWND needs to be positioned and clipped to the given coordinates sometime soon.
Committed r85795: <http://trac.webkit.org/changeset/85795>