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

andersca at apple.com andersca at apple.com
Wed Dec 22 13:39:23 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 6ff86ab9598688b4f930666f281b0967df792d75
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 22 18:14:59 2010 +0000

    Random plug-in cleanups
    https://bugs.webkit.org/show_bug.cgi?id=46279
    
    Reviewed by Darin Adler.
    
    * WebProcess/Plugins/Plugin.cpp:
    (WebKit::Plugin::Parameters::encode):
    (WebKit::Plugin::Parameters::decode):
    Add CoreIPC coding support for the Plugin::Parameters struct.
    
    * WebProcess/Plugins/PluginController.h:
    Add pluginProcessCrashed pure virtual member function.
    
    * WebProcess/Plugins/PluginView.cpp:
    (WebKit::PluginView::handleEvent):
    handleEvent can be called when m_plugin is null.
    
    (WebKit::PluginView::pluginProcessCrashed):
    Ask the renderer to show the crashed plug-in indicator.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68058 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 1c97b0e..769ac90 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,27 @@
 2010-09-22  Anders Carlsson  <andersca at apple.com>
 
+        Reviewed by Darin Adler.
+
+        Random plug-in cleanups
+        https://bugs.webkit.org/show_bug.cgi?id=46279
+
+        * WebProcess/Plugins/Plugin.cpp:
+        (WebKit::Plugin::Parameters::encode):
+        (WebKit::Plugin::Parameters::decode):
+        Add CoreIPC coding support for the Plugin::Parameters struct.
+
+        * WebProcess/Plugins/PluginController.h:
+        Add pluginProcessCrashed pure virtual member function.
+
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::handleEvent):
+        handleEvent can be called when m_plugin is null.
+
+        (WebKit::PluginView::pluginProcessCrashed):
+        Ask the renderer to show the crashed plug-in indicator.
+        
+2010-09-22  Anders Carlsson  <andersca at apple.com>
+
         Reviewed by John Sullivan.
 
         Don't listen for some window notifications on all windows
diff --git a/WebKit2/WebProcess/Plugins/Plugin.cpp b/WebKit2/WebProcess/Plugins/Plugin.cpp
index 12650e0..32ad92d 100644
--- a/WebKit2/WebProcess/Plugins/Plugin.cpp
+++ b/WebKit2/WebProcess/Plugins/Plugin.cpp
@@ -25,10 +25,46 @@
 
 #include "Plugin.h"
 
+#include "WebCoreArgumentCoders.h"
+
 using namespace WebCore;
 
 namespace WebKit {
 
+void Plugin::Parameters::encode(CoreIPC::ArgumentEncoder* encoder) const
+{
+    encoder->encode(url.string());
+    encoder->encode(names);
+    encoder->encode(values);
+    encoder->encode(mimeType);
+    encoder->encode(loadManually);
+}
+
+bool Plugin::Parameters::decode(CoreIPC::ArgumentDecoder* decoder, Parameters& parameters)
+{
+    String urlString;
+    if (!decoder->decode(urlString))
+        return false;
+    // FIXME: We can't assume that the url passed in here is valid.
+    parameters.url = KURL(ParsedURLString, urlString);
+
+    if (!decoder->decode(parameters.names))
+        return false;
+    if (!decoder->decode(parameters.values))
+        return false;
+    if (!decoder->decode(parameters.mimeType))
+        return false;
+    if (!decoder->decode(parameters.loadManually))
+        return false;
+
+    if (parameters.names.size() != parameters.values.size()) {
+        decoder->markInvalid();
+        return false;
+    }
+
+    return true;
+}
+
 Plugin::Plugin()
 {
 }
diff --git a/WebKit2/WebProcess/Plugins/Plugin.h b/WebKit2/WebProcess/Plugins/Plugin.h
index bfaba4e..fc08be7 100644
--- a/WebKit2/WebProcess/Plugins/Plugin.h
+++ b/WebKit2/WebProcess/Plugins/Plugin.h
@@ -33,6 +33,11 @@
 
 struct NPObject;
 
+namespace CoreIPC {
+    class ArgumentEncoder;
+    class ArgumentDecoder;
+}
+
 namespace WebCore {
     class GraphicsContext;
     class IntRect;
@@ -53,6 +58,9 @@ public:
         Vector<String> values;
         String mimeType;
         bool loadManually;
+
+        void encode(CoreIPC::ArgumentEncoder*) const;
+        static bool decode(CoreIPC::ArgumentDecoder*, Parameters&);
     };
 
     virtual ~Plugin();
diff --git a/WebKit2/WebProcess/Plugins/PluginController.h b/WebKit2/WebProcess/Plugins/PluginController.h
index 45883dc..0448ede 100644
--- a/WebKit2/WebProcess/Plugins/PluginController.h
+++ b/WebKit2/WebProcess/Plugins/PluginController.h
@@ -80,6 +80,9 @@ public:
     virtual bool isAcceleratedCompositingEnabled() = 0;
 #endif
 
+    // Tells the controller that the plug-in process has crashed.
+    virtual void pluginProcessCrashed() = 0;
+    
 protected:
     virtual ~PluginController() { }
 };
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index d7bb0ea..26e39b0 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -40,6 +40,7 @@
 #include <WebCore/HTMLPlugInElement.h>
 #include <WebCore/HostWindow.h>
 #include <WebCore/NetscapePlugInStreamLoader.h>
+#include <WebCore/RenderEmbeddedObject.h>
 #include <WebCore/RenderLayer.h>
 #include <WebCore/ScrollView.h>
 #include <WebCore/Settings.h>
@@ -457,6 +458,9 @@ void PluginView::setParent(ScrollView* scrollView)
 
 void PluginView::handleEvent(Event* event)
 {
+    if (!m_plugin)
+        return;
+
     const WebEvent* currentEvent = WebPage::currentEvent();
     if (!currentEvent)
         return;
@@ -805,6 +809,14 @@ bool PluginView::isAcceleratedCompositingEnabled()
     return settings->acceleratedCompositingEnabled();
 }
 
+void PluginView::pluginProcessCrashed()
+{
+    if (RenderEmbeddedObject* renderer = toRenderEmbeddedObject(m_pluginElement->renderer()))
+        renderer->setShowsCrashedPluginIndicator();
+    
+    invalidateRect(frameRect());
+}
+
 void PluginView::didFinishLoad(WebFrame* webFrame)
 {
     RefPtr<URLRequest> request = m_pendingFrameLoads.take(webFrame);
diff --git a/WebKit2/WebProcess/Plugins/PluginView.h b/WebKit2/WebProcess/Plugins/PluginView.h
index 3838c1d..88b4318 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.h
+++ b/WebKit2/WebProcess/Plugins/PluginView.h
@@ -123,6 +123,7 @@ private:
     virtual bool evaluate(NPObject*, const String&scriptString, NPVariant* result, bool allowPopups);
     virtual void setStatusbarText(const String&);
     virtual bool isAcceleratedCompositingEnabled();
+    virtual void pluginProcessCrashed();
 
     // WebFrame::LoadListener
     virtual void didFinishLoad(WebFrame*);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list