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

Side by Side Diff: chrome/renderer/content_settings_observer.cc

Issue 8604008: Update callers of WebSecurityOrigin::isEmpty to call WebSecurityOrigin::isUnique (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | content/renderer/render_view_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/content_settings_observer.h" 5 #include "chrome/renderer/content_settings_observer.h"
6 6
7 #include "chrome/common/render_messages.h" 7 #include "chrome/common/render_messages.h"
8 #include "chrome/common/url_constants.h" 8 #include "chrome/common/url_constants.h"
9 #include "content/public/renderer/document_state.h" 9 #include "content/public/renderer/document_state.h"
10 #include "content/public/renderer/navigation_state.h" 10 #include "content/public/renderer/navigation_state.h"
(...skipping 14 matching lines...) Expand all
25 using WebKit::WebURL; 25 using WebKit::WebURL;
26 using WebKit::WebView; 26 using WebKit::WebView;
27 using content::DocumentState; 27 using content::DocumentState;
28 using content::NavigationState; 28 using content::NavigationState;
29 29
30 namespace { 30 namespace {
31 31
32 // True if |frame| contains content that is white-listed for content settings. 32 // True if |frame| contains content that is white-listed for content settings.
33 static bool IsWhitelistedForContentSettings(WebFrame* frame) { 33 static bool IsWhitelistedForContentSettings(WebFrame* frame) {
34 WebSecurityOrigin origin = frame->document().securityOrigin(); 34 WebSecurityOrigin origin = frame->document().securityOrigin();
35 if (origin.isEmpty()) 35 if (origin.isUnique())
36 return false; // Uninitialized document? 36 return false; // Uninitialized document?
37 37
38 if (EqualsASCII(origin.protocol(), chrome::kChromeUIScheme)) 38 if (EqualsASCII(origin.protocol(), chrome::kChromeUIScheme))
39 return true; // Browser UI elements should still work. 39 return true; // Browser UI elements should still work.
40 40
41 if (EqualsASCII(origin.protocol(), chrome::kChromeDevToolsScheme)) 41 if (EqualsASCII(origin.protocol(), chrome::kChromeDevToolsScheme))
42 return true; // DevTools UI elements should still work. 42 return true; // DevTools UI elements should still work.
43 43
44 // If the scheme is ftp: or file:, an empty file name indicates a directory 44 // If the scheme is ftp: or file:, an empty file name indicates a directory
45 // listing, which requires JavaScript to function properly. 45 // listing, which requires JavaScript to function properly.
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 // If we start failing this DCHECK, please makes sure we don't regress 154 // If we start failing this DCHECK, please makes sure we don't regress
155 // this bug: http://code.google.com/p/chromium/issues/detail?id=79304 155 // this bug: http://code.google.com/p/chromium/issues/detail?id=79304
156 DCHECK(frame->document().securityOrigin().toString() == "null" || 156 DCHECK(frame->document().securityOrigin().toString() == "null" ||
157 !url.SchemeIs(chrome::kDataScheme)); 157 !url.SchemeIs(chrome::kDataScheme));
158 } 158 }
159 159
160 bool ContentSettingsObserver::AllowDatabase(WebFrame* frame, 160 bool ContentSettingsObserver::AllowDatabase(WebFrame* frame,
161 const WebString& name, 161 const WebString& name,
162 const WebString& display_name, 162 const WebString& display_name,
163 unsigned long estimated_size) { 163 unsigned long estimated_size) {
164 if (frame->document().securityOrigin().isEmpty() || 164 if (frame->document().securityOrigin().isUnique() ||
165 frame->top()->document().securityOrigin().isEmpty()) 165 frame->top()->document().securityOrigin().isUnique())
166 return false; // Uninitialized document. 166 return false;
167 167
168 bool result = false; 168 bool result = false;
169 Send(new ChromeViewHostMsg_AllowDatabase( 169 Send(new ChromeViewHostMsg_AllowDatabase(
170 routing_id(), GURL(frame->document().securityOrigin().toString()), 170 routing_id(), GURL(frame->document().securityOrigin().toString()),
171 GURL(frame->top()->document().securityOrigin().toString()), 171 GURL(frame->top()->document().securityOrigin().toString()),
172 name, display_name, &result)); 172 name, display_name, &result));
173 return result; 173 return result;
174 } 174 }
175 175
176 bool ContentSettingsObserver::AllowFileSystem(WebFrame* frame) { 176 bool ContentSettingsObserver::AllowFileSystem(WebFrame* frame) {
177 if (frame->document().securityOrigin().isEmpty() || 177 if (frame->document().securityOrigin().isUnique() ||
178 frame->top()->document().securityOrigin().isEmpty()) 178 frame->top()->document().securityOrigin().isUnique())
179 return false; // Uninitialized document. 179 return false;
180 180
181 bool result = false; 181 bool result = false;
182 Send(new ChromeViewHostMsg_AllowFileSystem( 182 Send(new ChromeViewHostMsg_AllowFileSystem(
183 routing_id(), GURL(frame->document().securityOrigin().toString()), 183 routing_id(), GURL(frame->document().securityOrigin().toString()),
184 GURL(frame->top()->document().securityOrigin().toString()), &result)); 184 GURL(frame->top()->document().securityOrigin().toString()), &result));
185 return result; 185 return result;
186 } 186 }
187 187
188 bool ContentSettingsObserver::AllowImage(WebFrame* frame, 188 bool ContentSettingsObserver::AllowImage(WebFrame* frame,
189 bool enabled_per_settings, 189 bool enabled_per_settings,
(...skipping 10 matching lines...) Expand all
200 } 200 }
201 201
202 if (!allow) 202 if (!allow)
203 DidBlockContentType(CONTENT_SETTINGS_TYPE_IMAGES, std::string()); 203 DidBlockContentType(CONTENT_SETTINGS_TYPE_IMAGES, std::string());
204 return allow; 204 return allow;
205 } 205 }
206 206
207 bool ContentSettingsObserver::AllowIndexedDB(WebFrame* frame, 207 bool ContentSettingsObserver::AllowIndexedDB(WebFrame* frame,
208 const WebString& name, 208 const WebString& name,
209 const WebSecurityOrigin& origin) { 209 const WebSecurityOrigin& origin) {
210 if (frame->document().securityOrigin().isEmpty() || 210 if (frame->document().securityOrigin().isUnique() ||
211 frame->top()->document().securityOrigin().isEmpty()) 211 frame->top()->document().securityOrigin().isUnique())
212 return false; // Uninitialized document. 212 return false;
213 213
214 bool result = false; 214 bool result = false;
215 Send(new ChromeViewHostMsg_AllowIndexedDB( 215 Send(new ChromeViewHostMsg_AllowIndexedDB(
216 routing_id(), GURL(frame->document().securityOrigin().toString()), 216 routing_id(), GURL(frame->document().securityOrigin().toString()),
217 GURL(frame->top()->document().securityOrigin().toString()), 217 GURL(frame->top()->document().securityOrigin().toString()),
218 name, &result)); 218 name, &result));
219 return result; 219 return result;
220 } 220 }
221 221
222 bool ContentSettingsObserver::AllowPlugins(WebFrame* frame, 222 bool ContentSettingsObserver::AllowPlugins(WebFrame* frame,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 ContentSetting setting = GetContentSettingFromRules( 263 ContentSetting setting = GetContentSettingFromRules(
264 content_setting_rules_->script_rules, 264 content_setting_rules_->script_rules,
265 frame, 265 frame,
266 GURL(script_url)); 266 GURL(script_url));
267 allow = setting != CONTENT_SETTING_BLOCK; 267 allow = setting != CONTENT_SETTING_BLOCK;
268 } 268 }
269 return allow || IsWhitelistedForContentSettings(frame); 269 return allow || IsWhitelistedForContentSettings(frame);
270 } 270 }
271 271
272 bool ContentSettingsObserver::AllowStorage(WebFrame* frame, bool local) { 272 bool ContentSettingsObserver::AllowStorage(WebFrame* frame, bool local) {
273 if (frame->document().securityOrigin().isEmpty() || 273 if (frame->document().securityOrigin().isUnique() ||
274 frame->top()->document().securityOrigin().isEmpty()) 274 frame->top()->document().securityOrigin().isUnique())
275 return false; // Uninitialized document. 275 return false;
276 bool result = false; 276 bool result = false;
277 277
278 StoragePermissionsKey key( 278 StoragePermissionsKey key(
279 GURL(frame->document().securityOrigin().toString()), local); 279 GURL(frame->document().securityOrigin().toString()), local);
280 std::map<StoragePermissionsKey, bool>::const_iterator permissions = 280 std::map<StoragePermissionsKey, bool>::const_iterator permissions =
281 cached_storage_permissions_.find(key); 281 cached_storage_permissions_.find(key);
282 if (permissions != cached_storage_permissions_.end()) 282 if (permissions != cached_storage_permissions_.end())
283 return permissions->second; 283 return permissions->second;
284 284
285 Send(new ChromeViewHostMsg_AllowDOMStorage( 285 Send(new ChromeViewHostMsg_AllowDOMStorage(
(...skipping 16 matching lines...) Expand all
302 void ContentSettingsObserver::OnLoadBlockedPlugins() { 302 void ContentSettingsObserver::OnLoadBlockedPlugins() {
303 plugins_temporarily_allowed_ = true; 303 plugins_temporarily_allowed_ = true;
304 } 304 }
305 305
306 void ContentSettingsObserver::ClearBlockedContentSettings() { 306 void ContentSettingsObserver::ClearBlockedContentSettings() {
307 for (size_t i = 0; i < arraysize(content_blocked_); ++i) 307 for (size_t i = 0; i < arraysize(content_blocked_); ++i)
308 content_blocked_[i] = false; 308 content_blocked_[i] = false;
309 cached_storage_permissions_.clear(); 309 cached_storage_permissions_.clear();
310 cached_script_permissions_.clear(); 310 cached_script_permissions_.clear();
311 } 311 }
OLDNEW
« no previous file with comments | « no previous file | content/renderer/render_view_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698