| Index: content/common/origin_util.cc
|
| diff --git a/content/common/origin_util.cc b/content/common/origin_util.cc
|
| index 11873d63cfd9de6f8b7b2c4592d785abef089e42..e8a348c0bedd4f630e3d395793f5c363a288260c 100644
|
| --- a/content/common/origin_util.cc
|
| +++ b/content/common/origin_util.cc
|
| @@ -7,48 +7,12 @@
|
| #include "base/lazy_instance.h"
|
| #include "base/macros.h"
|
| #include "base/stl_util.h"
|
| -#include "content/public/common/content_client.h"
|
| +#include "content/common/url_schemes.h"
|
| #include "net/base/url_util.h"
|
| #include "url/gurl.h"
|
|
|
| namespace content {
|
|
|
| -namespace {
|
| -
|
| -class SchemeAndOriginWhitelist {
|
| - public:
|
| - SchemeAndOriginWhitelist() { Reset(); }
|
| - ~SchemeAndOriginWhitelist() {}
|
| -
|
| - void Reset() {
|
| - secure_schemes_.clear();
|
| - secure_origins_.clear();
|
| - service_worker_schemes_.clear();
|
| - GetContentClient()->AddSecureSchemesAndOrigins(&secure_schemes_,
|
| - &secure_origins_);
|
| - GetContentClient()->AddServiceWorkerSchemes(&service_worker_schemes_);
|
| - }
|
| -
|
| - const std::set<std::string>& secure_schemes() const {
|
| - return secure_schemes_;
|
| - }
|
| - const std::set<GURL>& secure_origins() const { return secure_origins_; }
|
| - const std::set<std::string>& service_worker_schemes() const {
|
| - return service_worker_schemes_;
|
| - }
|
| -
|
| - private:
|
| - std::set<std::string> secure_schemes_;
|
| - std::set<GURL> secure_origins_;
|
| - std::set<std::string> service_worker_schemes_;
|
| - DISALLOW_COPY_AND_ASSIGN(SchemeAndOriginWhitelist);
|
| -};
|
| -
|
| -base::LazyInstance<SchemeAndOriginWhitelist>::Leaky g_trustworthy_whitelist =
|
| - LAZY_INSTANCE_INITIALIZER;
|
| -
|
| -} // namespace
|
| -
|
| bool IsOriginSecure(const GURL& url) {
|
| if (url.SchemeIsCryptographic() || url.SchemeIsFile())
|
| return true;
|
| @@ -62,12 +26,10 @@ bool IsOriginSecure(const GURL& url) {
|
| if (net::IsLocalhost(hostname))
|
| return true;
|
|
|
| - if (base::ContainsKey(g_trustworthy_whitelist.Get().secure_schemes(),
|
| - url.scheme()))
|
| + if (base::ContainsValue(GetSecureSchemes(), url.scheme()))
|
| return true;
|
|
|
| - if (base::ContainsKey(g_trustworthy_whitelist.Get().secure_origins(),
|
| - url.GetOrigin())) {
|
| + if (base::ContainsValue(GetSecureOrigins(), url.GetOrigin())) {
|
| return true;
|
| }
|
|
|
| @@ -78,8 +40,7 @@ bool OriginCanAccessServiceWorkers(const GURL& url) {
|
| if (url.SchemeIsHTTPOrHTTPS() && IsOriginSecure(url))
|
| return true;
|
|
|
| - if (base::ContainsKey(g_trustworthy_whitelist.Get().service_worker_schemes(),
|
| - url.scheme())) {
|
| + if (base::ContainsValue(GetServiceWorkerSchemes(), url.scheme())) {
|
| return true;
|
| }
|
|
|
| @@ -87,7 +48,7 @@ bool OriginCanAccessServiceWorkers(const GURL& url) {
|
| }
|
|
|
| void ResetSchemesAndOriginsWhitelistForTesting() {
|
| - g_trustworthy_whitelist.Get().Reset();
|
| + RefreshSecuritySchemesForTesting();
|
| }
|
|
|
| } // namespace content
|
|
|