[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-142-g786665c

andersca at apple.com andersca at apple.com
Mon Dec 27 16:27:33 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit d86d84219bd434f3ce8d86cd42bb3da89e55556a
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Dec 21 18:29:57 2010 +0000

    2010-12-21  Anders Carlsson  <andersca at apple.com>
    
            Reviewed by John Sullivan.
    
            Clicking missing plug-in text does not show a sheet
            https://bugs.webkit.org/show_bug.cgi?id=51403
    
            * WebCore.exp.in:
            Export symbols needed by WebKit2.
    
            * WebCore.xcodeproj/project.pbxproj:
            Make HTMLPlugInImageElement.h a private header.
    
            * html/HTMLPlugInImageElement.h:
            (WebCore::HTMLPlugInImageElement::serviceType):
            (WebCore::HTMLPlugInImageElement::url):
            Make these member functions public.
    2010-12-21  Anders Carlsson  <andersca at apple.com>
    
            Reviewed by John Sullivan.
    
            Clicking missing plug-in text does not show a sheet
            https://bugs.webkit.org/show_bug.cgi?id=51403
    
            Update for changes to the WebPageUIClient.
    
            * MiniBrowser/mac/BrowserWindowController.m:
            (-[BrowserWindowController awakeFromNib]):
            * WebKitTestRunner/TestController.cpp:
            (WTR::createOtherPage):
            (WTR::TestController::initialize):
    2010-12-21  Anders Carlsson  <andersca at apple.com>
    
            Reviewed by John Sullivan.
    
            Clicking missing plug-in text does not show a sheet
            https://bugs.webkit.org/show_bug.cgi?id=51403
    
            * UIProcess/API/C/WKPage.h:
            Add missingPluginButtonClicked to WKPageUIClient.
    
            * UIProcess/WebPageProxy.cpp:
            (WebKit::WebPageProxy::missingPluginButtonClicked):
            Call the WebUIClient member function.
    
            * UIProcess/WebPageProxy.messages.in:
            Add MissingPluginButtonClicked message.
    
            * UIProcess/WebUIClient.cpp:
            (WebKit::WebUIClient::missingPluginButtonClicked):
            Call the WKPageUIClient callback.
    
            * UIProcess/WebUIClient.h:
            * WebProcess/WebCoreSupport/WebChromeClient.cpp:
            (WebKit::WebChromeClient::shouldMissingPluginMessageBeButton):
            Always return true for now.
    
            (WebKit::WebChromeClient::missingPluginButtonClicked):
            Send a MissingPluginButtonClicked message.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74418 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index c949b21..9d97b9b 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,18 @@
+2010-12-21  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by John Sullivan.
+
+        Clicking missing plug-in text does not show a sheet
+        https://bugs.webkit.org/show_bug.cgi?id=51403
+
+        Update for changes to the WebPageUIClient.
+
+        * MiniBrowser/mac/BrowserWindowController.m:
+        (-[BrowserWindowController awakeFromNib]):
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::createOtherPage):
+        (WTR::TestController::initialize):
+
 2010-12-21  Eric Seidel  <eric at webkit.org>
 
         Reviewed by Adam Barth.
diff --git a/Tools/MiniBrowser/mac/BrowserWindowController.m b/Tools/MiniBrowser/mac/BrowserWindowController.m
index b813f29..0fa4755 100644
--- a/Tools/MiniBrowser/mac/BrowserWindowController.m
+++ b/Tools/MiniBrowser/mac/BrowserWindowController.m
@@ -621,6 +621,7 @@ static void runOpenPanel(WKPageRef page, WKFrameRef frame, WKOpenPanelParameters
         runJavaScriptPrompt,
         setStatusText,
         mouseDidMoveOverElement,
+        0,          /* missingPluginButtonClicked */
         0,          /* didNotHandleKeyEvent */
         0,          /* toolbarsAreVisible */
         0,          /* setToolbarsAreVisible */
diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp
index a8ad1f2..77213a2 100644
--- a/Tools/WebKitTestRunner/TestController.cpp
+++ b/Tools/WebKitTestRunner/TestController.cpp
@@ -122,6 +122,7 @@ static WKPageRef createOtherPage(WKPageRef oldPage, WKDictionaryRef, WKEventModi
         0, // runJavaScriptPrompt
         0, // setStatusText
         0, // mouseDidMoveOverElement
+        0, // missingPluginButtonClicked
         0, // didNotHandleKeyEvent
         0, // toolbarsAreVisible
         0, // setToolbarsAreVisible
@@ -225,6 +226,7 @@ void TestController::initialize(int argc, const char* argv[])
         0, // runJavaScriptPrompt
         0, // setStatusText
         0, // mouseDidMoveOverElement
+        0, // missingPluginButtonClicked
         0, // didNotHandleKeyEvent
         0, // toolbarsAreVisible
         0, // setToolbarsAreVisible
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d1db7cc..f4f20ea 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2010-12-21  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by John Sullivan.
+
+        Clicking missing plug-in text does not show a sheet
+        https://bugs.webkit.org/show_bug.cgi?id=51403
+
+        * WebCore.exp.in:
+        Export symbols needed by WebKit2.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        Make HTMLPlugInImageElement.h a private header.
+
+        * html/HTMLPlugInImageElement.h:
+        (WebCore::HTMLPlugInImageElement::serviceType):
+        (WebCore::HTMLPlugInImageElement::url):
+        Make these member functions public.
+
 2010-12-21  Andras Becsi  <abecsi at webkit.org>
 
         Unreviewed build fix.
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index f7706e7..4c97a1b 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -893,11 +893,13 @@ __ZN7WebCore9HTMLNames6imgTagE
 __ZN7WebCore9HTMLNames6preTagE
 __ZN7WebCore9HTMLNames7formTagE
 __ZN7WebCore9HTMLNames7srcAttrE
+__ZN7WebCore9HTMLNames8embedTagE
 __ZN7WebCore9HTMLNames8frameTagE
 __ZN7WebCore9HTMLNames8hrefAttrE
 __ZN7WebCore9HTMLNames8inputTagE
 __ZN7WebCore9HTMLNames8videoTagE
 __ZN7WebCore9HTMLNames9iframeTagE
+__ZN7WebCore9HTMLNames9objectTagE
 __ZN7WebCore9HTMLNames9scriptTagE
 __ZN7WebCore9JSElement6s_infoE
 __ZN7WebCore9PageCache11setCapacityEi
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index 3052fc1..0ed9320 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -970,7 +970,7 @@
 		41F1D21F0EF35C2A00DA8753 /* ScriptCachedFrameData.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F1D21D0EF35C2A00DA8753 /* ScriptCachedFrameData.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		41F1D2200EF35C2A00DA8753 /* ScriptCachedFrameData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41F1D21E0EF35C2A00DA8753 /* ScriptCachedFrameData.cpp */; };
 		41F584C7104652CB009CAA64 /* JSMessagePortCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F584C6104652CB009CAA64 /* JSMessagePortCustom.h */; };
-		4415292E0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4415292C0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h */; };
+		4415292E0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4415292C0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		4415292F0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4415292D0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.cpp */; };
 		441B055C0CD77A2D007C1F18 /* DOMHTMLEmbedElementPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 4429AAFB0CB84E88007647C5 /* DOMHTMLEmbedElementPrivate.h */; };
 		441B055E0CD77A48007C1F18 /* DOMHTMLIFrameElementPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 4429AAFD0CB84EA5007647C5 /* DOMHTMLIFrameElementPrivate.h */; };
diff --git a/WebCore/html/HTMLPlugInImageElement.h b/WebCore/html/HTMLPlugInImageElement.h
index 9616fe8..377fd99 100644
--- a/WebCore/html/HTMLPlugInImageElement.h
+++ b/WebCore/html/HTMLPlugInImageElement.h
@@ -36,14 +36,14 @@ public:
 
     virtual void updateWidget(bool onlyCreateNonNetscapePlugins) = 0;
 
+    const String& serviceType() const { return m_serviceType; }
+    const String& url() const { return m_url; }
+
 protected:
     HTMLPlugInImageElement(const QualifiedName& tagName, Document*, bool createdByParser);
 
     bool isImageType();
 
-    const String& serviceType() const { return m_serviceType; }
-    const String& url() const { return m_url; }
-
     OwnPtr<HTMLImageLoader> m_imageLoader;
     String m_serviceType;
     String m_url;
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 2ecaacc..cebb183 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,32 @@
+2010-12-21  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by John Sullivan.
+
+        Clicking missing plug-in text does not show a sheet
+        https://bugs.webkit.org/show_bug.cgi?id=51403
+
+        * UIProcess/API/C/WKPage.h:
+        Add missingPluginButtonClicked to WKPageUIClient.
+
+        * UIProcess/WebPageProxy.cpp:        
+        (WebKit::WebPageProxy::missingPluginButtonClicked):
+        Call the WebUIClient member function.
+
+        * UIProcess/WebPageProxy.messages.in:
+        Add MissingPluginButtonClicked message.
+
+        * UIProcess/WebUIClient.cpp:
+        (WebKit::WebUIClient::missingPluginButtonClicked):
+        Call the WKPageUIClient callback.
+
+        * UIProcess/WebUIClient.h:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::shouldMissingPluginMessageBeButton):
+        Always return true for now.
+
+        (WebKit::WebChromeClient::missingPluginButtonClicked):
+        Send a MissingPluginButtonClicked message.
+
 2010-12-21  Laszlo Gombos  <laszlo.1.gombos at nokia.com>
 
         Reviewed by Andreas Kling.
diff --git a/WebKit2/UIProcess/API/C/WKPage.h b/WebKit2/UIProcess/API/C/WKPage.h
index 245d219..a03d2bf 100644
--- a/WebKit2/UIProcess/API/C/WKPage.h
+++ b/WebKit2/UIProcess/API/C/WKPage.h
@@ -159,6 +159,7 @@ typedef bool (*WKPageRunJavaScriptConfirmCallback)(WKPageRef page, WKStringRef m
 typedef WKStringRef (*WKPageRunJavaScriptPromptCallback)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, const void *clientInfo);
 typedef void (*WKPageSetStatusTextCallback)(WKPageRef page, WKStringRef text, const void *clientInfo);
 typedef void (*WKPageMouseDidMoveOverElementCallback)(WKPageRef page, WKEventModifiers modifiers, WKTypeRef userData, const void *clientInfo);
+typedef void (*WKPageMissingPluginButtonClickedCallback)(WKPageRef page, WKStringRef mimeType, WKStringRef url, const void* clientInfo);
 typedef void (*WKPageDidNotHandleKeyEventCallback)(WKPageRef page, WKNativeEventPtr event, const void *clientInfo);
 typedef bool (*WKPageGetToolbarsAreVisibleCallback)(WKPageRef page, const void *clientInfo);
 typedef void (*WKPageSetToolbarsAreVisibleCallback)(WKPageRef page, bool toolbarsVisible, const void *clientInfo);
@@ -187,6 +188,7 @@ struct WKPageUIClient {
     WKPageRunJavaScriptPromptCallback                                   runJavaScriptPrompt;
     WKPageSetStatusTextCallback                                         setStatusText;
     WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
+    WKPageMissingPluginButtonClickedCallback                            missingPluginButtonClicked;
     WKPageDidNotHandleKeyEventCallback                                  didNotHandleKeyEvent;
     WKPageGetToolbarsAreVisibleCallback                                 toolbarsAreVisible;
     WKPageSetToolbarsAreVisibleCallback                                 setToolbarsAreVisible;
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.cpp b/WebKit2/UIProcess/API/qt/qwkpage.cpp
index 621d966..4b526a0 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.cpp
+++ b/WebKit2/UIProcess/API/qt/qwkpage.cpp
@@ -341,6 +341,7 @@ QWKPage::QWKPage(QWKContext* context)
         0,  /* runJavaScriptPrompt */
         0,  /* setStatusText */
         0,  /* mouseDidMoveOverElement */
+        0,  /* missingPluginButtonClicked */
         0,  /* didNotHandleKeyEvent */
         0,  /* toolbarsAreVisible */
         0,  /* setToolbarsAreVisible */
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index c3019af..bef2e2d 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -1263,7 +1263,6 @@ void WebPageProxy::setStatusText(const String& text)
 
 void WebPageProxy::mouseDidMoveOverElement(uint32_t opaqueModifiers, CoreIPC::ArgumentDecoder* arguments)
 {
-
     RefPtr<APIObject> userData;
     WebContextUserMessageDecoder messageDecoder(userData, context());
     if (!arguments->decode(messageDecoder))
@@ -1274,6 +1273,11 @@ void WebPageProxy::mouseDidMoveOverElement(uint32_t opaqueModifiers, CoreIPC::Ar
     m_uiClient.mouseDidMoveOverElement(this, modifiers, userData.get());
 }
 
+void WebPageProxy::missingPluginButtonClicked(const String& mimeType, const String& url)
+{
+    m_uiClient.missingPluginButtonClicked(this, mimeType, url);
+}
+
 void WebPageProxy::setToolbarsAreVisible(bool toolbarsAreVisible)
 {
     m_uiClient.setToolbarsAreVisible(this, toolbarsAreVisible);
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index ce3ffeb..49866cf 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -357,6 +357,7 @@ private:
     void runJavaScriptPrompt(uint64_t frameID, const String&, const String&, String& result);
     void setStatusText(const String&);
     void mouseDidMoveOverElement(uint32_t modifiers, CoreIPC::ArgumentDecoder*);
+    void missingPluginButtonClicked(const String& mimeType, const String& url);
     void setToolbarsAreVisible(bool toolbarsAreVisible);
     void getToolbarsAreVisible(bool& toolbarsAreVisible);
     void setMenuBarIsVisible(bool menuBarIsVisible);
diff --git a/WebKit2/UIProcess/WebPageProxy.messages.in b/WebKit2/UIProcess/WebPageProxy.messages.in
index b332543..6168123 100644
--- a/WebKit2/UIProcess/WebPageProxy.messages.in
+++ b/WebKit2/UIProcess/WebPageProxy.messages.in
@@ -29,6 +29,7 @@ messages -> WebPageProxy {
     RunJavaScriptConfirm(uint64_t frameID, WTF::String message) -> (bool result)
     RunJavaScriptPrompt(uint64_t frameID, WTF::String message, WTF::String defaultValue) -> (WTF::String result)
     MouseDidMoveOverElement(uint32_t modifiers, WebKit::InjectedBundleUserMessageEncoder userData);
+    MissingPluginButtonClicked(WTF::String mimeType, WTF::String url)
     DidChangeViewportData(WebCore::ViewportArguments arguments)
     DidReceiveEvent(uint32_t type, bool handled)
     DidValidateMenuItem(WTF::String commandName, bool isEnabled, int32_t state)
diff --git a/WebKit2/UIProcess/WebUIClient.cpp b/WebKit2/UIProcess/WebUIClient.cpp
index 36fafae..89c3b5e 100644
--- a/WebKit2/UIProcess/WebUIClient.cpp
+++ b/WebKit2/UIProcess/WebUIClient.cpp
@@ -130,6 +130,14 @@ void WebUIClient::mouseDidMoveOverElement(WebPageProxy* page, WebEvent::Modifier
     m_client.mouseDidMoveOverElement(toAPI(page), toAPI(modifiers), toAPI(userData), m_client.clientInfo);
 }
 
+void WebUIClient::missingPluginButtonClicked(WebPageProxy* page, const String& mimeType, const String& url)
+{
+    if (!m_client.missingPluginButtonClicked)
+        return;
+
+    m_client.missingPluginButtonClicked(toAPI(page), toAPI(mimeType.impl()), toAPI(url.impl()), m_client.clientInfo);
+}
+
 void WebUIClient::didNotHandleKeyEvent(WebPageProxy* page, const NativeWebKeyboardEvent& event)
 {
     if (!m_client.didNotHandleKeyEvent)
diff --git a/WebKit2/UIProcess/WebUIClient.h b/WebKit2/UIProcess/WebUIClient.h
index 477a81c..909a63c 100644
--- a/WebKit2/UIProcess/WebUIClient.h
+++ b/WebKit2/UIProcess/WebUIClient.h
@@ -60,7 +60,7 @@ public:
 
     void setStatusText(WebPageProxy*, const String&);
     void mouseDidMoveOverElement(WebPageProxy*, WebEvent::Modifiers, APIObject*);
-
+    void missingPluginButtonClicked(WebPageProxy*, const String& mimeType, const String& url);
     void didNotHandleKeyEvent(WebPageProxy*, const NativeWebKeyboardEvent&);
 
     bool toolbarsAreVisible(WebPageProxy*);
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
index a112c55..7446ff7 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
@@ -49,10 +49,13 @@
 #include <WebCore/FileChooser.h>
 #include <WebCore/Frame.h>
 #include <WebCore/FrameLoader.h>
+#include <WebCore/HTMLNames.h>
+#include <WebCore/HTMLPlugInImageElement.h>
 #include <WebCore/Page.h>
 #include <WebCore/SecurityOrigin.h>
 
 using namespace WebCore;
+using namespace HTMLNames;
 
 namespace WebKit {
 
@@ -389,6 +392,22 @@ void WebChromeClient::scrollRectIntoView(const IntRect&, const ScrollView*) cons
     notImplemented();
 }
 
+bool WebChromeClient::shouldMissingPluginMessageBeButton() const
+{
+    // FIXME: <rdar://problem/8794397> We should only return true when there is a 
+    // missingPluginButtonClicked callback defined on the Page UI client.
+    return true;
+}
+    
+void WebChromeClient::missingPluginButtonClicked(Element* element) const
+{
+    ASSERT(element->hasTagName(objectTag) || element->hasTagName(embedTag));
+
+    HTMLPlugInImageElement* pluginElement = static_cast<HTMLPlugInImageElement*>(element);
+
+    m_page->send(Messages::WebPageProxy::MissingPluginButtonClicked(pluginElement->serviceType(), pluginElement->url()));
+}
+
 void WebChromeClient::scrollbarsModeDidChange() const
 {
     notImplemented();
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
index 8e97ff2..01678ec 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
+++ b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
@@ -117,6 +117,9 @@ private:
     virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const; // Currently only Mac has a non empty implementation.
     // End methods used by HostWindow.
 
+    virtual bool shouldMissingPluginMessageBeButton() const;
+    virtual void missingPluginButtonClicked(WebCore::Element*) const;
+
     virtual void scrollbarsModeDidChange() const;
     virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags);
     

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list