summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h')
-rw-r--r--chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h b/chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h
index 0d1d22eaf6c..10584f4d7aa 100644
--- a/chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h
+++ b/chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h
@@ -52,13 +52,22 @@ struct SecurityOriginHash {
static bool equal(SecurityOrigin* a, SecurityOrigin* b)
{
- // FIXME: The hash function above compares three specific fields.
- // This code to compare those three specific fields should be moved here from
- // SecurityOrigin as mentioned in origin/SecurityOrigin.h so we don't accidentally change
- // equal without changing hash to match it.
if (!a || !b)
return a == b;
- return a->equal(b);
+
+ if (a == b)
+ return true;
+
+ if (!a->isSameSchemeHostPort(b))
+ return false;
+
+ if (a->domainWasSetInDOM() != b->domainWasSetInDOM())
+ return false;
+
+ if (a->domainWasSetInDOM() && a->domain() != b->domain())
+ return false;
+
+ return true;
}
static bool equal(SecurityOrigin* a, const RefPtr<SecurityOrigin>& b)
{