2010-07-21 Brady Eidson <beidson@apple.com>
Reviewed by Geoffrey Garen.
Break out "scheme registration" functionality from SecurityOrigin to a SchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=42783
* src/WebSecurityPolicy.cpp:
(WebKit::WebSecurityPolicy::registerURLSchemeAsLocal):
(WebKit::WebSecurityPolicy::registerURLSchemeAsNoAccess):
(WebKit::WebSecurityPolicy::registerURLSchemeAsSecure):
2010-07-21 Brady Eidson <beidson@apple.com>
Reviewed by Geoffrey Garen.
Break out "scheme registration" functionality from SecurityOrigin to a SchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=42783
* Api/qwebpage.cpp:
(QWebPage::acceptNavigationRequest):
* Api/qwebsecurityorigin.cpp:
(QWebSecurityOrigin::addLocalScheme):
(QWebSecurityOrigin::removeLocalScheme):
(QWebSecurityOrigin::localSchemes):
2010-07-21 Brady Eidson <beidson@apple.com>
Reviewed by Geoffrey Garen.
Break out "scheme registration" functionality from SecurityOrigin to a SchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=42783
* WebView.cpp:
(WebView::registerURLSchemeAsLocal):
(WebView::registerURLSchemeAsSecure):
2010-07-21 Brady Eidson <beidson@apple.com>
Reviewed by Geoffrey Garen.
Break out "scheme registration" functionality from SecurityOrigin to a SchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=42783
* WebView/WebView.mm:
(+[WebView _registerURLSchemeAsSecure:]):
(+[WebView registerURLSchemeAsLocal:]):
2010-07-21 Brady Eidson <beidson@apple.com>
Reviewed by Geoffrey Garen.
Break out "scheme registration" functionality from SecurityOrigin to a SchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=42783
No new tests. (No change in behavior)
* GNUmakefile.am:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::isMixedContent):
(WebCore::FrameLoader::loadFrameRequest):
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::canLoad):
(WebCore::SecurityOrigin::isLocal):
* page/SecurityOrigin.h:
* platform/SchemeRegistry.cpp: Added.
(WebCore::localSchemes):
(WebCore::secureSchemes):
(WebCore::schemesWithUniqueOrigins):
(WebCore::SchemeRegistry::registerURLSchemeAsLocal):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::SchemeRegistry::localURLSchemes):
(WebCore::SchemeRegistry::shouldTreatURLAsLocal):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::SchemeRegistry::registerURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::registerURLSchemeAsSecure):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure):
* platform/SchemeRegistry.h: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63863 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index 4d50ec0..efda6af 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -85,6 +85,7 @@
#include "ProgressTracker.h"
#include "ResourceHandle.h"
#include "ResourceRequest.h"
+#include "SchemeRegistry.h"
#include "ScriptController.h"
#include "ScriptSourceCode.h"
#include "ScriptString.h"
@@ -1058,7 +1059,7 @@
if (context->protocol() != "https")
return false; // We only care about HTTPS security origins.
- if (!url.isValid() || SecurityOrigin::shouldTreatURLSchemeAsSecure(url.protocol()))
+ if (!url.isValid() || SchemeRegistry::shouldTreatURLSchemeAsSecure(url.protocol()))
return false; // Loading these protocols is secure.
return true;
@@ -1320,7 +1321,7 @@
referrer = m_outgoingReferrer;
ASSERT(frame()->document());
- if (SecurityOrigin::shouldTreatURLAsLocal(url.string()) && !isFeedWithNestedProtocolInHTTPFamily(url)) {
+ if (SchemeRegistry::shouldTreatURLAsLocal(url.string()) && !isFeedWithNestedProtocolInHTTPFamily(url)) {
if (!SecurityOrigin::canLoad(url, String(), frame()->document()) && !SecurityOrigin::canLoad(url, referrer, 0)) {
FrameLoader::reportLocalLoadFailed(m_frame, url.string());
return;