diff options
-rw-r--r-- | webkit/database/database_util.cc | 8 | ||||
-rw-r--r-- | webkit/database/database_util_unittest.cc | 14 |
2 files changed, 19 insertions, 3 deletions
diff --git a/webkit/database/database_util.cc b/webkit/database/database_util.cc index d86a8c2..184e495 100644 --- a/webkit/database/database_util.cc +++ b/webkit/database/database_util.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. @@ -77,7 +77,11 @@ string16 DatabaseUtil::GetOriginIdentifier(const GURL& url) { GURL DatabaseUtil::GetOriginFromIdentifier(const string16& origin_identifier) { GURL origin(WebKit::WebSecurityOrigin::createFromDatabaseIdentifier( origin_identifier).toString()); - DCHECK(origin == origin.GetOrigin()); + // We need this work-around for file:/// URIs as + // createFromDatabaseIdentifier returns empty origin url for them. + if (origin.spec().empty() && + origin_identifier.find(ASCIIToUTF16("file__")) == 0) + return GURL("file:///"); return origin; } diff --git a/webkit/database/database_util_unittest.cc b/webkit/database/database_util_unittest.cc index f6e3e2c..18c7014 100644 --- a/webkit/database/database_util_unittest.cc +++ b/webkit/database/database_util_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. @@ -26,6 +26,11 @@ static void TestVfsFilePath(bool expected_result, EXPECT_EQ(ASCIIToUTF16(expected_sqlite_suffix), sqlite_suffix); } +static GURL ToAndFromOriginIdentifier(const GURL origin_url) { + string16 id = DatabaseUtil::GetOriginIdentifier(origin_url); + return DatabaseUtil::GetOriginFromIdentifier(id); +} + namespace webkit_database { // Test DatabaseUtil::CrackVfsFilePath on various inputs. @@ -42,4 +47,11 @@ TEST(DatabaseUtilTest, CrackVfsFilePathTest) { TestVfsFilePath(false, "/db_name#suffix"); } +TEST(DatabaseUtilTest, OriginIdentifiers) { + const GURL kFileOrigin(GURL("file:///").GetOrigin()); + const GURL kHttpOrigin(GURL("http://bar/").GetOrigin()); + EXPECT_EQ(kFileOrigin, ToAndFromOriginIdentifier(kFileOrigin)); + EXPECT_EQ(kHttpOrigin, ToAndFromOriginIdentifier(kHttpOrigin)); +} + } // namespace webkit_database |