| 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();
|
| }
|
|
|