Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Unified Diff: Source/platform/weborigin/SecurityPolicy.cpp

Issue 1082173003: Support whitelisting to handle insecure origins as trustworthy origins (blink) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: no lock (for now) Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/platform/weborigin/SecurityPolicy.h ('k') | Source/platform/weborigin/SecurityPolicyTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/weborigin/SecurityPolicy.cpp
diff --git a/Source/platform/weborigin/SecurityPolicy.cpp b/Source/platform/weborigin/SecurityPolicy.cpp
index 75508c58fafa23b70d4cdbf8b5b300142ecc14be..3251a694b1e77964a096b8289fb62145591fa4a4 100644
--- a/Source/platform/weborigin/SecurityPolicy.cpp
+++ b/Source/platform/weborigin/SecurityPolicy.cpp
@@ -34,6 +34,7 @@
#include "platform/weborigin/OriginAccessEntry.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "wtf/HashMap.h"
+#include "wtf/HashSet.h"
#include "wtf/MainThread.h"
#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
@@ -42,8 +43,9 @@
namespace blink {
-typedef Vector<OriginAccessEntry> OriginAccessWhiteList;
-typedef HashMap<String, OwnPtr<OriginAccessWhiteList>> OriginAccessMap;
+using OriginAccessWhiteList = Vector<OriginAccessEntry>;
+using OriginAccessMap = HashMap<String, OwnPtr<OriginAccessWhiteList>>;
+using OriginSet = HashSet<String>;
static OriginAccessMap& originAccessMap()
{
@@ -51,6 +53,12 @@ static OriginAccessMap& originAccessMap()
return originAccessMap;
}
+static OriginSet& trustworthyOriginSet()
+{
+ DEFINE_STATIC_LOCAL(OriginSet, trustworthyOriginSet, ());
+ return trustworthyOriginSet;
+}
+
bool SecurityPolicy::shouldHideReferrer(const KURL& url, const String& referrer)
{
bool referrerIsSecureURL = protocolIs(referrer, "https");
@@ -116,6 +124,22 @@ Referrer SecurityPolicy::generateReferrer(ReferrerPolicy referrerPolicy, const K
return Referrer(shouldHideReferrer(url, referrer) ? String() : referrer, referrerPolicy);
}
+void SecurityPolicy::addOriginTrustworthyWhiteList(PassRefPtr<SecurityOrigin> origin)
+{
+ // Must be called before we start other threads.
+ ASSERT(WTF::isBeforeThreadCreated());
+ if (origin->isUnique())
+ return;
+ trustworthyOriginSet().add(origin->toRawString());
+}
+
+bool SecurityPolicy::isOriginWhiteListedTrustworthy(const SecurityOrigin& origin)
+{
+ if (origin.isUnique())
+ return false;
+ return trustworthyOriginSet().contains(origin.toRawString());
+}
+
bool SecurityPolicy::isAccessWhiteListed(const SecurityOrigin* activeOrigin, const SecurityOrigin* targetOrigin)
{
if (OriginAccessWhiteList* list = originAccessMap().get(activeOrigin->toString())) {
« no previous file with comments | « Source/platform/weborigin/SecurityPolicy.h ('k') | Source/platform/weborigin/SecurityPolicyTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698