Changeset 162670 in webkit


Ignore:
Timestamp:
Jan 23, 2014 6:00:12 PM (10 years ago)
Author:
andersca@apple.com
Message:

Add an APILoaderClient base class
https://bugs.webkit.org/show_bug.cgi?id=127527

Reviewed by Tim Horton.

  • UIProcess/API/APILoaderClient.h: Added.

(API::LoaderClient::~LoaderClient):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(setUpPageLoaderClient):
(-[WKBrowsingContextController setLoadDelegate:]):
(+[WKBrowsingContextController _browsingContextControllerForPageRef:]):

  • UIProcess/WebLoaderClient.cpp:

(WebKit::WebLoaderClient::WebLoaderClient):

  • UIProcess/WebLoaderClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setLoaderClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::findPlugin):
(WebKit::WebPageProxy::didStartProgress):
(WebKit::WebPageProxy::didChangeProgress):
(WebKit::WebPageProxy::didFinishProgress):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReceiveTitleForFrame):
(WebKit::WebPageProxy::didFirstLayoutForFrame):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
(WebKit::WebPageProxy::didLayout):
(WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::didDetectXSSForFrame):
(WebKit::WebPageProxy::webGLPolicyForURL):
(WebKit::WebPageProxy::processDidBecomeUnresponsive):
(WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive):
(WebKit::WebPageProxy::processDidBecomeResponsive):
(WebKit::WebPageProxy::processDidCrash):
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
(WebKit::WebPageProxy::didFailToInitializePlugin):
(WebKit::WebPageProxy::didBlockInsecurePluginVersion):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::loaderClient):

  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit2
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r162667 r162670  
     12014-01-23  Anders Carlsson  <andersca@apple.com>
     2
     3        Add an APILoaderClient base class
     4        https://bugs.webkit.org/show_bug.cgi?id=127527
     5
     6        Reviewed by Tim Horton.
     7
     8        * UIProcess/API/APILoaderClient.h: Added.
     9        (API::LoaderClient::~LoaderClient):
     10        * UIProcess/API/C/WKPage.cpp:
     11        (WKPageSetPageLoaderClient):
     12        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
     13        (setUpPageLoaderClient):
     14        (-[WKBrowsingContextController setLoadDelegate:]):
     15        (+[WKBrowsingContextController _browsingContextControllerForPageRef:]):
     16        * UIProcess/WebLoaderClient.cpp:
     17        (WebKit::WebLoaderClient::WebLoaderClient):
     18        * UIProcess/WebLoaderClient.h:
     19        * UIProcess/WebPageProxy.cpp:
     20        (WebKit::WebPageProxy::setLoaderClient):
     21        (WebKit::WebPageProxy::close):
     22        (WebKit::WebPageProxy::didChangeBackForwardList):
     23        (WebKit::WebPageProxy::willGoToBackForwardListItem):
     24        (WebKit::WebPageProxy::findPlugin):
     25        (WebKit::WebPageProxy::didStartProgress):
     26        (WebKit::WebPageProxy::didChangeProgress):
     27        (WebKit::WebPageProxy::didFinishProgress):
     28        (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
     29        (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
     30        (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
     31        (WebKit::WebPageProxy::didCommitLoadForFrame):
     32        (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
     33        (WebKit::WebPageProxy::didFinishLoadForFrame):
     34        (WebKit::WebPageProxy::didFailLoadForFrame):
     35        (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
     36        (WebKit::WebPageProxy::didReceiveTitleForFrame):
     37        (WebKit::WebPageProxy::didFirstLayoutForFrame):
     38        (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
     39        (WebKit::WebPageProxy::didLayout):
     40        (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
     41        (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
     42        (WebKit::WebPageProxy::didRunInsecureContentForFrame):
     43        (WebKit::WebPageProxy::didDetectXSSForFrame):
     44        (WebKit::WebPageProxy::webGLPolicyForURL):
     45        (WebKit::WebPageProxy::processDidBecomeUnresponsive):
     46        (WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive):
     47        (WebKit::WebPageProxy::processDidBecomeResponsive):
     48        (WebKit::WebPageProxy::processDidCrash):
     49        (WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
     50        (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
     51        (WebKit::WebPageProxy::didFailToInitializePlugin):
     52        (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
     53        * UIProcess/WebPageProxy.h:
     54        (WebKit::WebPageProxy::loaderClient):
     55        * WebKit2.xcodeproj/project.pbxproj:
     56
    1572014-01-23  Ryuan Choi  <ryuan.choi@samsung.com>
    258
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r162639 r162670  
    3434#include "WKPluginInformation.h"
    3535#include "WebBackForwardList.h"
     36#include "WebLoaderClient.h"
     37#include "WebPageMessages.h"
    3638#include "WebPageProxy.h"
    3739#include "WebPolicyClient.h"
     
    669671void WKPageSetPageLoaderClient(WKPageRef pageRef, const WKPageLoaderClientBase* wkClient)
    670672{
    671     toImpl(pageRef)->initializeLoaderClient(wkClient);
     673    WebPageProxy* webPageProxy = toImpl(pageRef);
     674
     675    auto loaderClient = std::make_unique<WebLoaderClient>(wkClient);
     676
     677    // It would be nice to get rid of this code and transition all clients to using didLayout instead of
     678    // didFirstLayoutInFrame and didFirstVisuallyNonEmptyLayoutInFrame. In the meantime, this is required
     679    // for backwards compatibility.
     680    WebCore::LayoutMilestones milestones = 0;
     681    if (loaderClient->client().didFirstLayoutForFrame)
     682        milestones |= WebCore::DidFirstLayout;
     683    if (loaderClient->client().didFirstVisuallyNonEmptyLayoutForFrame)
     684        milestones |= WebCore::DidFirstVisuallyNonEmptyLayout;
     685
     686    if (milestones)
     687        webPageProxy->process().send(Messages::WebPage::ListenForLayoutMilestones(milestones), webPageProxy->pageID());
     688
     689    webPageProxy->setLoaderClient(std::move(loaderClient));
    672690}
    673691
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm

    r162639 r162670  
    617617    loaderClient.didLayout = didLayout;
    618618
    619     page.initializeLoaderClient(&loaderClient.base);
     619    WKPageSetPageLoaderClient(toAPI(&page), &loaderClient.base);
    620620}
    621621
     
    729729        setUpPageLoaderClient(self, *_page);
    730730    else
    731         _page->initializeLoaderClient(nullptr);
     731        _page->setLoaderClient(nullptr);
    732732}
    733733
     
    808808+ (WKBrowsingContextController *)_browsingContextControllerForPageRef:(WKPageRef)pageRef
    809809{
    810     return (WKBrowsingContextController *)WebKit::toImpl(pageRef)->loaderClient().client().base.clientInfo;
     810    return (WKBrowsingContextController *)static_cast<const WebLoaderClient*>(WebKit::toImpl(pageRef)->loaderClient())->client().base.clientInfo;
    811811}
    812812
  • trunk/Source/WebKit2/UIProcess/WebLoaderClient.cpp

    r162653 r162670  
    3939namespace WebKit {
    4040
     41WebLoaderClient::WebLoaderClient(const WKPageLoaderClientBase* client)
     42{
     43    initialize(client);
     44}
     45
    4146void WebLoaderClient::didStartProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
    4247{
  • trunk/Source/WebKit2/UIProcess/WebLoaderClient.h

    r162653 r162670  
    2828
    2929#include "APIClient.h"
    30 #include "PluginModuleInfo.h"
    31 #include "SameDocumentNavigationType.h"
    32 #include "WKPage.h"
    33 #include <WebCore/FrameLoaderTypes.h>
    34 #include <WebCore/LayoutMilestones.h>
    35 #include <wtf/Forward.h>
    36 #include <wtf/RefPtr.h>
    37 #include <wtf/Vector.h>
     30#include "APILoaderClient.h"
     31#include "WKPageLoaderClient.h"
    3832
    3933namespace API {
     
    5953class WebProtectionSpace;
    6054
    61 class WebLoaderClient : public API::Client<WKPageLoaderClientBase> {
     55class WebLoaderClient : public API::Client<WKPageLoaderClientBase>, public API::LoaderClient {
    6256public:
    63     void didStartProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
    64     void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
    65     void didFailProvisionalLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&, API::Object*);
    66     void didCommitLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
    67     void didFinishDocumentLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
    68     void didFinishLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
    69     void didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&, API::Object*);
    70     void didSameDocumentNavigationForFrame(WebPageProxy*, WebFrameProxy*, SameDocumentNavigationType, API::Object*);
    71     void didReceiveTitleForFrame(WebPageProxy*, const String&, WebFrameProxy*, API::Object*);
    72     void didFirstLayoutForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
     57    explicit WebLoaderClient(const WKPageLoaderClientBase*);
     58
     59private:
     60    virtual void didStartProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
     61    virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
     62    virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&, API::Object*) override;
     63    virtual void didCommitLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
     64    virtual void didFinishDocumentLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
     65    virtual void didFinishLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
     66    virtual void didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&, API::Object*) override;
     67    virtual void didSameDocumentNavigationForFrame(WebPageProxy*, WebFrameProxy*, SameDocumentNavigationType, API::Object*) override;
     68    virtual void didReceiveTitleForFrame(WebPageProxy*, const WTF::String&, WebFrameProxy*, API::Object*) override;
     69    virtual void didFirstLayoutForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
    7370
    7471    // FIXME: We should consider removing didFirstVisuallyNonEmptyLayoutForFrame since it is replaced by didLayout.
    75     void didFirstVisuallyNonEmptyLayoutForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
     72    virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
    7673
    77     void didRemoveFrameFromHierarchy(WebPageProxy*, WebFrameProxy*, API::Object*);
    78     void didDisplayInsecureContentForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
    79     void didRunInsecureContentForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
    80     void didDetectXSSForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
     74    virtual void didRemoveFrameFromHierarchy(WebPageProxy*, WebFrameProxy*, API::Object*) override;
     75    virtual void didDisplayInsecureContentForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
     76    virtual void didRunInsecureContentForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
     77    virtual void didDetectXSSForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
    8178
    82     void didLayout(WebPageProxy*, WebCore::LayoutMilestones, API::Object*);
     79    virtual void didLayout(WebPageProxy*, WebCore::LayoutMilestones, API::Object*) override;
    8380   
    84     bool canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy*, WebFrameProxy*, WebProtectionSpace*);
    85     void didReceiveAuthenticationChallengeInFrame(WebPageProxy*, WebFrameProxy*, AuthenticationChallengeProxy*);
     81    bool canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy*, WebFrameProxy*, WebProtectionSpace*) override;
     82    virtual void didReceiveAuthenticationChallengeInFrame(WebPageProxy*, WebFrameProxy*, AuthenticationChallengeProxy*) override;
    8683
    87     void didStartProgress(WebPageProxy*);
    88     void didChangeProgress(WebPageProxy*);
    89     void didFinishProgress(WebPageProxy*);
     84    virtual void didStartProgress(WebPageProxy*) override;
     85    virtual void didChangeProgress(WebPageProxy*) override;
     86    virtual void didFinishProgress(WebPageProxy*) override;
    9087
    9188    // FIXME: These three functions should not be part of this client.
    92     void processDidBecomeUnresponsive(WebPageProxy*);
    93     void interactionOccurredWhileProcessUnresponsive(WebPageProxy*);
    94     void processDidBecomeResponsive(WebPageProxy*);
    95     void processDidCrash(WebPageProxy*);
     89    virtual void processDidBecomeUnresponsive(WebPageProxy*) override;
     90    virtual void interactionOccurredWhileProcessUnresponsive(WebPageProxy*) override;
     91    virtual void processDidBecomeResponsive(WebPageProxy*) override;
     92    virtual void processDidCrash(WebPageProxy*) override;
    9693
    97     void didChangeBackForwardList(WebPageProxy*, WebBackForwardListItem* addedItem, Vector<RefPtr<API::Object>>* removedItems);
    98     void willGoToBackForwardListItem(WebPageProxy*, WebBackForwardListItem*, API::Object*);
     94    virtual void didChangeBackForwardList(WebPageProxy*, WebBackForwardListItem* addedItem, Vector<RefPtr<API::Object>>* removedItems) override;
     95    virtual void willGoToBackForwardListItem(WebPageProxy*, WebBackForwardListItem*, API::Object*) override;
    9996
    10097#if ENABLE(NETSCAPE_PLUGIN_API)
    101     PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy*, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary*, String& unavailabilityDescription, String& useBlockedPluginTitle);
    102     void didFailToInitializePlugin(WebPageProxy*, ImmutableDictionary*);
    103     void didBlockInsecurePluginVersion(WebPageProxy*, ImmutableDictionary*);
     98    PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy*, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary*, WTF::String& unavailabilityDescription, WTF::String& useBlockedPluginTitle) override;
     99    virtual void didFailToInitializePlugin(WebPageProxy*, ImmutableDictionary*) override;
     100    virtual void didBlockInsecurePluginVersion(WebPageProxy*, ImmutableDictionary*) override;
    104101#endif // ENABLE(NETSCAPE_PLUGIN_API)
    105102
    106103#if ENABLE(WEBGL)
    107     WebCore::WebGLLoadPolicy webGLLoadPolicy(WebPageProxy*, const String&) const;
     104    WebCore::WebGLLoadPolicy webGLLoadPolicy(WebPageProxy*, const WTF::String&) const;
    108105#endif // ENABLE(WEBGL)
    109106};
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r162653 r162670  
    2929
    3030#include "APIArray.h"
     31#include "APILoaderClient.h"
     32#include "APIPolicyClient.h"
    3133#include "APIURLRequest.h"
    3234#include "AuthenticationChallengeProxy.h"
     
    399401}
    400402
    401 void WebPageProxy::initializeLoaderClient(const WKPageLoaderClientBase* loadClient)
    402 {
    403     m_loaderClient.initialize(loadClient);
    404    
    405     if (!loadClient)
    406         return;
    407 
    408     // It would be nice to get rid of this code and transition all clients to using didLayout instead of
    409     // didFirstLayoutInFrame and didFirstVisuallyNonEmptyLayoutInFrame. In the meantime, this is required
    410     // for backwards compatibility.
    411     WebCore::LayoutMilestones milestones = 0;
    412     if (m_loaderClient.client().didFirstLayoutForFrame)
    413         milestones |= WebCore::DidFirstLayout;
    414     if (m_loaderClient.client().didFirstVisuallyNonEmptyLayoutForFrame)
    415         milestones |= WebCore::DidFirstVisuallyNonEmptyLayout;
    416 
    417     if (milestones)
    418         m_process->send(Messages::WebPage::ListenForLayoutMilestones(milestones), m_pageID);
     403void WebPageProxy::setLoaderClient(std::unique_ptr<API::LoaderClient> loaderClient)
     404{
     405    m_loaderClient = std::move(loaderClient);
    419406}
    420407
     
    558545    resetState();
    559546
    560     m_loaderClient.initialize(0);
     547    m_loaderClient = nullptr;
    561548    m_policyClient = nullptr;
    562549    m_formClient.initialize(0);
     
    831818void WebPageProxy::didChangeBackForwardList(WebBackForwardListItem* added, Vector<RefPtr<API::Object>>* removed)
    832819{
    833     m_loaderClient.didChangeBackForwardList(this, added, removed);
     820    if (m_loaderClient)
     821        m_loaderClient->didChangeBackForwardList(this, added, removed);
    834822}
    835823
     
    841829        return;
    842830
    843     if (WebBackForwardListItem* item = m_process->webBackForwardItem(itemID))
    844         m_loaderClient.willGoToBackForwardListItem(this, item, userData.get());
     831    if (WebBackForwardListItem* item = m_process->webBackForwardItem(itemID)) {
     832        if (m_loaderClient)
     833            m_loaderClient->willGoToBackForwardListItem(this, item, userData.get());
     834    }
    845835}
    846836
     
    13371327#if PLATFORM(MAC)
    13381328    RefPtr<ImmutableDictionary> pluginInformation = createPluginInformationDictionary(plugin, frameURLString, String(), pageURLString, String(), String());
    1339     pluginLoadPolicy = m_loaderClient.pluginLoadPolicy(this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription, useBlockedPluginTitle);
     1329    if (m_loaderClient)
     1330        pluginLoadPolicy = m_loaderClient->pluginLoadPolicy(this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription, useBlockedPluginTitle);
    13401331#else
    13411332    UNUSED_PARAM(frameURLString);
     
    20732064
    20742065    m_pageLoadState.commitChanges();
    2075     m_loaderClient.didStartProgress(this);
     2066    if (m_loaderClient)
     2067        m_loaderClient->didStartProgress(this);
    20762068}
    20772069
     
    20822074
    20832075    m_pageLoadState.commitChanges();
    2084     m_loaderClient.didChangeProgress(this);
     2076    if (m_loaderClient)
     2077        m_loaderClient->didChangeProgress(this);
    20852078}
    20862079
     
    20912084
    20922085    m_pageLoadState.commitChanges();
    2093     m_loaderClient.didFinishProgress(this);
     2086    if (m_loaderClient)
     2087        m_loaderClient->didFinishProgress(this);
    20942088}
    20952089
     
    21162110
    21172111    m_pageLoadState.commitChanges();
    2118     m_loaderClient.didStartProvisionalLoadForFrame(this, frame, userData.get());
     2112    if (m_loaderClient)
     2113        m_loaderClient->didStartProvisionalLoadForFrame(this, frame, userData.get());
    21192114}
    21202115
     
    21382133
    21392134    m_pageLoadState.commitChanges();
    2140     m_loaderClient.didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, userData.get());
     2135    if (m_loaderClient)
     2136        m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, userData.get());
    21412137}
    21422138
     
    21592155
    21602156    m_pageLoadState.commitChanges();
    2161     m_loaderClient.didFailProvisionalLoadWithErrorForFrame(this, frame, error, userData.get());
     2157    if (m_loaderClient)
     2158        m_loaderClient->didFailProvisionalLoadWithErrorForFrame(this, frame, error, userData.get());
    21622159}
    21632160
     
    22122209
    22132210    m_pageLoadState.commitChanges();
    2214     m_loaderClient.didCommitLoadForFrame(this, frame, userData.get());
     2211    if (m_loaderClient)
     2212        m_loaderClient->didCommitLoadForFrame(this, frame, userData.get());
    22152213}
    22162214
     
    22252223    MESSAGE_CHECK(frame);
    22262224
    2227     m_loaderClient.didFinishDocumentLoadForFrame(this, frame, userData.get());
     2225    if (m_loaderClient)
     2226        m_loaderClient->didFinishDocumentLoadForFrame(this, frame, userData.get());
    22282227}
    22292228
     
    22462245
    22472246    m_pageLoadState.commitChanges();
    2248     m_loaderClient.didFinishLoadForFrame(this, frame, userData.get());
     2247    if (m_loaderClient)
     2248        m_loaderClient->didFinishLoadForFrame(this, frame, userData.get());
    22492249}
    22502250
     
    22692269
    22702270    m_pageLoadState.commitChanges();
    2271     m_loaderClient.didFailLoadWithErrorForFrame(this, frame, error, userData.get());
     2271    if (m_loaderClient)
     2272        m_loaderClient->didFailLoadWithErrorForFrame(this, frame, error, userData.get());
    22722273}
    22732274
     
    22922293
    22932294    m_pageLoadState.commitChanges();
    2294     m_loaderClient.didSameDocumentNavigationForFrame(this, frame, static_cast<SameDocumentNavigationType>(opaqueSameDocumentNavigationType), userData.get());
     2295    if (m_loaderClient)
     2296        m_loaderClient->didSameDocumentNavigationForFrame(this, frame, static_cast<SameDocumentNavigationType>(opaqueSameDocumentNavigationType), userData.get());
    22952297}
    22962298
     
    23132315   
    23142316    m_pageLoadState.commitChanges();
    2315     m_loaderClient.didReceiveTitleForFrame(this, title, frame, userData.get());
     2317    if (m_loaderClient)
     2318        m_loaderClient->didReceiveTitleForFrame(this, title, frame, userData.get());
    23162319}
    23172320
     
    23262329    MESSAGE_CHECK(frame);
    23272330
    2328     m_loaderClient.didFirstLayoutForFrame(this, frame, userData.get());
     2331    if (m_loaderClient)
     2332        m_loaderClient->didFirstLayoutForFrame(this, frame, userData.get());
    23292333}
    23302334
     
    23392343    MESSAGE_CHECK(frame);
    23402344
    2341     m_loaderClient.didFirstVisuallyNonEmptyLayoutForFrame(this, frame, userData.get());
     2345    if (m_loaderClient)
     2346        m_loaderClient->didFirstVisuallyNonEmptyLayoutForFrame(this, frame, userData.get());
    23422347}
    23432348
     
    23492354        return;
    23502355
    2351     m_loaderClient.didLayout(this, static_cast<LayoutMilestones>(layoutMilestones), userData.get());
     2356    if (m_loaderClient)
     2357        m_loaderClient->didLayout(this, static_cast<LayoutMilestones>(layoutMilestones), userData.get());
    23522358}
    23532359
     
    23622368    MESSAGE_CHECK(frame);
    23632369
    2364     m_loaderClient.didRemoveFrameFromHierarchy(this, frame, userData.get());
     2370    if (m_loaderClient)
     2371        m_loaderClient->didRemoveFrameFromHierarchy(this, frame, userData.get());
    23652372}
    23662373
     
    23792386
    23802387    m_pageLoadState.commitChanges();
    2381     m_loaderClient.didDisplayInsecureContentForFrame(this, frame, userData.get());
     2388    if (m_loaderClient)
     2389        m_loaderClient->didDisplayInsecureContentForFrame(this, frame, userData.get());
    23822390}
    23832391
     
    23962404
    23972405    m_pageLoadState.commitChanges();
    2398     m_loaderClient.didRunInsecureContentForFrame(this, frame, userData.get());
     2406    if (m_loaderClient)
     2407        m_loaderClient->didRunInsecureContentForFrame(this, frame, userData.get());
    23992408}
    24002409
     
    24092418    MESSAGE_CHECK(frame);
    24102419
    2411     m_loaderClient.didDetectXSSForFrame(this, frame, userData.get());
     2420    if (m_loaderClient)
     2421        m_loaderClient->didDetectXSSForFrame(this, frame, userData.get());
    24122422}
    24132423
     
    27002710void WebPageProxy::webGLPolicyForURL(const String& url, uint32_t& loadPolicy)
    27012711{
    2702     loadPolicy = static_cast<uint32_t>(m_loaderClient.webGLLoadPolicy(this, url));
     2712    if (!m_loaderClient)
     2713        loadPolicy = WebGLAllow;
     2714    else
     2715        loadPolicy = static_cast<uint32_t>(m_loaderClient->webGLLoadPolicy(this, url));
    27032716}
    27042717#endif // ENABLE(WEBGL)
     
    37303743    updateBackingStoreDiscardableState();
    37313744
    3732     m_loaderClient.processDidBecomeUnresponsive(this);
     3745    if (m_loaderClient)
     3746        m_loaderClient->processDidBecomeUnresponsive(this);
    37333747}
    37343748
     
    37383752        return;
    37393753
    3740     m_loaderClient.interactionOccurredWhileProcessUnresponsive(this);
     3754    if (m_loaderClient)
     3755        m_loaderClient->interactionOccurredWhileProcessUnresponsive(this);
    37413756}
    37423757
     
    37483763    updateBackingStoreDiscardableState();
    37493764
    3750     m_loaderClient.processDidBecomeResponsive(this);
     3765    if (m_loaderClient)
     3766        m_loaderClient->processDidBecomeResponsive(this);
    37513767}
    37523768
     
    37633779    m_pageClient.processDidCrash();
    37643780
    3765     m_loaderClient.processDidCrash(this);
     3781    if (m_loaderClient)
     3782        m_loaderClient->processDidCrash(this);
    37663783}
    37673784
     
    39613978
    39623979    RefPtr<WebProtectionSpace> protectionSpace = WebProtectionSpace::create(coreProtectionSpace);
    3963    
    3964     canAuthenticate = m_loaderClient.canAuthenticateAgainstProtectionSpaceInFrame(this, frame, protectionSpace.get());
     3980
     3981    if (!m_loaderClient)
     3982        canAuthenticate = false;
     3983    else
     3984        canAuthenticate = m_loaderClient->canAuthenticateAgainstProtectionSpaceInFrame(this, frame, protectionSpace.get());
    39653985}
    39663986
     
    39783998
    39793999    RefPtr<AuthenticationChallengeProxy> authenticationChallenge = prpAuthenticationChallenge;
    3980     m_loaderClient.didReceiveAuthenticationChallengeInFrame(this, frame, authenticationChallenge.get());
     4000    if (m_loaderClient)
     4001        m_loaderClient->didReceiveAuthenticationChallengeInFrame(this, frame, authenticationChallenge.get());
    39814002}
    39824003
     
    41364157void WebPageProxy::didFailToInitializePlugin(const String& mimeType, const String& frameURLString, const String& pageURLString)
    41374158{
    4138     m_loaderClient.didFailToInitializePlugin(this, createPluginInformationDictionary(mimeType, frameURLString, pageURLString).get());
     4159    if (m_loaderClient)
     4160        m_loaderClient->didFailToInitializePlugin(this, createPluginInformationDictionary(mimeType, frameURLString, pageURLString).get());
    41394161}
    41404162
     
    41554177#endif
    41564178
    4157     m_loaderClient.didBlockInsecurePluginVersion(this, pluginInformation.get());
     4179    if (m_loaderClient)
     4180        m_loaderClient->didBlockInsecurePluginVersion(this, pluginInformation.get());
    41584181}
    41594182#endif // ENABLE(NETSCAPE_PLUGIN_API)
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r162653 r162670  
    2828
    2929#include "APIObject.h"
    30 #include "APIPolicyClient.h"
    3130#include "APISession.h"
    3231#include "AutoCorrectionCallback.h"
     
    101100
    102101namespace API {
     102class LoaderClient;
     103class PolicyClient;
    103104class URLRequest;
    104105}
     
    368369    void initializeFindMatchesClient(const WKPageFindMatchesClientBase*);
    369370    void initializeFormClient(const WKPageFormClientBase*);
    370     void initializeLoaderClient(const WKPageLoaderClientBase*);
     371    void setLoaderClient(std::unique_ptr<API::LoaderClient>);
    371372    void setPolicyClient(std::unique_ptr<API::PolicyClient>);
    372373    void initializeUIClient(const WKPageUIClientBase*);
     
    834835#endif
    835836
    836     const WebLoaderClient& loaderClient() { return m_loaderClient; }
     837    const API::LoaderClient* loaderClient() { return m_loaderClient.get(); }
    837838
    838839    WebCore::IntSize minimumLayoutSize() const { return m_minimumLayoutSize; }
     
    11631164
    11641165    PageClient& m_pageClient;
    1165     WebLoaderClient m_loaderClient;
     1166    std::unique_ptr<API::LoaderClient> m_loaderClient;
    11661167    std::unique_ptr<API::PolicyClient> m_policyClient;
    11671168    WebFormClient m_formClient;
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r162650 r162670  
    113113                1A232902162C867300D82F7A /* MessageDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A232900162C867300D82F7A /* MessageDecoder.cpp */; };
    114114                1A232903162C867300D82F7A /* MessageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A232901162C867300D82F7A /* MessageDecoder.h */; };
     115                1A2464F31891E45100234C5B /* APILoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2464F21891E45100234C5B /* APILoaderClient.h */; };
    115116                1A24B5F211F531E800C38269 /* MachUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A24B5F011F531E800C38269 /* MachUtilities.cpp */; };
    116117                1A24B5F311F531E800C38269 /* MachUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A24B5F111F531E800C38269 /* MachUtilities.h */; };
     
    17371738                1A232900162C867300D82F7A /* MessageDecoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessageDecoder.cpp; sourceTree = "<group>"; };
    17381739                1A232901162C867300D82F7A /* MessageDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageDecoder.h; sourceTree = "<group>"; };
     1740                1A2464F21891E45100234C5B /* APILoaderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APILoaderClient.h; sourceTree = "<group>"; };
    17391741                1A24B5F011F531E800C38269 /* MachUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MachUtilities.cpp; sourceTree = "<group>"; };
    17401742                1A24B5F111F531E800C38269 /* MachUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachUtilities.h; sourceTree = "<group>"; };
     
    50145016                                BC8A501311765F4500757573 /* cpp */,
    50155017                                BC111B47112F616900337BAB /* mac */,
     5018                                1A2464F21891E45100234C5B /* APILoaderClient.h */,
    50165019                                1AFDD3141891B54000153970 /* APIPolicyClient.h */,
    50175020                        );
     
    64066409                                33AA1067131F060000D4A575 /* WebCookieManagerProxyClient.h in Headers */,
    64076410                                3309344A1315B9220097A7BC /* WebCookieManagerProxyMessages.h in Headers */,
     6411                                1A2464F31891E45100234C5B /* APILoaderClient.h in Headers */,
    64086412                                BC1DD7B2114DC396005ADAF3 /* WebCoreArgumentCoders.h in Headers */,
    64096413                                512F589B12A8838800629530 /* WebCredential.h in Headers */,
Note: See TracChangeset for help on using the changeset viewer.