// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "content/public/common/origin_util.h" #include "base/containers/contains.h" #include "base/lazy_instance.h" #include "base/macros.h" #include "base/strings/pattern.h" #include "content/common/url_schemes.h" #include "services/network/public/cpp/is_potentially_trustworthy.h" #include "url/gurl.h" #include "url/url_util.h" namespace content { bool OriginCanAccessServiceWorkers(const GURL& url) { if (url.SchemeIsHTTPOrHTTPS() && network::IsUrlPotentiallyTrustworthy(url)) return true; if (base::Contains(GetServiceWorkerSchemes(), url.scheme())) { return true; } return false; } } // namespace content