<!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>[177661] trunk/Source/WebCore</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/177661">177661</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2014-12-22 15:42:30 -0800 (Mon, 22 Dec 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Add a SecurityOriginPolicy class
https://bugs.webkit.org/show_bug.cgi?id=139875
Reviewed by Sam Weinig.
This is the first step towards making SecurityOrigin immutable. SecurityOriginPolicy will hold a
SecurityOrigin and will handle things that would otherwise mutate SecurityOrigin.
* CMakeLists.txt:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
* dom/Document.cpp:
(WebCore::Document::create):
(WebCore::Document::open):
(WebCore::Document::cloneDataFromDocument):
(WebCore::Document::initSecurityContext):
* dom/ScriptExecutionContext.h:
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::setSecurityOriginPolicy):
(WebCore::SecurityContext::securityOrigin):
(WebCore::SecurityContext::isSecureTransitionTo):
(WebCore::SecurityContext::enforceSandboxFlags):
(WebCore::SecurityContext::setSecurityOrigin): Deleted.
* dom/SecurityContext.h:
(WebCore::SecurityContext::securityOriginPolicy):
(WebCore::SecurityContext::securityOrigin): Deleted.
* dom/SecurityOriginPolicy.cpp: Added.
(WebCore::SecurityOriginPolicy::create):
(WebCore::SecurityOriginPolicy::SecurityOriginPolicy):
(WebCore::SecurityOriginPolicy::~SecurityOriginPolicy):
* dom/SecurityOriginPolicy.h: Added.
(WebCore::SecurityOriginPolicy::origin):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseXML):
* xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoredomDOMImplementationcpp">trunk/Source/WebCore/dom/DOMImplementation.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContexth">trunk/Source/WebCore/dom/ScriptExecutionContext.h</a></li>
<li><a href="#trunkSourceWebCoredomSecurityContextcpp">trunk/Source/WebCore/dom/SecurityContext.cpp</a></li>
<li><a href="#trunkSourceWebCoredomSecurityContexth">trunk/Source/WebCore/dom/SecurityContext.h</a></li>
<li><a href="#trunkSourceWebCoreloaderDocumentWritercpp">trunk/Source/WebCore/loader/DocumentWriter.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopecpp">trunk/Source/WebCore/workers/WorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLTreeViewercpp">trunk/Source/WebCore/xml/XMLTreeViewer.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXSLTProcessorcpp">trunk/Source/WebCore/xml/XSLTProcessor.cpp</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoredomSecurityOriginPolicycpp">trunk/Source/WebCore/dom/SecurityOriginPolicy.cpp</a></li>
<li><a href="#trunkSourceWebCoredomSecurityOriginPolicyh">trunk/Source/WebCore/dom/SecurityOriginPolicy.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/CMakeLists.txt        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -1410,6 +1410,7 @@
</span><span class="cx"> dom/ScriptableDocumentParser.cpp
</span><span class="cx"> dom/ScriptedAnimationController.cpp
</span><span class="cx"> dom/SecurityContext.cpp
</span><ins>+ dom/SecurityOriginPolicy.cpp
</ins><span class="cx"> dom/SelectorQuery.cpp
</span><span class="cx"> dom/ShadowRoot.cpp
</span><span class="cx"> dom/SpaceSplitString.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/ChangeLog        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -1,3 +1,53 @@
</span><ins>+2014-12-22 Anders Carlsson <andersca@apple.com>
+
+ Add a SecurityOriginPolicy class
+ https://bugs.webkit.org/show_bug.cgi?id=139875
+
+ Reviewed by Sam Weinig.
+
+ This is the first step towards making SecurityOrigin immutable. SecurityOriginPolicy will hold a
+ SecurityOrigin and will handle things that would otherwise mutate SecurityOrigin.
+
+ * CMakeLists.txt:
+ * WebCore.exp.in:
+ * WebCore.vcxproj/WebCore.vcxproj:
+ * WebCore.vcxproj/WebCore.vcxproj.filters:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/DOMImplementation.cpp:
+ (WebCore::DOMImplementation::createDocument):
+ (WebCore::DOMImplementation::createHTMLDocument):
+ * dom/Document.cpp:
+ (WebCore::Document::create):
+ (WebCore::Document::open):
+ (WebCore::Document::cloneDataFromDocument):
+ (WebCore::Document::initSecurityContext):
+ * dom/ScriptExecutionContext.h:
+ * dom/SecurityContext.cpp:
+ (WebCore::SecurityContext::setSecurityOriginPolicy):
+ (WebCore::SecurityContext::securityOrigin):
+ (WebCore::SecurityContext::isSecureTransitionTo):
+ (WebCore::SecurityContext::enforceSandboxFlags):
+ (WebCore::SecurityContext::setSecurityOrigin): Deleted.
+ * dom/SecurityContext.h:
+ (WebCore::SecurityContext::securityOriginPolicy):
+ (WebCore::SecurityContext::securityOrigin): Deleted.
+ * dom/SecurityOriginPolicy.cpp: Added.
+ (WebCore::SecurityOriginPolicy::create):
+ (WebCore::SecurityOriginPolicy::SecurityOriginPolicy):
+ (WebCore::SecurityOriginPolicy::~SecurityOriginPolicy):
+ * dom/SecurityOriginPolicy.h: Added.
+ (WebCore::SecurityOriginPolicy::origin):
+ * loader/DocumentWriter.cpp:
+ (WebCore::DocumentWriter::begin):
+ * workers/WorkerGlobalScope.cpp:
+ (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::responseXML):
+ * xml/XMLTreeViewer.cpp:
+ (WebCore::XMLTreeViewer::transformDocumentToTreeView):
+ * xml/XSLTProcessor.cpp:
+ (WebCore::XSLTProcessor::createDocumentFromSource):
+
</ins><span class="cx"> 2014-12-22 Zalan Bujtas <zalan@apple.com>
</span><span class="cx">
</span><span class="cx"> Incorrect dashed and dotted border painting.
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -1801,6 +1801,7 @@
</span><span class="cx"> __ZNK7WebCore15ProtectionSpace7nsSpaceEv
</span><span class="cx"> __ZNK7WebCore15ResourceRequest12cfURLRequestENS_20HTTPBodyUpdatePolicyE
</span><span class="cx"> __ZNK7WebCore15ResourceRequest12nsURLRequestENS_20HTTPBodyUpdatePolicyE
</span><ins>+__ZNK7WebCore15SecurityContext14securityOriginEv
</ins><span class="cx"> __ZNK7WebCore15StyleProperties11mutableCopyEv
</span><span class="cx"> __ZNK7WebCore15StyleProperties16getPropertyValueENS_13CSSPropertyIDE
</span><span class="cx"> __ZNK7WebCore15VisiblePosition14characterAfterEv
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -13814,6 +13814,20 @@
</span><span class="cx"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
</span><span class="cx"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
</span><span class="cx"> </ClCompile>
</span><ins>+ <ClCompile Include="..\dom\SecurityOriginPolicy.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
+ </ClCompile>
</ins><span class="cx"> <ClCompile Include="..\dom\SelectorQuery.cpp">
</span><span class="cx"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</span><span class="cx"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</span><span class="lines">@@ -20630,6 +20644,7 @@
</span><span class="cx"> <ClInclude Include="..\dom\ScriptExecutionContext.h" />
</span><span class="cx"> <ClInclude Include="..\dom\ScriptRunner.h" />
</span><span class="cx"> <ClInclude Include="..\dom\SecurityContext.h" />
</span><ins>+ <ClInclude Include="..\dom\SecurityOriginPolicy.h" />
</ins><span class="cx"> <ClInclude Include="..\dom\SelectorQuery.h" />
</span><span class="cx"> <ClInclude Include="..\dom\SimulatedClickOptions.h" />
</span><span class="cx"> <ClInclude Include="..\dom\SpaceSplitString.h" />
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -3363,6 +3363,9 @@
</span><span class="cx"> <ClCompile Include="..\dom\SecurityContext.cpp">
</span><span class="cx"> <Filter>dom</Filter>
</span><span class="cx"> </ClCompile>
</span><ins>+ <ClCompile Include="..\dom\SecurityOriginPolicy.cpp">
+ <Filter>dom</Filter>
+ </ClCompile>
</ins><span class="cx"> <ClCompile Include="..\dom\SelectorQuery.cpp">
</span><span class="cx"> <Filter>dom</Filter>
</span><span class="cx"> </ClCompile>
</span><span class="lines">@@ -10491,6 +10494,9 @@
</span><span class="cx"> <ClInclude Include="..\dom\SecurityContext.h">
</span><span class="cx"> <Filter>dom</Filter>
</span><span class="cx"> </ClInclude>
</span><ins>+ <ClInclude Include="..\dom\SecurityOriginPolicy.h">
+ <Filter>dom</Filter>
+ </ClInclude>
</ins><span class="cx"> <ClInclude Include="..\dom\SelectorQuery.h">
</span><span class="cx"> <Filter>dom</Filter>
</span><span class="cx"> </ClInclude>
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -920,6 +920,8 @@
</span><span class="cx">                 1AF62F2414DAFE910041556C /* ScrollingThreadMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AF62F2314DAFE910041556C /* ScrollingThreadMac.mm */; };
</span><span class="cx">                 1AF62F2514DAFE9E0041556C /* ScrollingThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF62F2014DAFE790041556C /* ScrollingThread.cpp */; };
</span><span class="cx">                 1AF62F2614DAFEA10041556C /* ScrollingThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF62F2114DAFE790041556C /* ScrollingThread.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                1AF7AFC71A48A8BC00C8E4E7 /* SecurityOriginPolicy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF7AFC51A48A8BC00C8E4E7 /* SecurityOriginPolicy.cpp */; };
+                1AF7AFC81A48A8BC00C8E4E7 /* SecurityOriginPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF7AFC61A48A8BC00C8E4E7 /* SecurityOriginPolicy.h */; };
</ins><span class="cx">                 1AF89A421518FDEA00E547B5 /* TiledBacking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF89A411518FDEA00E547B5 /* TiledBacking.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 1AF8E11A1256592600230FF7 /* ProxyServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF8E1191256592600230FF7 /* ProxyServer.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 1AF8E13312565A4400230FF7 /* ProxyServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF8E13212565A4400230FF7 /* ProxyServer.cpp */; };
</span><span class="lines">@@ -7951,6 +7953,8 @@
</span><span class="cx">                 1AF62F2014DAFE790041556C /* ScrollingThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollingThread.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 1AF62F2114DAFE790041556C /* ScrollingThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollingThread.h; sourceTree = "<group>"; };
</span><span class="cx">                 1AF62F2314DAFE910041556C /* ScrollingThreadMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollingThreadMac.mm; sourceTree = "<group>"; };
</span><ins>+                1AF7AFC51A48A8BC00C8E4E7 /* SecurityOriginPolicy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SecurityOriginPolicy.cpp; sourceTree = "<group>"; };
+                1AF7AFC61A48A8BC00C8E4E7 /* SecurityOriginPolicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecurityOriginPolicy.h; sourceTree = "<group>"; };
</ins><span class="cx">                 1AF89A411518FDEA00E547B5 /* TiledBacking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TiledBacking.h; sourceTree = "<group>"; };
</span><span class="cx">                 1AF8E1191256592600230FF7 /* ProxyServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyServer.h; sourceTree = "<group>"; };
</span><span class="cx">                 1AF8E13212565A4400230FF7 /* ProxyServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProxyServer.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -22642,10 +22646,10 @@
</span><span class="cx">                 F523D32402DE4478018635CA /* dom */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                CE2616A4187E65C1007955F3 /* ios */,
</ins><span class="cx">                                 319847FE1A1D816700A13318 /* AnimationEvent.cpp */,
</span><span class="cx">                                 319847FF1A1D816700A13318 /* AnimationEvent.h */,
</span><span class="cx">                                 319848001A1D816700A13318 /* AnimationEvent.idl */,
</span><del>-                                CE2616A4187E65C1007955F3 /* ios */,
</del><span class="cx">                                 E1C4DE6D0EA75C650023CCD6 /* ActiveDOMObject.cpp */,
</span><span class="cx">                                 E1C4DE680EA75C1E0023CCD6 /* ActiveDOMObject.h */,
</span><span class="cx">                                 A8C4A7FC09D563270003AC8D /* Attr.cpp */,
</span><span class="lines">@@ -22957,6 +22961,8 @@
</span><span class="cx">                                 8A413ADE1207BBA50082016E /* ScriptRunner.h */,
</span><span class="cx">                                 976F36E814686225005E93B4 /* SecurityContext.cpp */,
</span><span class="cx">                                 976F36E914686225005E93B4 /* SecurityContext.h */,
</span><ins>+                                1AF7AFC51A48A8BC00C8E4E7 /* SecurityOriginPolicy.cpp */,
+                                1AF7AFC61A48A8BC00C8E4E7 /* SecurityOriginPolicy.h */,
</ins><span class="cx">                                 2D5BC42516F882BE007048D0 /* SecurityPolicyViolationEvent.h */,
</span><span class="cx">                                 2D5BC42616F882BE007048D0 /* SecurityPolicyViolationEvent.idl */,
</span><span class="cx">                                 E45322A9140CE267005A0F92 /* SelectorQuery.cpp */,
</span><span class="lines">@@ -26478,6 +26484,7 @@
</span><span class="cx">                                 436708F212D9CA4B00044234 /* SVGRenderSupport.h in Headers */,
</span><span class="cx">                                 436708F412D9CA4B00044234 /* SVGRenderTreeAsText.h in Headers */,
</span><span class="cx">                                 436708F612D9CA4B00044234 /* SVGResources.h in Headers */,
</span><ins>+                                1AF7AFC81A48A8BC00C8E4E7 /* SecurityOriginPolicy.h in Headers */,
</ins><span class="cx">                                 436708F812D9CA4B00044234 /* SVGResourcesCache.h in Headers */,
</span><span class="cx">                                 436708FA12D9CA4B00044234 /* SVGResourcesCycleSolver.h in Headers */,
</span><span class="cx">                                 0854B0231255E4E600B9CDD0 /* SVGRootInlineBox.h in Headers */,
</span><span class="lines">@@ -29884,6 +29891,7 @@
</span><span class="cx">                                 B2C3DA410D006C1D00EF6F26 /* TextCodecUTF16.cpp in Sources */,
</span><span class="cx">                                 9343CB8112F25E510033C5EE /* TextCodecUTF8.cpp in Sources */,
</span><span class="cx">                                 142B97C913138943008BEF4B /* TextControlInnerElements.cpp in Sources */,
</span><ins>+                                1AF7AFC71A48A8BC00C8E4E7 /* SecurityOriginPolicy.cpp in Sources */,
</ins><span class="cx">                                 97BC84B312371180000C6161 /* TextDocument.cpp in Sources */,
</span><span class="cx">                                 97BC84831236FD93000C6161 /* TextDocumentParser.cpp in Sources */,
</span><span class="cx">                                 B2C3DA460D006C1D00EF6F26 /* TextEncoding.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoredomDOMImplementationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DOMImplementation.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DOMImplementation.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/dom/DOMImplementation.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -47,6 +47,7 @@
</span><span class="cx"> #include "SVGDocument.h"
</span><span class="cx"> #include "SVGNames.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include "Settings.h"
</span><span class="cx"> #include "StyleSheetContents.h"
</span><span class="cx"> #include "SubframeLoader.h"
</span><span class="lines">@@ -220,7 +221,7 @@
</span><span class="cx"> else
</span><span class="cx"> doc = Document::create(0, URL());
</span><span class="cx">
</span><del>- doc->setSecurityOrigin(m_document.securityOrigin());
</del><ins>+ doc->setSecurityOriginPolicy(m_document.securityOriginPolicy());
</ins><span class="cx">
</span><span class="cx"> RefPtr<Node> documentElement;
</span><span class="cx"> if (!qualifiedName.isEmpty()) {
</span><span class="lines">@@ -295,7 +296,7 @@
</span><span class="cx"> d->write("<!doctype html><html><body></body></html>");
</span><span class="cx"> if (!title.isNull())
</span><span class="cx"> d->setTitle(title);
</span><del>- d->setSecurityOrigin(m_document.securityOrigin());
</del><ins>+ d->setSecurityOriginPolicy(m_document.securityOriginPolicy());
</ins><span class="cx"> return d;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/dom/Document.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -134,6 +134,7 @@
</span><span class="cx"> #include "ScriptSourceCode.h"
</span><span class="cx"> #include "ScrollingCoordinator.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include "SecurityPolicy.h"
</span><span class="cx"> #include "SegmentedString.h"
</span><span class="cx"> #include "SelectorQuery.h"
</span><span class="lines">@@ -567,7 +568,8 @@
</span><span class="cx"> Ref<Document> Document::create(ScriptExecutionContext& context)
</span><span class="cx"> {
</span><span class="cx"> Ref<Document> document = adoptRef(*new Document(nullptr, URL()));
</span><del>- document->setSecurityOrigin(context.securityOrigin());
</del><ins>+ document->setSecurityOriginPolicy(context.securityOriginPolicy());
+
</ins><span class="cx"> return document;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2234,7 +2236,7 @@
</span><span class="cx"> if (ownerDocument) {
</span><span class="cx"> setURL(ownerDocument->url());
</span><span class="cx"> setCookieURL(ownerDocument->cookieURL());
</span><del>- setSecurityOrigin(ownerDocument->securityOrigin());
</del><ins>+ setSecurityOriginPolicy(ownerDocument->securityOriginPolicy());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (m_frame) {
</span><span class="lines">@@ -3189,7 +3191,7 @@
</span><span class="cx"> m_documentURI = other.documentURI();
</span><span class="cx">
</span><span class="cx"> setCompatibilityMode(other.m_compatibilityMode);
</span><del>- setSecurityOrigin(other.securityOrigin());
</del><ins>+ setSecurityOriginPolicy(other.securityOriginPolicy());
</ins><span class="cx"> overrideMIMEType(other.contentType());
</span><span class="cx"> setDecoder(other.decoder());
</span><span class="cx"> }
</span><span class="lines">@@ -4717,7 +4719,7 @@
</span><span class="cx"> // No source for a security context.
</span><span class="cx"> // This can occur via document.implementation.createDocument().
</span><span class="cx"> setCookieURL(URL(ParsedURLString, emptyString()));
</span><del>- setSecurityOrigin(SecurityOrigin::createUnique());
</del><ins>+ setSecurityOriginPolicy(SecurityOriginPolicy::create(SecurityOrigin::createUnique()));
</ins><span class="cx"> setContentSecurityPolicy(std::make_unique<ContentSecurityPolicy>(this));
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -4737,7 +4739,7 @@
</span><span class="cx"> enforceSandboxFlags(SandboxOrigin);
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- setSecurityOrigin(isSandboxed(SandboxOrigin) ? SecurityOrigin::createUnique() : SecurityOrigin::create(m_url));
</del><ins>+ setSecurityOriginPolicy(SecurityOriginPolicy::create(isSandboxed(SandboxOrigin) ? SecurityOrigin::createUnique() : SecurityOrigin::create(m_url)));
</ins><span class="cx"> setContentSecurityPolicy(std::make_unique<ContentSecurityPolicy>(this));
</span><span class="cx">
</span><span class="cx"> if (Settings* settings = this->settings()) {
</span><span class="lines">@@ -4793,7 +4795,7 @@
</span><span class="cx"> setCookieURL(ownerFrame->document()->cookieURL());
</span><span class="cx"> // We alias the SecurityOrigins to match Firefox, see Bug 15313
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=15313
</span><del>- setSecurityOrigin(ownerFrame->document()->securityOrigin());
</del><ins>+ setSecurityOriginPolicy(ownerFrame->document()->securityOriginPolicy());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Document::initContentSecurityPolicy()
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.h (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.h        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.h        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -54,6 +54,7 @@
</span><span class="cx"> class EventTarget;
</span><span class="cx"> class MessagePort;
</span><span class="cx"> class PublicURLManager;
</span><ins>+class SecurityOrigin;
</ins><span class="cx"> class URL;
</span><span class="cx">
</span><span class="cx"> class ScriptExecutionContext : public SecurityContext, public Supplementable<ScriptExecutionContext> {
</span></span></pre></div>
<a id="trunkSourceWebCoredomSecurityContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/SecurityContext.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SecurityContext.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/dom/SecurityContext.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #include "ContentSecurityPolicy.h"
</span><span class="cx"> #include "HTMLParserIdioms.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include <wtf/text/StringBuilder.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -44,12 +45,20 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void SecurityContext::setSecurityOrigin(PassRefPtr<SecurityOrigin> securityOrigin)
</del><ins>+void SecurityContext::setSecurityOriginPolicy(RefPtr<SecurityOriginPolicy>&& securityOriginPolicy)
</ins><span class="cx"> {
</span><del>- m_securityOrigin = securityOrigin;
</del><ins>+ m_securityOriginPolicy = WTF::move(securityOriginPolicy);
</ins><span class="cx"> m_haveInitializedSecurityOrigin = true;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+SecurityOrigin* SecurityContext::securityOrigin() const
+{
+ if (!m_securityOriginPolicy)
+ return nullptr;
+
+ return &m_securityOriginPolicy->origin();
+}
+
</ins><span class="cx"> void SecurityContext::setContentSecurityPolicy(std::unique_ptr<ContentSecurityPolicy> contentSecurityPolicy)
</span><span class="cx"> {
</span><span class="cx"> m_contentSecurityPolicy = WTF::move(contentSecurityPolicy);
</span><span class="lines">@@ -63,8 +72,7 @@
</span><span class="cx"> if (!haveInitializedSecurityOrigin())
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- RefPtr<SecurityOrigin> other = SecurityOrigin::create(url);
- return securityOrigin()->canAccess(other.get());
</del><ins>+ return securityOriginPolicy()->origin().canAccess(SecurityOrigin::create(url).ptr());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SecurityContext::enforceSandboxFlags(SandboxFlags mask)
</span><span class="lines">@@ -72,8 +80,8 @@
</span><span class="cx"> m_sandboxFlags |= mask;
</span><span class="cx">
</span><span class="cx"> // The SandboxOrigin is stored redundantly in the security origin.
</span><del>- if (isSandboxed(SandboxOrigin) && securityOrigin() && !securityOrigin()->isUnique())
- setSecurityOrigin(SecurityOrigin::createUnique());
</del><ins>+ if (isSandboxed(SandboxOrigin) && securityOriginPolicy() && !securityOriginPolicy()->origin().isUnique())
+ setSecurityOriginPolicy(SecurityOriginPolicy::create(SecurityOrigin::createUnique()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SandboxFlags SecurityContext::parseSandboxPolicy(const String& policy, String& invalidTokensErrorMessage)
</span></span></pre></div>
<a id="trunkSourceWebCoredomSecurityContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/SecurityContext.h (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SecurityContext.h        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/dom/SecurityContext.h        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class SecurityOrigin;
</span><ins>+class SecurityOriginPolicy;
</ins><span class="cx"> class ContentSecurityPolicy;
</span><span class="cx"> class URL;
</span><span class="cx">
</span><span class="lines">@@ -57,7 +58,6 @@
</span><span class="cx">
</span><span class="cx"> class SecurityContext {
</span><span class="cx"> public:
</span><del>- SecurityOrigin* securityOrigin() const { return m_securityOrigin.get(); }
</del><span class="cx"> SandboxFlags sandboxFlags() const { return m_sandboxFlags; }
</span><span class="cx"> ContentSecurityPolicy* contentSecurityPolicy() { return m_contentSecurityPolicy.get(); }
</span><span class="cx">
</span><span class="lines">@@ -66,11 +66,15 @@
</span><span class="cx"> void enforceSandboxFlags(SandboxFlags mask);
</span><span class="cx"> bool isSandboxed(SandboxFlags mask) const { return m_sandboxFlags & mask; }
</span><span class="cx">
</span><ins>+ SecurityOriginPolicy* securityOriginPolicy() const { return m_securityOriginPolicy.get(); }
+
</ins><span class="cx"> // Explicitly override the security origin for this security context.
</span><span class="cx"> // Note: It is dangerous to change the security origin of a script context
</span><span class="cx"> // that already contains content.
</span><del>- void setSecurityOrigin(PassRefPtr<SecurityOrigin>);
</del><ins>+ void setSecurityOriginPolicy(RefPtr<SecurityOriginPolicy>&&);
</ins><span class="cx">
</span><ins>+ SecurityOrigin* securityOrigin() const;
+
</ins><span class="cx"> static SandboxFlags parseSandboxPolicy(const String& policy, String& invalidTokensErrorMessage);
</span><span class="cx">
</span><span class="cx"> protected:
</span><span class="lines">@@ -85,7 +89,7 @@
</span><span class="cx"> private:
</span><span class="cx"> bool m_haveInitializedSecurityOrigin;
</span><span class="cx"> SandboxFlags m_sandboxFlags;
</span><del>- RefPtr<SecurityOrigin> m_securityOrigin;
</del><ins>+ RefPtr<SecurityOriginPolicy> m_securityOriginPolicy;
</ins><span class="cx"> std::unique_ptr<ContentSecurityPolicy> m_contentSecurityPolicy;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomSecurityOriginPolicycpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/dom/SecurityOriginPolicy.cpp (0 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SecurityOriginPolicy.cpp         (rev 0)
+++ trunk/Source/WebCore/dom/SecurityOriginPolicy.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -0,0 +1,47 @@
</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"
+#include "SecurityOriginPolicy.h"
+
+#include <WebCore/SecurityOrigin.h>
+
+namespace WebCore {
+
+Ref<SecurityOriginPolicy> SecurityOriginPolicy::create(Ref<SecurityOrigin>&& securityOrigin)
+{
+ return adoptRef(*new SecurityOriginPolicy(WTF::move(securityOrigin)));
+}
+
+SecurityOriginPolicy::SecurityOriginPolicy(Ref<SecurityOrigin>&& securityOrigin)
+ : m_securityOrigin(WTF::move(securityOrigin))
+{
+}
+
+SecurityOriginPolicy::~SecurityOriginPolicy()
+{
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoredomSecurityOriginPolicyh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/dom/SecurityOriginPolicy.h (0 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SecurityOriginPolicy.h         (rev 0)
+++ trunk/Source/WebCore/dom/SecurityOriginPolicy.h        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -0,0 +1,52 @@
</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.
+ */
+
+#ifndef SecurityOriginPolicy_h
+#define SecurityOriginPolicy_h
+
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class SecurityOrigin;
+
+class SecurityOriginPolicy : public RefCounted<SecurityOriginPolicy> {
+public:
+ static Ref<SecurityOriginPolicy> create(Ref<SecurityOrigin>&&);
+ ~SecurityOriginPolicy();
+
+ // FIXME: This should return a const reference.
+ SecurityOrigin& origin() { return m_securityOrigin; }
+
+private:
+ explicit SecurityOriginPolicy(Ref<SecurityOrigin>&&);
+
+ Ref<SecurityOrigin> m_securityOrigin;
+};
+
+}
+
+#endif // SecurityOriginPolicy_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreloaderDocumentWritercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/DocumentWriter.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/DocumentWriter.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/loader/DocumentWriter.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx"> #include "ScriptController.h"
</span><span class="cx"> #include "ScriptableDocumentParser.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include "SegmentedString.h"
</span><span class="cx"> #include "Settings.h"
</span><span class="cx"> #include "SinkDocument.h"
</span><span class="lines">@@ -150,7 +151,7 @@
</span><span class="cx"> document->setDecoder(m_decoder.get());
</span><span class="cx"> if (ownerDocument) {
</span><span class="cx"> document->setCookieURL(ownerDocument->cookieURL());
</span><del>- document->setSecurityOrigin(ownerDocument->securityOrigin());
</del><ins>+ document->setSecurityOriginPolicy(ownerDocument->securityOriginPolicy());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> m_frame->loader().didBeginDocument(dispatch);
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -42,6 +42,7 @@
</span><span class="cx"> #include "ScheduledAction.h"
</span><span class="cx"> #include "ScriptSourceCode.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include "URL.h"
</span><span class="cx"> #include "WorkerInspectorController.h"
</span><span class="cx"> #include "WorkerLocation.h"
</span><span class="lines">@@ -76,7 +77,7 @@
</span><span class="cx"> , m_eventQueue(*this)
</span><span class="cx"> , m_topOrigin(topOrigin)
</span><span class="cx"> {
</span><del>- setSecurityOrigin(SecurityOrigin::create(url));
</del><ins>+ setSecurityOriginPolicy(SecurityOriginPolicy::create(SecurityOrigin::create(url)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WorkerGlobalScope::~WorkerGlobalScope()
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx"> #include "ResourceError.h"
</span><span class="cx"> #include "ResourceRequest.h"
</span><span class="cx"> #include "ScriptController.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include "Settings.h"
</span><span class="cx"> #include "SharedBuffer.h"
</span><span class="cx"> #include "TextResourceDecoder.h"
</span><span class="lines">@@ -222,7 +223,7 @@
</span><span class="cx"> m_responseDocument = Document::create(0, m_url);
</span><span class="cx"> // FIXME: Set Last-Modified.
</span><span class="cx"> m_responseDocument->setContent(m_responseBuilder.toStringPreserveCapacity());
</span><del>- m_responseDocument->setSecurityOrigin(securityOrigin());
</del><ins>+ m_responseDocument->setSecurityOriginPolicy(scriptExecutionContext()->securityOriginPolicy());
</ins><span class="cx"> m_responseDocument->overrideMIMEType(mimeType);
</span><span class="cx">
</span><span class="cx"> if (!m_responseDocument->wellFormed())
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLTreeViewercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLTreeViewer.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLTreeViewer.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/xml/XMLTreeViewer.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx"> #include "ScriptController.h"
</span><span class="cx"> #include "ScriptSourceCode.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include "Text.h"
</span><span class="cx"> #include "XMLViewerCSS.h"
</span><span class="cx"> #include "XMLViewerJS.h"
</span><span class="lines">@@ -53,7 +54,7 @@
</span><span class="cx">
</span><span class="cx"> void XMLTreeViewer::transformDocumentToTreeView()
</span><span class="cx"> {
</span><del>- m_document.setSecurityOrigin(SecurityOrigin::createUnique());
</del><ins>+ m_document.setSecurityOriginPolicy(SecurityOriginPolicy::create(SecurityOrigin::createUnique()));
</ins><span class="cx">
</span><span class="cx"> String scriptString = StringImpl::createWithoutCopying(XMLViewer_js, sizeof(XMLViewer_js));
</span><span class="cx"> m_document.frame()->script().evaluate(ScriptSourceCode(scriptString));
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXSLTProcessorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XSLTProcessor.cpp (177660 => 177661)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XSLTProcessor.cpp        2014-12-22 23:30:29 UTC (rev 177660)
+++ trunk/Source/WebCore/xml/XSLTProcessor.cpp        2014-12-22 23:42:30 UTC (rev 177661)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> #include "HTMLDocument.h"
</span><span class="cx"> #include "Page.h"
</span><span class="cx"> #include "SecurityOrigin.h"
</span><ins>+#include "SecurityOriginPolicy.h"
</ins><span class="cx"> #include "Text.h"
</span><span class="cx"> #include "TextResourceDecoder.h"
</span><span class="cx"> #include "markup.h"
</span><span class="lines">@@ -90,7 +91,7 @@
</span><span class="cx"> if (Document* oldDocument = frame->document()) {
</span><span class="cx"> result->setTransformSourceDocument(oldDocument);
</span><span class="cx"> result->takeDOMWindowFrom(oldDocument);
</span><del>- result->setSecurityOrigin(oldDocument->securityOrigin());
</del><ins>+ result->setSecurityOriginPolicy(oldDocument->securityOriginPolicy());
</ins><span class="cx"> result->setCookieURL(oldDocument->cookieURL());
</span><span class="cx"> result->setFirstPartyForCookies(oldDocument->firstPartyForCookies());
</span><span class="cx"> result->contentSecurityPolicy()->copyStateFrom(oldDocument->contentSecurityPolicy());
</span></span></pre>
</div>
</div>
</body>
</html>