Title: [208558] trunk/Source
Revision
208558
Author
achristen...@apple.com
Date
2016-11-10 12:52:17 -0800 (Thu, 10 Nov 2016)

Log Message

Move SecurityOrigin::databaseIdentifier() to SecurityOriginData
https://bugs.webkit.org/show_bug.cgi?id=164573

Reviewed by Brady Eidson.

Source/WebCore:

No change in behavior.

* Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
(WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory):
* Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasEntryForOriginNoLock):
(WebCore::DatabaseTracker::hasEntryForDatabase):
(WebCore::DatabaseTracker::originPath):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::databaseNamesForOriginNoLock):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::originLockFor):
(WebCore::DatabaseTracker::deleteOriginLockFor):
(WebCore::DatabaseTracker::quotaForOriginNoLock):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier):
* dom/Document.cpp:
(WebCore::Document::origin):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
(WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::databaseIdentifier): Deleted.
* page/SecurityOrigin.h:
* page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::databaseIdentifier):
* page/SecurityOriginData.h:

Source/WebKit:

* Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::create):
* Storage/StorageTracker.cpp:
(WebKit::StorageTracker::deleteOrigin):
(WebKit::StorageTracker::diskUsageForOrigin):

Source/WebKit/mac:

* WebCoreSupport/WebSecurityOrigin.mm:
(-[WebSecurityOrigin databaseIdentifier]):

Source/WebKit2:

* Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginCopyDatabaseIdentifier):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::databasePath):
(WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin):
(WebKit::LocalStorageDatabaseTracker::deleteDatabaseWithOrigin):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeMediaKeys):
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCopyOriginsWithApplicationCache):
* WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::WebMediaKeyStorageManager::mediaKeyStorageDirectoryForOrigin):
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::startUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (208557 => 208558)


--- trunk/Source/WebCore/ChangeLog	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/ChangeLog	2016-11-10 20:52:17 UTC (rev 208558)
@@ -1,3 +1,54 @@
+2016-11-10  Alex Christensen  <achristen...@webkit.org>
+
+        Move SecurityOrigin::databaseIdentifier() to SecurityOriginData
+        https://bugs.webkit.org/show_bug.cgi?id=164573
+
+        Reviewed by Brady Eidson.
+
+        No change in behavior.
+
+        * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
+        (WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory):
+        * Modules/indexeddb/IDBDatabaseIdentifier.cpp:
+        (WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
+        * Modules/indexeddb/server/IDBServer.cpp:
+        (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
+        * Modules/webdatabase/DatabaseTracker.cpp:
+        (WebCore::DatabaseTracker::hasEntryForOriginNoLock):
+        (WebCore::DatabaseTracker::hasEntryForDatabase):
+        (WebCore::DatabaseTracker::originPath):
+        (WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
+        (WebCore::DatabaseTracker::databaseNamesForOriginNoLock):
+        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
+        (WebCore::DatabaseTracker::setDatabaseDetails):
+        (WebCore::DatabaseTracker::originLockFor):
+        (WebCore::DatabaseTracker::deleteOriginLockFor):
+        (WebCore::DatabaseTracker::quotaForOriginNoLock):
+        (WebCore::DatabaseTracker::setQuota):
+        (WebCore::DatabaseTracker::addDatabase):
+        (WebCore::DatabaseTracker::deleteOrigin):
+        (WebCore::DatabaseTracker::deleteDatabase):
+        (WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
+        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
+        (WebCore::getDatabaseIdentifier):
+        * dom/Document.cpp:
+        (WebCore::Document::origin):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory):
+        * loader/appcache/ApplicationCacheStorage.cpp:
+        (WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
+        (WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
+        (WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
+        (WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
+        (WebCore::ApplicationCacheStorage::store):
+        (WebCore::ApplicationCacheStorage::ensureOriginRecord):
+        * page/SecurityOrigin.cpp:
+        (WebCore::SecurityOrigin::databaseIdentifier): Deleted.
+        * page/SecurityOrigin.h:
+        * page/SecurityOriginData.cpp:
+        (WebCore::SecurityOriginData::databaseIdentifier):
+        * page/SecurityOriginData.h:
+
 2016-11-10  Zalan Bujtas  <za...@apple.com>
 
         RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants should be on RenderBlock.

Modified: trunk/Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp (208557 => 208558)


--- trunk/Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -32,6 +32,7 @@
 #include "EventNames.h"
 #include "ExceptionCode.h"
 #include "FileSystem.h"
+#include "SecurityOriginData.h"
 #include "Settings.h"
 #include "WebKitMediaKeyError.h"
 #include "WebKitMediaKeyMessageEvent.h"
@@ -234,7 +235,7 @@
     if (!origin)
         return emptyString();
 
-    return pathByAppendingComponent(storageDirectory, origin->databaseIdentifier());
+    return pathByAppendingComponent(storageDirectory, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 }
 
 bool WebKitMediaKeySession::hasPendingActivity() const

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp (208557 => 208558)


--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -63,13 +63,13 @@
 
 String IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot(const SecurityOriginData& topLevelOrigin, const SecurityOriginData& openingOrigin, const String& rootDirectory)
 {
-    String mainFrameDirectory = pathByAppendingComponent(rootDirectory, topLevelOrigin.securityOrigin()->databaseIdentifier());
+    String mainFrameDirectory = pathByAppendingComponent(rootDirectory, topLevelOrigin.databaseIdentifier());
 
     // If the opening origin and main frame origins are the same, there is no partitioning.
     if (openingOrigin == topLevelOrigin)
         return mainFrameDirectory;
 
-    return pathByAppendingComponent(mainFrameDirectory, openingOrigin.securityOrigin()->databaseIdentifier());
+    return pathByAppendingComponent(mainFrameDirectory, openingOrigin.databaseIdentifier());
 }
 
 #if !LOG_DISABLED

Modified: trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp (208557 => 208558)


--- trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -651,7 +651,7 @@
 {
     if (!m_databaseDirectoryPath.isEmpty()) {
         for (const auto& origin : origins) {
-            String originPath = pathByAppendingComponent(m_databaseDirectoryPath, origin.securityOrigin()->databaseIdentifier());
+            String originPath = pathByAppendingComponent(m_databaseDirectoryPath, origin.databaseIdentifier());
             removeAllDatabasesForOriginPath(originPath, std::chrono::system_clock::time_point::min());
         }
     }

Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp (208557 => 208558)


--- trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -41,6 +41,7 @@
 #include "OriginLock.h"
 #include "Page.h"
 #include "SecurityOrigin.h"
+#include "SecurityOriginData.h"
 #include "SecurityOriginHash.h"
 #include "SQLiteFileSystem.h"
 #include "SQLiteStatement.h"
@@ -250,7 +251,7 @@
         return false;
     }
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 
     return statement.step() == SQLITE_ROW;
 }
@@ -276,7 +277,7 @@
     if (statement.prepare() != SQLITE_OK)
         return false;
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     statement.bindText(2, databaseIdentifier);
 
     return statement.step() == SQLITE_ROW;
@@ -330,7 +331,7 @@
 
 String DatabaseTracker::originPath(SecurityOrigin* origin) const
 {
-    return SQLiteFileSystem::appendDatabaseFileNameToPath(m_databaseDirectoryPath.isolatedCopy(), origin->databaseIdentifier());
+    return SQLiteFileSystem::appendDatabaseFileNameToPath(m_databaseDirectoryPath.isolatedCopy(), SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 }
 
 static String generateDatabaseFileName()
@@ -347,7 +348,7 @@
 {
     ASSERT(!m_databaseGuard.tryLock());
 
-    String originIdentifier = origin->databaseIdentifier();
+    String originIdentifier = SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier();
     String originPath = this->originPath(origin);
 
     // Make sure the path for this SecurityOrigin exists
@@ -433,7 +434,7 @@
     if (statement.prepare() != SQLITE_OK)
         return false;
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 
     int result;
     while ((result = statement.step()) == SQLITE_ROW)
@@ -440,7 +441,7 @@
         resultVector.append(statement.getColumnText(0));
 
     if (result != SQLITE_DONE) {
-        LOG_ERROR("Failed to retrieve all database names for origin %s", origin->databaseIdentifier().ascii().data());
+        LOG_ERROR("Failed to retrieve all database names for origin %s", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
         return false;
     }
 
@@ -463,7 +464,7 @@
 
 DatabaseDetails DatabaseTracker::detailsForNameAndOrigin(const String& name, SecurityOrigin* origin)
 {
-    String originIdentifier = origin->databaseIdentifier();
+    String originIdentifier = SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier();
     String displayName;
     int64_t expectedUsage;
 
@@ -500,7 +501,7 @@
 
 void DatabaseTracker::setDatabaseDetails(SecurityOrigin* origin, const String& name, const String& displayName, unsigned long estimatedSize)
 {
-    String originIdentifier = origin->databaseIdentifier();
+    String originIdentifier = SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier();
     int64_t guid = 0;
 
     LockHolder lockDatabase(m_databaseGuard);
@@ -651,7 +652,7 @@
 RefPtr<OriginLock> DatabaseTracker::originLockFor(SecurityOrigin* origin)
 {
     LockHolder lockDatabase(m_databaseGuard);
-    String databaseIdentifier = origin->databaseIdentifier();
+    String databaseIdentifier = SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier();
 
     // The originLockMap is accessed from multiple DatabaseThreads since
     // different script contexts can be writing to different databases from
@@ -690,7 +691,7 @@
     // This may or may not be possible depending on whether other threads are
     // also using the OriginLock at the same time. After that, we will delete the lock file.
 
-    m_originLockMap.remove(origin->databaseIdentifier());
+    m_originLockMap.remove(SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     OriginLock::deleteLockFile(originPath(origin));
 }
 
@@ -720,7 +721,7 @@
         LOG_ERROR("Failed to prepare statement.");
         return quota;
     }
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 
     if (statement.step() == SQLITE_ROW)
         quota = statement.getColumnInt64(0);
@@ -753,13 +754,13 @@
     if (!originEntryExists) {
         SQLiteStatement statement(m_database, "INSERT INTO Origins VALUES (?, ?)");
         if (statement.prepare() != SQLITE_OK) {
-            LOG_ERROR("Unable to establish origin %s in the tracker", origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Unable to establish origin %s in the tracker", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
         } else {
-            statement.bindText(1, origin->databaseIdentifier());
+            statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
             statement.bindInt64(2, quota);
 
             if (statement.step() != SQLITE_DONE)
-                LOG_ERROR("Unable to establish origin %s in the tracker", origin->databaseIdentifier().ascii().data());
+                LOG_ERROR("Unable to establish origin %s in the tracker", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
 #if PLATFORM(IOS)
             else
                 insertedNewOrigin = true;
@@ -770,13 +771,13 @@
         bool error = statement.prepare() != SQLITE_OK;
         if (!error) {
             statement.bindInt64(1, quota);
-            statement.bindText(2, origin->databaseIdentifier());
+            statement.bindText(2, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 
             error = !statement.executeCommand();
         }
 
         if (error)
-            LOG_ERROR("Failed to set quota %llu in tracker database for origin %s", quota, origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Failed to set quota %llu in tracker database for origin %s", quota, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
     }
 
     if (m_client) {
@@ -803,12 +804,12 @@
     if (statement.prepare() != SQLITE_OK)
         return false;
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     statement.bindText(2, name);
     statement.bindText(3, path);
 
     if (!statement.executeCommand()) {
-        LOG_ERROR("Failed to add database %s to origin %s: %s\n", name.ascii().data(), origin->databaseIdentifier().ascii().data(), m_database.lastErrorMsg());
+        LOG_ERROR("Failed to add database %s to origin %s: %s\n", name.ascii().data(), SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data(), m_database.lastErrorMsg());
         return false;
     }
 
@@ -879,11 +880,11 @@
             return false;
 
         if (!databaseNamesForOriginNoLock(origin, databaseNames)) {
-            LOG_ERROR("Unable to retrieve list of database names for origin %s", origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Unable to retrieve list of database names for origin %s", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
             return false;
         }
         if (!canDeleteOrigin(origin)) {
-            LOG_ERROR("Tried to delete an origin (%s) while either creating database in it or already deleting it", origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Tried to delete an origin (%s) while either creating database in it or already deleting it", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
             ASSERT_NOT_REACHED();
             return false;
         }
@@ -894,7 +895,7 @@
     for (auto& name : databaseNames) {
         if (!deleteDatabaseFile(origin, name, deletionMode)) {
             // Even if the file can't be deleted, we want to try and delete the rest, don't return early here.
-            LOG_ERROR("Unable to delete file for database %s in origin %s", name.ascii().data(), origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Unable to delete file for database %s in origin %s", name.ascii().data(), SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
         }
     }
 
@@ -905,27 +906,27 @@
 
         SQLiteStatement statement(m_database, "DELETE FROM Databases WHERE origin=?");
         if (statement.prepare() != SQLITE_OK) {
-            LOG_ERROR("Unable to prepare deletion of databases from origin %s from tracker", origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Unable to prepare deletion of databases from origin %s from tracker", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
             return false;
         }
 
-        statement.bindText(1, origin->databaseIdentifier());
+        statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 
         if (!statement.executeCommand()) {
-            LOG_ERROR("Unable to execute deletion of databases from origin %s from tracker", origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Unable to execute deletion of databases from origin %s from tracker", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
             return false;
         }
 
         SQLiteStatement originStatement(m_database, "DELETE FROM Origins WHERE origin=?");
         if (originStatement.prepare() != SQLITE_OK) {
-            LOG_ERROR("Unable to prepare deletion of origin %s from tracker", origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Unable to prepare deletion of origin %s from tracker", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
             return false;
         }
 
-        originStatement.bindText(1, origin->databaseIdentifier());
+        originStatement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 
         if (!originStatement.executeCommand()) {
-            LOG_ERROR("Unable to execute deletion of databases from origin %s from tracker", origin->databaseIdentifier().ascii().data());
+            LOG_ERROR("Unable to execute deletion of databases from origin %s from tracker", SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
             return false;
         }
 
@@ -1094,7 +1095,7 @@
 
     // We drop the lock here because holding locks during a call to deleteDatabaseFile will deadlock.
     if (!deleteDatabaseFile(origin, name, DeletionMode::Default)) {
-        LOG_ERROR("Unable to delete file for database %s in origin %s", name.ascii().data(), origin->databaseIdentifier().ascii().data());
+        LOG_ERROR("Unable to delete file for database %s in origin %s", name.ascii().data(), SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
         LockHolder lockDatabase(m_databaseGuard);
         doneDeletingDatabase(origin, name);
         return false;
@@ -1104,16 +1105,16 @@
 
     SQLiteStatement statement(m_database, "DELETE FROM Databases WHERE origin=? AND name=?");
     if (statement.prepare() != SQLITE_OK) {
-        LOG_ERROR("Unable to prepare deletion of database %s from origin %s from tracker", name.ascii().data(), origin->databaseIdentifier().ascii().data());
+        LOG_ERROR("Unable to prepare deletion of database %s from origin %s from tracker", name.ascii().data(), SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
         doneDeletingDatabase(origin, name);
         return false;
     }
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     statement.bindText(2, name);
 
     if (!statement.executeCommand()) {
-        LOG_ERROR("Unable to execute deletion of database %s from origin %s from tracker", name.ascii().data(), origin->databaseIdentifier().ascii().data());
+        LOG_ERROR("Unable to execute deletion of database %s from origin %s from tracker", name.ascii().data(), SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier().ascii().data());
         doneDeletingDatabase(origin, name);
         return false;
     }
@@ -1228,7 +1229,7 @@
                     String databaseFileName;
                     SQLiteStatement statement(m_database, "SELECT path FROM Databases WHERE origin=? AND name=?;");
                     if (statement.prepare() == SQLITE_OK) {
-                        statement.bindText(1, origin->databaseIdentifier());
+                        statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
                         statement.bindText(2, databaseName);
                         if (statement.step() == SQLITE_ROW)
                             databaseFileName = statement.getColumnText(0);

Modified: trunk/Source/WebCore/Modules/webdatabase/SQLTransactionCoordinator.cpp (208557 => 208558)


--- trunk/Source/WebCore/Modules/webdatabase/SQLTransactionCoordinator.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLTransactionCoordinator.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -35,6 +35,7 @@
 #include "Database.h"
 #include "SQLTransaction.h"
 #include "SecurityOrigin.h"
+#include "SecurityOriginData.h"
 #include <wtf/Deque.h>
 #include <wtf/RefPtr.h>
 
@@ -42,7 +43,7 @@
 
 static String getDatabaseIdentifier(SQLTransaction& transaction)
 {
-    return transaction.database().securityOrigin()->databaseIdentifier();
+    return SecurityOriginData::fromSecurityOrigin(*transaction.database().securityOrigin()).databaseIdentifier();
 }
 
 SQLTransactionCoordinator::SQLTransactionCoordinator()

Modified: trunk/Source/WebCore/dom/Document.cpp (208557 => 208558)


--- trunk/Source/WebCore/dom/Document.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/dom/Document.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -4282,7 +4282,7 @@
 
 String Document::origin() const
 {
-    return securityOrigin()->databaseIdentifier();
+    return SecurityOriginData::fromSecurityOrigin(*securityOrigin()).databaseIdentifier();
 }
 
 String Document::domain() const

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (208557 => 208558)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -82,6 +82,7 @@
 #include "ResourceLoadInfo.h"
 #include "ScriptController.h"
 #include "ScriptSourceCode.h"
+#include "SecurityOriginData.h"
 #include "SecurityPolicy.h"
 #include "SessionID.h"
 #include "Settings.h"
@@ -2414,7 +2415,7 @@
     if (!origin)
         return emptyString();
 
-    return pathByAppendingComponent(storageDirectory, origin->databaseIdentifier());
+    return pathByAppendingComponent(storageDirectory, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 }
 
 void HTMLMediaElement::webkitSetMediaKeys(WebKitMediaKeys* mediaKeys)

Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp (208557 => 208558)


--- trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -35,6 +35,7 @@
 #include "SQLiteStatement.h"
 #include "SQLiteTransaction.h"
 #include "SecurityOrigin.h"
+#include "SecurityOriginData.h"
 #include "URL.h"
 #include "UUID.h"
 #include <wtf/NeverDestroyed.h>
@@ -438,7 +439,7 @@
     if (statement.prepare() != SQLITE_OK)
         return false;
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     int result = statement.step();
 
     // Return the quota, or if it was null the default.
@@ -466,7 +467,7 @@
     if (statement.prepare() != SQLITE_OK)
         return false;
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     int result = statement.step();
 
     if (result == SQLITE_ROW) {
@@ -509,7 +510,7 @@
     if (statement.prepare() != SQLITE_OK)
         return false;
 
-    statement.bindText(1, origin->databaseIdentifier());
+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     if (excludingCacheIdentifier != 0)
         statement.bindInt64(2, excludingCacheIdentifier);
     int result = statement.step();
@@ -545,7 +546,7 @@
         return false;
 
     updateStatement.bindInt64(1, quota);
-    updateStatement.bindText(2, origin->databaseIdentifier());
+    updateStatement.bindText(2, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
 
     return executeStatement(updateStatement);
 }
@@ -694,7 +695,7 @@
 
     statement.bindInt64(1, urlHostHash(group->manifestURL()));
     statement.bindText(2, group->manifestURL());
-    statement.bindText(3, group->origin()->databaseIdentifier());
+    statement.bindText(3, SecurityOriginData::fromSecurityOrigin(*group->origin()).databaseIdentifier());
 
     if (!executeStatement(statement))
         return false;
@@ -965,7 +966,7 @@
     if (insertOriginStatement.prepare() != SQLITE_OK)
         return false;
 
-    insertOriginStatement.bindText(1, origin->databaseIdentifier());
+    insertOriginStatement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     insertOriginStatement.bindInt64(2, m_defaultOriginQuota);
     if (!executeStatement(insertOriginStatement))
         return false;

Modified: trunk/Source/WebCore/page/SecurityOrigin.cpp (208557 => 208558)


--- trunk/Source/WebCore/page/SecurityOrigin.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/page/SecurityOrigin.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -542,26 +542,6 @@
     return origin;
 }
 
-String SecurityOrigin::databaseIdentifier() const 
-{
-    // Historically, we've used the following (somewhat non-sensical) string
-    // for the databaseIdentifier of local files. We used to compute this
-    // string because of a bug in how we handled the scheme for file URLs.
-    // Now that we've fixed that bug, we still need to produce this string
-    // to avoid breaking existing persistent state.
-    if (equalIgnoringASCIICase(m_protocol, "file"))
-        return ASCIILiteral("file__0");
-
-    StringBuilder stringBuilder;
-    stringBuilder.append(m_protocol);
-    stringBuilder.append(separatorCharacter);
-    stringBuilder.append(encodeForFileName(m_host));
-    stringBuilder.append(separatorCharacter);
-    stringBuilder.appendNumber(m_port.valueOr(0));
-
-    return stringBuilder.toString();
-}
-
 bool SecurityOrigin::equal(const SecurityOrigin* other) const 
 {
     if (other == this)

Modified: trunk/Source/WebCore/page/SecurityOrigin.h (208557 => 208558)


--- trunk/Source/WebCore/page/SecurityOrigin.h	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/page/SecurityOrigin.h	2016-11-10 20:52:17 UTC (rev 208558)
@@ -191,10 +191,6 @@
     // could make the string return "null".
     WEBCORE_EXPORT String toRawString() const;
 
-    // Serialize the security origin to a string that could be used as part of
-    // file names. This format should be used in storage APIs only.
-    WEBCORE_EXPORT String databaseIdentifier() const;
-
     // This method checks for equality between SecurityOrigins, not whether
     // one origin can access another. It is used for hash table keys.
     // For access checks, use canAccess().

Modified: trunk/Source/WebCore/page/SecurityOriginData.cpp (208557 => 208558)


--- trunk/Source/WebCore/page/SecurityOriginData.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/page/SecurityOriginData.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -30,6 +30,7 @@
 #include "Frame.h"
 #include "SecurityOrigin.h"
 #include <wtf/text/CString.h>
+#include <wtf/text/StringBuilder.h>
 
 using namespace WebCore;
 
@@ -74,6 +75,28 @@
     return SecurityOrigin::create(protocol.isolatedCopy(), host.isolatedCopy(), port);
 }
 
+static const char separatorCharacter = '_';
+
+String SecurityOriginData::databaseIdentifier() const
+{
+    // Historically, we've used the following (somewhat non-sensical) string
+    // for the databaseIdentifier of local files. We used to compute this
+    // string because of a bug in how we handled the scheme for file URLs.
+    // Now that we've fixed that bug, we still need to produce this string
+    // to avoid breaking existing persistent state.
+    if (equalIgnoringASCIICase(protocol, "file"))
+        return ASCIILiteral("file__0");
+    
+    StringBuilder stringBuilder;
+    stringBuilder.append(protocol);
+    stringBuilder.append(separatorCharacter);
+    stringBuilder.append(encodeForFileName(host));
+    stringBuilder.append(separatorCharacter);
+    stringBuilder.appendNumber(port.valueOr(0));
+    
+    return stringBuilder.toString();
+}
+
 SecurityOriginData SecurityOriginData::isolatedCopy() const
 {
     SecurityOriginData result;

Modified: trunk/Source/WebCore/page/SecurityOriginData.h (208557 => 208558)


--- trunk/Source/WebCore/page/SecurityOriginData.h	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebCore/page/SecurityOriginData.h	2016-11-10 20:52:17 UTC (rev 208558)
@@ -47,6 +47,10 @@
 
     WEBCORE_EXPORT SecurityOriginData isolatedCopy() const;
 
+    // Serialize the security origin to a string that could be used as part of
+    // file names. This format should be used in storage APIs only.
+    WEBCORE_EXPORT String databaseIdentifier() const;
+    
     template<class Encoder> void encode(Encoder&) const;
     template<class Decoder> static bool decode(Decoder&, SecurityOriginData&);
 

Modified: trunk/Source/WebKit/ChangeLog (208557 => 208558)


--- trunk/Source/WebKit/ChangeLog	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit/ChangeLog	2016-11-10 20:52:17 UTC (rev 208558)
@@ -1,3 +1,16 @@
+2016-11-10  Alex Christensen  <achristen...@webkit.org>
+
+        Move SecurityOrigin::databaseIdentifier() to SecurityOriginData
+        https://bugs.webkit.org/show_bug.cgi?id=164573
+
+        Reviewed by Brady Eidson.
+
+        * Storage/StorageAreaImpl.cpp:
+        (WebKit::StorageAreaImpl::create):
+        * Storage/StorageTracker.cpp:
+        (WebKit::StorageTracker::deleteOrigin):
+        (WebKit::StorageTracker::diskUsageForOrigin):
+
 2016-11-09  Alex Christensen  <achristen...@webkit.org>
 
         Clean up Storage code

Modified: trunk/Source/WebKit/Storage/StorageAreaImpl.cpp (208557 => 208558)


--- trunk/Source/WebKit/Storage/StorageAreaImpl.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit/Storage/StorageAreaImpl.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -30,6 +30,7 @@
 #include "StorageTracker.h"
 #include <WebCore/Frame.h>
 #include <WebCore/SecurityOrigin.h>
+#include <WebCore/SecurityOriginData.h>
 #include <WebCore/StorageEventDispatcher.h>
 #include <WebCore/StorageMap.h>
 #include <wtf/MainThread.h>
@@ -69,7 +70,7 @@
     // FIXME: If there's no backing storage for LocalStorage, the default WebKit behavior should be that of private browsing,
     // not silently ignoring it. https://bugs.webkit.org/show_bug.cgi?id=25894
     if (area->m_storageSyncManager) {
-        area->m_storageAreaSync = StorageAreaSync::create(area->m_storageSyncManager.get(), area.copyRef(), area->m_securityOrigin->databaseIdentifier());
+        area->m_storageAreaSync = StorageAreaSync::create(area->m_storageSyncManager.get(), area.copyRef(), SecurityOriginData::fromSecurityOrigin(*area->m_securityOrigin).databaseIdentifier());
         ASSERT(area->m_storageAreaSync);
     }
     return area;

Modified: trunk/Source/WebKit/Storage/StorageTracker.cpp (208557 => 208558)


--- trunk/Source/WebKit/Storage/StorageTracker.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit/Storage/StorageTracker.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -33,6 +33,7 @@
 #include <WebCore/SQLiteDatabaseTracker.h>
 #include <WebCore/SQLiteStatement.h>
 #include <WebCore/SecurityOrigin.h>
+#include <WebCore/SecurityOriginData.h>
 #include <WebCore/TextEncoding.h>
 #include <wtf/MainThread.h>
 #include <wtf/StdLibExtras.h>
@@ -495,7 +496,7 @@
     // StorageTracker db deletion.
     WebStorageNamespaceProvider::clearLocalStorageForOrigin(origin);
 
-    String originId = origin->databaseIdentifier();
+    String originId = SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier();
     
     {
         LockHolder locker(m_originSetMutex);
@@ -647,7 +648,7 @@
 
     LockHolder locker(m_databaseMutex);
 
-    String path = databasePathForOrigin(origin->databaseIdentifier());
+    String path = databasePathForOrigin(SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
     if (path.isEmpty())
         return 0;
 

Modified: trunk/Source/WebKit/mac/ChangeLog (208557 => 208558)


--- trunk/Source/WebKit/mac/ChangeLog	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit/mac/ChangeLog	2016-11-10 20:52:17 UTC (rev 208558)
@@ -1,3 +1,13 @@
+2016-11-10  Alex Christensen  <achristen...@webkit.org>
+
+        Move SecurityOrigin::databaseIdentifier() to SecurityOriginData
+        https://bugs.webkit.org/show_bug.cgi?id=164573
+
+        Reviewed by Brady Eidson.
+
+        * WebCoreSupport/WebSecurityOrigin.mm:
+        (-[WebSecurityOrigin databaseIdentifier]):
+
 2016-10-14  Carlos Garcia Campos  <cgar...@igalia.com>
 
         MemoryPressureHandler shouldn't know how to release WebCore memory

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm (208557 => 208558)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm	2016-11-10 20:52:17 UTC (rev 208558)
@@ -34,6 +34,7 @@
 #import <WebCore/URL.h>
 #import <WebCore/DatabaseManager.h>
 #import <WebCore/SecurityOrigin.h>
+#import <WebCore/SecurityOriginData.h>
 
 using namespace WebCore;
 
@@ -73,7 +74,7 @@
 
 - (NSString *)databaseIdentifier
 {
-    return reinterpret_cast<SecurityOrigin*>(_private)->databaseIdentifier();
+    return SecurityOriginData::fromSecurityOrigin(*reinterpret_cast<SecurityOrigin*>(_private)).databaseIdentifier();
 }
 
 #if PLATFORM(IOS)

Modified: trunk/Source/WebKit2/ChangeLog (208557 => 208558)


--- trunk/Source/WebKit2/ChangeLog	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/ChangeLog	2016-11-10 20:52:17 UTC (rev 208558)
@@ -1,5 +1,33 @@
 2016-11-10  Alex Christensen  <achristen...@webkit.org>
 
+        Move SecurityOrigin::databaseIdentifier() to SecurityOriginData
+        https://bugs.webkit.org/show_bug.cgi?id=164573
+
+        Reviewed by Brady Eidson.
+
+        * Shared/API/c/WKSecurityOriginRef.cpp:
+        (WKSecurityOriginCopyDatabaseIdentifier):
+        * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
+        (WebKit::LocalStorageDatabaseTracker::databasePath):
+        (WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin):
+        (WebKit::LocalStorageDatabaseTracker::deleteDatabaseWithOrigin):
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+        (WebKit::WebsiteDataStore::removeMediaKeys):
+        * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+        (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+        (WKBundlePageCopyOriginsWithApplicationCache):
+        * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
+        (WebKit::WebMediaKeyStorageManager::mediaKeyStorageDirectoryForOrigin):
+        * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
+        (WebKit::UserMediaPermissionRequestManager::startUserMediaRequest):
+        (WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::exceededDatabaseQuota):
+        (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
+
+2016-11-10  Alex Christensen  <achristen...@webkit.org>
+
         Remove unused CFURLCACHE code
         https://bugs.webkit.org/show_bug.cgi?id=164551
 

Modified: trunk/Source/WebKit2/Shared/API/c/WKSecurityOriginRef.cpp (208557 => 208558)


--- trunk/Source/WebKit2/Shared/API/c/WKSecurityOriginRef.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/Shared/API/c/WKSecurityOriginRef.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -28,6 +28,7 @@
 
 #include "APISecurityOrigin.h"
 #include "WKAPICast.h"
+#include <WebCore/SecurityOriginData.h>
 
 using namespace WebKit;
 
@@ -54,7 +55,7 @@
 
 WKStringRef WKSecurityOriginCopyDatabaseIdentifier(WKSecurityOriginRef securityOrigin)
 {
-    return toCopiedAPI(toImpl(securityOrigin)->securityOrigin().databaseIdentifier());
+    return toCopiedAPI(WebCore::SecurityOriginData::fromSecurityOrigin(toImpl(securityOrigin)->securityOrigin()).databaseIdentifier());
 }
 
 WKStringRef WKSecurityOriginCopyToString(WKSecurityOriginRef securityOrigin)

Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp (208557 => 208558)


--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -30,6 +30,7 @@
 #include <WebCore/SQLiteFileSystem.h>
 #include <WebCore/SQLiteStatement.h>
 #include <WebCore/SecurityOrigin.h>
+#include <WebCore/SecurityOriginData.h>
 #include <WebCore/TextEncoding.h>
 #include <wtf/WorkQueue.h>
 #include <wtf/text/CString.h>
@@ -63,17 +64,17 @@
 
 String LocalStorageDatabaseTracker::databasePath(SecurityOrigin* securityOrigin) const
 {
-    return databasePath(securityOrigin->databaseIdentifier() + ".localstorage");
+    return databasePath(SecurityOriginData::fromSecurityOrigin(*securityOrigin).databaseIdentifier() + ".localstorage");
 }
 
 void LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin(SecurityOrigin* securityOrigin)
 {
-    addDatabaseWithOriginIdentifier(securityOrigin->databaseIdentifier(), databasePath(securityOrigin));
+    addDatabaseWithOriginIdentifier(SecurityOriginData::fromSecurityOrigin(*securityOrigin).databaseIdentifier(), databasePath(securityOrigin));
 }
 
 void LocalStorageDatabaseTracker::deleteDatabaseWithOrigin(SecurityOrigin* securityOrigin)
 {
-    removeDatabaseWithOriginIdentifier(securityOrigin->databaseIdentifier());
+    removeDatabaseWithOriginIdentifier(SecurityOriginData::fromSecurityOrigin(*securityOrigin).databaseIdentifier());
 }
 
 void LocalStorageDatabaseTracker::deleteAllDatabases()

Modified: trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp (208557 => 208558)


--- trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -40,6 +40,7 @@
 #include <WebCore/HTMLMediaElement.h>
 #include <WebCore/OriginLock.h>
 #include <WebCore/SecurityOrigin.h>
+#include <WebCore/SecurityOriginData.h>
 #include <wtf/RunLoop.h>
 
 #if ENABLE(NETSCAPE_PLUGIN_API)
@@ -1125,7 +1126,7 @@
     ASSERT(!mediaKeysStorageDirectory.isEmpty());
 
     for (const auto& origin : origins) {
-        auto mediaKeyDirectory = WebCore::pathByAppendingComponent(mediaKeysStorageDirectory, origin->databaseIdentifier());
+        auto mediaKeyDirectory = WebCore::pathByAppendingComponent(mediaKeysStorageDirectory, WebCore::SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
         auto mediaKeyFile = computeMediaKeyFile(mediaKeyDirectory);
 
         WebCore::deleteFile(mediaKeyFile);

Modified: trunk/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp (208557 => 208558)


--- trunk/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -37,6 +37,7 @@
 #include <WebCore/FrameLoader.h>
 #include <WebCore/Geolocation.h>
 #include <WebCore/SecurityOrigin.h>
+#include <WebCore/SecurityOriginData.h>
 
 using namespace WebCore;
 
@@ -73,7 +74,7 @@
 
     SecurityOrigin* origin = frame->document()->securityOrigin();
 
-    m_page->send(Messages::WebPageProxy::RequestGeolocationPermissionForFrame(geolocationID, webFrame->frameID(), origin->databaseIdentifier()));
+    m_page->send(Messages::WebPageProxy::RequestGeolocationPermissionForFrame(geolocationID, webFrame->frameID(), SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier()));
 }
 
 void GeolocationPermissionRequestManager::cancelRequestForGeolocation(Geolocation* geolocation)

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp (208557 => 208558)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -59,6 +59,7 @@
 #include <WebCore/Page.h>
 #include <WebCore/PageOverlay.h>
 #include <WebCore/PageOverlayController.h>
+#include <WebCore/SecurityOriginData.h>
 #include <WebCore/URL.h>
 #include <WebCore/WheelEventTestTrigger.h>
 #include <wtf/StdLibExtras.h>
@@ -686,7 +687,7 @@
     originIdentifiers.reserveInitialCapacity(origins.size());
 
     for (const auto& origin : origins)
-        originIdentifiers.uncheckedAppend(API::String::create(origin->databaseIdentifier()));
+        originIdentifiers.uncheckedAppend(API::String::create(WebCore::SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier()));
 
     return toAPI(&API::Array::create(WTFMove(originIdentifiers)).leakRef());
 }

Modified: trunk/Source/WebKit2/WebProcess/MediaCache/WebMediaKeyStorageManager.cpp (208557 => 208558)


--- trunk/Source/WebKit2/WebProcess/MediaCache/WebMediaKeyStorageManager.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/WebProcess/MediaCache/WebMediaKeyStorageManager.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -52,7 +52,7 @@
     if (!m_mediaKeyStorageDirectory)
         return emptyString();
 
-    return pathByAppendingComponent(m_mediaKeyStorageDirectory, originData.securityOrigin()->databaseIdentifier());
+    return pathByAppendingComponent(m_mediaKeyStorageDirectory, originData.databaseIdentifier());
 }
 
 Vector<SecurityOriginData> WebMediaKeyStorageManager::getMediaKeyOrigins()

Modified: trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp (208557 => 208558)


--- trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -30,6 +30,7 @@
 #include <WebCore/Frame.h>
 #include <WebCore/FrameLoader.h>
 #include <WebCore/SecurityOrigin.h>
+#include <WebCore/SecurityOriginData.h>
 
 using namespace WebCore;
 
@@ -72,8 +73,8 @@
     ASSERT(webFrame);
 
     SecurityOrigin* topLevelDocumentOrigin = request.topLevelDocumentOrigin();
-    String topLevelDocumentOriginString = topLevelDocumentOrigin ? topLevelDocumentOrigin->databaseIdentifier() : emptyString();
-    m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), request.userMediaDocumentOrigin()->databaseIdentifier(), topLevelDocumentOriginString, request.audioConstraints().data(), request.videoConstraints().data()));
+    String topLevelDocumentOriginString = topLevelDocumentOrigin ? SecurityOriginData::fromSecurityOrigin(*topLevelDocumentOrigin).databaseIdentifier() : emptyString();
+    m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), SecurityOriginData::fromSecurityOrigin(*request.userMediaDocumentOrigin()).databaseIdentifier(), topLevelDocumentOriginString, request.audioConstraints().data(), request.videoConstraints().data()));
 }
 
 void UserMediaPermissionRequestManager::cancelUserMediaRequest(UserMediaRequest& request)
@@ -122,8 +123,8 @@
     ASSERT(webFrame);
 
     SecurityOrigin* topLevelDocumentOrigin = request.topLevelDocumentOrigin();
-    String topLevelDocumentOriginString = topLevelDocumentOrigin ? topLevelDocumentOrigin->databaseIdentifier() : emptyString();
-    m_page.send(Messages::WebPageProxy::EnumerateMediaDevicesForFrame(requestID, webFrame->frameID(), request.userMediaDocumentOrigin()->databaseIdentifier(), topLevelDocumentOriginString));
+    String topLevelDocumentOriginString = topLevelDocumentOrigin ? SecurityOriginData::fromSecurityOrigin(*topLevelDocumentOrigin).databaseIdentifier() : emptyString();
+    m_page.send(Messages::WebPageProxy::EnumerateMediaDevicesForFrame(requestID, webFrame->frameID(), SecurityOriginData::fromSecurityOrigin(*request.userMediaDocumentOrigin()).databaseIdentifier(), topLevelDocumentOriginString));
 }
 
 void UserMediaPermissionRequestManager::cancelMediaDevicesEnumeration(WebCore::MediaDevicesEnumerationRequest& request)

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (208557 => 208558)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2016-11-10 20:07:06 UTC (rev 208557)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2016-11-10 20:52:17 UTC (rev 208558)
@@ -682,12 +682,12 @@
     uint64_t currentQuota = dbManager.quotaForOrigin(origin);
     uint64_t currentOriginUsage = dbManager.usageForOrigin(origin);
     uint64_t newQuota = 0;
-    RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(WebCore::SecurityOrigin::createFromDatabaseIdentifier(origin->databaseIdentifier()));
+    RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(WebCore::SecurityOrigin::createFromDatabaseIdentifier(WebCore::SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier()));
     newQuota = m_page->injectedBundleUIClient().didExceedDatabaseQuota(m_page, securityOrigin.get(), databaseName, details.displayName(), currentQuota, currentOriginUsage, details.currentUsage(), details.expectedUsage());
 
     if (!newQuota) {
         WebProcess::singleton().parentProcessConnection()->sendSync(
-            Messages::WebPageProxy::ExceededDatabaseQuota(webFrame->frameID(), origin->databaseIdentifier(), databaseName, details.displayName(), currentQuota, currentOriginUsage, details.currentUsage(), details.expectedUsage()),
+            Messages::WebPageProxy::ExceededDatabaseQuota(webFrame->frameID(), WebCore::SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier(), databaseName, details.displayName(), currentQuota, currentOriginUsage, details.currentUsage(), details.expectedUsage()),
             Messages::WebPageProxy::ExceededDatabaseQuota::Reply(newQuota), m_page->pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);
     }
 
@@ -712,7 +712,7 @@
 
     uint64_t newQuota = 0;
     WebProcess::singleton().parentProcessConnection()->sendSync(
-        Messages::WebPageProxy::ReachedApplicationCacheOriginQuota(origin->databaseIdentifier(), currentQuota, totalBytesNeeded),
+        Messages::WebPageProxy::ReachedApplicationCacheOriginQuota(WebCore::SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier(), currentQuota, totalBytesNeeded),
         Messages::WebPageProxy::ReachedApplicationCacheOriginQuota::Reply(newQuota), m_page->pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);
 
     cacheStorage.storeUpdatedQuotaForOrigin(origin, newQuota);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to