Part 2 of removing PlatformString.h, remove PlatformString.h
[WebKit-https.git] / Source / WebCore / platform / SchemeRegistry.h
index 530fcab..f3bd071 100644 (file)
@@ -26,9 +26,9 @@
 #ifndef SchemeRegistry_h
 #define SchemeRegistry_h
 
-#include "PlatformString.h"
 #include <wtf/HashSet.h>
 #include <wtf/text/StringHash.h>
+#include <wtf/text/WTFString.h>
 
 namespace WebCore {
 
@@ -58,6 +58,36 @@ public:
 
     static void registerURLSchemeAsEmptyDocument(const String&);
     static bool shouldLoadURLSchemeAsEmptyDocument(const String&);
+
+    static void setDomainRelaxationForbiddenForURLScheme(bool forbidden, const String&);
+    static bool isDomainRelaxationForbiddenForURLScheme(const String&);
+
+    // Such schemes should delegate to SecurityOrigin::canRequest for any URL
+    // passed to SecurityOrigin::canDisplay.
+    static bool canDisplayOnlyIfCanRequest(const String& scheme);
+    static void registerAsCanDisplayOnlyIfCanRequest(const String& scheme);
+
+    // Schemes against which javascript: URLs should not be allowed to run (stop
+    // bookmarklets from running on sensitive pages). 
+    static void registerURLSchemeAsNotAllowingJavascriptURLs(const String& scheme);
+    static bool shouldTreatURLSchemeAsNotAllowingJavascriptURLs(const String& scheme);
+
+    // Let some schemes opt-out of Private Browsing's default behavior of prohibiting read/write
+    // access to Local Storage and Databases.
+    static void registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsing(const String& scheme);
+    static bool allowsLocalStorageAccessInPrivateBrowsing(const String& scheme);
+    static void registerURLSchemeAsAllowingDatabaseAccessInPrivateBrowsing(const String& scheme);
+    static bool allowsDatabaseAccessInPrivateBrowsing(const String& scheme);
+
+    // Allow non-HTTP schemes to be registered to allow CORS requests.
+    static void registerURLSchemeAsCORSEnabled(const String& scheme);
+    static bool shouldTreatURLSchemeAsCORSEnabled(const String& scheme);
+
+    // Allow resources from some schemes to load on a page, regardless of its
+    // Content Security Policy.
+    static void registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme);
+    static void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(const String& scheme);
+    static bool schemeShouldBypassContentSecurityPolicy(const String& scheme);
 };
 
 } // namespace WebCore