Changeset 185877 in webkit


Ignore:
Timestamp:
Jun 23, 2015, 10:28:20 AM (10 years ago)
Author:
beidson@apple.com
Message:

WKFrameInfo should have an accessor for the Frame's current security origin.
https://bugs.webkit.org/show_bug.cgi?id=146162

Reviewed by Dan Bernstein.

Source/WebKit2:

This patch:

  • Promotes _WKSecurityOrigin to API.
  • Makes the WKSecurityOrigin Cocoa API object work with API::SecurityOrigin.
  • Adds a WKSecurityOrigin accessor to WKFrameInfo.
  • Changes IPC messaging so every handler that calls out with a WKFrameInfo object gets a relevant SecurityOrigin to wrap.
  • Shared/API/APISecurityOrigin.h:

(API::SecurityOrigin::create):
(API::SecurityOrigin::SecurityOrigin):

  • Shared/API/Cocoa/WebKit.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toCopiedAPI):

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/SecurityOriginData.cpp:

(WebKit::SecurityOriginData::fromFrame):

  • Shared/SecurityOriginData.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::FrameInfo):

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::createNewPage):
(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):

  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerGetApplicationCacheOrigins):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetKeyValueStorageOrigins):

  • UIProcess/API/C/WKOriginDataManager.cpp:

(WKOriginDataManagerGetOrigins):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/C/WKResourceCacheManager.cpp:

(WKResourceCacheManagerGetCacheOrigins):

  • UIProcess/API/Cocoa/WKFrameInfo.h:
  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo securityOrigin]):

  • UIProcess/API/Cocoa/WKSecurityOrigin.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h.
  • UIProcess/API/Cocoa/WKSecurityOrigin.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm.

(-[WKSecurityOrigin dealloc]):
(-[WKSecurityOrigin description]):
(-[WKSecurityOrigin protocol]):
(-[WKSecurityOrigin host]):
(-[WKSecurityOrigin port]):
(-[WKSecurityOrigin _apiObject]):

  • UIProcess/API/Cocoa/WKSecurityOriginInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h.

(API::wrapper):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • UIProcess/API/Cocoa/_WKSecurityOrigin.h:
  • UIProcess/API/Cocoa/_WKSecurityOrigin.mm:

(-[_WKSecurityOrigin _initWithSecurityOrigin:]): Deleted.
(-[_WKSecurityOrigin protocol]): Deleted.
(-[_WKSecurityOrigin host]): Deleted.
(-[_WKSecurityOrigin port]): Deleted.

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota):

  • UIProcess/UserContent/WebScriptMessageHandler.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::didPostMessage):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseSync):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserMessageHandlerDescriptorProxy::didPostMessage):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm: Added.

(sawDialog):
(-[ModalAlertsUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(-[ModalAlertsUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[ModalAlertsUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[ModalAlertsUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):
(TEST):

Location:
trunk
Files:
2 added
39 edited
2 copied
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r185876 r185877  
     12015-06-23  Brady Eidson  <beidson@apple.com>
     2
     3        WKFrameInfo should have an accessor for the Frame's current security origin.
     4        https://bugs.webkit.org/show_bug.cgi?id=146162
     5
     6        Reviewed by Dan Bernstein.
     7
     8        This patch:
     9        - Promotes _WKSecurityOrigin to API.
     10        - Makes the WKSecurityOrigin Cocoa API object work with API::SecurityOrigin.
     11        - Adds a WKSecurityOrigin accessor to WKFrameInfo.
     12        - Changes IPC messaging so every handler that calls out with a WKFrameInfo object
     13          gets a relevant SecurityOrigin to wrap.
     14
     15        * Shared/API/APISecurityOrigin.h:
     16        (API::SecurityOrigin::create):
     17        (API::SecurityOrigin::SecurityOrigin):
     18
     19        * Shared/API/Cocoa/WebKit.h:
     20
     21        * Shared/API/c/WKSharedAPICast.h:
     22        (WebKit::toCopiedAPI):
     23
     24        * Shared/Cocoa/APIObject.mm:
     25        (API::Object::newObject):
     26
     27        * Shared/SecurityOriginData.cpp:
     28        (WebKit::SecurityOriginData::fromFrame):
     29        * Shared/SecurityOriginData.h:
     30
     31        * UIProcess/API/APIFrameInfo.cpp:
     32        (API::FrameInfo::FrameInfo):
     33        * UIProcess/API/APIFrameInfo.h:
     34
     35        * UIProcess/API/APINavigationClient.h:
     36        (API::NavigationClient::didFailProvisionalLoadInSubframeWithError):
     37
     38        * UIProcess/API/APIUIClient.h:
     39        (API::UIClient::createNewPage):
     40        (API::UIClient::runJavaScriptAlert):
     41        (API::UIClient::runJavaScriptConfirm):
     42        (API::UIClient::runJavaScriptPrompt):
     43
     44        * UIProcess/API/C/WKApplicationCacheManager.cpp:
     45        (WKApplicationCacheManagerGetApplicationCacheOrigins):
     46
     47        * UIProcess/API/C/WKKeyValueStorageManager.cpp:
     48        (WKKeyValueStorageManagerGetKeyValueStorageOrigins):
     49
     50        * UIProcess/API/C/WKOriginDataManager.cpp:
     51        (WKOriginDataManagerGetOrigins):
     52
     53        * UIProcess/API/C/WKPage.cpp:
     54        (WKPageSetPageUIClient):
     55        (WKPageSetPageNavigationClient):
     56
     57        * UIProcess/API/C/WKResourceCacheManager.cpp:
     58        (WKResourceCacheManagerGetCacheOrigins):
     59
     60        * UIProcess/API/Cocoa/WKFrameInfo.h:
     61        * UIProcess/API/Cocoa/WKFrameInfo.mm:
     62        (-[WKFrameInfo securityOrigin]):
     63
     64        * UIProcess/API/Cocoa/WKSecurityOrigin.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h.
     65        * UIProcess/API/Cocoa/WKSecurityOrigin.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm.
     66        (-[WKSecurityOrigin dealloc]):
     67        (-[WKSecurityOrigin description]):
     68        (-[WKSecurityOrigin protocol]):
     69        (-[WKSecurityOrigin host]):
     70        (-[WKSecurityOrigin port]):
     71        (-[WKSecurityOrigin _apiObject]):
     72        * UIProcess/API/Cocoa/WKSecurityOriginInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h.
     73        (API::wrapper):
     74
     75        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
     76
     77        * UIProcess/API/Cocoa/WKUserContentController.mm:
     78
     79        * UIProcess/API/Cocoa/_WKSecurityOrigin.h:
     80        * UIProcess/API/Cocoa/_WKSecurityOrigin.mm:
     81        (-[_WKSecurityOrigin _initWithSecurityOrigin:]): Deleted.
     82        (-[_WKSecurityOrigin protocol]): Deleted.
     83        (-[_WKSecurityOrigin host]): Deleted.
     84        (-[_WKSecurityOrigin port]): Deleted.
     85
     86        * UIProcess/Cocoa/NavigationState.h:
     87        * UIProcess/Cocoa/NavigationState.mm:
     88        (WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError):
     89
     90        * UIProcess/Cocoa/UIDelegate.h:
     91        * UIProcess/Cocoa/UIDelegate.mm:
     92        (WebKit::UIDelegate::UIClient::createNewPage):
     93        (WebKit::UIDelegate::UIClient::runJavaScriptAlert):
     94        (WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
     95        (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
     96        (WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
     97        (WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota):
     98
     99        * UIProcess/UserContent/WebScriptMessageHandler.h:
     100
     101        * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
     102        (WebKit::WebUserContentControllerProxy::didPostMessage):
     103        * UIProcess/UserContent/WebUserContentControllerProxy.h:
     104        * UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
     105
     106        * UIProcess/WebPageProxy.cpp:
     107        (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
     108        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     109        (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
     110        (WebKit::WebPageProxy::decidePolicyForResponse):
     111        (WebKit::WebPageProxy::decidePolicyForResponseSync):
     112        (WebKit::WebPageProxy::createNewPage):
     113        (WebKit::WebPageProxy::runJavaScriptAlert):
     114        (WebKit::WebPageProxy::runJavaScriptConfirm):
     115        (WebKit::WebPageProxy::runJavaScriptPrompt):
     116        * UIProcess/WebPageProxy.h:
     117        * UIProcess/WebPageProxy.messages.in:
     118
     119        * WebKit2.xcodeproj/project.pbxproj:
     120
     121        * WebProcess/UserContent/WebUserContentController.cpp:
     122        (WebKit::WebUserMessageHandlerDescriptorProxy::didPostMessage):
     123
     124        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     125        (WebKit::WebChromeClient::createWindow):
     126        (WebKit::WebChromeClient::runJavaScriptAlert):
     127        (WebKit::WebChromeClient::runJavaScriptConfirm):
     128        (WebKit::WebChromeClient::runJavaScriptPrompt):
     129
     130        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     131        (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
     132        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
     133        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
     134        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
     135
    11362015-06-23  Dan Bernstein  <mitz@apple.com>
    2137
  • trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h

    r185637 r185877  
    4545    }
    4646
    47     static RefPtr<SecurityOrigin> create(PassRefPtr<WebCore::SecurityOrigin> securityOrigin)
     47    static RefPtr<SecurityOrigin> create(const WebCore::SecurityOrigin& securityOrigin)
    4848    {
    49         if (!securityOrigin)
    50             return nullptr;
    5149        return adoptRef(new SecurityOrigin(securityOrigin));
    5250    }
     
    6058    }
    6159
     60    SecurityOrigin(const WebCore::SecurityOrigin& securityOrigin)
     61        : m_securityOrigin(securityOrigin.isolatedCopy())
     62    {
     63    }
     64
    6265    RefPtr<WebCore::SecurityOrigin> m_securityOrigin;
    6366};
  • trunk/Source/WebKit2/Shared/API/Cocoa/WebKit.h

    r182873 r185877  
    3737#import <WebKit/WKScriptMessage.h>
    3838#import <WebKit/WKScriptMessageHandler.h>
     39#import <WebKit/WKSecurityOrigin.h>
    3940#import <WebKit/WKUIDelegate.h>
    4041#import <WebKit/WKUserContentController.h>
  • trunk/Source/WebKit2/Shared/API/c/WKSharedAPICast.h

    r183410 r185877  
    216216    if (!origin)
    217217        return 0;
    218     return toAPI(API::SecurityOrigin::create(origin).leakRef());
     218    return toAPI(API::SecurityOrigin::create(*origin).leakRef());
    219219}
    220220
  • trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm

    r182873 r185877  
    4949#import "WKPreferencesInternal.h"
    5050#import "WKProcessPoolInternal.h"
     51#import "WKSecurityOriginInternal.h"
    5152#import "WKUserContentControllerInternal.h"
    5253#import "WKUserScriptInternal.h"
     
    173174        break;
    174175
     176    case Type::SecurityOrigin:
     177        wrapper = [WKSecurityOrigin alloc];
     178        break;
     179
    175180    case Type::String:
    176181        wrapper = NSAllocateObject([WKNSString class], size, nullptr);
  • trunk/Source/WebKit2/Shared/SecurityOriginData.cpp

    r185631 r185877  
    2828
    2929#include "APIArray.h"
     30#include "APISecurityOrigin.h"
    3031#include "WebCoreArgumentCoders.h"
    31 #include "APISecurityOrigin.h"
     32#include "WebFrame.h"
     33#include <WebCore/Document.h>
     34#include <WebCore/Frame.h>
    3235#include <wtf/text/CString.h>
    3336
     
    4548
    4649    return securityOriginData;
     50}
     51
     52SecurityOriginData SecurityOriginData::fromFrame(WebFrame* frame)
     53{
     54    if (!frame)
     55        return SecurityOriginData();
     56   
     57    return SecurityOriginData::fromFrame(frame->coreFrame());
     58}
     59
     60SecurityOriginData SecurityOriginData::fromFrame(Frame* frame)
     61{
     62    if (!frame)
     63        return SecurityOriginData();
     64   
     65    Document* document = frame->document();
     66    if (!document)
     67        return SecurityOriginData();
     68
     69    SecurityOrigin* origin = document->securityOrigin();
     70    if (!origin)
     71        return SecurityOriginData();
     72   
     73    return SecurityOriginData::fromSecurityOrigin(*origin);
    4774}
    4875
  • trunk/Source/WebKit2/Shared/SecurityOriginData.h

    r185631 r185877  
    3636
    3737namespace WebCore {
     38class Frame;
    3839class SecurityOrigin;
    3940}
     
    4142namespace WebKit {
    4243
     44class WebFrame;
     45
    4346struct SecurityOriginData {
    4447    static SecurityOriginData fromSecurityOrigin(const WebCore::SecurityOrigin&);
     48    static SecurityOriginData fromFrame(WebFrame*);
     49    static SecurityOriginData fromFrame(WebCore::Frame*);
     50
    4551    Ref<WebCore::SecurityOrigin> securityOrigin() const;
    4652
  • trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.cpp

    r179328 r185877  
    3232
    3333// FIXME: This should use the full request of the frame, not just the URL.
    34 FrameInfo::FrameInfo(const WebKit::WebFrameProxy& frame)
     34FrameInfo::FrameInfo(const WebKit::WebFrameProxy& frame, const WebCore::SecurityOrigin& securityOrigin)
    3535    : m_isMainFrame(frame.isMainFrame())
    3636    , m_request(WebCore::ResourceRequest(frame.url()))
     37    , m_securityOrigin(adoptRef(*SecurityOrigin::create(securityOrigin).leakRef()))
    3738{
    3839}
  • trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.h

    r179328 r185877  
    2828
    2929#include "APIObject.h"
     30#include "APISecurityOrigin.h"
    3031#include <WebCore/ResourceRequest.h>
     32#include <WebCore/SecurityOrigin.h>
    3133
    3234namespace WebKit {
     
    3840class FrameInfo final : public ObjectImpl<Object::Type::FrameInfo> {
    3941public:
    40     static Ref<FrameInfo> create(const WebKit::WebFrameProxy& frame)
     42    static Ref<FrameInfo> create(const WebKit::WebFrameProxy& frame, const WebCore::SecurityOrigin& securityOrigin)
    4143    {
    42         return adoptRef(*new FrameInfo(frame));
     44        return adoptRef(*new FrameInfo(frame, securityOrigin));
    4345    }
    4446
    45     explicit FrameInfo(const WebKit::WebFrameProxy&);
     47    FrameInfo(const WebKit::WebFrameProxy&, const WebCore::SecurityOrigin&);
    4648
    4749    bool isMainFrame() const { return m_isMainFrame; }
    4850    const WebCore::ResourceRequest& request() const { return m_request; }
     51    SecurityOrigin& securityOrigin() { return m_securityOrigin.get(); }
    4952
    5053private:
    5154    bool m_isMainFrame;
    5255    WebCore::ResourceRequest m_request;
     56    Ref<SecurityOrigin> m_securityOrigin;
    5357};
    5458
  • trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h

    r179786 r185877  
    5151class WebProtectionSpace;
    5252struct NavigationActionData;
     53struct SecurityOriginData;
    5354struct WebNavigationDataStore;
    5455}
     
    6970    virtual void didReceiveServerRedirectForProvisionalNavigation(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
    7071    virtual void didFailProvisionalNavigationWithError(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
    71     virtual void didFailProvisionalLoadInSubframeWithError(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
     72    virtual void didFailProvisionalLoadInSubframeWithError(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebKit::SecurityOriginData&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
    7273    virtual void didCommitNavigation(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
    7374    virtual void didFinishDocumentLoad(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
  • trunk/Source/WebKit2/UIProcess/API/APIUIClient.h

    r185721 r185877  
    5757class WebPageProxy;
    5858struct NavigationActionData;
     59struct SecurityOriginData;
    5960}
    6061
     
    7071    virtual ~UIClient() { }
    7172
    72     virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) { return nullptr; }
     73    virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) { return nullptr; }
    7374    virtual void showPage(WebKit::WebPageProxy*) { }
    7475    virtual void fullscreenMayReturnToInline(WebKit::WebPageProxy*) { }
     
    8182    virtual void unfocus(WebKit::WebPageProxy*) { }
    8283
    83     virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) { completionHandler(); }
    84     virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (bool)> completionHandler) { completionHandler(false); }
    85     virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (const WTF::String&)> completionHandler) { completionHandler(WTF::String()); }
     84    virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void ()> completionHandler) { completionHandler(); }
     85    virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void (bool)> completionHandler) { completionHandler(false); }
     86    virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void (const WTF::String&)> completionHandler) { completionHandler(WTF::String()); }
    8687
    8788    virtual void setStatusText(WebKit::WebPageProxy*, const WTF::String&) { }
  • trunk/Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp

    r185817 r185877  
    4545        for (const auto& dataRecord : dataRecords) {
    4646            for (const auto& origin : dataRecord.origins)
    47                 securityOrigins.append(API::SecurityOrigin::create(origin));
     47                securityOrigins.append(API::SecurityOrigin::create(*origin));
    4848        }
    4949
  • trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp

    r185625 r185877  
    7474        webSecurityOrigins.reserveInitialCapacity(securityOrigins.size());
    7575        for (auto& origin : securityOrigins)
    76             webSecurityOrigins.uncheckedAppend(API::SecurityOrigin::create(origin));
     76            webSecurityOrigins.uncheckedAppend(API::SecurityOrigin::create(*origin));
    7777
    7878        callback(toAPI(API::Array::create(WTF::move(webSecurityOrigins)).ptr()), nullptr, context);
  • trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp

    r185474 r185877  
    4848        for (const auto& dataRecord : dataRecords) {
    4949            for (const auto& origin : dataRecord.origins)
    50                 securityOrigins.append(API::SecurityOrigin::create(origin));
     50                securityOrigins.append(API::SecurityOrigin::create(*origin));
    5151        }
    5252
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r185840 r185877  
    4949#include "PluginInformation.h"
    5050#include "PrintInfo.h"
     51#include "SecurityOriginData.h"
    5152#include "WKAPICast.h"
    5253#include "WKPagePolicyClientInternal.h"
     
    13341335
    13351336    private:
    1336         virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, WebFrameProxy*, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData) override
     1337        virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, WebFrameProxy*, const SecurityOriginData&, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData) override
    13371338        {
    13381339            if (!m_client.base.version && !m_client.createNewPage_deprecatedForUseWithV0)
     
    14081409        }
    14091410
    1410         virtual void runJavaScriptAlert(WebPageProxy* page, const String& message, WebFrameProxy* frame, std::function<void ()> completionHandler) override
     1411        virtual void runJavaScriptAlert(WebPageProxy* page, const String& message, WebFrameProxy* frame, const SecurityOriginData&, std::function<void ()> completionHandler) override
    14111412        {
    14121413            if (!m_client.runJavaScriptAlert) {
     
    14191420        }
    14201421
    1421         virtual void runJavaScriptConfirm(WebPageProxy* page, const String& message, WebFrameProxy* frame, std::function<void (bool)> completionHandler) override
     1422        virtual void runJavaScriptConfirm(WebPageProxy* page, const String& message, WebFrameProxy* frame, const SecurityOriginData&, std::function<void (bool)> completionHandler) override
    14221423        {
    14231424            if (!m_client.runJavaScriptConfirm) {
     
    14301431        }
    14311432
    1432         virtual void runJavaScriptPrompt(WebPageProxy* page, const String& message, const String& defaultValue, WebFrameProxy* frame, std::function<void (const String&)> completionHandler) override
     1433        virtual void runJavaScriptPrompt(WebPageProxy* page, const String& message, const String& defaultValue, WebFrameProxy* frame, const SecurityOriginData&, std::function<void (const String&)> completionHandler) override
    14331434        {
    14341435            if (!m_client.runJavaScriptPrompt) {
     
    18541855        }
    18551856
    1856         virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& subframe, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object* userData) override
     1857        virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& subframe, const WebKit::SecurityOriginData& securityOriginData, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object* userData) override
    18571858        {
    18581859            if (!m_client.didFailProvisionalLoadInSubframe)
    18591860                return;
    1860             m_client.didFailProvisionalLoadInSubframe(toAPI(&page), toAPI(navigation), toAPI(API::FrameInfo::create(subframe).ptr()), toAPI(error), toAPI(userData), m_client.base.clientInfo);
     1861            m_client.didFailProvisionalLoadInSubframe(toAPI(&page), toAPI(navigation), toAPI(API::FrameInfo::create(subframe, securityOriginData.securityOrigin()).ptr()), toAPI(error), toAPI(userData), m_client.base.clientInfo);
    18611862        }
    18621863
  • trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp

    r185529 r185877  
    5757        for (const auto& dataRecord : dataRecords) {
    5858            for (const auto& origin : dataRecord.origins)
    59                 securityOrigins.append(API::SecurityOrigin::create(origin));
     59                securityOrigins.append(API::SecurityOrigin::create(*origin));
    6060        }
    6161
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h

    r180162 r185877  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2014, 2015 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2929
    3030#import <Foundation/Foundation.h>
     31#import <WebKit/WKSecurityOrigin.h>
    3132
    3233/*! A WKFrameInfo object contains information about a frame on a webpage.
     
    4950@property (nonatomic, readonly, copy) NSURLRequest *request;
    5051
     52/*! @abstract The frame's current security origin.
     53 */
     54@property (nonatomic, readonly) WKSecurityOrigin *securityOrigin WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
     55
    5156@end
    5257
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.mm

    r179328 r185877  
    2929#if WK_API_ENABLED
    3030
     31#import "WKSecurityOriginInternal.h"
     32
    3133@implementation WKFrameInfo
    3234
     
    5355}
    5456
     57- (WKSecurityOrigin *)securityOrigin
     58{
     59    return wrapper(_frameInfo->securityOrigin());
     60}
     61
    5562- (id)copyWithZone:(NSZone *)zone
    5663{
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.h

    r185876 r185877  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2015 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3030#import <Foundation/Foundation.h>
    3131
    32 /*! A WKFrameInfo object contains information about a frame on a webpage.
     32/*! A WKSecurityOrigin object contains information about a security origin.
    3333 @discussion An instance of this class is a transient, data-only object;
    34  it does not uniquely identify a frame across multiple delegate method
     34 it does not uniquely identify a security origin across multiple delegate method
    3535 calls.
    3636 */
    3737WK_ASSUME_NONNULL_BEGIN
    3838
    39 WK_CLASS_AVAILABLE(10_10, 8_0)
    40 @interface WKFrameInfo : NSObject <NSCopying>
     39WK_CLASS_AVAILABLE(WK_MAC_TBA, WK_MAC_TBA)
     40@interface WKSecurityOrigin : NSObject
    4141
    42 /*! @abstract A Boolean value indicating whether the frame is the main frame
    43  or a subframe.
     42- (instancetype)init WK_UNAVAILABLE;
     43
     44/*! @abstract The security origin's protocol.
    4445 */
    45 @property (nonatomic, readonly, getter=isMainFrame) BOOL mainFrame;
     46@property (nonatomic, readonly, copy) NSString *protocol;
    4647
    47 /*! @abstract The frame's current request.
     48/*! @abstract The security origin's host.
    4849 */
    49 @property (nonatomic, readonly, copy) NSURLRequest *request;
     50@property (nonatomic, readonly, copy) NSString *host;
     51
     52/*! @abstract The security origin's port.
     53 */
     54@property (nonatomic, readonly) NSInteger port;
    5055
    5156@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm

    r185876 r185877  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2015 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2525
    2626#import "config.h"
    27 #import "WKFrameInfoInternal.h"
     27#import "WKSecurityOriginInternal.h"
    2828
    2929#if WK_API_ENABLED
    3030
    31 @implementation WKFrameInfo
     31#import <WebCore/ResourceRequest.h>
     32#import <WebCore/SecurityOrigin.h>
     33#import <wtf/RefPtr.h>
     34
     35@implementation WKSecurityOrigin
    3236
    3337- (void)dealloc
    3438{
    35     _frameInfo->~FrameInfo();
     39    _securityOrigin->~SecurityOrigin();
    3640
    3741    [super dealloc];
     
    4044- (NSString *)description
    4145{
    42     return [NSString stringWithFormat:@"<%@: %p; isMainFrame = %s; request = %@>", NSStringFromClass(self.class), self, self.mainFrame ? "YES" : "NO", self.request];
     46    return [NSString stringWithFormat:@"<%@: %p; protocol = %@; host = %@; port = %li>", NSStringFromClass(self.class), self, self.protocol, self.host, (long)self.port];
    4347}
    4448
    45 - (BOOL)isMainFrame
     49- (NSString *)protocol
    4650{
    47     return _frameInfo->isMainFrame();
     51    return _securityOrigin->securityOrigin().protocol();
    4852}
    4953
    50 - (NSURLRequest *)request
     54- (NSString *)host
    5155{
    52     return _frameInfo->request().nsURLRequest(WebCore::DoNotUpdateHTTPBody);
     56    return _securityOrigin->securityOrigin().host();
    5357}
    5458
    55 - (id)copyWithZone:(NSZone *)zone
     59- (NSInteger)port
    5660{
    57     return [self retain];
     61    return _securityOrigin->securityOrigin().port();
    5862}
    5963
     
    6266- (API::Object&)_apiObject
    6367{
    64     return *_frameInfo;
     68    return *_securityOrigin;
    6569}
    6670
    6771@end
    6872
    69 #endif
    70 
     73#endif // WK_API_ENABLED
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOriginInternal.h

    r185876 r185877  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2015 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #import "_WKSecurityOrigin.h"
     26#import "WKSecurityOrigin.h"
    2727
    2828#if WK_API_ENABLED
    2929
    30 #import <wtf/PassRefPtr.h>
     30#import "APISecurityOrigin.h"
    3131
    32 namespace WebCore {
    33 class SecurityOrigin;
     32namespace API {
     33
     34inline WKSecurityOrigin *wrapper(API::SecurityOrigin& securityOrigin)
     35{
     36    ASSERT([securityOrigin.wrapper() isKindOfClass:[WKSecurityOrigin self]]);
     37    return (WKSecurityOrigin *)securityOrigin.wrapper();
    3438}
    3539
    36 @interface _WKSecurityOrigin ()
     40}
    3741
    38 - (instancetype)_initWithSecurityOrigin:(const WebCore::SecurityOrigin&)origin;
    39 
     42@interface WKSecurityOrigin () <WKObject> {
     43@package
     44    API::ObjectStorage<API::SecurityOrigin> _securityOrigin;
     45}
    4046@end
    4147
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h

    r182975 r185877  
    2828#if WK_API_ENABLED
    2929
     30#import <WebKit/WKSecurityOrigin.h>
    3031#import <WebKit/_WKActivatedElementInfo.h>
    31 #import <WebKit/_WKSecurityOrigin.h>
    3232
    3333@class UIViewController;
     
    3939
    4040// FIXME: This should be handled by the WKWebsiteDataStore delegate.
    41 - (void)_webView:(WKWebView *)webView decideDatabaseQuotaForSecurityOrigin:(_WKSecurityOrigin *)securityOrigin currentQuota:(unsigned long long)currentQuota currentOriginUsage:(unsigned long long)currentOriginUsage currentDatabaseUsage:(unsigned long long)currentUsage expectedUsage:(unsigned long long)expectedUsage decisionHandler:(void (^)(unsigned long long newQuota))decisionHandler;
     41- (void)_webView:(WKWebView *)webView decideDatabaseQuotaForSecurityOrigin:(WKSecurityOrigin *)securityOrigin currentQuota:(unsigned long long)currentQuota currentOriginUsage:(unsigned long long)currentOriginUsage currentDatabaseUsage:(unsigned long long)currentUsage expectedUsage:(unsigned long long)expectedUsage decisionHandler:(void (^)(unsigned long long newQuota))decisionHandler;
    4242
    4343// FIXME: This should be handled by the WKWebsiteDataStore delegate.
    44 - (void)_webView:(WKWebView *)webView decideWebApplicationCacheQuotaForSecurityOrigin:(_WKSecurityOrigin *)securityOrigin currentQuota:(unsigned long long)currentQuota totalBytesNeeded:(unsigned long long)totalBytesNeeded decisionHandler:(void (^)(unsigned long long newQuota))decisionHandler;
     44- (void)_webView:(WKWebView *)webView decideWebApplicationCacheQuotaForSecurityOrigin:(WKSecurityOrigin *)securityOrigin currentQuota:(unsigned long long)currentQuota totalBytesNeeded:(unsigned long long)totalBytesNeeded decisionHandler:(void (^)(unsigned long long newQuota))decisionHandler;
    4545
    4646- (void)_webView:(WKWebView *)webView printFrame:(_WKFrameHandle *)frame;
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm

    r181200 r185877  
    2929#if WK_API_ENABLED
    3030
     31#import "SecurityOriginData.h"
    3132#import "WKFrameInfoInternal.h"
    3233#import "WKNSArray.h"
     
    8586    }
    8687   
    87     virtual void didPostMessage(WebKit::WebPageProxy& page, WebKit::WebFrameProxy& frame, WebCore::SerializedScriptValue& serializedScriptValue)
     88    virtual void didPostMessage(WebKit::WebPageProxy& page, WebKit::WebFrameProxy& frame, const WebKit::SecurityOriginData& securityOriginData, WebCore::SerializedScriptValue& serializedScriptValue)
    8889    {
    89         RetainPtr<WKFrameInfo> frameInfo = wrapper(API::FrameInfo::create(frame));
     90        RetainPtr<WKFrameInfo> frameInfo = wrapper(API::FrameInfo::create(frame, securityOriginData.securityOrigin()));
    9091
    9192        RetainPtr<JSContext> context = adoptNS([[JSContext alloc] init]);
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h

    r170303 r185877  
    2929
    3030#import <Foundation/Foundation.h>
     31#import <WebKit/WKSecurityOrigin.h>
    3132
    3233WK_CLASS_AVAILABLE(10_10, 8_0)
    33 @interface _WKSecurityOrigin : NSObject
    34 
    35 @property (nonatomic, readonly, copy) NSString *protocol;
    36 @property (nonatomic, readonly, copy) NSString *host;
    37 @property (nonatomic, readonly) unsigned short port;
    38 
     34@interface _WKSecurityOrigin : WKSecurityOrigin
    3935@end
    4036
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm

    r170320 r185877  
    2525
    2626#import "config.h"
    27 #import "_WKSecurityOriginInternal.h"
     27#import "_WKSecurityOrigin.h"
    2828
    2929#if WK_API_ENABLED
    3030
    31 #import <WebCore/SecurityOrigin.h>
    32 #import <wtf/RefPtr.h>
    33 
    34 @implementation _WKSecurityOrigin {
    35     RefPtr<WebCore::SecurityOrigin> _origin;
    36 }
    37 
    38 - (instancetype)_initWithSecurityOrigin:(const WebCore::SecurityOrigin&)origin
    39 {
    40     if (!(self = [super init]))
    41         return nil;
    42 
    43     _origin = origin.isolatedCopy();
    44     return self;
    45 }
    46 
    47 - (NSString *)protocol
    48 {
    49     return _origin->protocol();
    50 }
    51 
    52 - (NSString *)host
    53 {
    54     return _origin->host();
    55 }
    56 
    57 - (unsigned short)port
    58 {
    59     return _origin->port();
    60 }
    61 
     31@implementation _WKSecurityOrigin
    6232@end
    6333
  • trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h

    r185876 r185877  
    4949namespace WebKit {
    5050
     51struct SecurityOriginData;
    5152struct WebNavigationDataStore;
    5253
     
    8384        virtual void didReceiveServerRedirectForProvisionalNavigation(WebPageProxy&, API::Navigation*, API::Object*) override;
    8485        virtual void didFailProvisionalNavigationWithError(WebPageProxy&, WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
    85         virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy&, WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
     86        virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy&, WebFrameProxy&, const SecurityOriginData&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
    8687        virtual void didCommitNavigation(WebPageProxy&, API::Navigation*, API::Object*) override;
    8788        virtual void didFinishDocumentLoad(WebPageProxy&, API::Navigation*, API::Object*) override;
  • trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm

    r185876 r185877  
    3838#import "NavigationActionData.h"
    3939#import "PageLoadState.h"
     40#import "SecurityOriginData.h"
    4041#import "WKBackForwardListInternal.h"
    4142#import "WKBackForwardListItemInternal.h"
     
    450451
    451452// FIXME: Shouldn't need to pass the WebFrameProxy in here. At most, a FrameHandle.
    452 void NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object*)
     453void NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& webFrameProxy, const SecurityOriginData& securityOrigin, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object*)
    453454{
    454455    // FIXME: We should assert that navigation is not null here, but it's currently null because WebPageProxy::didFailProvisionalLoadForFrame passes null.
     
    463464    auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, webFrameProxy, error);
    464465
    465     [(id <WKNavigationDelegatePrivate>)navigationDelegate _webView:m_navigationState.m_webView navigation:nil didFailProvisionalLoadInSubframe:wrapper(API::FrameInfo::create(webFrameProxy)) withError:errorWithRecoveryAttempter.get()];
     466    [(id <WKNavigationDelegatePrivate>)navigationDelegate _webView:m_navigationState.m_webView navigation:nil didFailProvisionalLoadInSubframe:wrapper(API::FrameInfo::create(webFrameProxy, securityOrigin.securityOrigin())) withError:errorWithRecoveryAttempter.get()];
    466467}
    467468
  • trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h

    r185653 r185877  
    5959    private:
    6060        // API::UIClient
    61         virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) override;
     61        virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) override;
    6262        virtual void close(WebKit::WebPageProxy*) override;
    6363        virtual void fullscreenMayReturnToInline(WebKit::WebPageProxy*) override;
    6464        virtual void didEnterFullscreen(WebKit::WebPageProxy*) override;
    6565        virtual void didExitFullscreen(WebKit::WebPageProxy*) override;
    66         virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) override;
    67         virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (bool)> completionHandler) override;
    68         virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (const WTF::String&)> completionHandler) override;
     66        virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void ()> completionHandler) override;
     67        virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void (bool)> completionHandler) override;
     68        virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void (const WTF::String&)> completionHandler) override;
    6969        virtual void exceededDatabaseQuota(WebPageProxy*, WebFrameProxy*, API::SecurityOrigin*, const WTF::String& databaseName, const WTF::String& displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentUsage, unsigned long long expectedUsage, std::function<void (unsigned long long)>) override;
    7070        virtual void reachedApplicationCacheOriginQuota(WebPageProxy*, const WebCore::SecurityOrigin&, uint64_t currentQuota, uint64_t totalBytesNeeded, std::function<void (unsigned long long)> completionHandler) override;
  • trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm

    r185653 r185877  
    3131#import "CompletionHandlerCallChecker.h"
    3232#import "NavigationActionData.h"
     33#import "SecurityOriginData.h"
    3334#import "WKFrameInfoInternal.h"
    3435#import "WKNavigationActionInternal.h"
     36#import "WKSecurityOriginInternal.h"
    3537#import "WKWebViewConfigurationInternal.h"
    3638#import "WKWebViewInternal.h"
     
    3840#import "WKUIDelegatePrivate.h"
    3941#import "_WKFrameHandleInternal.h"
    40 #import "_WKSecurityOriginInternal.h"
    4142
    4243namespace WebKit {
     
    9293}
    9394
    94 PassRefPtr<WebKit::WebPageProxy> UIDelegate::UIClient::createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy* initiatingFrame, const WebCore::ResourceRequest& request, const WebCore::WindowFeatures& windowFeatures, const WebKit::NavigationActionData& navigationActionData)
     95PassRefPtr<WebKit::WebPageProxy> UIDelegate::UIClient::createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy* initiatingFrame, const WebKit::SecurityOriginData& securityOriginData, const WebCore::ResourceRequest& request, const WebCore::WindowFeatures& windowFeatures, const WebKit::NavigationActionData& navigationActionData)
    9596{
    9697    if (!m_uiDelegate.m_delegateMethods.webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures)
     
    104105    [configuration _setRelatedWebView:m_uiDelegate.m_webView];
    105106
    106     auto sourceFrameInfo = API::FrameInfo::create(*initiatingFrame);
     107    auto sourceFrameInfo = API::FrameInfo::create(*initiatingFrame, securityOriginData.securityOrigin());
    107108    auto navigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.ptr(), nullptr, request, WebCore::URL());
    108109
     
    118119}
    119120
    120 void UIDelegate::UIClient::runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, std::function<void ()> completionHandler)
     121void UIDelegate::UIClient::runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, const WebKit::SecurityOriginData& securityOriginData, std::function<void ()> completionHandler)
    121122{
    122123    if (!m_uiDelegate.m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler) {
     
    132133
    133134    RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:));
    134     [delegate webView:m_uiDelegate.m_webView runJavaScriptAlertPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy)) completionHandler:[completionHandler, checker] {
     135    [delegate webView:m_uiDelegate.m_webView runJavaScriptAlertPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:[completionHandler, checker] {
    135136        completionHandler();
    136137        checker->didCallCompletionHandler();
     
    138139}
    139140
    140 void UIDelegate::UIClient::runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, std::function<void (bool)> completionHandler)
     141void UIDelegate::UIClient::runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, const WebKit::SecurityOriginData& securityOriginData, std::function<void (bool)> completionHandler)
    141142{
    142143    if (!m_uiDelegate.m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler) {
     
    152153
    153154    RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:));
    154     [delegate webView:m_uiDelegate.m_webView runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy)) completionHandler:[completionHandler, checker](BOOL result) {
     155    [delegate webView:m_uiDelegate.m_webView runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:[completionHandler, checker](BOOL result) {
    155156        completionHandler(result);
    156157        checker->didCallCompletionHandler();
     
    158159}
    159160
    160 void UIDelegate::UIClient::runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String& message, const WTF::String& defaultValue, WebKit::WebFrameProxy* webFrameProxy, std::function<void (const WTF::String&)> completionHandler)
     161void UIDelegate::UIClient::runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String& message, const WTF::String& defaultValue, WebKit::WebFrameProxy* webFrameProxy, const WebKit::SecurityOriginData& securityOriginData, std::function<void (const WTF::String&)> completionHandler)
    161162{
    162163    if (!m_uiDelegate.m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler) {
     
    172173
    173174    RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:));
    174     [delegate webView:m_uiDelegate.m_webView runJavaScriptTextInputPanelWithPrompt:message defaultText:defaultValue initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy)) completionHandler:[completionHandler, checker](NSString *result) {
     175    [delegate webView:m_uiDelegate.m_webView runJavaScriptTextInputPanelWithPrompt:message defaultText:defaultValue initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:[completionHandler, checker](NSString *result) {
    175176        completionHandler(result);
    176177        checker->didCallCompletionHandler();
     
    191192    }
    192193
     194    ASSERT(securityOrigin);
    193195    RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:decideDatabaseQuotaForSecurityOrigin:currentQuota:currentOriginUsage:currentDatabaseUsage:expectedUsage:decisionHandler:));
    194     [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView decideDatabaseQuotaForSecurityOrigin:adoptNS([[_WKSecurityOrigin alloc] _initWithSecurityOrigin:securityOrigin->securityOrigin()]).get() currentQuota:currentQuota currentOriginUsage:currentOriginUsage currentDatabaseUsage:currentUsage expectedUsage:expectedUsage decisionHandler:[completionHandler, checker](unsigned long long newQuota) {
     196    [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView decideDatabaseQuotaForSecurityOrigin:wrapper(*securityOrigin) currentQuota:currentQuota currentOriginUsage:currentOriginUsage currentDatabaseUsage:currentUsage expectedUsage:expectedUsage decisionHandler:[completionHandler, checker](unsigned long long newQuota) {
    195197        checker->didCallCompletionHandler();
    196198        completionHandler(newQuota);
     
    212214
    213215    RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:decideWebApplicationCacheQuotaForSecurityOrigin:currentQuota:totalBytesNeeded:decisionHandler:));
    214     [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView decideWebApplicationCacheQuotaForSecurityOrigin:adoptNS([[_WKSecurityOrigin alloc] _initWithSecurityOrigin:securityOrigin]).get() currentQuota:currentQuota totalBytesNeeded:totalBytesNeeded decisionHandler:[completionHandler, checker](unsigned long long newQuota) {
     216    RefPtr<API::SecurityOrigin> apiOrigin = API::SecurityOrigin::create(securityOrigin);
     217   
     218    [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView decideWebApplicationCacheQuotaForSecurityOrigin:wrapper(*apiOrigin) currentQuota:currentQuota totalBytesNeeded:totalBytesNeeded decisionHandler:[completionHandler, checker](unsigned long long newQuota) {
    215219        checker->didCallCompletionHandler();
    216220        completionHandler(newQuota);
  • trunk/Source/WebKit2/UIProcess/UserContent/WebScriptMessageHandler.h

    r169023 r185877  
    4444class WebPageProxy;
    4545class WebFrameProxy;
     46struct SecurityOriginData;
    4647
    4748struct WebScriptMessageHandlerHandle {
     
    5859    public:
    5960        virtual ~Client() { }
    60         virtual void didPostMessage(WebPageProxy&, WebFrameProxy&, WebCore::SerializedScriptValue&) = 0;
     61        virtual void didPostMessage(WebPageProxy&, WebFrameProxy&, const SecurityOriginData&, WebCore::SerializedScriptValue&) = 0;
    6162    };
    6263
  • trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp

    r183105 r185877  
    158158}
    159159
    160 void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, uint64_t pageID, uint64_t frameID, uint64_t messageHandlerID, const IPC::DataReference& dataReference)
     160void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, uint64_t pageID, uint64_t frameID, const SecurityOriginData& securityOrigin, uint64_t messageHandlerID, const IPC::DataReference& dataReference)
    161161{
    162162    WebPageProxy* page = WebProcessProxy::webPage(pageID);
     
    179179    RefPtr<WebCore::SerializedScriptValue> value = WebCore::SerializedScriptValue::adopt(buffer);
    180180
    181     handler->client().didPostMessage(*page, *frame, *value);
    182 }
    183 
     181    handler->client().didPostMessage(*page, *frame, securityOrigin, *value);
     182}
    184183
    185184#if ENABLE(CONTENT_EXTENSIONS)
  • trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h

    r181200 r185877  
    5757class WebProcessProxy;
    5858class WebScriptMessageHandler;
     59struct SecurityOriginData;
    5960
    6061class WebUserContentControllerProxy : public API::ObjectImpl<API::Object::Type::UserContentController>, private IPC::MessageReceiver {
     
    9394    virtual void didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) override;
    9495
    95     void didPostMessage(IPC::Connection&, uint64_t pageID, uint64_t frameID, uint64_t messageHandlerID, const IPC::DataReference&);
     96    void didPostMessage(IPC::Connection&, uint64_t pageID, uint64_t frameID, const SecurityOriginData&, uint64_t messageHandlerID, const IPC::DataReference&);
    9697
    9798    uint64_t m_identifier;
  • trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.messages.in

    r169023 r185877  
    2525
    2626messages -> WebUserContentControllerProxy {
    27     DidPostMessage(uint64_t pageID, uint64_t frameID, uint64_t messageHandlerID, IPC::DataReference message) WantsConnection
     27    DidPostMessage(uint64_t pageID, uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, uint64_t messageHandlerID, IPC::DataReference message) WantsConnection
    2828}
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r185876 r185877  
    28762876}
    28772877
    2878 void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& provisionalURL, const ResourceError& error, const UserData& userData)
     2878void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const ResourceError& error, const UserData& userData)
    28792879{
    28802880    WebFrameProxy* frame = m_process->webFrame(frameID);
     
    29032903        else {
    29042904            // FIXME: Get the main frame's current navigation.
    2905             m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, nullptr, error, m_process->transformHandlesToObjects(userData.object()).get());
     2905            m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, frameSecurityOrigin, nullptr, error, m_process->transformHandlesToObjects(userData.object()).get());
    29062906        }
    29072907    } else
     
    32063206}
    32073207
    3208 void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, const NavigationActionData& navigationActionData, uint64_t originatingFrameID, const WebCore::ResourceRequest& originalRequest, const ResourceRequest& request, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& newNavigationID, uint64_t& policyAction, uint64_t& downloadID)
     3208void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const NavigationActionData& navigationActionData, uint64_t originatingFrameID, const SecurityOriginData& originatingFrameSecurityOrigin, const WebCore::ResourceRequest& originalRequest, const ResourceRequest& request, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& newNavigationID, uint64_t& policyAction, uint64_t& downloadID)
    32093209{
    32103210    auto transaction = m_pageLoadState.transaction();
     
    32453245
    32463246        if (frame)
    3247             destinationFrameInfo = API::FrameInfo::create(*frame);
     3247            destinationFrameInfo = API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin());
    32483248
    32493249        if (originatingFrame == frame)
    32503250            sourceFrameInfo = destinationFrameInfo;
    32513251        else if (originatingFrame)
    3252             sourceFrameInfo = API::FrameInfo::create(*originatingFrame);
     3252            sourceFrameInfo = API::FrameInfo::create(*originatingFrame, originatingFrameSecurityOrigin.securityOrigin());
    32533253
    32543254        auto navigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.get(), destinationFrameInfo.get(), request, originalRequest.url());
     
    32683268}
    32693269
    3270 void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData& navigationActionData, const ResourceRequest& request, const String& frameName, uint64_t listenerID, const UserData& userData)
     3270void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const NavigationActionData& navigationActionData, const ResourceRequest& request, const String& frameName, uint64_t listenerID, const UserData& userData)
    32713271{
    32723272    WebFrameProxy* frame = m_process->webFrame(frameID);
     
    32793279        RefPtr<API::FrameInfo> sourceFrameInfo;
    32803280        if (frame)
    3281             sourceFrameInfo = API::FrameInfo::create(*frame);
     3281            sourceFrameInfo = API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin());
    32823282
    32833283        auto navigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.get(), nullptr, request, request.url());
     
    32893289}
    32903290
    3291 void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
     3291void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
    32923292{
    32933293    WebFrameProxy* frame = m_process->webFrame(frameID);
     
    32993299
    33003300    if (m_navigationClient) {
    3301         auto navigationResponse = API::NavigationResponse::create(API::FrameInfo::create(*frame).get(), request, response, canShowMIMEType);
     3301        auto navigationResponse = API::NavigationResponse::create(API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin()).get(), request, response, canShowMIMEType);
    33023302        m_navigationClient->decidePolicyForNavigationResponse(*this, navigationResponse.get(), WTF::move(listener), m_process->transformHandlesToObjects(userData.object()).get());
    33033303    } else
     
    33053305}
    33063306
    3307 void WebPageProxy::decidePolicyForResponseSync(uint64_t frameID, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID)
     3307void WebPageProxy::decidePolicyForResponseSync(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID)
    33083308{
    33093309    ASSERT(!m_inDecidePolicyForResponseSync);
     
    33133313    m_syncMimeTypePolicyActionIsValid = false;
    33143314
    3315     decidePolicyForResponse(frameID, response, request, canShowMIMEType, listenerID, userData);
     3315    decidePolicyForResponse(frameID, frameSecurityOrigin, response, request, canShowMIMEType, listenerID, userData);
    33163316
    33173317    m_inDecidePolicyForResponseSync = false;
     
    34203420// UIClient
    34213421
    3422 void WebPageProxy::createNewPage(uint64_t frameID, const ResourceRequest& request, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
     3422void WebPageProxy::createNewPage(uint64_t frameID, const SecurityOriginData& securityOriginData, const ResourceRequest& request, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
    34233423{
    34243424    WebFrameProxy* frame = m_process->webFrame(frameID);
    34253425    MESSAGE_CHECK(frame);
    34263426
    3427     RefPtr<WebPageProxy> newPage = m_uiClient->createNewPage(this, frame, request, windowFeatures, navigationActionData);
     3427    RefPtr<WebPageProxy> newPage = m_uiClient->createNewPage(this, frame, securityOriginData, request, windowFeatures, navigationActionData);
    34283428    if (!newPage) {
    34293429        newPageID = 0;
     
    34663466}
    34673467
    3468 void WebPageProxy::runJavaScriptAlert(uint64_t frameID, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply> reply)
     3468void WebPageProxy::runJavaScriptAlert(uint64_t frameID, const SecurityOriginData& securityOrigin, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply> reply)
    34693469{
    34703470    WebFrameProxy* frame = m_process->webFrame(frameID);
     
    34743474    m_process->responsivenessTimer()->stop();
    34753475
    3476     m_uiClient->runJavaScriptAlert(this, message, frame, [reply]{ reply->send(); });
    3477 }
    3478 
    3479 void WebPageProxy::runJavaScriptConfirm(uint64_t frameID, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply> reply)
     3476    m_uiClient->runJavaScriptAlert(this, message, frame, securityOrigin, [reply]{ reply->send(); });
     3477}
     3478
     3479void WebPageProxy::runJavaScriptConfirm(uint64_t frameID, const SecurityOriginData& securityOrigin, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply> reply)
    34803480{
    34813481    WebFrameProxy* frame = m_process->webFrame(frameID);
     
    34853485    m_process->responsivenessTimer()->stop();
    34863486
    3487     m_uiClient->runJavaScriptConfirm(this, message, frame, [reply](bool result) { reply->send(result); });
    3488 }
    3489 
    3490 void WebPageProxy::runJavaScriptPrompt(uint64_t frameID, const String& message, const String& defaultValue, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply> reply)
     3487    m_uiClient->runJavaScriptConfirm(this, message, frame, securityOrigin, [reply](bool result) { reply->send(result); });
     3488}
     3489
     3490void WebPageProxy::runJavaScriptPrompt(uint64_t frameID, const SecurityOriginData& securityOrigin, const String& message, const String& defaultValue, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply> reply)
    34913491{
    34923492    WebFrameProxy* frame = m_process->webFrame(frameID);
     
    34963496    m_process->responsivenessTimer()->stop();
    34973497
    3498     m_uiClient->runJavaScriptPrompt(this, message, defaultValue, frame, [reply](const String& result) { reply->send(result); });
     3498    m_uiClient->runJavaScriptPrompt(this, message, defaultValue, frame, securityOrigin, [reply](const String& result) { reply->send(result); });
    34993499}
    35003500
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r185840 r185877  
    201201struct PlatformPopupMenuData;
    202202struct PrintInfo;
     203struct SecurityOriginData;
    203204struct WebPopupItem;
    204205
     
    11021103    void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&, const UserData&);
    11031104    void didChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, const String& url);
    1104     void didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& provisionalURL, const WebCore::ResourceError&, const UserData&);
     1105    void didFailProvisionalLoadForFrame(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const WebCore::ResourceError&, const UserData&);
    11051106    void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo&, const UserData&);
    11061107    void didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&);
     
    11241125    void didDestroyNavigation(uint64_t navigationID);
    11251126
    1126     void decidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, const NavigationActionData&, uint64_t originatingFrameID, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& newNavigationID, uint64_t& policyAction, uint64_t& downloadID);
    1127     void decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData&, const WebCore::ResourceRequest&, const String& frameName, uint64_t listenerID, const UserData&);
    1128     void decidePolicyForResponse(uint64_t frameID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
    1129     void decidePolicyForResponseSync(uint64_t frameID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID);
     1127    void decidePolicyForNavigationAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const NavigationActionData&, uint64_t originatingFrameID, const SecurityOriginData& originatingFrameSecurityOrigin, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& newNavigationID, uint64_t& policyAction, uint64_t& downloadID);
     1128    void decidePolicyForNewWindowAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const NavigationActionData&, const WebCore::ResourceRequest&, const String& frameName, uint64_t listenerID, const UserData&);
     1129    void decidePolicyForResponse(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
     1130    void decidePolicyForResponseSync(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID);
    11301131    void unableToImplementPolicy(uint64_t frameID, const WebCore::ResourceError&, const UserData&);
    11311132
     
    11391140
    11401141    // UI client
    1141     void createNewPage(uint64_t frameID, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const NavigationActionData&, uint64_t& newPageID, WebPageCreationParameters&);
     1142    void createNewPage(uint64_t frameID, const SecurityOriginData&, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const NavigationActionData&, uint64_t& newPageID, WebPageCreationParameters&);
    11421143    void showPage();
    11431144    void closePage(bool stopResponsivenessTimer);
    1144     void runJavaScriptAlert(uint64_t frameID, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply>);
    1145     void runJavaScriptConfirm(uint64_t frameID, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply>);
    1146     void runJavaScriptPrompt(uint64_t frameID, const String&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply>);
     1145    void runJavaScriptAlert(uint64_t frameID, const SecurityOriginData&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply>);
     1146    void runJavaScriptConfirm(uint64_t frameID, const SecurityOriginData&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply>);
     1147    void runJavaScriptPrompt(uint64_t frameID, const SecurityOriginData&, const String&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply>);
    11471148    void setStatusText(const String&);
    11481149    void mouseDidMoveOverElement(const WebHitTestResult::Data& hitTestResultData, uint32_t modifiers, const UserData&);
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in

    r185721 r185877  
    2323messages -> WebPageProxy {
    2424    # UI messages
    25     CreateNewPage(uint64_t frameID, WebCore::ResourceRequest request, struct WebCore::WindowFeatures windowFeatures, struct WebKit::NavigationActionData navigationActionData) -> (uint64_t newPageID, struct WebKit::WebPageCreationParameters newPageParameters)
     25    CreateNewPage(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, WebCore::ResourceRequest request, struct WebCore::WindowFeatures windowFeatures, struct WebKit::NavigationActionData navigationActionData) -> (uint64_t newPageID, struct WebKit::WebPageCreationParameters newPageParameters)
    2626    ShowPage()
    2727    ClosePage(bool stopResponsivenessTimer)
    28     RunJavaScriptAlert(uint64_t frameID, String message) -> () Delayed
    29     RunJavaScriptConfirm(uint64_t frameID, String message) -> (bool result) Delayed
    30     RunJavaScriptPrompt(uint64_t frameID, String message, String defaultValue) -> (String result) Delayed
     28    RunJavaScriptAlert(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, String message) -> () Delayed
     29    RunJavaScriptConfirm(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, String message) -> (bool result) Delayed
     30    RunJavaScriptPrompt(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, String message, String defaultValue) -> (String result) Delayed
    3131    MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::UserData userData)
    3232
     
    110110
    111111    # Policy messages
    112     DecidePolicyForResponseSync(uint64_t frameID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID)
    113     DecidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, uint64_t originatingFrameID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t newNavigationID, uint64_t policyAction, uint64_t downloadID)
    114     DecidePolicyForNewWindowAction(uint64_t frameID, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData)
     112    DecidePolicyForResponseSync(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID)
     113    DecidePolicyForNavigationAction(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, uint64_t originatingFrameID, struct WebKit::SecurityOriginData originatingFrameSecurityOrigin, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t newNavigationID, uint64_t policyAction, uint64_t downloadID)
     114    DecidePolicyForNewWindowAction(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData)
    115115    UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::UserData userData)
    116116
     
    130130    DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, WebKit::UserData userData)
    131131    DidChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, String url)
    132     DidFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String provisionalURL, WebCore::ResourceError error, WebKit::UserData userData)
     132    DidFailProvisionalLoadForFrame(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, String provisionalURL, WebCore::ResourceError error, WebKit::UserData userData)
    133133    DidCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, String mimeType, bool hasCustomContentProvider, uint32_t loadType, WebCore::CertificateInfo certificateInfo, WebKit::UserData userData)
    134134    DidFailLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::UserData userData)
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r185861 r185877  
    773773                376C51191957452E0007B0FA /* _WKSecurityOrigin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */; };
    774774                376C511A1957452E0007B0FA /* _WKSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = 376C51181957452E0007B0FA /* _WKSecurityOrigin.h */; settings = {ATTRIBUTES = (Private, ); }; };
    775                 376C511D19574F5F0007B0FA /* _WKSecurityOriginInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */; };
    776775                37716A5A195B910500EE8B1B /* ProcessAssertion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37716A59195B910500EE8B1B /* ProcessAssertion.cpp */; };
    777776                377216B81A4E6BE000DCA718 /* _WKRenderingProgressEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = 377216B71A4E6BE000DCA718 /* _WKRenderingProgressEvents.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    996995                51CD1C5D1B3493AF00142CA5 /* WKSecurityOriginRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51CD1C591B3493A900142CA5 /* WKSecurityOriginRef.cpp */; };
    997996                51CD1C5E1B3493B400142CA5 /* WKSecurityOriginRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CD1C5A1B3493A900142CA5 /* WKSecurityOriginRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
     997                51CD1C651B34B9D400142CA5 /* WKSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CD1C5F1B34B9C900142CA5 /* WKSecurityOrigin.h */; settings = {ATTRIBUTES = (Public, ); }; };
     998                51CD1C661B34B9DC00142CA5 /* WKSecurityOrigin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51CD1C601B34B9C900142CA5 /* WKSecurityOrigin.mm */; };
     999                51CD1C671B34B9DF00142CA5 /* WKSecurityOriginInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CD1C611B34B9C900142CA5 /* WKSecurityOriginInternal.h */; };
    9981000                51D02F64132EC5B900BEAA96 /* WebIconDatabaseMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D02F63132EC5B900BEAA96 /* WebIconDatabaseMessageReceiver.cpp */; };
    9991001                51D02F6A132EC73700BEAA96 /* WebIconDatabaseMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D02F67132EC73700BEAA96 /* WebIconDatabaseMessages.h */; };
     
    29142916                376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKSecurityOrigin.mm; sourceTree = "<group>"; };
    29152917                376C51181957452E0007B0FA /* _WKSecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKSecurityOrigin.h; sourceTree = "<group>"; };
    2916                 376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKSecurityOriginInternal.h; sourceTree = "<group>"; };
    29172918                37716A59195B910500EE8B1B /* ProcessAssertion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProcessAssertion.cpp; sourceTree = "<group>"; };
    29182919                377216B71A4E6BE000DCA718 /* _WKRenderingProgressEvents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKRenderingProgressEvents.h; sourceTree = "<group>"; };
     
    31593160                51CD1C591B3493A900142CA5 /* WKSecurityOriginRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKSecurityOriginRef.cpp; sourceTree = "<group>"; };
    31603161                51CD1C5A1B3493A900142CA5 /* WKSecurityOriginRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSecurityOriginRef.h; sourceTree = "<group>"; };
     3162                51CD1C5F1B34B9C900142CA5 /* WKSecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSecurityOrigin.h; sourceTree = "<group>"; };
     3163                51CD1C601B34B9C900142CA5 /* WKSecurityOrigin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKSecurityOrigin.mm; sourceTree = "<group>"; };
     3164                51CD1C611B34B9C900142CA5 /* WKSecurityOriginInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSecurityOriginInternal.h; sourceTree = "<group>"; };
    31613165                51D02F63132EC5B900BEAA96 /* WebIconDatabaseMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebIconDatabaseMessageReceiver.cpp; sourceTree = "<group>"; };
    31623166                51D02F65132EC6D300BEAA96 /* WebIconDatabaseProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebIconDatabaseProxy.messages.in; path = IconDatabase/WebIconDatabaseProxy.messages.in; sourceTree = "<group>"; };
     
    52815285                                376C51181957452E0007B0FA /* _WKSecurityOrigin.h */,
    52825286                                376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */,
    5283                                 376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */,
    52845287                                1A002D3F196B329400B9AD44 /* _WKSessionState.h */,
    52855288                                1A002D3E196B329400B9AD44 /* _WKSessionState.mm */,
     
    53425345                                1A7E377418E4A33A003D0FFF /* WKScriptMessageHandler.h */,
    53435346                                7CC99A3518EF7CBC0048C8B4 /* WKScriptMessageInternal.h */,
     5347                                51CD1C5F1B34B9C900142CA5 /* WKSecurityOrigin.h */,
     5348                                51CD1C601B34B9C900142CA5 /* WKSecurityOrigin.mm */,
     5349                                51CD1C611B34B9C900142CA5 /* WKSecurityOriginInternal.h */,
    53445350                                1AD8790918B6C38A006CAFD7 /* WKUIDelegate.h */,
    53455351                                3743925718BC4C60001C8675 /* WKUIDelegatePrivate.h */,
     
    74887494                                376311FE1A3FB600005A2E51 /* _WKSameDocumentNavigationTypeInternal.h in Headers */,
    74897495                                376C511A1957452E0007B0FA /* _WKSecurityOrigin.h in Headers */,
    7490                                 376C511D19574F5F0007B0FA /* _WKSecurityOriginInternal.h in Headers */,
    74917496                                1A002D44196B338900B9AD44 /* _WKSessionState.h in Headers */,
    74927497                                1A002D43196B337000B9AD44 /* _WKSessionStateInternal.h in Headers */,
     
    76267631                                BC17753F118BABF0007D9E9A /* GenericCallback.h in Headers */,
    76277632                                BC06F42F12DBB9B6002D78DE /* GeolocationPermissionRequestManager.h in Headers */,
     7633                                51CD1C671B34B9DF00142CA5 /* WKSecurityOriginInternal.h in Headers */,
    76287634                                BC06F44A12DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.h in Headers */,
    76297635                                BC06F43A12DBCCFB002D78DE /* GeolocationPermissionRequestProxy.h in Headers */,
     
    77767782                                86E67A251910B9D100004AB7 /* ProcessThrottler.h in Headers */,
    77777783                                83048AE61ACA45DC0082C832 /* ProcessThrottlerClient.h in Headers */,
     7784                                51CD1C651B34B9D400142CA5 /* WKSecurityOrigin.h in Headers */,
    77787785                                2D7F13101A702FBA009A6FBD /* ProcessType.h in Headers */,
    77797786                                A118A9EF1907AD6F00F7C92B /* QuickLookDocumentData.h in Headers */,
     
    94399446                                CD5C66A0134B9D38004FE2A8 /* InjectedBundlePageFullScreenClient.cpp in Sources */,
    94409447                                BCA8C6A811E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.cpp in Sources */,
     9448                                51CD1C661B34B9DC00142CA5 /* WKSecurityOrigin.mm in Sources */,
    94419449                                BC8147AA12F64CDA007B2C32 /* InjectedBundlePagePolicyClient.cpp in Sources */,
    94429450                                659C551E130006410025C0C2 /* InjectedBundlePageResourceLoadClient.cpp in Sources */,
  • trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp

    r184846 r185877  
    2828
    2929#include "DataReference.h"
     30#include "SecurityOriginData.h"
    3031#include "WebCompiledContentExtension.h"
    3132#include "WebFrame.h"
     
    136137            return;
    137138
    138         WebProcess::singleton().parentProcessConnection()->send(Messages::WebUserContentControllerProxy::DidPostMessage(webPage->pageID(), webFrame->frameID(), m_identifier, IPC::DataReference(value->data())), m_controller->identifier());
     139        WebProcess::singleton().parentProcessConnection()->send(Messages::WebUserContentControllerProxy::DidPostMessage(webPage->pageID(), webFrame->frameID(), SecurityOriginData::fromFrame(webFrame), m_identifier, IPC::DataReference(value->data())), m_controller->identifier());
    139140    }
    140141
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r185749 r185877  
    3737#include "NavigationActionData.h"
    3838#include "PageBanner.h"
     39#include "SecurityOriginData.h"
    3940#include "UserData.h"
    4041#include "WebColorChooser.h"
     
    222223    WebPageCreationParameters parameters;
    223224    auto& webProcess = WebProcess::singleton();
    224     if (!webProcess.parentProcessConnection()->sendSync(Messages::WebPageProxy::CreateNewPage(webFrame->frameID(), request.resourceRequest(), windowFeatures, navigationActionData), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page->pageID()))
     225    if (!webProcess.parentProcessConnection()->sendSync(Messages::WebPageProxy::CreateNewPage(webFrame->frameID(), SecurityOriginData::fromFrame(frame), request.resourceRequest(), windowFeatures, navigationActionData), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page->pageID()))
    225226        return nullptr;
    226227
     
    380381    if (WebPage::synchronousMessagesShouldSpinRunLoop())
    381382        syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
    382     WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags);
     383    WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), SecurityOriginData::fromFrame(frame), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags);
    383384}
    384385
     
    397398        syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
    398399    bool result = false;
    399     if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags))
     400    if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), SecurityOriginData::fromFrame(frame), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags))
    400401        return false;
    401402
     
    417418        syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
    418419   
    419     if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags))
     420    if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), SecurityOriginData::fromFrame(frame), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags))
    420421        return false;
    421422
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r185542 r185877  
    3636#include "NavigationActionData.h"
    3737#include "PluginView.h"
     38#include "SecurityOriginData.h"
    3839#include "UserData.h"
    3940#include "WKBundleAPICast.h"
     
    494495
    495496    // Notify the UIProcess.
    496     webPage->send(Messages::WebPageProxy::DidFailProvisionalLoadForFrame(m_frame->frameID(), navigationID, m_frame->coreFrame()->loader().provisionalLoadErrorBeingHandledURL(), error, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
     497    webPage->send(Messages::WebPageProxy::DidFailProvisionalLoadForFrame(m_frame->frameID(), SecurityOriginData::fromFrame(m_frame), navigationID, m_frame->coreFrame()->loader().provisionalLoadErrorBeingHandledURL(), error, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
    497498
    498499    // If we have a load listener, notify it.
     
    700701    if (WebPage::synchronousMessagesShouldSpinRunLoop())
    701702        syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
    702     if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame->frameID(), response, request, canShowMIMEType, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(receivedPolicyAction, policyAction, downloadID), std::chrono::milliseconds::max(), syncSendFlags)) {
     703    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame->frameID(), SecurityOriginData::fromFrame(m_frame), response, request, canShowMIMEType, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(receivedPolicyAction, policyAction, downloadID), std::chrono::milliseconds::max(), syncSendFlags)) {
    703704        function(PolicyIgnore);
    704705        return;
     
    739740    navigationActionData.canHandleRequest = webPage->canHandleRequest(request);
    740741
    741     webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), navigationActionData, request, frameName, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
     742    webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), SecurityOriginData::fromFrame(m_frame), navigationActionData, request, frameName, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
    742743}
    743744
     
    809810
    810811    // Notify the UIProcess.
    811     if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), documentLoader->navigationID(), navigationActionData, originatingFrame ? originatingFrame->frameID() : 0, navigationAction.resourceRequest(), request, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, newNavigationID, policyAction, downloadID))) {
     812    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), SecurityOriginData::fromFrame(m_frame), documentLoader->navigationID(), navigationActionData, originatingFrame ? originatingFrame->frameID() : 0, SecurityOriginData::fromFrame(originatingFrame.get()), navigationAction.resourceRequest(), request, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, newNavigationID, policyAction, downloadID))) {
    812813        function(PolicyIgnore);
    813814        return;
  • trunk/Tools/ChangeLog

    r185871 r185877  
     12015-06-23  Brady Eidson  <beidson@apple.com>
     2
     3        WKFrameInfo should have an accessor for the Frame's current security origin.
     4        https://bugs.webkit.org/show_bug.cgi?id=146162
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     9        * TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html: Added.
     10        * TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm: Added.
     11        (sawDialog):
     12        (-[ModalAlertsUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
     13        (-[ModalAlertsUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
     14        (-[ModalAlertsUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:]):
     15        (-[ModalAlertsUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):
     16        (TEST):
     17
    1182015-06-23  Tanay C  <tanay.c@samsung.com>
    219
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r185816 r185877  
    5252                5142B2731517C8C800C32B19 /* ContextMenuCanCopyURL.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */; };
    5353                517E7E04151119C100D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */; };
     54                51CD1C6C1B38CE4300142CA5 /* ModalAlerts.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */; };
     55                51CD1C721B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51CD1C711B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html */; };
    5456                51E5C7021919C3B200D8B3E1 /* simple2.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51E780361919AFF8001829A2 /* simple2.html */; };
    5557                51E5C7031919C3B200D8B3E1 /* simple3.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51E780371919AFF8001829A2 /* simple3.html */; };
     
    339341                        dstSubfolderSpec = 7;
    340342                        files = (
     343                                51CD1C721B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html in Copy Resources */,
    341344                                7AE9E5091AE5AE8B00CF874B /* test.pdf in Copy Resources */,
    342345                                7A1458FC1AD5C07000E06772 /* mouse-button-listener.html in Copy Resources */,
     
    517520                517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryCachePruneWithinResourceLoadDelegate.mm; sourceTree = "<group>"; };
    518521                517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = MemoryCachePruneWithinResourceLoadDelegate.html; sourceTree = "<group>"; };
     522                51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ModalAlerts.mm; sourceTree = "<group>"; };
     523                51CD1C711B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "modal-alerts-in-new-about-blank-window.html"; sourceTree = "<group>"; };
    519524                51E5C7041919EA5F00D8B3E1 /* ShouldKeepCurrentBackForwardListItemInList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShouldKeepCurrentBackForwardListItemInList.cpp; sourceTree = "<group>"; };
    520525                51E780361919AFF8001829A2 /* simple2.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = simple2.html; sourceTree = "<group>"; };
     
    843848                                2D1FE0AF1AD465C1006CD9E6 /* FixedLayoutSize.mm */,
    844849                                37D36ED61AF42ECD00BAF5D9 /* LoadAlternateHTMLString.mm */,
     850                                51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */,
    845851                                1ABC3DED1899BE6D004F0626 /* Navigation.mm */,
    846852                                CEA6CF2219CCF5BD0064F5A7 /* OpenAndCloseWindow.mm */,
     
    11341140                                2DD7D3AE178227AC0026E1E3 /* lots-of-text-vertical-lr.html */,
    11351141                                930AD401150698B30067970F /* lots-of-text.html */,
     1142                                51CD1C711B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html */,
    11361143                                33E79E05137B5FCE00E32D99 /* mouse-move-listener.html */,
    11371144                                CEA6CF2719CCF69D0064F5A7 /* open-and-close-window.html */,
     
    15371544                                7CCE7EC91A411A7E00447C4C /* RenderedImageFromDOMNode.mm in Sources */,
    15381545                                7CCE7ECA1A411A7E00447C4C /* RenderedImageFromDOMRange.mm in Sources */,
     1546                                51CD1C6C1B38CE4300142CA5 /* ModalAlerts.mm in Sources */,
    15391547                                7CCE7F0E1A411AE600447C4C /* ResizeReversePaginatedWebView.cpp in Sources */,
    15401548                                7CCE7F0F1A411AE600447C4C /* ResizeWindowAfterCrash.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.