<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[185877] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/185877">185877</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2015-06-23 10:28:20 -0700 (Tue, 23 Jun 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>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):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIAPISecurityOriginh">trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h</a></li>
<li><a href="#trunkSourceWebKit2SharedAPICocoaWebKith">trunk/Source/WebKit2/Shared/API/Cocoa/WebKit.h</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIcWKSharedAPICasth">trunk/Source/WebKit2/Shared/API/c/WKSharedAPICast.h</a></li>
<li><a href="#trunkSourceWebKit2SharedCocoaAPIObjectmm">trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedSecurityOriginDatacpp">trunk/Source/WebKit2/Shared/SecurityOriginData.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedSecurityOriginDatah">trunk/Source/WebKit2/Shared/SecurityOriginData.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIFrameInfocpp">trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIFrameInfoh">trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPINavigationClienth">trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIUIClienth">trunk/Source/WebKit2/UIProcess/API/APIUIClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKApplicationCacheManagercpp">trunk/Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKKeyValueStorageManagercpp">trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKOriginDataManagercpp">trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPagecpp">trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKResourceCacheManagercpp">trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKFrameInfoh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKFrameInfomm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKUIDelegatePrivateh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKUserContentControllermm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoa_WKSecurityOriginh">trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoa_WKSecurityOriginmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaNavigationStateh">trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaNavigationStatemm">trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaUIDelegateh">trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaUIDelegatemm">trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessUserContentWebScriptMessageHandlerh">trunk/Source/WebKit2/UIProcess/UserContent/WebScriptMessageHandler.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessUserContentWebUserContentControllerProxycpp">trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessUserContentWebUserContentControllerProxyh">trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessUserContentWebUserContentControllerProxymessagesin">trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxymessagesin">trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebKit2WebProcessUserContentWebUserContentControllercpp">trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsTestWebKitAPITestWebKitAPIxcodeprojprojectpbxproj">trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOriginInternal.h</a></li>
<li><a href="#trunkToolsTestWebKitAPITestsWebKit2modalalertsinnewaboutblankwindowhtml">trunk/Tools/TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html</a></li>
<li><a href="#trunkToolsTestWebKitAPITestsWebKit2CocoaModalAlertsmm">trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoa_WKSecurityOriginInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/ChangeLog        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -1,3 +1,138 @@
</span><ins>+2015-06-23 Brady Eidson <beidson@apple.com>
+
+ 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.
+
+ 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):
+
</ins><span class="cx"> 2015-06-23 Dan Bernstein <mitz@apple.com>
</span><span class="cx">
</span><span class="cx"> <rdar://problem/21342465> Make -[WKWebView _certificateChain] public.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIAPISecurityOriginh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -44,10 +44,8 @@
</span><span class="cx"> return create(WebCore::SecurityOrigin::create(protocol, host, port));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static RefPtr<SecurityOrigin> create(PassRefPtr<WebCore::SecurityOrigin> securityOrigin)
</del><ins>+ static RefPtr<SecurityOrigin> create(const WebCore::SecurityOrigin& securityOrigin)
</ins><span class="cx"> {
</span><del>- if (!securityOrigin)
- return nullptr;
</del><span class="cx"> return adoptRef(new SecurityOrigin(securityOrigin));
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -59,6 +57,11 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ SecurityOrigin(const WebCore::SecurityOrigin& securityOrigin)
+ : m_securityOrigin(securityOrigin.isolatedCopy())
+ {
+ }
+
</ins><span class="cx"> RefPtr<WebCore::SecurityOrigin> m_securityOrigin;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPICocoaWebKith"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/Cocoa/WebKit.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/Cocoa/WebKit.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/WebKit.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -36,6 +36,7 @@
</span><span class="cx"> #import <WebKit/WKProcessPool.h>
</span><span class="cx"> #import <WebKit/WKScriptMessage.h>
</span><span class="cx"> #import <WebKit/WKScriptMessageHandler.h>
</span><ins>+#import <WebKit/WKSecurityOrigin.h>
</ins><span class="cx"> #import <WebKit/WKUIDelegate.h>
</span><span class="cx"> #import <WebKit/WKUserContentController.h>
</span><span class="cx"> #import <WebKit/WKUserScript.h>
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIcWKSharedAPICasth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/c/WKSharedAPICast.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/c/WKSharedAPICast.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/Shared/API/c/WKSharedAPICast.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -215,7 +215,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (!origin)
</span><span class="cx"> return 0;
</span><del>- return toAPI(API::SecurityOrigin::create(origin).leakRef());
</del><ins>+ return toAPI(API::SecurityOrigin::create(*origin).leakRef());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /* Geometry conversions */
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCocoaAPIObjectmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx"> #import "WKNavigationResponseInternal.h"
</span><span class="cx"> #import "WKPreferencesInternal.h"
</span><span class="cx"> #import "WKProcessPoolInternal.h"
</span><ins>+#import "WKSecurityOriginInternal.h"
</ins><span class="cx"> #import "WKUserContentControllerInternal.h"
</span><span class="cx"> #import "WKUserScriptInternal.h"
</span><span class="cx"> #import "WKWebProcessPlugInBrowserContextControllerInternal.h"
</span><span class="lines">@@ -172,6 +173,10 @@
</span><span class="cx"> wrapper = [WKBrowsingContextGroup alloc];
</span><span class="cx"> break;
</span><span class="cx">
</span><ins>+ case Type::SecurityOrigin:
+ wrapper = [WKSecurityOrigin alloc];
+ break;
+
</ins><span class="cx"> case Type::String:
</span><span class="cx"> wrapper = NSAllocateObject([WKNSString class], size, nullptr);
</span><span class="cx"> break;
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedSecurityOriginDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/SecurityOriginData.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/SecurityOriginData.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/Shared/SecurityOriginData.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -27,8 +27,11 @@
</span><span class="cx"> #include "SecurityOriginData.h"
</span><span class="cx">
</span><span class="cx"> #include "APIArray.h"
</span><ins>+#include "APISecurityOrigin.h"
</ins><span class="cx"> #include "WebCoreArgumentCoders.h"
</span><del>-#include "APISecurityOrigin.h"
</del><ins>+#include "WebFrame.h"
+#include <WebCore/Document.h>
+#include <WebCore/Frame.h>
</ins><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -46,6 +49,30 @@
</span><span class="cx"> return securityOriginData;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+SecurityOriginData SecurityOriginData::fromFrame(WebFrame* frame)
+{
+ if (!frame)
+ return SecurityOriginData();
+
+ return SecurityOriginData::fromFrame(frame->coreFrame());
+}
+
+SecurityOriginData SecurityOriginData::fromFrame(Frame* frame)
+{
+ if (!frame)
+ return SecurityOriginData();
+
+ Document* document = frame->document();
+ if (!document)
+ return SecurityOriginData();
+
+ SecurityOrigin* origin = document->securityOrigin();
+ if (!origin)
+ return SecurityOriginData();
+
+ return SecurityOriginData::fromSecurityOrigin(*origin);
+}
+
</ins><span class="cx"> Ref<SecurityOrigin> SecurityOriginData::securityOrigin() const
</span><span class="cx"> {
</span><span class="cx"> return SecurityOrigin::create(protocol.isolatedCopy(), host.isolatedCopy(), port);
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedSecurityOriginDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/SecurityOriginData.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/SecurityOriginData.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/Shared/SecurityOriginData.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -35,13 +35,19 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><ins>+class Frame;
</ins><span class="cx"> class SecurityOrigin;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><ins>+class WebFrame;
+
</ins><span class="cx"> struct SecurityOriginData {
</span><span class="cx"> static SecurityOriginData fromSecurityOrigin(const WebCore::SecurityOrigin&);
</span><ins>+ static SecurityOriginData fromFrame(WebFrame*);
+ static SecurityOriginData fromFrame(WebCore::Frame*);
+
</ins><span class="cx"> Ref<WebCore::SecurityOrigin> securityOrigin() const;
</span><span class="cx">
</span><span class="cx"> void encode(IPC::ArgumentEncoder&) const;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIFrameInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -31,9 +31,10 @@
</span><span class="cx"> namespace API {
</span><span class="cx">
</span><span class="cx"> // FIXME: This should use the full request of the frame, not just the URL.
</span><del>-FrameInfo::FrameInfo(const WebKit::WebFrameProxy& frame)
</del><ins>+FrameInfo::FrameInfo(const WebKit::WebFrameProxy& frame, const WebCore::SecurityOrigin& securityOrigin)
</ins><span class="cx"> : m_isMainFrame(frame.isMainFrame())
</span><span class="cx"> , m_request(WebCore::ResourceRequest(frame.url()))
</span><ins>+ , m_securityOrigin(adoptRef(*SecurityOrigin::create(securityOrigin).leakRef()))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIFrameInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/APIFrameInfo.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -27,7 +27,9 @@
</span><span class="cx"> #define APIFrameInfo_h
</span><span class="cx">
</span><span class="cx"> #include "APIObject.h"
</span><ins>+#include "APISecurityOrigin.h"
</ins><span class="cx"> #include <WebCore/ResourceRequest.h>
</span><ins>+#include <WebCore/SecurityOrigin.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> class WebFrameProxy;
</span><span class="lines">@@ -37,19 +39,21 @@
</span><span class="cx">
</span><span class="cx"> class FrameInfo final : public ObjectImpl<Object::Type::FrameInfo> {
</span><span class="cx"> public:
</span><del>- static Ref<FrameInfo> create(const WebKit::WebFrameProxy& frame)
</del><ins>+ static Ref<FrameInfo> create(const WebKit::WebFrameProxy& frame, const WebCore::SecurityOrigin& securityOrigin)
</ins><span class="cx"> {
</span><del>- return adoptRef(*new FrameInfo(frame));
</del><ins>+ return adoptRef(*new FrameInfo(frame, securityOrigin));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- explicit FrameInfo(const WebKit::WebFrameProxy&);
</del><ins>+ FrameInfo(const WebKit::WebFrameProxy&, const WebCore::SecurityOrigin&);
</ins><span class="cx">
</span><span class="cx"> bool isMainFrame() const { return m_isMainFrame; }
</span><span class="cx"> const WebCore::ResourceRequest& request() const { return m_request; }
</span><ins>+ SecurityOrigin& securityOrigin() { return m_securityOrigin.get(); }
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> bool m_isMainFrame;
</span><span class="cx"> WebCore::ResourceRequest m_request;
</span><ins>+ Ref<SecurityOrigin> m_securityOrigin;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPINavigationClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -50,6 +50,7 @@
</span><span class="cx"> class WebPageProxy;
</span><span class="cx"> class WebProtectionSpace;
</span><span class="cx"> struct NavigationActionData;
</span><ins>+struct SecurityOriginData;
</ins><span class="cx"> struct WebNavigationDataStore;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -68,7 +69,7 @@
</span><span class="cx"> virtual void didStartProvisionalNavigation(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
</span><span class="cx"> virtual void didReceiveServerRedirectForProvisionalNavigation(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
</span><span class="cx"> virtual void didFailProvisionalNavigationWithError(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
</span><del>- virtual void didFailProvisionalLoadInSubframeWithError(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
</del><ins>+ virtual void didFailProvisionalLoadInSubframeWithError(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebKit::SecurityOriginData&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
</ins><span class="cx"> virtual void didCommitNavigation(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
</span><span class="cx"> virtual void didFinishDocumentLoad(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
</span><span class="cx"> virtual void didFinishNavigation(WebKit::WebPageProxy&, API::Navigation*, API::Object*) { }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIUIClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIUIClient.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIUIClient.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/APIUIClient.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -56,6 +56,7 @@
</span><span class="cx"> class WebOpenPanelResultListenerProxy;
</span><span class="cx"> class WebPageProxy;
</span><span class="cx"> struct NavigationActionData;
</span><ins>+struct SecurityOriginData;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> namespace API {
</span><span class="lines">@@ -69,7 +70,7 @@
</span><span class="cx"> public:
</span><span class="cx"> virtual ~UIClient() { }
</span><span class="cx">
</span><del>- virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) { return nullptr; }
</del><ins>+ virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) { return nullptr; }
</ins><span class="cx"> virtual void showPage(WebKit::WebPageProxy*) { }
</span><span class="cx"> virtual void fullscreenMayReturnToInline(WebKit::WebPageProxy*) { }
</span><span class="cx"> virtual void didEnterFullscreen(WebKit::WebPageProxy*) { }
</span><span class="lines">@@ -80,9 +81,9 @@
</span><span class="cx"> virtual void focus(WebKit::WebPageProxy*) { }
</span><span class="cx"> virtual void unfocus(WebKit::WebPageProxy*) { }
</span><span class="cx">
</span><del>- virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) { completionHandler(); }
- virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (bool)> completionHandler) { completionHandler(false); }
- virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (const WTF::String&)> completionHandler) { completionHandler(WTF::String()); }
</del><ins>+ virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void ()> completionHandler) { completionHandler(); }
+ virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void (bool)> completionHandler) { completionHandler(false); }
+ 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()); }
</ins><span class="cx">
</span><span class="cx"> virtual void setStatusText(WebKit::WebPageProxy*, const WTF::String&) { }
</span><span class="cx"> virtual void mouseDidMoveOverElement(WebKit::WebPageProxy*, const WebKit::WebHitTestResult::Data&, WebKit::WebEvent::Modifiers, API::Object*) { }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKApplicationCacheManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> Vector<RefPtr<API::Object>> securityOrigins;
</span><span class="cx"> for (const auto& dataRecord : dataRecords) {
</span><span class="cx"> for (const auto& origin : dataRecord.origins)
</span><del>- securityOrigins.append(API::SecurityOrigin::create(origin));
</del><ins>+ securityOrigins.append(API::SecurityOrigin::create(*origin));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> callback(toAPI(API::Array::create(WTF::move(securityOrigins)).ptr()), nullptr, context);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKKeyValueStorageManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> Vector<RefPtr<API::Object>> webSecurityOrigins;
</span><span class="cx"> webSecurityOrigins.reserveInitialCapacity(securityOrigins.size());
</span><span class="cx"> for (auto& origin : securityOrigins)
</span><del>- webSecurityOrigins.uncheckedAppend(API::SecurityOrigin::create(origin));
</del><ins>+ webSecurityOrigins.uncheckedAppend(API::SecurityOrigin::create(*origin));
</ins><span class="cx">
</span><span class="cx"> callback(toAPI(API::Array::create(WTF::move(webSecurityOrigins)).ptr()), nullptr, context);
</span><span class="cx"> });
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKOriginDataManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> Vector<RefPtr<API::Object>> securityOrigins;
</span><span class="cx"> for (const auto& dataRecord : dataRecords) {
</span><span class="cx"> for (const auto& origin : dataRecord.origins)
</span><del>- securityOrigins.append(API::SecurityOrigin::create(origin));
</del><ins>+ securityOrigins.append(API::SecurityOrigin::create(*origin));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> callback(toAPI(API::Array::create(WTF::move(securityOrigins)).ptr()), nullptr, context);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx"> #include "NavigationActionData.h"
</span><span class="cx"> #include "PluginInformation.h"
</span><span class="cx"> #include "PrintInfo.h"
</span><ins>+#include "SecurityOriginData.h"
</ins><span class="cx"> #include "WKAPICast.h"
</span><span class="cx"> #include "WKPagePolicyClientInternal.h"
</span><span class="cx"> #include "WKPageRenderingProgressEventsInternal.h"
</span><span class="lines">@@ -1333,7 +1334,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, WebFrameProxy*, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData) override
</del><ins>+ virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, WebFrameProxy*, const SecurityOriginData&, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.base.version && !m_client.createNewPage_deprecatedForUseWithV0)
</span><span class="cx"> return 0;
</span><span class="lines">@@ -1407,7 +1408,7 @@
</span><span class="cx"> m_client.unfocus(toAPI(page), m_client.base.clientInfo);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void runJavaScriptAlert(WebPageProxy* page, const String& message, WebFrameProxy* frame, std::function<void ()> completionHandler) override
</del><ins>+ virtual void runJavaScriptAlert(WebPageProxy* page, const String& message, WebFrameProxy* frame, const SecurityOriginData&, std::function<void ()> completionHandler) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.runJavaScriptAlert) {
</span><span class="cx"> completionHandler();
</span><span class="lines">@@ -1418,7 +1419,7 @@
</span><span class="cx"> completionHandler();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void runJavaScriptConfirm(WebPageProxy* page, const String& message, WebFrameProxy* frame, std::function<void (bool)> completionHandler) override
</del><ins>+ virtual void runJavaScriptConfirm(WebPageProxy* page, const String& message, WebFrameProxy* frame, const SecurityOriginData&, std::function<void (bool)> completionHandler) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.runJavaScriptConfirm) {
</span><span class="cx"> completionHandler(false);
</span><span class="lines">@@ -1429,7 +1430,7 @@
</span><span class="cx"> completionHandler(result);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void runJavaScriptPrompt(WebPageProxy* page, const String& message, const String& defaultValue, WebFrameProxy* frame, std::function<void (const String&)> completionHandler) override
</del><ins>+ virtual void runJavaScriptPrompt(WebPageProxy* page, const String& message, const String& defaultValue, WebFrameProxy* frame, const SecurityOriginData&, std::function<void (const String&)> completionHandler) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.runJavaScriptPrompt) {
</span><span class="cx"> completionHandler(String());
</span><span class="lines">@@ -1853,11 +1854,11 @@
</span><span class="cx"> m_client.didFailNavigation(toAPI(&page), toAPI(navigation), toAPI(error), toAPI(userData), m_client.base.clientInfo);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& subframe, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object* userData) override
</del><ins>+ virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& subframe, const WebKit::SecurityOriginData& securityOriginData, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFailProvisionalLoadInSubframe)
</span><span class="cx"> return;
</span><del>- m_client.didFailProvisionalLoadInSubframe(toAPI(&page), toAPI(navigation), toAPI(API::FrameInfo::create(subframe).ptr()), toAPI(error), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didFailProvisionalLoadInSubframe(toAPI(&page), toAPI(navigation), toAPI(API::FrameInfo::create(subframe, securityOriginData.securityOrigin()).ptr()), toAPI(error), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> virtual void didFinishDocumentLoad(WebPageProxy& page, API::Navigation* navigation, API::Object* userData) override
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKResourceCacheManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> Vector<RefPtr<API::Object>> securityOrigins;
</span><span class="cx"> for (const auto& dataRecord : dataRecords) {
</span><span class="cx"> for (const auto& origin : dataRecord.origins)
</span><del>- securityOrigins.append(API::SecurityOrigin::create(origin));
</del><ins>+ securityOrigins.append(API::SecurityOrigin::create(*origin));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> callback(toAPI(API::Array::create(WTF::move(securityOrigins)).ptr()), nullptr, context);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKFrameInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2014, 2015 Apple Inc. All rights reserved.
</ins><span class="cx"> *
</span><span class="cx"> * Redistribution and use in source and binary forms, with or without
</span><span class="cx"> * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><span class="cx"> #import <Foundation/Foundation.h>
</span><ins>+#import <WebKit/WKSecurityOrigin.h>
</ins><span class="cx">
</span><span class="cx"> /*! A WKFrameInfo object contains information about a frame on a webpage.
</span><span class="cx"> @discussion An instance of this class is a transient, data-only object;
</span><span class="lines">@@ -48,6 +49,10 @@
</span><span class="cx"> */
</span><span class="cx"> @property (nonatomic, readonly, copy) NSURLRequest *request;
</span><span class="cx">
</span><ins>+/*! @abstract The frame's current security origin.
+ */
+@property (nonatomic, readonly) WKSecurityOrigin *securityOrigin WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> WK_ASSUME_NONNULL_END
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKFrameInfomm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.mm (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.mm        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -28,6 +28,8 @@
</span><span class="cx">
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><ins>+#import "WKSecurityOriginInternal.h"
+
</ins><span class="cx"> @implementation WKFrameInfo
</span><span class="cx">
</span><span class="cx"> - (void)dealloc
</span><span class="lines">@@ -52,6 +54,11 @@
</span><span class="cx"> return _frameInfo->request().nsURLRequest(WebCore::DoNotUpdateHTTPBody);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+- (WKSecurityOrigin *)securityOrigin
+{
+ return wrapper(_frameInfo->securityOrigin());
+}
+
</ins><span class="cx"> - (id)copyWithZone:(NSZone *)zone
</span><span class="cx"> {
</span><span class="cx"> return [self retain];
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginhfromrev185876trunkSourceWebKit2UIProcessAPICocoaWKFrameInfoh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.h (from rev 185876, trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h) (0 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.h         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <WebKit/WKFoundation.h>
+
+#if WK_API_ENABLED
+
+#import <Foundation/Foundation.h>
+
+/*! A WKSecurityOrigin object contains information about a security origin.
+ @discussion An instance of this class is a transient, data-only object;
+ it does not uniquely identify a security origin across multiple delegate method
+ calls.
+ */
+WK_ASSUME_NONNULL_BEGIN
+
+WK_CLASS_AVAILABLE(WK_MAC_TBA, WK_MAC_TBA)
+@interface WKSecurityOrigin : NSObject
+
+- (instancetype)init WK_UNAVAILABLE;
+
+/*! @abstract The security origin's protocol.
+ */
+@property (nonatomic, readonly, copy) NSString *protocol;
+
+/*! @abstract The security origin's host.
+ */
+@property (nonatomic, readonly, copy) NSString *host;
+
+/*! @abstract The security origin's port.
+ */
+@property (nonatomic, readonly) NSInteger port;
+
+@end
+
+WK_ASSUME_NONNULL_END
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginmmfromrev185876trunkSourceWebKit2UIProcessAPICocoaWKFrameInfomm"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm (from rev 185876, trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.mm) (0 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "WKSecurityOriginInternal.h"
+
+#if WK_API_ENABLED
+
+#import <WebCore/ResourceRequest.h>
+#import <WebCore/SecurityOrigin.h>
+#import <wtf/RefPtr.h>
+
+@implementation WKSecurityOrigin
+
+- (void)dealloc
+{
+ _securityOrigin->~SecurityOrigin();
+
+ [super dealloc];
+}
+
+- (NSString *)description
+{
+ return [NSString stringWithFormat:@"<%@: %p; protocol = %@; host = %@; port = %li>", NSStringFromClass(self.class), self, self.protocol, self.host, (long)self.port];
+}
+
+- (NSString *)protocol
+{
+ return _securityOrigin->securityOrigin().protocol();
+}
+
+- (NSString *)host
+{
+ return _securityOrigin->securityOrigin().host();
+}
+
+- (NSInteger)port
+{
+ return _securityOrigin->securityOrigin().port();
+}
+
+#pragma mark WKObject protocol implementation
+
+- (API::Object&)_apiObject
+{
+ return *_securityOrigin;
+}
+
+@end
+
+#endif // WK_API_ENABLED
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginInternalhfromrev185876trunkSourceWebKit2UIProcessAPICocoa_WKSecurityOriginInternalh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOriginInternal.h (from rev 185876, trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h) (0 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOriginInternal.h         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOriginInternal.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "WKSecurityOrigin.h"
+
+#if WK_API_ENABLED
+
+#import "APISecurityOrigin.h"
+
+namespace API {
+
+inline WKSecurityOrigin *wrapper(API::SecurityOrigin& securityOrigin)
+{
+ ASSERT([securityOrigin.wrapper() isKindOfClass:[WKSecurityOrigin self]]);
+ return (WKSecurityOrigin *)securityOrigin.wrapper();
+}
+
+}
+
+@interface WKSecurityOrigin () <WKObject> {
+@package
+ API::ObjectStorage<API::SecurityOrigin> _securityOrigin;
+}
+@end
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKUIDelegatePrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -27,8 +27,8 @@
</span><span class="cx">
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><ins>+#import <WebKit/WKSecurityOrigin.h>
</ins><span class="cx"> #import <WebKit/_WKActivatedElementInfo.h>
</span><del>-#import <WebKit/_WKSecurityOrigin.h>
</del><span class="cx">
</span><span class="cx"> @class UIViewController;
</span><span class="cx"> @class _WKFrameHandle;
</span><span class="lines">@@ -38,10 +38,10 @@
</span><span class="cx"> @optional
</span><span class="cx">
</span><span class="cx"> // FIXME: This should be handled by the WKWebsiteDataStore delegate.
</span><del>-- (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;
</del><ins>+- (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;
</ins><span class="cx">
</span><span class="cx"> // FIXME: This should be handled by the WKWebsiteDataStore delegate.
</span><del>-- (void)_webView:(WKWebView *)webView decideWebApplicationCacheQuotaForSecurityOrigin:(_WKSecurityOrigin *)securityOrigin currentQuota:(unsigned long long)currentQuota totalBytesNeeded:(unsigned long long)totalBytesNeeded decisionHandler:(void (^)(unsigned long long newQuota))decisionHandler;
</del><ins>+- (void)_webView:(WKWebView *)webView decideWebApplicationCacheQuotaForSecurityOrigin:(WKSecurityOrigin *)securityOrigin currentQuota:(unsigned long long)currentQuota totalBytesNeeded:(unsigned long long)totalBytesNeeded decisionHandler:(void (^)(unsigned long long newQuota))decisionHandler;
</ins><span class="cx">
</span><span class="cx"> - (void)_webView:(WKWebView *)webView printFrame:(_WKFrameHandle *)frame;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKUserContentControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><ins>+#import "SecurityOriginData.h"
</ins><span class="cx"> #import "WKFrameInfoInternal.h"
</span><span class="cx"> #import "WKNSArray.h"
</span><span class="cx"> #import "WKScriptMessageHandler.h"
</span><span class="lines">@@ -84,9 +85,9 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didPostMessage(WebKit::WebPageProxy& page, WebKit::WebFrameProxy& frame, WebCore::SerializedScriptValue& serializedScriptValue)
</del><ins>+ virtual void didPostMessage(WebKit::WebPageProxy& page, WebKit::WebFrameProxy& frame, const WebKit::SecurityOriginData& securityOriginData, WebCore::SerializedScriptValue& serializedScriptValue)
</ins><span class="cx"> {
</span><del>- RetainPtr<WKFrameInfo> frameInfo = wrapper(API::FrameInfo::create(frame));
</del><ins>+ RetainPtr<WKFrameInfo> frameInfo = wrapper(API::FrameInfo::create(frame, securityOriginData.securityOrigin()));
</ins><span class="cx">
</span><span class="cx"> RetainPtr<JSContext> context = adoptNS([[JSContext alloc] init]);
</span><span class="cx"> JSValueRef valueRef = serializedScriptValue.deserialize([context JSGlobalContextRef], 0);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoa_WKSecurityOriginh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -28,14 +28,10 @@
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><span class="cx"> #import <Foundation/Foundation.h>
</span><ins>+#import <WebKit/WKSecurityOrigin.h>
</ins><span class="cx">
</span><span class="cx"> WK_CLASS_AVAILABLE(10_10, 8_0)
</span><del>-@interface _WKSecurityOrigin : NSObject
-
-@property (nonatomic, readonly, copy) NSString *protocol;
-@property (nonatomic, readonly, copy) NSString *host;
-@property (nonatomic, readonly) unsigned short port;
-
</del><ins>+@interface _WKSecurityOrigin : WKSecurityOrigin
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoa_WKSecurityOriginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -24,41 +24,11 @@
</span><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> #import "config.h"
</span><del>-#import "_WKSecurityOriginInternal.h"
</del><ins>+#import "_WKSecurityOrigin.h"
</ins><span class="cx">
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><del>-#import <WebCore/SecurityOrigin.h>
-#import <wtf/RefPtr.h>
-
-@implementation _WKSecurityOrigin {
- RefPtr<WebCore::SecurityOrigin> _origin;
-}
-
-- (instancetype)_initWithSecurityOrigin:(const WebCore::SecurityOrigin&)origin
-{
- if (!(self = [super init]))
- return nil;
-
- _origin = origin.isolatedCopy();
- return self;
-}
-
-- (NSString *)protocol
-{
- return _origin->protocol();
-}
-
-- (NSString *)host
-{
- return _origin->host();
-}
-
-- (unsigned short)port
-{
- return _origin->port();
-}
-
</del><ins>+@implementation _WKSecurityOrigin
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> #endif // WK_API_ENABLED
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoa_WKSecurityOriginInternalh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -1,42 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import "_WKSecurityOrigin.h"
-
-#if WK_API_ENABLED
-
-#import <wtf/PassRefPtr.h>
-
-namespace WebCore {
-class SecurityOrigin;
-}
-
-@interface _WKSecurityOrigin ()
-
-- (instancetype)_initWithSecurityOrigin:(const WebCore::SecurityOrigin&)origin;
-
-@end
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaNavigationStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><ins>+struct SecurityOriginData;
</ins><span class="cx"> struct WebNavigationDataStore;
</span><span class="cx">
</span><span class="cx"> class NavigationState final : private PageLoadState::Observer {
</span><span class="lines">@@ -82,7 +83,7 @@
</span><span class="cx"> virtual void didStartProvisionalNavigation(WebPageProxy&, API::Navigation*, API::Object*) override;
</span><span class="cx"> virtual void didReceiveServerRedirectForProvisionalNavigation(WebPageProxy&, API::Navigation*, API::Object*) override;
</span><span class="cx"> virtual void didFailProvisionalNavigationWithError(WebPageProxy&, WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
</span><del>- virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy&, WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
</del><ins>+ virtual void didFailProvisionalLoadInSubframeWithError(WebPageProxy&, WebFrameProxy&, const SecurityOriginData&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
</ins><span class="cx"> virtual void didCommitNavigation(WebPageProxy&, API::Navigation*, API::Object*) override;
</span><span class="cx"> virtual void didFinishDocumentLoad(WebPageProxy&, API::Navigation*, API::Object*) override;
</span><span class="cx"> virtual void didFinishNavigation(WebPageProxy&, API::Navigation*, API::Object*) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaNavigationStatemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> #import "CompletionHandlerCallChecker.h"
</span><span class="cx"> #import "NavigationActionData.h"
</span><span class="cx"> #import "PageLoadState.h"
</span><ins>+#import "SecurityOriginData.h"
</ins><span class="cx"> #import "WKBackForwardListInternal.h"
</span><span class="cx"> #import "WKBackForwardListItemInternal.h"
</span><span class="cx"> #import "WKFrameInfoInternal.h"
</span><span class="lines">@@ -449,7 +450,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: Shouldn't need to pass the WebFrameProxy in here. At most, a FrameHandle.
</span><del>-void NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object*)
</del><ins>+void NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError(WebPageProxy& page, WebFrameProxy& webFrameProxy, const SecurityOriginData& securityOrigin, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object*)
</ins><span class="cx"> {
</span><span class="cx"> // FIXME: We should assert that navigation is not null here, but it's currently null because WebPageProxy::didFailProvisionalLoadForFrame passes null.
</span><span class="cx"> RetainPtr<WKNavigation> wkNavigation;
</span><span class="lines">@@ -462,7 +463,7 @@
</span><span class="cx"> auto navigationDelegate = m_navigationState.m_navigationDelegate.get();
</span><span class="cx"> auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, webFrameProxy, error);
</span><span class="cx">
</span><del>- [(id <WKNavigationDelegatePrivate>)navigationDelegate _webView:m_navigationState.m_webView navigation:nil didFailProvisionalLoadInSubframe:wrapper(API::FrameInfo::create(webFrameProxy)) withError:errorWithRecoveryAttempter.get()];
</del><ins>+ [(id <WKNavigationDelegatePrivate>)navigationDelegate _webView:m_navigationState.m_webView navigation:nil didFailProvisionalLoadInSubframe:wrapper(API::FrameInfo::create(webFrameProxy, securityOrigin.securityOrigin())) withError:errorWithRecoveryAttempter.get()];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void NavigationState::NavigationClient::didCommitNavigation(WebPageProxy& page, API::Navigation* navigation, API::Object*)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaUIDelegateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -58,14 +58,14 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> // API::UIClient
</span><del>- virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) override;
</del><ins>+ virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) override;
</ins><span class="cx"> virtual void close(WebKit::WebPageProxy*) override;
</span><span class="cx"> virtual void fullscreenMayReturnToInline(WebKit::WebPageProxy*) override;
</span><span class="cx"> virtual void didEnterFullscreen(WebKit::WebPageProxy*) override;
</span><span class="cx"> virtual void didExitFullscreen(WebKit::WebPageProxy*) override;
</span><del>- virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) override;
- virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (bool)> completionHandler) override;
- virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (const WTF::String&)> completionHandler) override;
</del><ins>+ virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void ()> completionHandler) override;
+ virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void (bool)> completionHandler) override;
+ virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, const WebKit::SecurityOriginData&, std::function<void (const WTF::String&)> completionHandler) override;
</ins><span class="cx"> 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;
</span><span class="cx"> virtual void reachedApplicationCacheOriginQuota(WebPageProxy*, const WebCore::SecurityOrigin&, uint64_t currentQuota, uint64_t totalBytesNeeded, std::function<void (unsigned long long)> completionHandler) override;
</span><span class="cx"> virtual void printFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaUIDelegatemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -30,14 +30,15 @@
</span><span class="cx">
</span><span class="cx"> #import "CompletionHandlerCallChecker.h"
</span><span class="cx"> #import "NavigationActionData.h"
</span><ins>+#import "SecurityOriginData.h"
</ins><span class="cx"> #import "WKFrameInfoInternal.h"
</span><span class="cx"> #import "WKNavigationActionInternal.h"
</span><ins>+#import "WKSecurityOriginInternal.h"
</ins><span class="cx"> #import "WKWebViewConfigurationInternal.h"
</span><span class="cx"> #import "WKWebViewInternal.h"
</span><span class="cx"> #import "WKWindowFeaturesInternal.h"
</span><span class="cx"> #import "WKUIDelegatePrivate.h"
</span><span class="cx"> #import "_WKFrameHandleInternal.h"
</span><del>-#import "_WKSecurityOriginInternal.h"
</del><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><span class="lines">@@ -91,7 +92,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<WebKit::WebPageProxy> UIDelegate::UIClient::createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy* initiatingFrame, const WebCore::ResourceRequest& request, const WebCore::WindowFeatures& windowFeatures, const WebKit::NavigationActionData& navigationActionData)
</del><ins>+PassRefPtr<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)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_uiDelegate.m_delegateMethods.webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures)
</span><span class="cx"> return nullptr;
</span><span class="lines">@@ -103,7 +104,7 @@
</span><span class="cx"> auto configuration = adoptNS([m_uiDelegate.m_webView->_configuration copy]);
</span><span class="cx"> [configuration _setRelatedWebView:m_uiDelegate.m_webView];
</span><span class="cx">
</span><del>- auto sourceFrameInfo = API::FrameInfo::create(*initiatingFrame);
</del><ins>+ auto sourceFrameInfo = API::FrameInfo::create(*initiatingFrame, securityOriginData.securityOrigin());
</ins><span class="cx"> auto navigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.ptr(), nullptr, request, WebCore::URL());
</span><span class="cx">
</span><span class="cx"> RetainPtr<WKWebView> webView = [delegate.get() webView:m_uiDelegate.m_webView createWebViewWithConfiguration:configuration.get() forNavigationAction:wrapper(navigationAction) windowFeatures:adoptNS([[WKWindowFeatures alloc] _initWithWindowFeatures:windowFeatures]).get()];
</span><span class="lines">@@ -117,7 +118,7 @@
</span><span class="cx"> return webView->_page.get();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void UIDelegate::UIClient::runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, std::function<void ()> completionHandler)
</del><ins>+void UIDelegate::UIClient::runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, const WebKit::SecurityOriginData& securityOriginData, std::function<void ()> completionHandler)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_uiDelegate.m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler) {
</span><span class="cx"> completionHandler();
</span><span class="lines">@@ -131,13 +132,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:));
</span><del>- [delegate webView:m_uiDelegate.m_webView runJavaScriptAlertPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy)) completionHandler:[completionHandler, checker] {
</del><ins>+ [delegate webView:m_uiDelegate.m_webView runJavaScriptAlertPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:[completionHandler, checker] {
</ins><span class="cx"> completionHandler();
</span><span class="cx"> checker->didCallCompletionHandler();
</span><span class="cx"> }];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void UIDelegate::UIClient::runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, std::function<void (bool)> completionHandler)
</del><ins>+void UIDelegate::UIClient::runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, const WebKit::SecurityOriginData& securityOriginData, std::function<void (bool)> completionHandler)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_uiDelegate.m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler) {
</span><span class="cx"> completionHandler(false);
</span><span class="lines">@@ -151,13 +152,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:));
</span><del>- [delegate webView:m_uiDelegate.m_webView runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy)) completionHandler:[completionHandler, checker](BOOL result) {
</del><ins>+ [delegate webView:m_uiDelegate.m_webView runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:[completionHandler, checker](BOOL result) {
</ins><span class="cx"> completionHandler(result);
</span><span class="cx"> checker->didCallCompletionHandler();
</span><span class="cx"> }];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void UIDelegate::UIClient::runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String& message, const WTF::String& defaultValue, WebKit::WebFrameProxy* webFrameProxy, std::function<void (const WTF::String&)> completionHandler)
</del><ins>+void 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)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_uiDelegate.m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler) {
</span><span class="cx"> completionHandler(String());
</span><span class="lines">@@ -171,7 +172,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:));
</span><del>- [delegate webView:m_uiDelegate.m_webView runJavaScriptTextInputPanelWithPrompt:message defaultText:defaultValue initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy)) completionHandler:[completionHandler, checker](NSString *result) {
</del><ins>+ [delegate webView:m_uiDelegate.m_webView runJavaScriptTextInputPanelWithPrompt:message defaultText:defaultValue initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:[completionHandler, checker](NSString *result) {
</ins><span class="cx"> completionHandler(result);
</span><span class="cx"> checker->didCallCompletionHandler();
</span><span class="cx"> }];
</span><span class="lines">@@ -190,8 +191,9 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ ASSERT(securityOrigin);
</ins><span class="cx"> RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:decideDatabaseQuotaForSecurityOrigin:currentQuota:currentOriginUsage:currentDatabaseUsage:expectedUsage:decisionHandler:));
</span><del>- [(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) {
</del><ins>+ [(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) {
</ins><span class="cx"> checker->didCallCompletionHandler();
</span><span class="cx"> completionHandler(newQuota);
</span><span class="cx"> }];
</span><span class="lines">@@ -211,7 +213,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:decideWebApplicationCacheQuotaForSecurityOrigin:currentQuota:totalBytesNeeded:decisionHandler:));
</span><del>- [(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) {
</del><ins>+ RefPtr<API::SecurityOrigin> apiOrigin = API::SecurityOrigin::create(securityOrigin);
+
+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView decideWebApplicationCacheQuotaForSecurityOrigin:wrapper(*apiOrigin) currentQuota:currentQuota totalBytesNeeded:totalBytesNeeded decisionHandler:[completionHandler, checker](unsigned long long newQuota) {
</ins><span class="cx"> checker->didCallCompletionHandler();
</span><span class="cx"> completionHandler(newQuota);
</span><span class="cx"> }];
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessUserContentWebScriptMessageHandlerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/UserContent/WebScriptMessageHandler.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/UserContent/WebScriptMessageHandler.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/UserContent/WebScriptMessageHandler.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx">
</span><span class="cx"> class WebPageProxy;
</span><span class="cx"> class WebFrameProxy;
</span><ins>+struct SecurityOriginData;
</ins><span class="cx">
</span><span class="cx"> struct WebScriptMessageHandlerHandle {
</span><span class="cx"> void encode(IPC::ArgumentEncoder&) const;
</span><span class="lines">@@ -57,7 +58,7 @@
</span><span class="cx"> class Client {
</span><span class="cx"> public:
</span><span class="cx"> virtual ~Client() { }
</span><del>- virtual void didPostMessage(WebPageProxy&, WebFrameProxy&, WebCore::SerializedScriptValue&) = 0;
</del><ins>+ virtual void didPostMessage(WebPageProxy&, WebFrameProxy&, const SecurityOriginData&, WebCore::SerializedScriptValue&) = 0;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> static PassRefPtr<WebScriptMessageHandler> create(std::unique_ptr<Client>, const String& name);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessUserContentWebUserContentControllerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, uint64_t pageID, uint64_t frameID, uint64_t messageHandlerID, const IPC::DataReference& dataReference)
</del><ins>+void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, uint64_t pageID, uint64_t frameID, const SecurityOriginData& securityOrigin, uint64_t messageHandlerID, const IPC::DataReference& dataReference)
</ins><span class="cx"> {
</span><span class="cx"> WebPageProxy* page = WebProcessProxy::webPage(pageID);
</span><span class="cx"> if (!page)
</span><span class="lines">@@ -178,10 +178,9 @@
</span><span class="cx"> auto buffer = dataReference.vector();
</span><span class="cx"> RefPtr<WebCore::SerializedScriptValue> value = WebCore::SerializedScriptValue::adopt(buffer);
</span><span class="cx">
</span><del>- handler->client().didPostMessage(*page, *frame, *value);
</del><ins>+ handler->client().didPostMessage(*page, *frame, securityOrigin, *value);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-
</del><span class="cx"> #if ENABLE(CONTENT_EXTENSIONS)
</span><span class="cx"> void WebUserContentControllerProxy::addUserContentExtension(API::UserContentExtension& userContentExtension)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessUserContentWebUserContentControllerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -56,6 +56,7 @@
</span><span class="cx">
</span><span class="cx"> class WebProcessProxy;
</span><span class="cx"> class WebScriptMessageHandler;
</span><ins>+struct SecurityOriginData;
</ins><span class="cx">
</span><span class="cx"> class WebUserContentControllerProxy : public API::ObjectImpl<API::Object::Type::UserContentController>, private IPC::MessageReceiver {
</span><span class="cx"> public:
</span><span class="lines">@@ -92,7 +93,7 @@
</span><span class="cx"> // IPC::MessageReceiver.
</span><span class="cx"> virtual void didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) override;
</span><span class="cx">
</span><del>- void didPostMessage(IPC::Connection&, uint64_t pageID, uint64_t frameID, uint64_t messageHandlerID, const IPC::DataReference&);
</del><ins>+ void didPostMessage(IPC::Connection&, uint64_t pageID, uint64_t frameID, const SecurityOriginData&, uint64_t messageHandlerID, const IPC::DataReference&);
</ins><span class="cx">
</span><span class="cx"> uint64_t m_identifier;
</span><span class="cx"> HashSet<WebProcessProxy*> m_processes;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessUserContentWebUserContentControllerProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.messages.in (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.messages.in        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.messages.in        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -24,5 +24,5 @@
</span><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> messages -> WebUserContentControllerProxy {
</span><del>- DidPostMessage(uint64_t pageID, uint64_t frameID, uint64_t messageHandlerID, IPC::DataReference message) WantsConnection
</del><ins>+ DidPostMessage(uint64_t pageID, uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, uint64_t messageHandlerID, IPC::DataReference message) WantsConnection
</ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -2875,7 +2875,7 @@
</span><span class="cx"> frame->didReceiveServerRedirectForProvisionalLoad(url);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& provisionalURL, const ResourceError& error, const UserData& userData)
</del><ins>+void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const ResourceError& error, const UserData& userData)
</ins><span class="cx"> {
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="lines">@@ -2902,7 +2902,7 @@
</span><span class="cx"> m_navigationClient->didFailProvisionalNavigationWithError(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get());
</span><span class="cx"> else {
</span><span class="cx"> // FIXME: Get the main frame's current navigation.
</span><del>- m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, nullptr, error, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, frameSecurityOrigin, nullptr, error, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> } else
</span><span class="cx"> m_loaderClient->didFailProvisionalLoadWithErrorForFrame(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get());
</span><span class="lines">@@ -3205,7 +3205,7 @@
</span><span class="cx"> m_frameSetLargestFrame = value ? m_mainFrame : 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-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)
</del><ins>+void 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)
</ins><span class="cx"> {
</span><span class="cx"> auto transaction = m_pageLoadState.transaction();
</span><span class="cx">
</span><span class="lines">@@ -3244,12 +3244,12 @@
</span><span class="cx"> RefPtr<API::FrameInfo> sourceFrameInfo;
</span><span class="cx">
</span><span class="cx"> if (frame)
</span><del>- destinationFrameInfo = API::FrameInfo::create(*frame);
</del><ins>+ destinationFrameInfo = API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin());
</ins><span class="cx">
</span><span class="cx"> if (originatingFrame == frame)
</span><span class="cx"> sourceFrameInfo = destinationFrameInfo;
</span><span class="cx"> else if (originatingFrame)
</span><del>- sourceFrameInfo = API::FrameInfo::create(*originatingFrame);
</del><ins>+ sourceFrameInfo = API::FrameInfo::create(*originatingFrame, originatingFrameSecurityOrigin.securityOrigin());
</ins><span class="cx">
</span><span class="cx"> auto navigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.get(), destinationFrameInfo.get(), request, originalRequest.url());
</span><span class="cx">
</span><span class="lines">@@ -3267,7 +3267,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData& navigationActionData, const ResourceRequest& request, const String& frameName, uint64_t listenerID, const UserData& userData)
</del><ins>+void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const NavigationActionData& navigationActionData, const ResourceRequest& request, const String& frameName, uint64_t listenerID, const UserData& userData)
</ins><span class="cx"> {
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="lines">@@ -3278,7 +3278,7 @@
</span><span class="cx"> if (m_navigationClient) {
</span><span class="cx"> RefPtr<API::FrameInfo> sourceFrameInfo;
</span><span class="cx"> if (frame)
</span><del>- sourceFrameInfo = API::FrameInfo::create(*frame);
</del><ins>+ sourceFrameInfo = API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin());
</ins><span class="cx">
</span><span class="cx"> auto navigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.get(), nullptr, request, request.url());
</span><span class="cx">
</span><span class="lines">@@ -3288,7 +3288,7 @@
</span><span class="cx"> m_policyClient->decidePolicyForNewWindowAction(*this, *frame, navigationActionData, request, frameName, WTF::move(listener), m_process->transformHandlesToObjects(userData.object()).get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
</del><ins>+void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
</ins><span class="cx"> {
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="lines">@@ -3298,13 +3298,13 @@
</span><span class="cx"> Ref<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
</span><span class="cx">
</span><span class="cx"> if (m_navigationClient) {
</span><del>- auto navigationResponse = API::NavigationResponse::create(API::FrameInfo::create(*frame).get(), request, response, canShowMIMEType);
</del><ins>+ auto navigationResponse = API::NavigationResponse::create(API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin()).get(), request, response, canShowMIMEType);
</ins><span class="cx"> m_navigationClient->decidePolicyForNavigationResponse(*this, navigationResponse.get(), WTF::move(listener), m_process->transformHandlesToObjects(userData.object()).get());
</span><span class="cx"> } else
</span><span class="cx"> m_policyClient->decidePolicyForResponse(*this, *frame, response, request, canShowMIMEType, WTF::move(listener), m_process->transformHandlesToObjects(userData.object()).get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-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)
</del><ins>+void 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)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(!m_inDecidePolicyForResponseSync);
</span><span class="cx">
</span><span class="lines">@@ -3312,7 +3312,7 @@
</span><span class="cx"> m_decidePolicyForResponseRequest = &request;
</span><span class="cx"> m_syncMimeTypePolicyActionIsValid = false;
</span><span class="cx">
</span><del>- decidePolicyForResponse(frameID, response, request, canShowMIMEType, listenerID, userData);
</del><ins>+ decidePolicyForResponse(frameID, frameSecurityOrigin, response, request, canShowMIMEType, listenerID, userData);
</ins><span class="cx">
</span><span class="cx"> m_inDecidePolicyForResponseSync = false;
</span><span class="cx"> m_decidePolicyForResponseRequest = 0;
</span><span class="lines">@@ -3419,12 +3419,12 @@
</span><span class="cx">
</span><span class="cx"> // UIClient
</span><span class="cx">
</span><del>-void WebPageProxy::createNewPage(uint64_t frameID, const ResourceRequest& request, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
</del><ins>+void WebPageProxy::createNewPage(uint64_t frameID, const SecurityOriginData& securityOriginData, const ResourceRequest& request, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
</ins><span class="cx"> {
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><del>- RefPtr<WebPageProxy> newPage = m_uiClient->createNewPage(this, frame, request, windowFeatures, navigationActionData);
</del><ins>+ RefPtr<WebPageProxy> newPage = m_uiClient->createNewPage(this, frame, securityOriginData, request, windowFeatures, navigationActionData);
</ins><span class="cx"> if (!newPage) {
</span><span class="cx"> newPageID = 0;
</span><span class="cx"> return;
</span><span class="lines">@@ -3465,7 +3465,7 @@
</span><span class="cx"> m_uiClient->close(this);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::runJavaScriptAlert(uint64_t frameID, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply> reply)
</del><ins>+void WebPageProxy::runJavaScriptAlert(uint64_t frameID, const SecurityOriginData& securityOrigin, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply> reply)
</ins><span class="cx"> {
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="lines">@@ -3473,10 +3473,10 @@
</span><span class="cx"> // Since runJavaScriptAlert() can spin a nested run loop we need to turn off the responsiveness timer.
</span><span class="cx"> m_process->responsivenessTimer()->stop();
</span><span class="cx">
</span><del>- m_uiClient->runJavaScriptAlert(this, message, frame, [reply]{ reply->send(); });
</del><ins>+ m_uiClient->runJavaScriptAlert(this, message, frame, securityOrigin, [reply]{ reply->send(); });
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::runJavaScriptConfirm(uint64_t frameID, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply> reply)
</del><ins>+void WebPageProxy::runJavaScriptConfirm(uint64_t frameID, const SecurityOriginData& securityOrigin, const String& message, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply> reply)
</ins><span class="cx"> {
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="lines">@@ -3484,10 +3484,10 @@
</span><span class="cx"> // Since runJavaScriptConfirm() can spin a nested run loop we need to turn off the responsiveness timer.
</span><span class="cx"> m_process->responsivenessTimer()->stop();
</span><span class="cx">
</span><del>- m_uiClient->runJavaScriptConfirm(this, message, frame, [reply](bool result) { reply->send(result); });
</del><ins>+ m_uiClient->runJavaScriptConfirm(this, message, frame, securityOrigin, [reply](bool result) { reply->send(result); });
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::runJavaScriptPrompt(uint64_t frameID, const String& message, const String& defaultValue, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply> reply)
</del><ins>+void WebPageProxy::runJavaScriptPrompt(uint64_t frameID, const SecurityOriginData& securityOrigin, const String& message, const String& defaultValue, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply> reply)
</ins><span class="cx"> {
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="lines">@@ -3495,7 +3495,7 @@
</span><span class="cx"> // Since runJavaScriptPrompt() can spin a nested run loop we need to turn off the responsiveness timer.
</span><span class="cx"> m_process->responsivenessTimer()->stop();
</span><span class="cx">
</span><del>- m_uiClient->runJavaScriptPrompt(this, message, defaultValue, frame, [reply](const String& result) { reply->send(result); });
</del><ins>+ m_uiClient->runJavaScriptPrompt(this, message, defaultValue, frame, securityOrigin, [reply](const String& result) { reply->send(result); });
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::setStatusText(const String& text)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -200,6 +200,7 @@
</span><span class="cx"> struct EditorState;
</span><span class="cx"> struct PlatformPopupMenuData;
</span><span class="cx"> struct PrintInfo;
</span><ins>+struct SecurityOriginData;
</ins><span class="cx"> struct WebPopupItem;
</span><span class="cx">
</span><span class="cx"> #if ENABLE(VIBRATION)
</span><span class="lines">@@ -1101,7 +1102,7 @@
</span><span class="cx"> void didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& url, const String& unreachableURL, const UserData&);
</span><span class="cx"> void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&, const UserData&);
</span><span class="cx"> void didChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, const String& url);
</span><del>- void didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& provisionalURL, const WebCore::ResourceError&, const UserData&);
</del><ins>+ void didFailProvisionalLoadForFrame(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const WebCore::ResourceError&, const UserData&);
</ins><span class="cx"> void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo&, const UserData&);
</span><span class="cx"> void didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&);
</span><span class="cx"> void didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&);
</span><span class="lines">@@ -1123,10 +1124,10 @@
</span><span class="cx">
</span><span class="cx"> void didDestroyNavigation(uint64_t navigationID);
</span><span class="cx">
</span><del>- 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);
- void decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData&, const WebCore::ResourceRequest&, const String& frameName, uint64_t listenerID, const UserData&);
- void decidePolicyForResponse(uint64_t frameID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
- 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);
</del><ins>+ 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);
+ void decidePolicyForNewWindowAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const NavigationActionData&, const WebCore::ResourceRequest&, const String& frameName, uint64_t listenerID, const UserData&);
+ void decidePolicyForResponse(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
+ 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);
</ins><span class="cx"> void unableToImplementPolicy(uint64_t frameID, const WebCore::ResourceError&, const UserData&);
</span><span class="cx">
</span><span class="cx"> void willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector<std::pair<String, String>>& textFieldValues, uint64_t listenerID, const UserData&);
</span><span class="lines">@@ -1138,12 +1139,12 @@
</span><span class="cx"> void didUpdateHistoryTitle(const String& title, const String& url, uint64_t frameID);
</span><span class="cx">
</span><span class="cx"> // UI client
</span><del>- void createNewPage(uint64_t frameID, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const NavigationActionData&, uint64_t& newPageID, WebPageCreationParameters&);
</del><ins>+ void createNewPage(uint64_t frameID, const SecurityOriginData&, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const NavigationActionData&, uint64_t& newPageID, WebPageCreationParameters&);
</ins><span class="cx"> void showPage();
</span><span class="cx"> void closePage(bool stopResponsivenessTimer);
</span><del>- void runJavaScriptAlert(uint64_t frameID, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply>);
- void runJavaScriptConfirm(uint64_t frameID, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply>);
- void runJavaScriptPrompt(uint64_t frameID, const String&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply>);
</del><ins>+ void runJavaScriptAlert(uint64_t frameID, const SecurityOriginData&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply>);
+ void runJavaScriptConfirm(uint64_t frameID, const SecurityOriginData&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply>);
+ void runJavaScriptPrompt(uint64_t frameID, const SecurityOriginData&, const String&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply>);
</ins><span class="cx"> void setStatusText(const String&);
</span><span class="cx"> void mouseDidMoveOverElement(const WebHitTestResult::Data& hitTestResultData, uint32_t modifiers, const UserData&);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -22,12 +22,12 @@
</span><span class="cx">
</span><span class="cx"> messages -> WebPageProxy {
</span><span class="cx"> # UI messages
</span><del>- CreateNewPage(uint64_t frameID, WebCore::ResourceRequest request, struct WebCore::WindowFeatures windowFeatures, struct WebKit::NavigationActionData navigationActionData) -> (uint64_t newPageID, struct WebKit::WebPageCreationParameters newPageParameters)
</del><ins>+ 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)
</ins><span class="cx"> ShowPage()
</span><span class="cx"> ClosePage(bool stopResponsivenessTimer)
</span><del>- RunJavaScriptAlert(uint64_t frameID, String message) -> () Delayed
- RunJavaScriptConfirm(uint64_t frameID, String message) -> (bool result) Delayed
- RunJavaScriptPrompt(uint64_t frameID, String message, String defaultValue) -> (String result) Delayed
</del><ins>+ RunJavaScriptAlert(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, String message) -> () Delayed
+ RunJavaScriptConfirm(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, String message) -> (bool result) Delayed
+ RunJavaScriptPrompt(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, String message, String defaultValue) -> (String result) Delayed
</ins><span class="cx"> MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::UserData userData)
</span><span class="cx">
</span><span class="cx"> DidBeginTrackingPotentialLongMousePress(WebCore::IntPoint mouseDownPosition, WebKit::WebHitTestResult::Data hitTestResultData, WebKit::UserData userData)
</span><span class="lines">@@ -109,9 +109,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> # Policy messages
</span><del>- 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)
- 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)
- DecidePolicyForNewWindowAction(uint64_t frameID, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData)
</del><ins>+ 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)
+ 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)
+ DecidePolicyForNewWindowAction(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData)
</ins><span class="cx"> UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::UserData userData)
</span><span class="cx">
</span><span class="cx"> # Progress messages
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx"> DidStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, String unreachableURL, WebKit::UserData userData)
</span><span class="cx"> DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, WebKit::UserData userData)
</span><span class="cx"> DidChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, String url)
</span><del>- DidFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String provisionalURL, WebCore::ResourceError error, WebKit::UserData userData)
</del><ins>+ DidFailProvisionalLoadForFrame(uint64_t frameID, struct WebKit::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, String provisionalURL, WebCore::ResourceError error, WebKit::UserData userData)
</ins><span class="cx"> DidCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, String mimeType, bool hasCustomContentProvider, uint32_t loadType, WebCore::CertificateInfo certificateInfo, WebKit::UserData userData)
</span><span class="cx"> DidFailLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::UserData userData)
</span><span class="cx"> DidFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::UserData userData)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -772,7 +772,6 @@
</span><span class="cx">                 37694525184FC6B600CDE21F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCF5068412431861005955AE /* Security.framework */; };
</span><span class="cx">                 376C51191957452E0007B0FA /* _WKSecurityOrigin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */; };
</span><span class="cx">                 376C511A1957452E0007B0FA /* _WKSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = 376C51181957452E0007B0FA /* _WKSecurityOrigin.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                376C511D19574F5F0007B0FA /* _WKSecurityOriginInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */; };
</del><span class="cx">                 37716A5A195B910500EE8B1B /* ProcessAssertion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37716A59195B910500EE8B1B /* ProcessAssertion.cpp */; };
</span><span class="cx">                 377216B81A4E6BE000DCA718 /* _WKRenderingProgressEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = 377216B71A4E6BE000DCA718 /* _WKRenderingProgressEvents.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 377EAD4517E2C51A002D193D /* WKDeclarationSpecifiers.h in Headers */ = {isa = PBXBuildFile; fileRef = 377EAD4417E2C51A002D193D /* WKDeclarationSpecifiers.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -995,6 +994,9 @@
</span><span class="cx">                 51CBBA10165219B6005BE8FD /* NetworkResourceLoadParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CBBA0E165219B6005BE8FD /* NetworkResourceLoadParameters.h */; };
</span><span class="cx">                 51CD1C5D1B3493AF00142CA5 /* WKSecurityOriginRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51CD1C591B3493A900142CA5 /* WKSecurityOriginRef.cpp */; };
</span><span class="cx">                 51CD1C5E1B3493B400142CA5 /* WKSecurityOriginRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CD1C5A1B3493A900142CA5 /* WKSecurityOriginRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                51CD1C651B34B9D400142CA5 /* WKSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CD1C5F1B34B9C900142CA5 /* WKSecurityOrigin.h */; settings = {ATTRIBUTES = (Public, ); }; };
+                51CD1C661B34B9DC00142CA5 /* WKSecurityOrigin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51CD1C601B34B9C900142CA5 /* WKSecurityOrigin.mm */; };
+                51CD1C671B34B9DF00142CA5 /* WKSecurityOriginInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CD1C611B34B9C900142CA5 /* WKSecurityOriginInternal.h */; };
</ins><span class="cx">                 51D02F64132EC5B900BEAA96 /* WebIconDatabaseMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D02F63132EC5B900BEAA96 /* WebIconDatabaseMessageReceiver.cpp */; };
</span><span class="cx">                 51D02F6A132EC73700BEAA96 /* WebIconDatabaseMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D02F67132EC73700BEAA96 /* WebIconDatabaseMessages.h */; };
</span><span class="cx">                 51D02F6B132EC73700BEAA96 /* WebIconDatabaseProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D02F68132EC73700BEAA96 /* WebIconDatabaseProxyMessageReceiver.cpp */; };
</span><span class="lines">@@ -2913,7 +2915,6 @@
</span><span class="cx">                 3769079C18F340A2001DFF04 /* APIInjectedBundleFormClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIInjectedBundleFormClient.h; sourceTree = "<group>"; };
</span><span class="cx">                 376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKSecurityOrigin.mm; sourceTree = "<group>"; };
</span><span class="cx">                 376C51181957452E0007B0FA /* _WKSecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKSecurityOrigin.h; sourceTree = "<group>"; };
</span><del>-                376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKSecurityOriginInternal.h; sourceTree = "<group>"; };
</del><span class="cx">                 37716A59195B910500EE8B1B /* ProcessAssertion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProcessAssertion.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 377216B71A4E6BE000DCA718 /* _WKRenderingProgressEvents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKRenderingProgressEvents.h; sourceTree = "<group>"; };
</span><span class="cx">                 377EAD4417E2C51A002D193D /* WKDeclarationSpecifiers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDeclarationSpecifiers.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -3158,6 +3159,9 @@
</span><span class="cx">                 51CBBA0E165219B6005BE8FD /* NetworkResourceLoadParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkResourceLoadParameters.h; path = Network/NetworkResourceLoadParameters.h; sourceTree = "<group>"; };
</span><span class="cx">                 51CD1C591B3493A900142CA5 /* WKSecurityOriginRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKSecurityOriginRef.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 51CD1C5A1B3493A900142CA5 /* WKSecurityOriginRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSecurityOriginRef.h; sourceTree = "<group>"; };
</span><ins>+                51CD1C5F1B34B9C900142CA5 /* WKSecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSecurityOrigin.h; sourceTree = "<group>"; };
+                51CD1C601B34B9C900142CA5 /* WKSecurityOrigin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKSecurityOrigin.mm; sourceTree = "<group>"; };
+                51CD1C611B34B9C900142CA5 /* WKSecurityOriginInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSecurityOriginInternal.h; sourceTree = "<group>"; };
</ins><span class="cx">                 51D02F63132EC5B900BEAA96 /* WebIconDatabaseMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebIconDatabaseMessageReceiver.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 51D02F65132EC6D300BEAA96 /* WebIconDatabaseProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebIconDatabaseProxy.messages.in; path = IconDatabase/WebIconDatabaseProxy.messages.in; sourceTree = "<group>"; };
</span><span class="cx">                 51D02F67132EC73700BEAA96 /* WebIconDatabaseMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebIconDatabaseMessages.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -5280,7 +5284,6 @@
</span><span class="cx">                                 7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */,
</span><span class="cx">                                 376C51181957452E0007B0FA /* _WKSecurityOrigin.h */,
</span><span class="cx">                                 376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */,
</span><del>-                                376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */,
</del><span class="cx">                                 1A002D3F196B329400B9AD44 /* _WKSessionState.h */,
</span><span class="cx">                                 1A002D3E196B329400B9AD44 /* _WKSessionState.mm */,
</span><span class="cx">                                 1A002D42196B337000B9AD44 /* _WKSessionStateInternal.h */,
</span><span class="lines">@@ -5341,6 +5344,9 @@
</span><span class="cx">                                 1A7E377618E4A4FE003D0FFF /* WKScriptMessage.mm */,
</span><span class="cx">                                 1A7E377418E4A33A003D0FFF /* WKScriptMessageHandler.h */,
</span><span class="cx">                                 7CC99A3518EF7CBC0048C8B4 /* WKScriptMessageInternal.h */,
</span><ins>+                                51CD1C5F1B34B9C900142CA5 /* WKSecurityOrigin.h */,
+                                51CD1C601B34B9C900142CA5 /* WKSecurityOrigin.mm */,
+                                51CD1C611B34B9C900142CA5 /* WKSecurityOriginInternal.h */,
</ins><span class="cx">                                 1AD8790918B6C38A006CAFD7 /* WKUIDelegate.h */,
</span><span class="cx">                                 3743925718BC4C60001C8675 /* WKUIDelegatePrivate.h */,
</span><span class="cx">                                 1AFA3AC718E61C61003CCBAE /* WKUserContentController.h */,
</span><span class="lines">@@ -7487,7 +7493,6 @@
</span><span class="cx">                                 376311FD1A3FB5F7005A2E51 /* _WKSameDocumentNavigationType.h in Headers */,
</span><span class="cx">                                 376311FE1A3FB600005A2E51 /* _WKSameDocumentNavigationTypeInternal.h in Headers */,
</span><span class="cx">                                 376C511A1957452E0007B0FA /* _WKSecurityOrigin.h in Headers */,
</span><del>-                                376C511D19574F5F0007B0FA /* _WKSecurityOriginInternal.h in Headers */,
</del><span class="cx">                                 1A002D44196B338900B9AD44 /* _WKSessionState.h in Headers */,
</span><span class="cx">                                 1A002D43196B337000B9AD44 /* _WKSessionStateInternal.h in Headers */,
</span><span class="cx">                                 2D6B371B18A967AD0042AE80 /* _WKThumbnailView.h in Headers */,
</span><span class="lines">@@ -7625,6 +7630,7 @@
</span><span class="cx">                                 1AE00D611831792100087DD7 /* FrameLoadState.h in Headers */,
</span><span class="cx">                                 BC17753F118BABF0007D9E9A /* GenericCallback.h in Headers */,
</span><span class="cx">                                 BC06F42F12DBB9B6002D78DE /* GeolocationPermissionRequestManager.h in Headers */,
</span><ins>+                                51CD1C671B34B9DF00142CA5 /* WKSecurityOriginInternal.h in Headers */,
</ins><span class="cx">                                 BC06F44A12DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.h in Headers */,
</span><span class="cx">                                 BC06F43A12DBCCFB002D78DE /* GeolocationPermissionRequestProxy.h in Headers */,
</span><span class="cx">                                 2DA944A41884E4F000ED86DB /* GestureTypes.h in Headers */,
</span><span class="lines">@@ -7775,6 +7781,7 @@
</span><span class="cx">                                 BC597075116591D000551FCA /* ProcessModel.h in Headers */,
</span><span class="cx">                                 86E67A251910B9D100004AB7 /* ProcessThrottler.h in Headers */,
</span><span class="cx">                                 83048AE61ACA45DC0082C832 /* ProcessThrottlerClient.h in Headers */,
</span><ins>+                                51CD1C651B34B9D400142CA5 /* WKSecurityOrigin.h in Headers */,
</ins><span class="cx">                                 2D7F13101A702FBA009A6FBD /* ProcessType.h in Headers */,
</span><span class="cx">                                 A118A9EF1907AD6F00F7C92B /* QuickLookDocumentData.h in Headers */,
</span><span class="cx">                                 2D47B56D1810714E003A3AEE /* RemoteLayerBackingStore.h in Headers */,
</span><span class="lines">@@ -9438,6 +9445,7 @@
</span><span class="cx">                                 BC14E109120B905E00826C0C /* InjectedBundlePageFormClient.cpp in Sources */,
</span><span class="cx">                                 CD5C66A0134B9D38004FE2A8 /* InjectedBundlePageFullScreenClient.cpp in Sources */,
</span><span class="cx">                                 BCA8C6A811E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.cpp in Sources */,
</span><ins>+                                51CD1C661B34B9DC00142CA5 /* WKSecurityOrigin.mm in Sources */,
</ins><span class="cx">                                 BC8147AA12F64CDA007B2C32 /* InjectedBundlePagePolicyClient.cpp in Sources */,
</span><span class="cx">                                 659C551E130006410025C0C2 /* InjectedBundlePageResourceLoadClient.cpp in Sources */,
</span><span class="cx">                                 BCA8C6AF11E3C08700812FB7 /* InjectedBundlePageUIClient.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessUserContentWebUserContentControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #include "WebUserContentController.h"
</span><span class="cx">
</span><span class="cx"> #include "DataReference.h"
</span><ins>+#include "SecurityOriginData.h"
</ins><span class="cx"> #include "WebCompiledContentExtension.h"
</span><span class="cx"> #include "WebFrame.h"
</span><span class="cx"> #include "WebPage.h"
</span><span class="lines">@@ -135,7 +136,7 @@
</span><span class="cx"> if (!webPage)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- WebProcess::singleton().parentProcessConnection()->send(Messages::WebUserContentControllerProxy::DidPostMessage(webPage->pageID(), webFrame->frameID(), m_identifier, IPC::DataReference(value->data())), m_controller->identifier());
</del><ins>+ WebProcess::singleton().parentProcessConnection()->send(Messages::WebUserContentControllerProxy::DidPostMessage(webPage->pageID(), webFrame->frameID(), SecurityOriginData::fromFrame(webFrame), m_identifier, IPC::DataReference(value->data())), m_controller->identifier());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebCore::UserMessageHandlerDescriptor& descriptor() { return *m_descriptor; }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -36,6 +36,7 @@
</span><span class="cx"> #include "LayerTreeHost.h"
</span><span class="cx"> #include "NavigationActionData.h"
</span><span class="cx"> #include "PageBanner.h"
</span><ins>+#include "SecurityOriginData.h"
</ins><span class="cx"> #include "UserData.h"
</span><span class="cx"> #include "WebColorChooser.h"
</span><span class="cx"> #include "WebCoreArgumentCoders.h"
</span><span class="lines">@@ -221,7 +222,7 @@
</span><span class="cx"> uint64_t newPageID = 0;
</span><span class="cx"> WebPageCreationParameters parameters;
</span><span class="cx"> auto& webProcess = WebProcess::singleton();
</span><del>- if (!webProcess.parentProcessConnection()->sendSync(Messages::WebPageProxy::CreateNewPage(webFrame->frameID(), request.resourceRequest(), windowFeatures, navigationActionData), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page->pageID()))
</del><ins>+ 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()))
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> if (!newPageID)
</span><span class="lines">@@ -379,7 +380,7 @@
</span><span class="cx"> unsigned syncSendFlags = IPC::InformPlatformProcessWillSuspend;
</span><span class="cx"> if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx"> syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><del>- WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags);
</del><ins>+ 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);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool WebChromeClient::runJavaScriptConfirm(Frame* frame, const String& message)
</span><span class="lines">@@ -396,7 +397,7 @@
</span><span class="cx"> if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx"> syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><span class="cx"> bool result = false;
</span><del>- if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page->pageID(), std::chrono::milliseconds::max(), syncSendFlags))
</del><ins>+ 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))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> return result;
</span><span class="lines">@@ -416,7 +417,7 @@
</span><span class="cx"> if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx"> syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><span class="cx">
</span><del>- 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))
</del><ins>+ 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))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> return !result.isNull();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> #include "InjectedBundleNavigationAction.h"
</span><span class="cx"> #include "NavigationActionData.h"
</span><span class="cx"> #include "PluginView.h"
</span><ins>+#include "SecurityOriginData.h"
</ins><span class="cx"> #include "UserData.h"
</span><span class="cx"> #include "WKBundleAPICast.h"
</span><span class="cx"> #include "WebBackForwardListProxy.h"
</span><span class="lines">@@ -493,7 +494,7 @@
</span><span class="cx"> navigationID = static_cast<WebDocumentLoader*>(documentLoader)->navigationID();
</span><span class="cx">
</span><span class="cx"> // Notify the UIProcess.
</span><del>- webPage->send(Messages::WebPageProxy::DidFailProvisionalLoadForFrame(m_frame->frameID(), navigationID, m_frame->coreFrame()->loader().provisionalLoadErrorBeingHandledURL(), error, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</del><ins>+ 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())));
</ins><span class="cx">
</span><span class="cx"> // If we have a load listener, notify it.
</span><span class="cx"> if (WebFrame::LoadListener* loadListener = m_frame->loadListener())
</span><span class="lines">@@ -699,7 +700,7 @@
</span><span class="cx"> unsigned syncSendFlags = IPC::InformPlatformProcessWillSuspend;
</span><span class="cx"> if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx"> syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><del>- 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)) {
</del><ins>+ 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)) {
</ins><span class="cx"> function(PolicyIgnore);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -738,7 +739,7 @@
</span><span class="cx"> navigationActionData.isProcessingUserGesture = navigationAction.processingUserGesture();
</span><span class="cx"> navigationActionData.canHandleRequest = webPage->canHandleRequest(request);
</span><span class="cx">
</span><del>- webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), navigationActionData, request, frameName, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</del><ins>+ webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), SecurityOriginData::fromFrame(m_frame), navigationActionData, request, frameName, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const NavigationAction& navigationAction, const ResourceRequest& request, PassRefPtr<FormState> prpFormState, FramePolicyFunction function)
</span><span class="lines">@@ -808,7 +809,7 @@
</span><span class="cx"> documentLoader = static_cast<WebDocumentLoader*>(coreFrame->loader().documentLoader());
</span><span class="cx">
</span><span class="cx"> // Notify the UIProcess.
</span><del>- 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))) {
</del><ins>+ 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))) {
</ins><span class="cx"> function(PolicyIgnore);
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Tools/ChangeLog        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-06-23 Brady Eidson <beidson@apple.com>
+
+ 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.
+
+ * 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):
+
</ins><span class="cx"> 2015-06-23 Tanay C <tanay.c@samsung.com>
</span><span class="cx">
</span><span class="cx"> Remove build warnings in Tools/DumpRenderTree/TestNetscapePlugIn
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPITestWebKitAPIxcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (185876 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj        2015-06-23 16:45:30 UTC (rev 185876)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -51,6 +51,8 @@
</span><span class="cx">                 51393E221523952D005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51393E1D1523944A005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp */; };
</span><span class="cx">                 5142B2731517C8C800C32B19 /* ContextMenuCanCopyURL.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */; };
</span><span class="cx">                 517E7E04151119C100D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */; };
</span><ins>+                51CD1C6C1B38CE4300142CA5 /* ModalAlerts.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */; };
+                51CD1C721B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51CD1C711B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html */; };
</ins><span class="cx">                 51E5C7021919C3B200D8B3E1 /* simple2.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51E780361919AFF8001829A2 /* simple2.html */; };
</span><span class="cx">                 51E5C7031919C3B200D8B3E1 /* simple3.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51E780371919AFF8001829A2 /* simple3.html */; };
</span><span class="cx">                 51FCF7A11534B2A000104491 /* ShouldGoToBackForwardListItem_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51FCF7971534AC6D00104491 /* ShouldGoToBackForwardListItem_Bundle.cpp */; };
</span><span class="lines">@@ -338,6 +340,7 @@
</span><span class="cx">                         dstPath = TestWebKitAPI.resources;
</span><span class="cx">                         dstSubfolderSpec = 7;
</span><span class="cx">                         files = (
</span><ins>+                                51CD1C721B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html in Copy Resources */,
</ins><span class="cx">                                 7AE9E5091AE5AE8B00CF874B /* test.pdf in Copy Resources */,
</span><span class="cx">                                 7A1458FC1AD5C07000E06772 /* mouse-button-listener.html in Copy Resources */,
</span><span class="cx">                                 7C486BA11AA12567003F6F9B /* bundle-file.html in Copy Resources */,
</span><span class="lines">@@ -516,6 +519,8 @@
</span><span class="cx">                 5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ContextMenuCanCopyURL.html; sourceTree = "<group>"; };
</span><span class="cx">                 517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryCachePruneWithinResourceLoadDelegate.mm; sourceTree = "<group>"; };
</span><span class="cx">                 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = MemoryCachePruneWithinResourceLoadDelegate.html; sourceTree = "<group>"; };
</span><ins>+                51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ModalAlerts.mm; sourceTree = "<group>"; };
+                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>"; };
</ins><span class="cx">                 51E5C7041919EA5F00D8B3E1 /* ShouldKeepCurrentBackForwardListItemInList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShouldKeepCurrentBackForwardListItemInList.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 51E780361919AFF8001829A2 /* simple2.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = simple2.html; sourceTree = "<group>"; };
</span><span class="cx">                 51E780371919AFF8001829A2 /* simple3.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = simple3.html; sourceTree = "<group>"; };
</span><span class="lines">@@ -842,6 +847,7 @@
</span><span class="cx">                                 A1A4FE5D18DD3DB700B5EA8A /* Download.mm */,
</span><span class="cx">                                 2D1FE0AF1AD465C1006CD9E6 /* FixedLayoutSize.mm */,
</span><span class="cx">                                 37D36ED61AF42ECD00BAF5D9 /* LoadAlternateHTMLString.mm */,
</span><ins>+                                51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */,
</ins><span class="cx">                                 1ABC3DED1899BE6D004F0626 /* Navigation.mm */,
</span><span class="cx">                                 CEA6CF2219CCF5BD0064F5A7 /* OpenAndCloseWindow.mm */,
</span><span class="cx">                                 C95501BE19AD2FAF0049BE3E /* Preferences.mm */,
</span><span class="lines">@@ -1133,6 +1139,7 @@
</span><span class="cx">                                 93AF4ECF1506F123007FD57E /* lots-of-images.html */,
</span><span class="cx">                                 2DD7D3AE178227AC0026E1E3 /* lots-of-text-vertical-lr.html */,
</span><span class="cx">                                 930AD401150698B30067970F /* lots-of-text.html */,
</span><ins>+                                51CD1C711B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html */,
</ins><span class="cx">                                 33E79E05137B5FCE00E32D99 /* mouse-move-listener.html */,
</span><span class="cx">                                 CEA6CF2719CCF69D0064F5A7 /* open-and-close-window.html */,
</span><span class="cx">                                 F6FDDDD514241C48004F1729 /* push-state.html */,
</span><span class="lines">@@ -1536,6 +1543,7 @@
</span><span class="cx">                                 7CCE7F0D1A411AE600447C4C /* ReloadPageAfterCrash.cpp in Sources */,
</span><span class="cx">                                 7CCE7EC91A411A7E00447C4C /* RenderedImageFromDOMNode.mm in Sources */,
</span><span class="cx">                                 7CCE7ECA1A411A7E00447C4C /* RenderedImageFromDOMRange.mm in Sources */,
</span><ins>+                                51CD1C6C1B38CE4300142CA5 /* ModalAlerts.mm in Sources */,
</ins><span class="cx">                                 7CCE7F0E1A411AE600447C4C /* ResizeReversePaginatedWebView.cpp in Sources */,
</span><span class="cx">                                 7CCE7F0F1A411AE600447C4C /* ResizeWindowAfterCrash.cpp in Sources */,
</span><span class="cx">                                 7CCE7F101A411AE600447C4C /* ResponsivenessTimerDoesntFireEarly.cpp in Sources */,
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPITestsWebKit2modalalertsinnewaboutblankwindowhtml"></a>
<div class="addfile"><h4>Added: trunk/Tools/TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html (0 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html         (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+var newWindow = window.open("about:blank");
+newWindow.alert("Testing alert");
+newWindow.confirm("Testing confirm");
+newWindow.prompt("Testing prompt", "Default text");
+
+</script>
+</head>
+</html>
</ins></span></pre></div>
<a id="trunkToolsTestWebKitAPITestsWebKit2CocoaModalAlertsmm"></a>
<div class="addfile"><h4>Added: trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm (0 => 185877)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm         (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm        2015-06-23 17:28:20 UTC (rev 185877)
</span><span class="lines">@@ -0,0 +1,114 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#import "PlatformUtilities.h"
+#import <WebKit/WKPreferences.h>
+#import <WebKit/WKUIDelegatePrivate.h>
+#import <WebKit/WKWebView.h>
+#import <WebKit/WKWebViewConfiguration.h>
+#import <wtf/RetainPtr.h>
+
+#if WK_API_ENABLED
+
+@class ModalAlertsUIDelegate;
+
+static bool isDone;
+static RetainPtr<WKWebView> openedWebView;
+static RetainPtr<ModalAlertsUIDelegate> sharedUIDelegate;
+
+static unsigned dialogsSeen;
+static const unsigned dialogsExpected = 3;
+
+static void sawDialog()
+{
+ if (++dialogsSeen == dialogsExpected)
+ isDone = true;
+}
+
+@interface ModalAlertsUIDelegate : NSObject <WKUIDelegate>
+@end
+
+@implementation ModalAlertsUIDelegate
+
+- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
+{
+ openedWebView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration]);
+ [openedWebView setUIDelegate:sharedUIDelegate.get()];
+ return openedWebView.get();
+}
+
+- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler
+{
+ EXPECT_STREQ([[[[frame request] URL] absoluteString] UTF8String], "about:blank");
+ EXPECT_STREQ([[[frame securityOrigin] protocol] UTF8String], "file");
+ EXPECT_STREQ([[[frame securityOrigin] host] UTF8String], "");
+ EXPECT_EQ([[frame securityOrigin] port], 0);
+
+ completionHandler();
+ sawDialog();
+}
+
+- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL result))completionHandler
+{
+ EXPECT_STREQ([[[[frame request] URL] absoluteString] UTF8String], "about:blank");
+ EXPECT_STREQ([[[frame securityOrigin] protocol] UTF8String], "file");
+ EXPECT_STREQ([[[frame securityOrigin] host] UTF8String], "");
+ EXPECT_EQ([[frame securityOrigin] port], 0);
+
+ completionHandler(true);
+ sawDialog();
+}
+
+- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *result))completionHandler
+{
+ EXPECT_STREQ([[[[frame request] URL] absoluteString] UTF8String], "about:blank");
+ EXPECT_STREQ([[[frame securityOrigin] protocol] UTF8String], "file");
+ EXPECT_STREQ([[[frame securityOrigin] host] UTF8String], "");
+ EXPECT_EQ([[frame securityOrigin] port], 0);
+
+ completionHandler(@"");
+ sawDialog();
+}
+
+@end
+
+TEST(WebKit2, ModalAlerts)
+{
+ RetainPtr<WKWebView> webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600)]);
+
+ sharedUIDelegate = adoptNS([[ModalAlertsUIDelegate alloc] init]);
+ [webView setUIDelegate:sharedUIDelegate.get()];
+
+ [webView configuration].preferences.javaScriptCanOpenWindowsAutomatically = YES;
+
+ NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"modal-alerts-in-new-about-blank-window" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]];
+ [webView loadRequest:request];
+
+ TestWebKitAPI::Util::run(&isDone);
+}
+
+#endif
</ins></span></pre>
</div>
</div>
</body>
</html>