Changeset 162883 in webkit


Ignore:
Timestamp:
Jan 27, 2014 4:07:30 PM (10 years ago)
Author:
timothy_horton@apple.com
Message:

Revert the parts of r162629 that add a new pluginLoadPolicy and the context menu item.

We're leaving the parts that make us use PDFPlugin instead of showing the blocked
plugin indicator intact, though.

  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::pluginLoadPolicy):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/API/C/WKPageLoaderClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findPlugin):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::handleContextMenuEvent):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
(WebKit::WebPage::canPluginHandleResponse):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):

Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r162882 r162883  
     12014-01-27  Tim Horton  <timothy_horton@apple.com>
     2
     3        Revert the parts of r162629 that add a new pluginLoadPolicy and the context menu item.
     4
     5        We're leaving the parts that make us use PDFPlugin instead of showing the blocked
     6        plugin indicator intact, though.
     7
     8        * UIProcess/API/APILoaderClient.h:
     9        (API::LoaderClient::pluginLoadPolicy):
     10        * UIProcess/API/C/WKPage.cpp:
     11        (WKPageSetPageLoaderClient):
     12        * UIProcess/API/C/WKPageLoaderClient.h:
     13        * UIProcess/WebPageProxy.cpp:
     14        (WebKit::WebPageProxy::findPlugin):
     15        * UIProcess/WebPageProxy.h:
     16        * UIProcess/WebPageProxy.messages.in:
     17        * WebProcess/Plugins/PDF/PDFPlugin.h:
     18        * WebProcess/Plugins/PDF/PDFPlugin.mm:
     19        (WebKit::PDFPlugin::PDFPlugin):
     20        (WebKit::PDFPlugin::handleContextMenuEvent):
     21        * WebProcess/WebPage/WebPage.cpp:
     22        (WebKit::WebPage::createPlugin):
     23        (WebKit::WebPage::canPluginHandleResponse):
     24
    1252014-01-27  Anders Carlsson  <andersca@apple.com>
    226
  • trunk/Source/WebKit2/UIProcess/API/APILoaderClient.h

    r162673 r162883  
    9292
    9393#if ENABLE(NETSCAPE_PLUGIN_API)
    94     virtual WebKit::PluginModuleLoadPolicy pluginLoadPolicy(WebKit::WebPageProxy*, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, WebKit::ImmutableDictionary*, WTF::String& unavailabilityDescription, WTF::String& useBlockedPluginTitle) { return currentPluginLoadPolicy; }
     94    virtual WebKit::PluginModuleLoadPolicy pluginLoadPolicy(WebKit::WebPageProxy*, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, WebKit::ImmutableDictionary*, WTF::String& unavailabilityDescription) { return currentPluginLoadPolicy; }
    9595    virtual void didFailToInitializePlugin(WebKit::WebPageProxy*, WebKit::ImmutableDictionary*) { }
    9696    virtual void didBlockInsecurePluginVersion(WebKit::WebPageProxy*, WebKit::ImmutableDictionary*) { }
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r162728 r162883  
    932932        }
    933933
    934         virtual PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy* page, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary* pluginInformation, String& unavailabilityDescription, String& useBlockedPluginTitle) override
     934        virtual PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy* page, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary* pluginInformation, String& unavailabilityDescription) override
    935935        {
    936936            WKStringRef unavailabilityDescriptionOut = 0;
    937             WKStringRef useBlockedPluginTitleOut = 0;
    938937            PluginModuleLoadPolicy loadPolicy = currentPluginLoadPolicy;
    939938
    940939            if (m_client.pluginLoadPolicy_deprecatedForUseWithV2)
    941940                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client.base.clientInfo));
    942             else if (m_client.pluginLoadPolicy_deprecatedForUseWithV3)
    943                 loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV3(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &unavailabilityDescriptionOut, m_client.base.clientInfo));
    944941            else if (m_client.pluginLoadPolicy)
    945                 loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &unavailabilityDescriptionOut, &useBlockedPluginTitleOut, m_client.base.clientInfo));
     942                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &unavailabilityDescriptionOut, m_client.base.clientInfo));
    946943
    947944            if (unavailabilityDescriptionOut) {
    948945                RefPtr<API::String> webUnavailabilityDescription = adoptRef(toImpl(unavailabilityDescriptionOut));
    949946                unavailabilityDescription = webUnavailabilityDescription->string();
    950             }
    951 
    952             if (useBlockedPluginTitleOut) {
    953                 RefPtr<API::String> webUseBlockedPluginTitle = adoptRef(toImpl(useBlockedPluginTitleOut));
    954                 useBlockedPluginTitle = webUseBlockedPluginTitle->string();
    955947            }
    956948           
  • trunk/Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h

    r162629 r162883  
    7272typedef void (*WKPageWillGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, WKTypeRef userData, const void *clientInfo);
    7373typedef void (*WKPageDidLayoutCallback)(WKPageRef page, WKLayoutMilestones milestones, WKTypeRef userData, const void *clientInfo);
    74 typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, WKStringRef* unavailabilityDescription, WKStringRef* useBlockedPluginTitle, const void* clientInfo);
     74typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, WKStringRef* unavailabilityDescription, const void* clientInfo);
    7575typedef void (*WKPagePluginDidFailCallback)(WKPageRef page, WKErrorCode errorCode, WKDictionaryRef pluginInfoDictionary, const void* clientInfo);
    7676typedef WKWebGLLoadPolicy (*WKPageWebGLLoadPolicyCallback)(WKPageRef page, WKStringRef url, const void* clientInfo);
     
    8080typedef void (*WKPagePluginDidFailCallback_deprecatedForUseWithV1)(WKPageRef page, WKErrorCode errorCode, WKStringRef mimeType, WKStringRef pluginIdentifier, WKStringRef pluginVersion, const void* clientInfo);
    8181typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback_deprecatedForUseWithV2)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, const void* clientInfo);
    82 typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback_deprecatedForUseWithV3)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, WKStringRef* unavailabilityDescription, const void* clientInfo);
    8382
    8483typedef struct WKPageLoaderClientBase {
     
    273272
    274273    // Version 3.
    275     WKPagePluginLoadPolicyCallback_deprecatedForUseWithV3               pluginLoadPolicy_deprecatedForUseWithV3;
     274    WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;
    276275} WKPageLoaderClientV3;
    277276
     
    329328   
    330329    // Version 3.
    331     WKPagePluginLoadPolicyCallback_deprecatedForUseWithV3               pluginLoadPolicy_deprecatedForUseWithV3;
    332    
    333     // Version 4.
     330    WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;
     331   
     332    // Version 4
    334333    WKPageWebGLLoadPolicyCallback                                       webGLLoadPolicy;
    335     WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;
    336334} WKPageLoaderClientV4;
    337335
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r162721 r162883  
    13391339
    13401340#if ENABLE(NETSCAPE_PLUGIN_API)
    1341 void WebPageProxy::findPlugin(const String& mimeType, uint32_t processType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, uint64_t& pluginProcessToken, String& newMimeType, uint32_t& pluginLoadPolicy, String& unavailabilityDescription, String& useBlockedPluginTitle)
     1341void WebPageProxy::findPlugin(const String& mimeType, uint32_t processType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, uint64_t& pluginProcessToken, String& newMimeType, uint32_t& pluginLoadPolicy, String& unavailabilityDescription)
    13421342{
    13431343    MESSAGE_CHECK_URL(urlString);
     
    13571357#if PLATFORM(MAC)
    13581358    RefPtr<ImmutableDictionary> pluginInformation = createPluginInformationDictionary(plugin, frameURLString, String(), pageURLString, String(), String());
    1359     pluginLoadPolicy = m_loaderClient->pluginLoadPolicy(this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription, useBlockedPluginTitle);
     1359    pluginLoadPolicy = m_loaderClient->pluginLoadPolicy(this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription);
    13601360#else
    13611361    UNUSED_PARAM(frameURLString);
    13621362    UNUSED_PARAM(pageURLString);
    13631363    UNUSED_PARAM(unavailabilityDescription);
    1364     UNUSED_PARAM(useBlockedPluginTitle);
    13651364#endif
    13661365
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r162853 r162883  
    11661166
    11671167#if ENABLE(NETSCAPE_PLUGIN_API)
    1168     void findPlugin(const String& mimeType, uint32_t processType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, uint64_t& pluginProcessToken, String& newMIMEType, uint32_t& pluginLoadPolicy, String& unavailabilityDescription, String& useBlockedPluginTitle);
     1168    void findPlugin(const String& mimeType, uint32_t processType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, uint64_t& pluginProcessToken, String& newMIMEType, uint32_t& pluginLoadPolicy, String& unavailabilityDescription);
    11691169#endif
    11701170
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in

    r162653 r162883  
    335335
    336336#if ENABLE(NETSCAPE_PLUGIN_API)
    337     FindPlugin(String mimeType, uint32_t processType, String urlString, String frameURLString, String pageURLString, bool allowOnlyApplicationPlugins) -> (uint64_t pluginProcessToken, String newMIMEType, uint32_t pluginLoadPolicy, String unavailabilityDescription, String useBlockedPluginTitle)
     337    FindPlugin(String mimeType, uint32_t processType, String urlString, String frameURLString, String pageURLString, bool allowOnlyApplicationPlugins) -> (uint64_t pluginProcessToken, String newMIMEType, uint32_t pluginLoadPolicy, String unavailabilityDescription)
    338338#endif
    339339
  • trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h

    r162663 r162883  
    4747OBJC_CLASS PDFLayerController;
    4848OBJC_CLASS PDFSelection;
     49OBJC_CLASS WKPDFPluginAccessibilityObject;
    4950OBJC_CLASS WKPDFLayerControllerDelegate;
    50 OBJC_CLASS WKPDFPluginAccessibilityObject;
    51 OBJC_CLASS WKPDFPluginContextMenuTarget;
    5251
    5352namespace IPC {
     
    9089    void saveToPDF();
    9190    void openWithNativeApplication();
    92     void openWithPlugin();
    9391    void writeItemsToPasteboard(NSString *pasteboardName, NSArray *items, NSArray *types);
    9492    void showDefinitionForAttributedString(NSAttributedString *, CGPoint);
     
    105103   
    106104    bool showContextMenuAtPoint(const WebCore::IntPoint&);
    107 
    108     void setUsedInPlaceOfBlockedPlugin(bool value, const String& useBlockedPluginContextMenuTitle);
    109105
    110106private:
     
    262258    bool m_isPostScript;
    263259    bool m_pdfDocumentWasMutated;
    264     bool m_usedInPlaceOfBlockedPlugin;
    265 
    266     String m_useBlockedPluginContextMenuTitle;
    267260
    268261    WebCore::IntSize m_scrollOffset;
     
    275268    RetainPtr<PDFLayerController> m_pdfLayerController;
    276269    RetainPtr<WKPDFPluginAccessibilityObject> m_accessibilityObject;
    277     RetainPtr<WKPDFPluginContextMenuTarget> m_contextMenuTarget;
    278 
     270   
    279271    RefPtr<PDFPluginAnnotation> m_activeAnnotation;
    280272    RefPtr<PDFPluginPasswordField> m_passwordField;
  • trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm

    r162629 r162883  
    5656#import <WebCore/ArchiveResource.h>
    5757#import <WebCore/Chrome.h>
    58 #import <WebCore/ChromeClient.h>
    5958#import <WebCore/Cursor.h>
    6059#import <WebCore/DocumentLoader.h>
     
    6766#import <WebCore/HTMLElement.h>
    6867#import <WebCore/HTMLFormElement.h>
    69 #import <WebCore/HTMLPlugInElement.h>
    7068#import <WebCore/LocalizedStrings.h>
    7169#import <WebCore/MouseEvent.h>
     
    272270@end
    273271
    274 @interface WKPDFPluginContextMenuTarget : NSObject
    275 {
    276     WebKit::PDFPlugin* _pdfPlugin;
    277 }
    278 
    279 @property(assign) WebKit::PDFPlugin* pdfPlugin;
    280 
    281 - (id)initWithPDFPlugin:(WebKit::PDFPlugin *)plugin;
    282 
    283 @end
    284 
    285 @implementation WKPDFPluginContextMenuTarget
    286 
    287 @synthesize pdfPlugin = _pdfPlugin;
    288 
    289 - (id)initWithPDFPlugin:(WebKit::PDFPlugin *)plugin
    290 {
    291     if (!(self = [super init]))
    292         return nil;
    293 
    294     _pdfPlugin = plugin;
    295 
    296     return self;
    297 }
    298 
    299 - (void)useBlockedPlugin:(id)sender
    300 {
    301     _pdfPlugin->openWithPlugin();
    302 }
    303 
    304 @end
    305272
    306273@interface WKPDFPluginScrollbarLayer : CALayer
     
    533500    , m_isPostScript(false)
    534501    , m_pdfDocumentWasMutated(false)
    535     , m_usedInPlaceOfBlockedPlugin(false)
    536502    , m_containerLayer(adoptNS([[CALayer alloc] init]))
    537503    , m_contentLayer(adoptNS([[CALayer alloc] init]))
    538504    , m_scrollCornerLayer(adoptNS([[WKPDFPluginScrollbarLayer alloc] initWithPDFPlugin:this]))
    539505    , m_pdfLayerController(adoptNS([[pdfLayerControllerClass() alloc] init]))
    540     , m_contextMenuTarget(adoptNS([[WKPDFPluginContextMenuTarget alloc] initWithPDFPlugin:this]))
    541506    , m_pdfLayerControllerDelegate(adoptNS([[WKPDFLayerControllerDelegate alloc] initWithPDFPlugin:this]))
    542507{
     
    14931458   
    14941459    if (NSMenu *nsMenu = [m_pdfLayerController menuForEvent:nsEventForWebMouseEvent(event)]) {
    1495         if (m_usedInPlaceOfBlockedPlugin) {
    1496             String title = useBlockedPlugInContextMenuTitle();
    1497 
    1498             if (!m_useBlockedPluginContextMenuTitle.isEmpty())
    1499                 title = m_useBlockedPluginContextMenuTitle;
    1500 
    1501             NSMenuItem *useBlockedPluginItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(useBlockedPlugin:) keyEquivalent:@""] autorelease];
    1502 
    1503             [useBlockedPluginItem setTarget:m_contextMenuTarget.get()];
    1504             [nsMenu insertItem:useBlockedPluginItem atIndex:0];
    1505             [nsMenu insertItem:[NSMenuItem separatorItem] atIndex:1];
    1506         }
    15071460        WKPopupContextMenu(nsMenu, point);
    15081461        return true;
     
    16891642
    16901643    webFrame()->page()->send(Messages::WebPageProxy::OpenPDFFromTemporaryFolderWithNativeApplication(m_temporaryPDFUUID));
    1691 }
    1692 
    1693 void PDFPlugin::openWithPlugin()
    1694 {
    1695     webFrame()->page()->corePage()->chrome().client().unavailablePluginButtonClicked(pluginView()->pluginElement(), RenderEmbeddedObject::InsecurePluginVersion);
    16961644}
    16971645
     
    19361884}
    19371885
    1938 
    1939 void PDFPlugin::setUsedInPlaceOfBlockedPlugin(bool value, const String& useBlockedPluginContextMenuTitle)
    1940 {
    1941     m_usedInPlaceOfBlockedPlugin = value;
    1942     m_useBlockedPluginContextMenuTitle = useBlockedPluginContextMenuTitle;
    1943 }
    1944 
    19451886} // namespace WebKit
    19461887
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r162853 r162883  
    575575    uint32_t pluginLoadPolicy;
    576576    String unavailabilityDescription;
    577     String useBlockedPluginTitle;
    578     if (!sendSync(Messages::WebPageProxy::FindPlugin(parameters.mimeType, static_cast<uint32_t>(processType), parameters.url.string(), frameURLString, pageURLString, allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, useBlockedPluginTitle)))
     577    if (!sendSync(Messages::WebPageProxy::FindPlugin(parameters.mimeType, static_cast<uint32_t>(processType), parameters.url.string(), frameURLString, pageURLString, allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription)))
    579578        return nullptr;
    580579
     
    586585        if (shouldUsePDFPlugin() && (MIMETypeRegistry::isPDFOrPostScriptMIMEType(parameters.mimeType) || (parameters.mimeType.isEmpty() && (path.endsWith(".pdf", false) || path.endsWith(".ps", false))))) {
    587586            RefPtr<PDFPlugin> pdfPlugin = PDFPlugin::create(frame);
    588             pdfPlugin->setUsedInPlaceOfBlockedPlugin(isBlockedPlugin, useBlockedPluginTitle);
    589587            return pdfPlugin.release();
    590588        }
     
    37563754    String newMIMEType;
    37573755    String unavailabilityDescription;
    3758     String useBlockedPluginTitle;
    3759     if (!sendSync(Messages::WebPageProxy::FindPlugin(response.mimeType(), PluginProcessTypeNormal, response.url().string(), response.url().string(), response.url().string(), allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, useBlockedPluginTitle)))
     3756    if (!sendSync(Messages::WebPageProxy::FindPlugin(response.mimeType(), PluginProcessTypeNormal, response.url().string(), response.url().string(), response.url().string(), allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription)))
    37603757        return false;
    37613758
  • trunk/Tools/ChangeLog

    r162881 r162883  
     12014-01-27  Tim Horton  <timothy_horton@apple.com>
     2
     3        Revert the parts of r162629 that add a new pluginLoadPolicy and the context menu item.
     4
     5        We're leaving the parts that make us use PDFPlugin instead of showing the blocked
     6        plugin indicator intact, though.
     7
     8        * WebKitTestRunner/TestController.cpp:
     9        (WTR::TestController::createWebViewWithOptions):
     10
    1112014-01-27  Andy Estes  <aestes@apple.com>
    212
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r162729 r162883  
    460460        0, // pluginLoadPolicy_deprecatedForUseWithV2
    461461        0, // pluginDidFail
    462         0, // pluginLoadPolicy_deprecatedForUseWithV3
     462        0, // pluginLoadPolicy
    463463        0, // webGLLoadPolicy
    464         pluginLoadPolicy, // pluginLoadPolicy
    465464    };
    466465    WKPageSetPageLoaderClient(m_mainWebView->page(), &pageLoaderClient.base);
Note: See TracChangeset for help on using the changeset viewer.