Index: WebCore/bindings/v8/V8DOMWindowShell.cpp |
=================================================================== |
--- WebCore/bindings/v8/V8DOMWindowShell.cpp (revision 68288) |
+++ WebCore/bindings/v8/V8DOMWindowShell.cpp (working copy) |
@@ -338,11 +338,18 @@ |
if (extensions[i].group && extensions[i].group != extensionGroup) |
continue; |
- // Note: we check the loader URL here instead of the document URL |
- // because we might be currently loading an URL into a blank page. |
- // See http://code.google.com/p/chromium/issues/detail?id=10924 |
- if (extensions[i].scheme.length() > 0 && (extensions[i].scheme != m_frame->loader()->activeDocumentLoader()->url().protocol())) |
- continue; |
+ if (extensions[i].useCallback) { |
+ // Ensure our date extension is always allowed. |
+ if (extensions[i].extension != DateExtension::get() |
+ && !m_frame->loader()->client()->allowScriptExtension(extensions[i].extension->name(), extensionGroup)) |
+ continue; |
+ } else { |
+ // Note: we check the loader URL here instead of the document URL |
+ // because we might be currently loading an URL into a blank page. |
+ // See http://code.google.com/p/chromium/issues/detail?id=10924 |
+ if (extensions[i].scheme.length() > 0 && (extensions[i].scheme != m_frame->loader()->activeDocumentLoader()->url().protocol())) |
+ continue; |
+ } |
extensionNames[index++] = extensions[i].extension->name(); |
} |