Index: chrome/renderer/content_settings_observer.cc |
diff --git a/chrome/renderer/content_settings_observer.cc b/chrome/renderer/content_settings_observer.cc |
index 7ca14525b2986bbd844058d77d5d6c072264ba7e..698a3c2c32aa5c157ba094ee7fbd34908ca77299 100644 |
--- a/chrome/renderer/content_settings_observer.cc |
+++ b/chrome/renderer/content_settings_observer.cc |
@@ -144,24 +144,27 @@ bool ContentSettingsObserver::AllowDatabase(WebFrame* frame, |
const WebString& name, |
const WebString& display_name, |
unsigned long estimated_size) { |
- WebSecurityOrigin origin = frame->securityOrigin(); |
- if (origin.isEmpty()) |
- return false; // Uninitialized document? |
+ if (frame->securityOrigin().isEmpty() || |
+ frame->top()->securityOrigin().isEmpty()) |
+ return false; // Uninitialized document. |
bool result = false; |
Send(new ViewHostMsg_AllowDatabase( |
- routing_id(), GURL(origin.toString()), name, display_name, &result)); |
+ routing_id(), GURL(frame->securityOrigin().toString()), |
+ GURL(frame->top()->securityOrigin().toString()), |
+ name, display_name, &result)); |
return result; |
} |
bool ContentSettingsObserver::AllowFileSystem(WebFrame* frame) { |
- WebSecurityOrigin origin = frame->securityOrigin(); |
- if (origin.isEmpty()) |
- return false; // Uninitialized document? |
+ if (frame->securityOrigin().isEmpty() || |
+ frame->top()->securityOrigin().isEmpty()) |
+ return false; // Uninitialized document. |
bool result = false; |
Send(new ViewHostMsg_AllowFileSystem( |
- routing_id(), GURL(origin.toString()), &result)); |
+ routing_id(), GURL(frame->securityOrigin().toString()), |
+ GURL(frame->top()->securityOrigin().toString()), &result)); |
return result; |
} |
@@ -182,9 +185,15 @@ bool ContentSettingsObserver::AllowImages(WebFrame* frame, |
bool ContentSettingsObserver::AllowIndexedDB(WebFrame* frame, |
const WebString& name, |
const WebSecurityOrigin& origin) { |
+ if (frame->securityOrigin().isEmpty() || |
+ frame->top()->securityOrigin().isEmpty()) |
+ return false; // Uninitialized document. |
+ |
bool result = false; |
Send(new ViewHostMsg_AllowIndexedDB( |
- routing_id(), origin.databaseIdentifier(), name, &result)); |
+ routing_id(), GURL(frame->securityOrigin().toString()), |
+ GURL(frame->top()->securityOrigin().toString()), |
+ name, &result)); |
return result; |
} |
@@ -207,9 +216,14 @@ bool ContentSettingsObserver::AllowScript(WebFrame* frame, |
} |
bool ContentSettingsObserver::AllowStorage(WebFrame* frame, bool local) { |
+ if (frame->securityOrigin().isEmpty() || |
+ frame->top()->securityOrigin().isEmpty()) |
+ return false; // Uninitialized document. |
bool result = false; |
+ |
Send(new ViewHostMsg_AllowDOMStorage( |
- routing_id(), frame->url(), |
+ routing_id(), GURL(frame->securityOrigin().toString()), |
+ GURL(frame->top()->securityOrigin().toString()), |
local ? DOM_STORAGE_LOCAL : DOM_STORAGE_SESSION, |
&result)); |
return result; |