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;