| Index: third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp
|
| diff --git a/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp b/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp
|
| index a0bb8b1c9491f6078da4eb4c1411797fef262c42..e8de40e1e0aa33fc79531b81d28f66ffb94a1796 100644
|
| --- a/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp
|
| +++ b/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp
|
| @@ -46,6 +46,7 @@ namespace blink {
|
| using OriginAccessWhiteList = Vector<OriginAccessEntry>;
|
| using OriginAccessMap = HashMap<String, OwnPtr<OriginAccessWhiteList>>;
|
| using OriginSet = HashSet<String>;
|
| +using SchemeSet = HashSet<String>;
|
|
|
| static OriginAccessMap& originAccessMap()
|
| {
|
| @@ -59,10 +60,17 @@ static OriginSet& trustworthyOriginSet()
|
| return trustworthyOriginSet;
|
| }
|
|
|
| +static SchemeSet& schemesBypassingSecureContextCheckSet()
|
| +{
|
| + DEFINE_STATIC_LOCAL(SchemeSet, bypassSecureContextCheckSet, ());
|
| + return bypassSecureContextCheckSet;
|
| +}
|
| +
|
| void SecurityPolicy::init()
|
| {
|
| originAccessMap();
|
| trustworthyOriginSet();
|
| + schemesBypassingSecureContextCheckSet();
|
| }
|
|
|
| bool SecurityPolicy::shouldHideReferrer(const KURL& url, const String& referrer)
|
| @@ -146,6 +154,20 @@ bool SecurityPolicy::isOriginWhiteListedTrustworthy(const SecurityOrigin& origin
|
| return trustworthyOriginSet().contains(origin.toRawString());
|
| }
|
|
|
| +void SecurityPolicy::addSchemeToBypassSecureContextWhitelist(const String& scheme)
|
| +{
|
| + // Must be called before we start other threads.
|
| + ASSERT(WTF::isBeforeThreadCreated());
|
| + schemesBypassingSecureContextCheckSet().add(scheme);
|
| +}
|
| +
|
| +bool SecurityPolicy::shouldOriginBypassSecureContextCheck(const SecurityOrigin& origin)
|
| +{
|
| + if (origin.isUnique())
|
| + return false;
|
| + return schemesBypassingSecureContextCheckSet().contains(origin.protocol());
|
| +}
|
| +
|
| bool SecurityPolicy::isAccessWhiteListed(const SecurityOrigin* activeOrigin, const SecurityOrigin* targetOrigin)
|
| {
|
| if (OriginAccessWhiteList* list = originAccessMap().get(activeOrigin->toString())) {
|
|
|