summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--webkit/database/database_util.cc8
-rw-r--r--webkit/database/database_util_unittest.cc14
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