コード例 #1
0
String IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot(const SecurityOriginData& topLevelOrigin, const SecurityOriginData& openingOrigin, const String& rootDirectory)
{
    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.databaseIdentifier());
}
コード例 #2
0
bool WebsiteData::Entry::decode(IPC::ArgumentDecoder& decoder, WebsiteData::Entry& result)
{
    SecurityOriginData securityOriginData;
    if (!decoder.decode(securityOriginData))
        return false;

    if (!decoder.decodeEnum(result.type))
        return false;

    result.origin = securityOriginData.securityOrigin();
    return true;
}
コード例 #3
0
ファイル: WebDatabaseManager.cpp プロジェクト: eocanha/webkit
 static void dispatchToMainThread(WebDatabaseManager* databaseManager, const SecurityOriginData& origin)
 {
     DidModifyOriginData* context = new DidModifyOriginData(databaseManager, origin.isolatedCopy());
     callOnMainThread([context] {
         dispatchDidModifyOriginOnMainThread(context);
     });
 }
コード例 #4
0
void DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin(const SecurityOriginData& originData)
{
    if (m_indexedDatabaseDirectory.isEmpty())
        return;

    RefPtr<SecurityOrigin> origin = originData.securityOrigin();
    String databaseIdentifier = origin->databaseIdentifier();
    String originPath = pathByAppendingComponent(m_indexedDatabaseDirectory, databaseIdentifier);

    removeAllDatabasesForOriginPath(originPath, std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max());
}
コード例 #5
0
void LocalStorageDatabaseTracker::deleteDatabaseWithOrigin(const SecurityOriginData& securityOrigin)
{
    removeDatabaseWithOriginIdentifier(securityOrigin.databaseIdentifier());
}
コード例 #6
0
void LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin(const SecurityOriginData& securityOrigin)
{
    addDatabaseWithOriginIdentifier(securityOrigin.databaseIdentifier(), databasePath(securityOrigin));
}
コード例 #7
0
String LocalStorageDatabaseTracker::databasePath(const SecurityOriginData& securityOrigin) const
{
    return databasePath(securityOrigin.databaseIdentifier() + ".localstorage");
}
コード例 #8
0
ファイル: WebDatabaseManager.cpp プロジェクト: eocanha/webkit
void WebDatabaseManager::dispatchDidModifyDatabase(const SecurityOriginData& origin, const String& databaseName)
{
    if (!isMainThread()) {
        DidModifyOriginData::dispatchToMainThread(this, origin);
        return;
    }

    static BSTR databaseDidModifyOriginName = SysAllocString(WebDatabaseDidModifyDatabaseNotification);
    IWebNotificationCenter* notifyCenter = WebNotificationCenter::defaultCenterInternal();

    COMPtr<WebSecurityOrigin> securityOrigin(AdoptCOM, WebSecurityOrigin::createInstance(origin.securityOrigin().ptr()));

    HashMap<String, String> userInfo;
    userInfo.set(WebDatabaseNameKey, databaseName);
    COMPtr<IPropertyBag> userInfoBag(AdoptCOM, COMPropertyBag<String>::adopt(userInfo));

    notifyCenter->postNotificationName(databaseDidModifyOriginName, securityOrigin.get(), userInfoBag.get());
}
コード例 #9
0
ファイル: WebDatabaseManager.cpp プロジェクト: eocanha/webkit
void WebDatabaseManager::dispatchDidModifyOrigin(const SecurityOriginData& origin)
{
    if (!isMainThread()) {
        DidModifyOriginData::dispatchToMainThread(this, origin);
        return;
    }

    static BSTR databaseDidModifyOriginName = SysAllocString(WebDatabaseDidModifyOriginNotification);
    IWebNotificationCenter* notifyCenter = WebNotificationCenter::defaultCenterInternal();

    COMPtr<WebSecurityOrigin> securityOrigin(AdoptCOM, WebSecurityOrigin::createInstance(origin.securityOrigin().ptr()));
    notifyCenter->postNotificationName(databaseDidModifyOriginName, securityOrigin.get(), 0);
}