diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/platform/weborigin/SecurityOriginHash.h | 19 |
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) { |