Chromium Code Reviews| Index: url/url_util.h |
| diff --git a/url/url_util.h b/url/url_util.h |
| index e9da9b21137edd6f70108847920f17206d5bc769..a4b74b13e5db1fe6241b4a70ce747d81fd52e67f 100644 |
| --- a/url/url_util.h |
| +++ b/url/url_util.h |
| @@ -6,6 +6,7 @@ |
| #define URL_URL_UTIL_H_ |
| #include <string> |
| +#include <vector> |
| #include "base/strings/string16.h" |
| #include "base/strings/string_piece.h" |
| @@ -57,25 +58,44 @@ struct URL_EXPORT SchemeWithType { |
| SchemeType type; |
| }; |
| +// The following Add*Scheme method are not threadsafe and can not be called |
| +// concurrently with any other url_util function. They will assert if the lists |
| +// of schemes have been locked (see LockSchemeRegistries). |
| + |
| // Adds an application-defined scheme to the internal list of "standard-format" |
| // URL schemes. A standard-format scheme adheres to what RFC 3986 calls "generic |
| // URI syntax" (https://tools.ietf.org/html/rfc3986#section-3). |
| -// |
| -// This function is not threadsafe and can not be called concurrently with any |
| -// other url_util function. It will assert if the lists of schemes have |
| -// been locked (see LockSchemeRegistries). |
| + |
| URL_EXPORT void AddStandardScheme(const char* new_scheme, |
| SchemeType scheme_type); |
| // Adds an application-defined scheme to the internal list of schemes allowed |
| // for referrers. |
| -// |
| -// This function is not threadsafe and can not be called concurrently with any |
| -// other url_util function. It will assert if the lists of schemes have |
| -// been locked (see LockSchemeRegistries). |
| URL_EXPORT void AddReferrerScheme(const char* new_scheme, |
| SchemeType scheme_type); |
| +// Adds an application-defined scheme to the list of schemes that do not trigger |
| +// mixed content warnings. |
| +URL_EXPORT void AddSecureScheme(const char* new_scheme); |
| +URL_EXPORT const std::vector<std::string>& GetSecureSchemes(); |
|
Mike West
2017/01/13 11:58:38
Please add tests for these new methods.
|
| + |
| +// Adds an application-defined scheme to the list of schemes that normal pages |
| +// cannot link to or access (i.e., with the same security rules as those applied |
| +// to "file" URLs). |
| +URL_EXPORT void AddLocalScheme(const char* new_scheme); |
| +URL_EXPORT const std::vector<std::string>& GetLocalSchemes(); |
| + |
| +// Adds an application-defined scheme to the list of schemes that cause pages |
| +// loaded with them to not have access to pages loaded with any other URL |
| +// scheme. |
| +URL_EXPORT void AddNoAccessScheme(const char* new_scheme); |
| +URL_EXPORT const std::vector<std::string>& GetNoAccessSchemes(); |
| + |
| +// Adds an application-defined scheme to the list of schemes that can be sent |
| +// CORS requests. |
| +URL_EXPORT void AddCORSEnabledScheme(const char* new_scheme); |
| +URL_EXPORT const std::vector<std::string>& GetCORSEnabledSchemes(); |
|
Mike West
2017/01/13 11:58:38
Hrm. We have enough of these scheme registries at
|
| + |
| // Sets a flag to prevent future calls to Add*Scheme from succeeding. |
| // |
| // This is designed to help prevent errors for multithreaded applications. |