<!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  &lt;andersca@apple.com&gt;
+
+        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  &lt;zalan@apple.com&gt;
</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">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><ins>+    &lt;ClCompile Include=&quot;..\dom\SecurityOriginPolicy.cpp&quot;&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+    &lt;/ClCompile&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;..\dom\SelectorQuery.cpp&quot;&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="lines">@@ -20630,6 +20644,7 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\dom\ScriptExecutionContext.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\dom\ScriptRunner.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\dom\SecurityContext.h&quot; /&gt;
</span><ins>+    &lt;ClInclude Include=&quot;..\dom\SecurityOriginPolicy.h&quot; /&gt;
</ins><span class="cx">     &lt;ClInclude Include=&quot;..\dom\SelectorQuery.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\dom\SimulatedClickOptions.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\dom\SpaceSplitString.h&quot; /&gt;
</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">     &lt;ClCompile Include=&quot;..\dom\SecurityContext.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;dom&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><ins>+    &lt;ClCompile Include=&quot;..\dom\SecurityOriginPolicy.cpp&quot;&gt;
+      &lt;Filter&gt;dom&lt;/Filter&gt;
+    &lt;/ClCompile&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;..\dom\SelectorQuery.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;dom&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><span class="lines">@@ -10491,6 +10494,9 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\dom\SecurityContext.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;dom&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span><ins>+    &lt;ClInclude Include=&quot;..\dom\SecurityOriginPolicy.h&quot;&gt;
+      &lt;Filter&gt;dom&lt;/Filter&gt;
+    &lt;/ClInclude&gt;
</ins><span class="cx">     &lt;ClInclude Include=&quot;..\dom\SelectorQuery.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;dom&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</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 = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AF62F2114DAFE790041556C /* ScrollingThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollingThread.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AF62F2314DAFE910041556C /* ScrollingThreadMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollingThreadMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                1AF7AFC51A48A8BC00C8E4E7 /* SecurityOriginPolicy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SecurityOriginPolicy.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                1AF7AFC61A48A8BC00C8E4E7 /* SecurityOriginPolicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecurityOriginPolicy.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 1AF89A411518FDEA00E547B5 /* TiledBacking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TiledBacking.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AF8E1191256592600230FF7 /* ProxyServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyServer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AF8E13212565A4400230FF7 /* ProxyServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProxyServer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</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 &quot;SVGDocument.h&quot;
</span><span class="cx"> #include &quot;SVGNames.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &quot;Settings.h&quot;
</span><span class="cx"> #include &quot;StyleSheetContents.h&quot;
</span><span class="cx"> #include &quot;SubframeLoader.h&quot;
</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-&gt;setSecurityOrigin(m_document.securityOrigin());
</del><ins>+    doc-&gt;setSecurityOriginPolicy(m_document.securityOriginPolicy());
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Node&gt; documentElement;
</span><span class="cx">     if (!qualifiedName.isEmpty()) {
</span><span class="lines">@@ -295,7 +296,7 @@
</span><span class="cx">     d-&gt;write(&quot;&lt;!doctype html&gt;&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;&quot;);
</span><span class="cx">     if (!title.isNull())
</span><span class="cx">         d-&gt;setTitle(title);
</span><del>-    d-&gt;setSecurityOrigin(m_document.securityOrigin());
</del><ins>+    d-&gt;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 &quot;ScriptSourceCode.h&quot;
</span><span class="cx"> #include &quot;ScrollingCoordinator.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &quot;SecurityPolicy.h&quot;
</span><span class="cx"> #include &quot;SegmentedString.h&quot;
</span><span class="cx"> #include &quot;SelectorQuery.h&quot;
</span><span class="lines">@@ -567,7 +568,8 @@
</span><span class="cx"> Ref&lt;Document&gt; Document::create(ScriptExecutionContext&amp; context)
</span><span class="cx"> {
</span><span class="cx">     Ref&lt;Document&gt; document = adoptRef(*new Document(nullptr, URL()));
</span><del>-    document-&gt;setSecurityOrigin(context.securityOrigin());
</del><ins>+    document-&gt;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-&gt;url());
</span><span class="cx">         setCookieURL(ownerDocument-&gt;cookieURL());
</span><del>-        setSecurityOrigin(ownerDocument-&gt;securityOrigin());
</del><ins>+        setSecurityOriginPolicy(ownerDocument-&gt;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&lt;ContentSecurityPolicy&gt;(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&lt;ContentSecurityPolicy&gt;(this));
</span><span class="cx"> 
</span><span class="cx">     if (Settings* settings = this-&gt;settings()) {
</span><span class="lines">@@ -4793,7 +4795,7 @@
</span><span class="cx">     setCookieURL(ownerFrame-&gt;document()-&gt;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-&gt;document()-&gt;securityOrigin());
</del><ins>+    setSecurityOriginPolicy(ownerFrame-&gt;document()-&gt;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&lt;ScriptExecutionContext&gt; {
</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 &quot;ContentSecurityPolicy.h&quot;
</span><span class="cx"> #include &quot;HTMLParserIdioms.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &lt;wtf/text/StringBuilder.h&gt;
</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&lt;SecurityOrigin&gt; securityOrigin)
</del><ins>+void SecurityContext::setSecurityOriginPolicy(RefPtr&lt;SecurityOriginPolicy&gt;&amp;&amp; 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 &amp;m_securityOriginPolicy-&gt;origin();
+}
+
</ins><span class="cx"> void SecurityContext::setContentSecurityPolicy(std::unique_ptr&lt;ContentSecurityPolicy&gt; 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&lt;SecurityOrigin&gt; other = SecurityOrigin::create(url);
-    return securityOrigin()-&gt;canAccess(other.get());
</del><ins>+    return securityOriginPolicy()-&gt;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) &amp;&amp; securityOrigin() &amp;&amp; !securityOrigin()-&gt;isUnique())
-        setSecurityOrigin(SecurityOrigin::createUnique());
</del><ins>+    if (isSandboxed(SandboxOrigin) &amp;&amp; securityOriginPolicy() &amp;&amp; !securityOriginPolicy()-&gt;origin().isUnique())
+        setSecurityOriginPolicy(SecurityOriginPolicy::create(SecurityOrigin::createUnique()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SandboxFlags SecurityContext::parseSandboxPolicy(const String&amp; policy, String&amp; 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 &amp; 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&lt;SecurityOrigin&gt;);
</del><ins>+    void setSecurityOriginPolicy(RefPtr&lt;SecurityOriginPolicy&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><ins>+    SecurityOrigin* securityOrigin() const;
+
</ins><span class="cx">     static SandboxFlags parseSandboxPolicy(const String&amp; policy, String&amp; 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&lt;SecurityOrigin&gt; m_securityOrigin;
</del><ins>+    RefPtr&lt;SecurityOriginPolicy&gt; m_securityOriginPolicy;
</ins><span class="cx">     std::unique_ptr&lt;ContentSecurityPolicy&gt; 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 &quot;config.h&quot;
+#include &quot;SecurityOriginPolicy.h&quot;
+
+#include &lt;WebCore/SecurityOrigin.h&gt;
+
+namespace WebCore {
+
+Ref&lt;SecurityOriginPolicy&gt; SecurityOriginPolicy::create(Ref&lt;SecurityOrigin&gt;&amp;&amp; securityOrigin)
+{
+    return adoptRef(*new SecurityOriginPolicy(WTF::move(securityOrigin)));
+}
+
+SecurityOriginPolicy::SecurityOriginPolicy(Ref&lt;SecurityOrigin&gt;&amp;&amp; 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 &lt;wtf/Ref.h&gt;
+#include &lt;wtf/RefCounted.h&gt;
+
+namespace WebCore {
+
+class SecurityOrigin;
+
+class SecurityOriginPolicy : public RefCounted&lt;SecurityOriginPolicy&gt; {
+public:
+    static Ref&lt;SecurityOriginPolicy&gt; create(Ref&lt;SecurityOrigin&gt;&amp;&amp;);
+    ~SecurityOriginPolicy();
+
+    // FIXME: This should return a const reference.
+    SecurityOrigin&amp; origin() { return m_securityOrigin; }
+
+private:
+    explicit SecurityOriginPolicy(Ref&lt;SecurityOrigin&gt;&amp;&amp;);
+
+    Ref&lt;SecurityOrigin&gt; 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 &quot;ScriptController.h&quot;
</span><span class="cx"> #include &quot;ScriptableDocumentParser.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &quot;SegmentedString.h&quot;
</span><span class="cx"> #include &quot;Settings.h&quot;
</span><span class="cx"> #include &quot;SinkDocument.h&quot;
</span><span class="lines">@@ -150,7 +151,7 @@
</span><span class="cx">         document-&gt;setDecoder(m_decoder.get());
</span><span class="cx">     if (ownerDocument) {
</span><span class="cx">         document-&gt;setCookieURL(ownerDocument-&gt;cookieURL());
</span><del>-        document-&gt;setSecurityOrigin(ownerDocument-&gt;securityOrigin());
</del><ins>+        document-&gt;setSecurityOriginPolicy(ownerDocument-&gt;securityOriginPolicy());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     m_frame-&gt;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 &quot;ScheduledAction.h&quot;
</span><span class="cx"> #include &quot;ScriptSourceCode.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &quot;WorkerInspectorController.h&quot;
</span><span class="cx"> #include &quot;WorkerLocation.h&quot;
</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 &quot;ResourceError.h&quot;
</span><span class="cx"> #include &quot;ResourceRequest.h&quot;
</span><span class="cx"> #include &quot;ScriptController.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &quot;Settings.h&quot;
</span><span class="cx"> #include &quot;SharedBuffer.h&quot;
</span><span class="cx"> #include &quot;TextResourceDecoder.h&quot;
</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-&gt;setContent(m_responseBuilder.toStringPreserveCapacity());
</span><del>-            m_responseDocument-&gt;setSecurityOrigin(securityOrigin());
</del><ins>+            m_responseDocument-&gt;setSecurityOriginPolicy(scriptExecutionContext()-&gt;securityOriginPolicy());
</ins><span class="cx">             m_responseDocument-&gt;overrideMIMEType(mimeType);
</span><span class="cx"> 
</span><span class="cx">             if (!m_responseDocument-&gt;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 &quot;ScriptController.h&quot;
</span><span class="cx"> #include &quot;ScriptSourceCode.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &quot;Text.h&quot;
</span><span class="cx"> #include &quot;XMLViewerCSS.h&quot;
</span><span class="cx"> #include &quot;XMLViewerJS.h&quot;
</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()-&gt;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 &quot;HTMLDocument.h&quot;
</span><span class="cx"> #include &quot;Page.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><ins>+#include &quot;SecurityOriginPolicy.h&quot;
</ins><span class="cx"> #include &quot;Text.h&quot;
</span><span class="cx"> #include &quot;TextResourceDecoder.h&quot;
</span><span class="cx"> #include &quot;markup.h&quot;
</span><span class="lines">@@ -90,7 +91,7 @@
</span><span class="cx">         if (Document* oldDocument = frame-&gt;document()) {
</span><span class="cx">             result-&gt;setTransformSourceDocument(oldDocument);
</span><span class="cx">             result-&gt;takeDOMWindowFrom(oldDocument);
</span><del>-            result-&gt;setSecurityOrigin(oldDocument-&gt;securityOrigin());
</del><ins>+            result-&gt;setSecurityOriginPolicy(oldDocument-&gt;securityOriginPolicy());
</ins><span class="cx">             result-&gt;setCookieURL(oldDocument-&gt;cookieURL());
</span><span class="cx">             result-&gt;setFirstPartyForCookies(oldDocument-&gt;firstPartyForCookies());
</span><span class="cx">             result-&gt;contentSecurityPolicy()-&gt;copyStateFrom(oldDocument-&gt;contentSecurityPolicy());
</span></span></pre>
</div>
</div>

</body>
</html>