[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

jam at chromium.org jam at chromium.org
Wed Dec 22 15:24:47 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit a65b2d4f7fc413581cf8eb09bfe1aae144c07859
Author: jam at chromium.org <jam at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Nov 2 23:36:20 2010 +0000

    2010-10-29  John Abd-El-Malek  <jam at chromium.org>
    
            Reviewed by Darin Fisher.
    
            [chromium]: Allow plugins to use optimized scrolling
            https://bugs.webkit.org/show_bug.cgi?id=48660
    
            * public/WebPluginContainer.h:
            * src/WebPluginContainerImpl.cpp:
            (WebKit::WebPluginContainerImpl::scrollRect):
            * src/WebPluginContainerImpl.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 4b58da7..087167a 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,15 @@
+2010-10-29  John Abd-El-Malek  <jam at chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        [chromium]: Allow plugins to use optimized scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=48660
+
+        * public/WebPluginContainer.h:
+        * src/WebPluginContainerImpl.cpp:
+        (WebKit::WebPluginContainerImpl::scrollRect):
+        * src/WebPluginContainerImpl.h:
+
 2010-11-02  Marc-Antoine Ruel  <maruel at chromium.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebKit/chromium/public/WebPluginContainer.h b/WebKit/chromium/public/WebPluginContainer.h
index af20c66..f2db0bd 100644
--- a/WebKit/chromium/public/WebPluginContainer.h
+++ b/WebKit/chromium/public/WebPluginContainer.h
@@ -49,6 +49,7 @@ public:
 
     virtual void invalidate() = 0;
     virtual void invalidateRect(const WebRect&) = 0;
+    virtual void scrollRect(int dx, int dy, const WebRect&) = 0;
 
     // Causes the container to report its current geometry via
     // WebPlugin::updateGeometry.
diff --git a/WebKit/chromium/src/WebPluginContainerImpl.cpp b/WebKit/chromium/src/WebPluginContainerImpl.cpp
index 58deecc..55a7867 100644
--- a/WebKit/chromium/src/WebPluginContainerImpl.cpp
+++ b/WebKit/chromium/src/WebPluginContainerImpl.cpp
@@ -275,6 +275,25 @@ void WebPluginContainerImpl::invalidateRect(const WebRect& rect)
     invalidateRect(static_cast<IntRect>(rect));
 }
 
+void WebPluginContainerImpl::scrollRect(int dx, int dy, const WebRect& rect)
+{
+    Widget* parentWidget = parent();
+    if (parentWidget->isFrameView()) {
+        FrameView* parentFrameView = static_cast<FrameView*>(parentWidget);
+        if (!parentFrameView->isOverlapped()) {
+            IntRect damageRect = convertToContainingWindow(static_cast<IntRect>(rect));
+            IntSize scrollDelta(dx, dy);
+            // scroll() only uses the second rectangle, clipRect, and ignores the first
+            // rectangle.
+            parent()->hostWindow()->scroll(scrollDelta, damageRect, damageRect);
+            return;
+        }
+    }
+
+    // Use slow scrolling instead.
+    invalidateRect(rect);
+}
+
 void WebPluginContainerImpl::reportGeometry()
 {
     if (!parent())
diff --git a/WebKit/chromium/src/WebPluginContainerImpl.h b/WebKit/chromium/src/WebPluginContainerImpl.h
index 27f5f2e..a770529 100644
--- a/WebKit/chromium/src/WebPluginContainerImpl.h
+++ b/WebKit/chromium/src/WebPluginContainerImpl.h
@@ -79,6 +79,7 @@ public:
     virtual WebElement element();
     virtual void invalidate();
     virtual void invalidateRect(const WebRect&);
+    virtual void scrollRect(int dx, int dy, const WebRect&);
     virtual void reportGeometry();
     virtual void clearScriptObjects();
     virtual NPObject* scriptableObjectForElement();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list