<!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>[144571] trunk/Source</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/144571">144571</a></dd>
<dt>Author</dt> <dd>mkwst@chromium.org</dd>
<dt>Date</dt> <dd>2013-03-03 03:06:19 -0800 (Sun, 03 Mar 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>CSP 1.1: Support CSP 1.1 directives on the unprefixed header.
https://bugs.webkit.org/show_bug.cgi?id=111254

Reviewed by Adam Barth.

Source/WebCore:

We'd like to ensure that early adopters don't get stuck on a prefixed
header; when CSP 1.1 is baked enough to be supported in multiple
browsers, everything should Just Work™.

This patch changes WebKit's behavior regarding CSP_NEXT features.
Currently, they're only exposed on the prefixed header ('X-WebKit-CSP').
This patch exposes those features on the canonical header, assuming
that the runtime flag is set. This shouldn't have any effect at all on
ports that haven't yet enabled CSP_NEXT, and will simply clear the way
for a clean deployment to a wider audience once the specification
process is further along.

This change shouldn't have any effect on the existing tests: they
should run just as they did before. The next step will be to adjust
the LayoutTests for 1.1 to prefer the canonical header, but I'll do
that in another patch to reduce churn.

Related, the enum names no longer made sense: the difference between the
canonical 'Content-Security-Policy' header and 'X-WebKit-CSP' is the
prefix, not the functionality. This patch renames them for clarity.

* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
    Use the new enum names.
* page/ContentSecurityPolicy.cpp:
(CSPDirectiveList):
(WebCore::CSPDirectiveList::CSPDirectiveList):
(WebCore::CSPDirectiveList::addDirective):
    Drop the 'm_experimental' property from CSPDirectiveList; we'll
    control the behavior via the runtime flag from now on.

    Also, this fixes a small bug in 'addDirective()': we never threw
    unrecognized directive errors for users who were sending the
    prefixed header. Oops!
(WebCore::ContentSecurityPolicy::deprecatedHeaderType):
    Use the new enum names.
* page/ContentSecurityPolicy.h:
    Redefine the enum for clarity: 'PrefixedReport' and 'Report'
    rather than 'ReportAllDirectives' and 'ReportStableDirectives'.

Source/WebKit/chromium:

The enum names no longer made sense: the difference between the
canonical 'Content-Security-Policy' header and 'X-WebKit-CSP' is the
prefix, not the functionality. This patch renames them for clarity.

* public/WebContentSecurityPolicy.h:
* src/AssertMatchingEnums.cpp:
    Rename the Chromium side of the enums.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContentSecurityPolicycpp">trunk/Source/WebCore/page/ContentSecurityPolicy.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContentSecurityPolicyh">trunk/Source/WebCore/page/ContentSecurityPolicy.h</a></li>
<li><a href="#trunkSourceWebKitchromiumChangeLog">trunk/Source/WebKit/chromium/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitchromiumpublicWebContentSecurityPolicyh">trunk/Source/WebKit/chromium/public/WebContentSecurityPolicy.h</a></li>
<li><a href="#trunkSourceWebKitchromiumsrcAssertMatchingEnumscpp">trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebCore/ChangeLog        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -1,3 +1,52 @@
</span><ins>+2013-03-03  Mike West  &lt;mkwst@chromium.org&gt;
+
+        CSP 1.1: Support CSP 1.1 directives on the unprefixed header.
+        https://bugs.webkit.org/show_bug.cgi?id=111254
+
+        Reviewed by Adam Barth.
+
+        We'd like to ensure that early adopters don't get stuck on a prefixed
+        header; when CSP 1.1 is baked enough to be supported in multiple
+        browsers, everything should Just Work™.
+
+        This patch changes WebKit's behavior regarding CSP_NEXT features.
+        Currently, they're only exposed on the prefixed header ('X-WebKit-CSP').
+        This patch exposes those features on the canonical header, assuming
+        that the runtime flag is set. This shouldn't have any effect at all on
+        ports that haven't yet enabled CSP_NEXT, and will simply clear the way
+        for a clean deployment to a wider audience once the specification
+        process is further along.
+
+        This change shouldn't have any effect on the existing tests: they
+        should run just as they did before. The next step will be to adjust
+        the LayoutTests for 1.1 to prefer the canonical header, but I'll do
+        that in another patch to reduce churn.
+
+        Related, the enum names no longer made sense: the difference between the
+        canonical 'Content-Security-Policy' header and 'X-WebKit-CSP' is the
+        prefix, not the functionality. This patch renames them for clarity.
+
+        * dom/Document.cpp:
+        (WebCore::Document::processHttpEquiv):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::didBeginDocument):
+            Use the new enum names.
+        * page/ContentSecurityPolicy.cpp:
+        (CSPDirectiveList):
+        (WebCore::CSPDirectiveList::CSPDirectiveList):
+        (WebCore::CSPDirectiveList::addDirective):
+            Drop the 'm_experimental' property from CSPDirectiveList; we'll
+            control the behavior via the runtime flag from now on.
+
+            Also, this fixes a small bug in 'addDirective()': we never threw
+            unrecognized directive errors for users who were sending the
+            prefixed header. Oops!
+        (WebCore::ContentSecurityPolicy::deprecatedHeaderType):
+            Use the new enum names.
+        * page/ContentSecurityPolicy.h:
+            Redefine the enum for clarity: 'PrefixedReport' and 'Report'
+            rather than 'ReportAllDirectives' and 'ReportStableDirectives'.
+
</ins><span class="cx"> 2013-03-03  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Another Windows build fix attempt after r144567.
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebCore/dom/Document.cpp        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -2900,13 +2900,13 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     } else if (equalIgnoringCase(equiv, &quot;content-security-policy&quot;))
</span><del>-        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::EnforceStableDirectives);
</del><ins>+        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::Enforce);
</ins><span class="cx">     else if (equalIgnoringCase(equiv, &quot;content-security-policy-report-only&quot;))
</span><del>-        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::ReportStableDirectives);
</del><ins>+        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::Report);
</ins><span class="cx">     else if (equalIgnoringCase(equiv, &quot;x-webkit-csp&quot;))
</span><del>-        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::EnforceAllDirectives);
</del><ins>+        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::PrefixedEnforce);
</ins><span class="cx">     else if (equalIgnoringCase(equiv, &quot;x-webkit-csp-report-only&quot;))
</span><del>-        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::ReportAllDirectives);
</del><ins>+        contentSecurityPolicy()-&gt;didReceiveHeader(content, ContentSecurityPolicy::PrefixedReport);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Though isspace() considers \t and \v to be whitespace, Win IE doesn't.
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -658,19 +658,19 @@
</span><span class="cx"> 
</span><span class="cx">         String policyValue = m_documentLoader-&gt;response().httpHeaderField(&quot;Content-Security-Policy&quot;);
</span><span class="cx">         if (!policyValue.isEmpty())
</span><del>-            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::EnforceStableDirectives);
</del><ins>+            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::Enforce);
</ins><span class="cx"> 
</span><span class="cx">         policyValue = m_documentLoader-&gt;response().httpHeaderField(&quot;Content-Security-Policy-Report-Only&quot;);
</span><span class="cx">         if (!policyValue.isEmpty())
</span><del>-            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::ReportStableDirectives);
</del><ins>+            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::Report);
</ins><span class="cx"> 
</span><span class="cx">         policyValue = m_documentLoader-&gt;response().httpHeaderField(&quot;X-WebKit-CSP&quot;);
</span><span class="cx">         if (!policyValue.isEmpty())
</span><del>-            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::EnforceAllDirectives);
</del><ins>+            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::PrefixedEnforce);
</ins><span class="cx"> 
</span><span class="cx">         policyValue = m_documentLoader-&gt;response().httpHeaderField(&quot;X-WebKit-CSP-Report-Only&quot;);
</span><span class="cx">         if (!policyValue.isEmpty())
</span><del>-            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::ReportAllDirectives);
</del><ins>+            m_frame-&gt;document()-&gt;contentSecurityPolicy()-&gt;didReceiveHeader(policyValue, ContentSecurityPolicy::PrefixedReport);
</ins><span class="cx"> 
</span><span class="cx">         String headerContentLanguage = m_documentLoader-&gt;response().httpHeaderField(&quot;Content-Language&quot;);
</span><span class="cx">         if (!headerContentLanguage.isEmpty()) {
</span></span></pre></div>
<a id="trunkSourceWebCorepageContentSecurityPolicycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContentSecurityPolicy.cpp (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContentSecurityPolicy.cpp        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebCore/page/ContentSecurityPolicy.cpp        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -148,13 +148,13 @@
</span><span class="cx"> FeatureObserver::Feature getFeatureObserverType(ContentSecurityPolicy::HeaderType type)
</span><span class="cx"> {
</span><span class="cx">     switch (type) {
</span><del>-    case ContentSecurityPolicy::EnforceAllDirectives:
</del><ins>+    case ContentSecurityPolicy::PrefixedEnforce:
</ins><span class="cx">         return FeatureObserver::PrefixedContentSecurityPolicy;
</span><del>-    case ContentSecurityPolicy::EnforceStableDirectives:
</del><ins>+    case ContentSecurityPolicy::Enforce:
</ins><span class="cx">         return FeatureObserver::ContentSecurityPolicy;
</span><del>-    case ContentSecurityPolicy::ReportAllDirectives:
</del><ins>+    case ContentSecurityPolicy::PrefixedReport:
</ins><span class="cx">         return FeatureObserver::PrefixedContentSecurityPolicyReportOnly;
</span><del>-    case ContentSecurityPolicy::ReportStableDirectives:
</del><ins>+    case ContentSecurityPolicy::Report:
</ins><span class="cx">         return FeatureObserver::ContentSecurityPolicyReportOnly;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="lines">@@ -886,7 +886,6 @@
</span><span class="cx">     String m_header;
</span><span class="cx">     ContentSecurityPolicy::HeaderType m_headerType;
</span><span class="cx"> 
</span><del>-    bool m_experimental;
</del><span class="cx">     bool m_reportOnly;
</span><span class="cx">     bool m_haveSandboxPolicy;
</span><span class="cx">     ContentSecurityPolicy::ReflectedXSSDisposition m_reflectedXSSDisposition;
</span><span class="lines">@@ -912,13 +911,11 @@
</span><span class="cx"> CSPDirectiveList::CSPDirectiveList(ContentSecurityPolicy* policy, ContentSecurityPolicy::HeaderType type)
</span><span class="cx">     : m_policy(policy)
</span><span class="cx">     , m_headerType(type)
</span><del>-    , m_experimental(false)
</del><span class="cx">     , m_reportOnly(false)
</span><span class="cx">     , m_haveSandboxPolicy(false)
</span><span class="cx">     , m_reflectedXSSDisposition(ContentSecurityPolicy::ReflectedXSSUnset)
</span><span class="cx"> {
</span><del>-    m_reportOnly = (type == ContentSecurityPolicy::ReportStableDirectives || type == ContentSecurityPolicy::ReportAllDirectives);
-    m_experimental = (type == ContentSecurityPolicy::ReportAllDirectives || type == ContentSecurityPolicy::EnforceAllDirectives);
</del><ins>+    m_reportOnly = (type == ContentSecurityPolicy::Report || type == ContentSecurityPolicy::PrefixedReport);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassOwnPtr&lt;CSPDirectiveList&gt; CSPDirectiveList::create(ContentSecurityPolicy* policy, const String&amp; header, ContentSecurityPolicy::HeaderType type)
</span><span class="lines">@@ -1398,7 +1395,7 @@
</span><span class="cx">     else if (equalIgnoringCase(name, reportURI))
</span><span class="cx">         parseReportURI(name, value);
</span><span class="cx"> #if ENABLE(CSP_NEXT)
</span><del>-    else if (m_experimental &amp;&amp; m_policy-&gt;experimentalFeaturesEnabled()) {
</del><ins>+    else if (m_policy-&gt;experimentalFeaturesEnabled()) {
</ins><span class="cx">         if (equalIgnoringCase(name, formAction))
</span><span class="cx">             setCSPDirective&lt;SourceListDirective&gt;(name, value, m_formAction);
</span><span class="cx">         else if (equalIgnoringCase(name, pluginTypes))
</span><span class="lines">@@ -1407,6 +1404,8 @@
</span><span class="cx">             setCSPDirective&lt;NonceDirective&gt;(name, value, m_scriptNonce);
</span><span class="cx">         else if (equalIgnoringCase(name, reflectedXSS))
</span><span class="cx">             parseReflectedXSS(name, value);
</span><ins>+        else
+            m_policy-&gt;reportUnsupportedDirective(name);
</ins><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx">     else
</span><span class="lines">@@ -1473,7 +1472,7 @@
</span><span class="cx"> 
</span><span class="cx"> ContentSecurityPolicy::HeaderType ContentSecurityPolicy::deprecatedHeaderType() const
</span><span class="cx"> {
</span><del>-    return m_policies.isEmpty() ? EnforceStableDirectives : m_policies[0]-&gt;headerType();
</del><ins>+    return m_policies.isEmpty() ? Enforce : m_policies[0]-&gt;headerType();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;bool (CSPDirectiveList::*allowed)(ContentSecurityPolicy::ReportingStatus) const&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorepageContentSecurityPolicyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContentSecurityPolicy.h (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContentSecurityPolicy.h        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebCore/page/ContentSecurityPolicy.h        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -60,10 +60,10 @@
</span><span class="cx">     void copyStateFrom(const ContentSecurityPolicy*);
</span><span class="cx"> 
</span><span class="cx">     enum HeaderType {
</span><del>-        ReportStableDirectives,
-        EnforceStableDirectives,
-        ReportAllDirectives,
-        EnforceAllDirectives
</del><ins>+        Report,
+        Enforce,
+        PrefixedReport,
+        PrefixedEnforce
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     enum ReportingStatus {
</span></span></pre></div>
<a id="trunkSourceWebKitchromiumChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/chromium/ChangeLog (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/chromium/ChangeLog        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebKit/chromium/ChangeLog        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2013-03-03  Mike West  &lt;mkwst@chromium.org&gt;
+
+        CSP 1.1: Support CSP 1.1 directives on the unprefixed header.
+        https://bugs.webkit.org/show_bug.cgi?id=111254
+
+        Reviewed by Adam Barth.
+
+        The enum names no longer made sense: the difference between the
+        canonical 'Content-Security-Policy' header and 'X-WebKit-CSP' is the
+        prefix, not the functionality. This patch renames them for clarity.
+
+        * public/WebContentSecurityPolicy.h:
+        * src/AssertMatchingEnums.cpp:
+            Rename the Chromium side of the enums.
+
</ins><span class="cx"> 2013-03-03  Adam Barth  &lt;abarth@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed attempted build fix. Adds back some includes removed in
</span></span></pre></div>
<a id="trunkSourceWebKitchromiumpublicWebContentSecurityPolicyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/chromium/public/WebContentSecurityPolicy.h (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/chromium/public/WebContentSecurityPolicy.h        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebKit/chromium/public/WebContentSecurityPolicy.h        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -34,10 +34,10 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> enum WebContentSecurityPolicyType {
</span><del>-    WebContentSecurityPolicyTypeReportStableDirectives,
-    WebContentSecurityPolicyTypeEnforceStableDirectives,
-    WebContentSecurityPolicyTypeReportAllDirectives,
-    WebContentSecurityPolicyTypeEnforceAllDirectives,
</del><ins>+    WebContentSecurityPolicyTypeReport,
+    WebContentSecurityPolicyTypeEnforce,
+    WebContentSecurityPolicyTypePrefixedReport,
+    WebContentSecurityPolicyTypePrefixedEnforce,
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKitchromiumsrcAssertMatchingEnumscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp (144570 => 144571)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp        2013-03-03 10:47:41 UTC (rev 144570)
+++ trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp        2013-03-03 11:06:19 UTC (rev 144571)
</span><span class="lines">@@ -612,10 +612,10 @@
</span><span class="cx"> COMPILE_ASSERT_MATCHING_ENUM(WebReferrerPolicyNever, ReferrerPolicyNever);
</span><span class="cx"> COMPILE_ASSERT_MATCHING_ENUM(WebReferrerPolicyOrigin, ReferrerPolicyOrigin);
</span><span class="cx"> 
</span><del>-COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypeReportStableDirectives, ContentSecurityPolicy::ReportStableDirectives);
-COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypeEnforceStableDirectives, ContentSecurityPolicy::EnforceStableDirectives);
-COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypeReportAllDirectives, ContentSecurityPolicy::ReportAllDirectives);
-COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypeEnforceAllDirectives, ContentSecurityPolicy::EnforceAllDirectives);
</del><ins>+COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypeReport, ContentSecurityPolicy::Report);
+COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypeEnforce, ContentSecurityPolicy::Enforce);
+COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypePrefixedReport, ContentSecurityPolicy::PrefixedReport);
+COMPILE_ASSERT_MATCHING_ENUM(WebContentSecurityPolicyTypePrefixedEnforce, ContentSecurityPolicy::PrefixedEnforce);
</ins><span class="cx"> 
</span><span class="cx"> COMPILE_ASSERT_MATCHING_ENUM(WebURLResponse::Unknown, ResourceResponse::Unknown);
</span><span class="cx"> COMPILE_ASSERT_MATCHING_ENUM(WebURLResponse::HTTP_0_9, ResourceResponse::HTTP_0_9);
</span></span></pre>
</div>
</div>

</body>
</html>