[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

andersca at apple.com andersca at apple.com
Thu Oct 29 20:39:32 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 223ed453274ca67d66991db10237420453d5ae85
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Oct 6 00:00:04 2009 +0000

    WebKit side of <rdar://problem/7179166>
    
    Reviewed by Kevin Decker.
    
    * Plugins/Hosted/NetscapePluginInstanceProxy.h:
    Add an m_pluginIsWaitingForDraw member variable.
    
    * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
    (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy):
    Initialize m_pluginIsWaitingForDraw.
    
    (WebKit::NetscapePluginInstanceProxy::invalidateRect):
    Set m_pluginIsWaitingForDraw to true.
    
    (WebKit::NetscapePluginInstanceProxy::didDraw):
    If m_pluginIsWaitingForDraw is true, call _WKPHPluginInstanceDidDraw.
    
    * Plugins/Hosted/WebHostedNetscapePluginView.mm:
    (-[WebHostedNetscapePluginView drawRect:]):
    Call didDraw.
    
    * Plugins/Hosted/WebKitPluginHost.defs:
    Add PHPluginInstanceDidDraw.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49133 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 922721d..64baf97 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,29 @@
+2009-10-05  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Kevin Decker.
+       
+        WebKit side of <rdar://problem/7179166>
+       
+        * Plugins/Hosted/NetscapePluginInstanceProxy.h:
+        Add an m_pluginIsWaitingForDraw member variable.
+        
+        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
+        (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy):
+        Initialize m_pluginIsWaitingForDraw.
+        
+        (WebKit::NetscapePluginInstanceProxy::invalidateRect):
+        Set m_pluginIsWaitingForDraw to true.
+        
+        (WebKit::NetscapePluginInstanceProxy::didDraw):
+        If m_pluginIsWaitingForDraw is true, call _WKPHPluginInstanceDidDraw.
+        
+        * Plugins/Hosted/WebHostedNetscapePluginView.mm:
+        (-[WebHostedNetscapePluginView drawRect:]):
+        Call didDraw.
+        
+        * Plugins/Hosted/WebKitPluginHost.defs:
+        Add PHPluginInstanceDidDraw.
+
 2009-10-02  Chris Marrin  <cmarrin at apple.com>
 
         Reviewed by Adele Peterson.
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
index 1841afd..280f161 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
@@ -162,6 +162,8 @@ public:
 
     void resolveURL(const char* url, const char* target, data_t& resolvedURLData, mach_msg_type_number_t& resolvedURLLength);
     
+    void didDraw();
+    
     // Reply structs
     struct Reply {
         enum Type {
@@ -307,6 +309,7 @@ private:
     bool m_shouldStopSoon;
     uint32_t m_currentRequestID;
     bool m_inDestroy;
+    bool m_pluginIsWaitingForDraw;
     
     RefPtr<HostedNetscapePluginStream> m_manualStream;
 };
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
index ea3ac90..de159f4 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
@@ -113,6 +113,7 @@ NetscapePluginInstanceProxy::NetscapePluginInstanceProxy(NetscapePluginHostProxy
     , m_shouldStopSoon(false)
     , m_currentRequestID(0)
     , m_inDestroy(false)
+    , m_pluginIsWaitingForDraw(false)
 {
     ASSERT(m_pluginView);
     
@@ -1285,9 +1286,19 @@ void NetscapePluginInstanceProxy::invalidateRect(double x, double y, double widt
 {
     ASSERT(m_pluginView);
     
+    m_pluginIsWaitingForDraw = true;
     [m_pluginView invalidatePluginContentRect:NSMakeRect(x, y, width, height)];
 }
 
+void NetscapePluginInstanceProxy::didDraw()
+{
+    if (!m_pluginIsWaitingForDraw)
+        return;
+    
+    m_pluginIsWaitingForDraw = false;
+    _WKPHPluginInstanceDidDraw(m_pluginHostProxy->port(), m_pluginID);
+}
+    
 bool NetscapePluginInstanceProxy::getCookies(data_t urlData, mach_msg_type_number_t urlLength, data_t& cookiesData, mach_msg_type_number_t& cookiesLength)
 {
     ASSERT(m_pluginView);
diff --git a/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm b/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
index 0cce014..34a2211 100644
--- a/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
+++ b/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
@@ -330,9 +330,10 @@ extern "C" {
 {
     if (_proxy) {
         if (_softwareRenderer) {
-            if ([NSGraphicsContext currentContextDrawingToScreen])
+            if ([NSGraphicsContext currentContextDrawingToScreen]) {
                 WKSoftwareCARendererRender(_softwareRenderer, (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort], NSRectToCGRect(rect));
-            else
+                _proxy->didDraw();
+            } else
                 _proxy->print(reinterpret_cast<CGContextRef>([[NSGraphicsContext currentContext] graphicsPort]), [self bounds].size.width, [self bounds].size.height);
         }
             
diff --git a/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs b/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs
index 41d7498..04edf64 100644
--- a/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs
+++ b/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs
@@ -220,7 +220,7 @@ simpleroutine PHNPObjectEnumerate(pluginHostPort :mach_port_t;
                                   pluginID :uint32_t;
                                   requestID :uint32_t;
                                   objectID :uint32_t);
-                                  
+
 // Replies
 
 simpleroutine PHBooleanReply(clientPort :mach_port_t;
@@ -233,3 +233,7 @@ simpleroutine PHBooleanAndDataReply(pluginHostPort :mach_port_t;
                                     requestID :uint32_t;
                                     returnValue :boolean_t;
                                     result :data_t);
+             
+simpleroutine PHPluginInstanceDidDraw(pluginHostPort :mach_port_t;
+                                      pluginID :uint32_t);
+                              

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list