Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: third_party/WebKit/Source/core/dom/SecurityContext.cpp

Issue 2739203002: Initial Implementation of Iframe Attribute for Feature Policy (Part 3) (Closed)
Patch Set: Bug fix: frame owner does not always exist. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All Rights Reserved. 2 * Copyright (C) 2011 Google Inc. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 DCHECK(RuntimeEnabledFeatures::suboriginsEnabled()); 96 DCHECK(RuntimeEnabledFeatures::suboriginsEnabled());
97 DCHECK(m_securityOrigin.get()); 97 DCHECK(m_securityOrigin.get());
98 DCHECK(!m_securityOrigin->hasSuborigin() || 98 DCHECK(!m_securityOrigin->hasSuborigin() ||
99 m_securityOrigin->suborigin()->name() == suborigin.name()); 99 m_securityOrigin->suborigin()->name() == suborigin.name());
100 m_securityOrigin->addSuborigin(suborigin); 100 m_securityOrigin->addSuborigin(suborigin);
101 didUpdateSecurityOrigin(); 101 didUpdateSecurityOrigin();
102 } 102 }
103 103
104 void SecurityContext::initializeFeaturePolicy( 104 void SecurityContext::initializeFeaturePolicy(
105 const WebParsedFeaturePolicy& parsedHeader, 105 const WebParsedFeaturePolicy& parsedHeader,
106 const WebParsedFeaturePolicy& containerPolicy,
106 const WebFeaturePolicy* parentFeaturePolicy) { 107 const WebFeaturePolicy* parentFeaturePolicy) {
107 DCHECK(!m_featurePolicy); 108 DCHECK(!m_featurePolicy);
108 // TODO(iclelland): Use the frame owner properties here to pass the frame
109 // policy, if it exists.
110 WebParsedFeaturePolicy containerPolicy;
111 WebSecurityOrigin origin = WebSecurityOrigin(m_securityOrigin); 109 WebSecurityOrigin origin = WebSecurityOrigin(m_securityOrigin);
112 m_featurePolicy.reset(Platform::current()->createFeaturePolicy( 110 m_featurePolicy.reset(Platform::current()->createFeaturePolicy(
113 parentFeaturePolicy, containerPolicy, parsedHeader, origin)); 111 parentFeaturePolicy, containerPolicy, parsedHeader, origin));
114 } 112 }
115 113
116 void SecurityContext::updateFeaturePolicyOrigin() { 114 void SecurityContext::updateFeaturePolicyOrigin() {
117 if (!m_featurePolicy) 115 if (!m_featurePolicy)
118 return; 116 return;
119 m_featurePolicy.reset(Platform::current()->duplicateFeaturePolicyWithOrigin( 117 m_featurePolicy.reset(Platform::current()->duplicateFeaturePolicyWithOrigin(
120 *m_featurePolicy, WebSecurityOrigin(m_securityOrigin))); 118 *m_featurePolicy, WebSecurityOrigin(m_securityOrigin)));
121 } 119 }
122 120
123 } // namespace blink 121 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698