Changeset 189244 in webkit


Ignore:
Timestamp:
Sep 2, 2015 4:58:36 AM (9 years ago)
Author:
Csaba Osztrogonác
Message:

Fix build with ENABLE(DATABASE_PROCESS) and !ENABLE(INDEXED_DATABASE)
https://bugs.webkit.org/show_bug.cgi?id=146550

Patch by Emanuele Aina <Emanuele Aina> on 2015-09-02
Reviewed by Brady Eidson.

Given that INDEXED_DATABASE at the moment is the only user of
DATABASE_PROCESS, their guards got inevitably mixed up with various
levels of consistency. Since the --no-indexed-database flag from
build-webkit leaves DATABASE_PROCESS enabled, this resulted in build
failures.

  • DatabaseProcess/DatabaseProcess.cpp:
  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:
  • Shared/Databases/DatabaseProcessCreationParameters.cpp:
  • Shared/Databases/DatabaseProcessCreationParameters.h:
  • UIProcess/WebProcessPool.cpp:
  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
  • WebProcess/Databases/WebToDatabaseProcessConnection.h:

Add missing ENABLE(INDEXED_DATABASE) guards and moved the
misplaced ones.

  • DatabaseProcess/DatabaseProcess.h:

Ditto, and also add a forward declaration for SecurityOriginData since
with INDEXED_DATABASE off SecurityOriginData.h is no longer included
by way of UniqueIDBDatabaseIdentifier.h.

Location:
trunk/Source/WebKit2
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r189228 r189244  
     12015-09-02  Emanuele Aina  <emanuele.aina@collabora.com>
     2
     3        Fix build with ENABLE(DATABASE_PROCESS) and !ENABLE(INDEXED_DATABASE)
     4        https://bugs.webkit.org/show_bug.cgi?id=146550
     5
     6        Reviewed by Brady Eidson.
     7
     8        Given that INDEXED_DATABASE at the moment is the only user of
     9        DATABASE_PROCESS, their guards got inevitably mixed up with various
     10        levels of consistency. Since the --no-indexed-database flag from
     11        build-webkit leaves DATABASE_PROCESS enabled, this resulted in build
     12        failures.
     13
     14        * DatabaseProcess/DatabaseProcess.cpp:
     15        * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
     16        * Shared/Databases/DatabaseProcessCreationParameters.cpp:
     17        * Shared/Databases/DatabaseProcessCreationParameters.h:
     18        * UIProcess/WebProcessPool.cpp:
     19        * WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
     20        * WebProcess/Databases/WebToDatabaseProcessConnection.h:
     21        Add missing ENABLE(INDEXED_DATABASE) guards and moved the
     22        misplaced ones.
     23
     24        * DatabaseProcess/DatabaseProcess.h:
     25        Ditto, and also add a forward declaration for SecurityOriginData since
     26        with INDEXED_DATABASE off SecurityOriginData.h is no longer included
     27        by way of UniqueIDBDatabaseIdentifier.h.
     28
    1292015-09-01  Brian Burg  <bburg@apple.com>
    230
  • trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp

    r188594 r189244  
    9696}
    9797
     98#if ENABLE(INDEXED_DATABASE)
    9899RefPtr<UniqueIDBDatabase> DatabaseProcess::getOrCreateUniqueIDBDatabase(const UniqueIDBDatabaseIdentifier& identifier)
    99100{
     
    115116    m_idbDatabases.remove(identifier);
    116117}
     118#endif
    117119
    118120void DatabaseProcess::initializeDatabaseProcess(const DatabaseProcessCreationParameters& parameters)
    119121{
     122#if ENABLE(INDEXED_DATABASE)
    120123    // *********
    121124    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (<rdar://problem/17454712>)
     
    126129
    127130    ensureIndexedDatabaseRelativePathExists(StringImpl::empty());
    128 }
    129 
     131#endif
     132}
     133
     134#if ENABLE(INDEXED_DATABASE)
    130135void DatabaseProcess::ensureIndexedDatabaseRelativePathExists(const String& relativePath)
    131136{
    132137    postDatabaseTask(createAsyncTask(*this, &DatabaseProcess::ensurePathExists, absoluteIndexedDatabasePathFromDatabaseRelativePath(relativePath)));
    133138}
     139#endif
    134140
    135141void DatabaseProcess::ensurePathExists(const String& path)
     
    141147}
    142148
     149#if ENABLE(INDEXED_DATABASE)
    143150String DatabaseProcess::absoluteIndexedDatabasePathFromDatabaseRelativePath(const String& relativePath)
    144151{
     
    147154    return pathByAppendingComponent(m_indexedDatabaseDirectory, relativePath);
    148155}
     156#endif
    149157
    150158void DatabaseProcess::postDatabaseTask(std::unique_ptr<AsyncTask> task)
     
    225233    }));
    226234
     235#if ENABLE(INDEXED_DATABASE)
    227236    if (websiteDataTypes & WebsiteDataTypeIndexedDBDatabases) {
    228237        // FIXME: Pick the right database store based on the session ID.
     
    237246        }));
    238247    }
     248#endif
    239249}
    240250
     
    261271    }));
    262272
     273#if ENABLE(INDEXED_DATABASE)
    263274    if (websiteDataTypes & WebsiteDataTypeIndexedDBDatabases) {
    264275        postDatabaseTask(std::make_unique<AsyncTask>([this, callbackAggregator, modifiedSince] {
     
    268279        }));
    269280    }
     281#endif
    270282}
    271283
     
    292304    }));
    293305
     306#if ENABLE(INDEXED_DATABASE)
    294307    if (websiteDataTypes & WebsiteDataTypeIndexedDBDatabases) {
    295308        Vector<RefPtr<WebCore::SecurityOrigin>> securityOrigins;
     
    303316        }));
    304317    }
    305 }
    306 
     318#endif
     319}
     320
     321#if ENABLE(INDEXED_DATABASE)
    307322Vector<RefPtr<WebCore::SecurityOrigin>> DatabaseProcess::indexedDatabaseOrigins()
    308323{
     
    320335    return securityOrigins;
    321336}
    322 
     337#endif
     338
     339#if ENABLE(INDEXED_DATABASE)
    323340static void removeAllDatabasesForOriginPath(const String& originPath, std::chrono::system_clock::time_point modifiedSince)
    324341{
     
    374391        removeAllDatabasesForOriginPath(originPath, modifiedSince);
    375392}
     393#endif
    376394
    377395#if !PLATFORM(COCOA)
  • trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h

    r188594 r189244  
    4444
    4545struct DatabaseProcessCreationParameters;
     46struct SecurityOriginData;
    4647
    4748class DatabaseProcess : public ChildProcess {
     
    5253    ~DatabaseProcess();
    5354
     55#if ENABLE(INDEXED_DATABASE)
    5456    const String& indexedDatabaseDirectory() const { return m_indexedDatabaseDirectory; }
    5557
     
    5961    void ensureIndexedDatabaseRelativePathExists(const String&);
    6062    String absoluteIndexedDatabasePathFromDatabaseRelativePath(const String&);
     63#endif
    6164
    6265    WorkQueue& queue() { return m_queue.get(); }
     
    9093    void deleteWebsiteDataForOrigins(WebCore::SessionID, uint64_t websiteDataTypes, const Vector<SecurityOriginData>& origins, uint64_t callbackID);
    9194
     95#if ENABLE(INDEXED_DATABASE)
    9296    Vector<RefPtr<WebCore::SecurityOrigin>> indexedDatabaseOrigins();
    9397    void deleteIndexedDatabaseEntriesForOrigins(const Vector<RefPtr<WebCore::SecurityOrigin>>&);
    9498    void deleteIndexedDatabaseEntriesModifiedSince(std::chrono::system_clock::time_point modifiedSince);
     99#endif
    95100
    96101    // For execution on work queue thread only
     
    102107    Ref<WorkQueue> m_queue;
    103108
     109#if ENABLE(INDEXED_DATABASE)
    104110    String m_indexedDatabaseDirectory;
    105111
    106112    HashMap<UniqueIDBDatabaseIdentifier, RefPtr<UniqueIDBDatabase>> m_idbDatabases;
     113#endif
    107114
    108115    Deque<std::unique_ptr<AsyncTask>> m_databaseTasks;
  • trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp

    r185839 r189244  
    6060    }
    6161
     62#if ENABLE(INDEXED_DATABASE)
    6263    if (decoder.messageReceiverName() == Messages::DatabaseProcessIDBConnection::messageReceiverName()) {
    6364        IDBConnectionMap::iterator backendIterator = m_idbConnections.find(decoder.destinationID());
     
    6667        return;
    6768    }
     69#endif
    6870
    6971    ASSERT_NOT_REACHED();
     
    7274void DatabaseToWebProcessConnection::didReceiveSyncMessage(IPC::Connection& connection, IPC::MessageDecoder& decoder, std::unique_ptr<IPC::MessageEncoder>& reply)
    7375{
     76#if ENABLE(INDEXED_DATABASE)
    7477    if (decoder.messageReceiverName() == Messages::DatabaseProcessIDBConnection::messageReceiverName()) {
    7578        IDBConnectionMap::iterator backendIterator = m_idbConnections.find(decoder.destinationID());
     
    7881        return;
    7982    }
     83#endif
    8084
    8185    ASSERT_NOT_REACHED();
     
    8488void DatabaseToWebProcessConnection::didClose(IPC::Connection&)
    8589{
     90#if ENABLE(INDEXED_DATABASE)
    8691    // The WebProcess has disconnected, close all of the connections associated with it
    8792    while (!m_idbConnections.isEmpty())
    8893        removeDatabaseProcessIDBConnection(m_idbConnections.begin()->key);
     94#endif
    8995}
    9096
     
    94100}
    95101
     102#if ENABLE(INDEXED_DATABASE)
    96103void DatabaseToWebProcessConnection::establishIDBConnection(uint64_t serverConnectionIdentifier)
    97104{
     
    107114    idbConnection->disconnectedFromWebProcess();
    108115}
     116#endif
    109117
    110118
  • trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.cpp

    r167946 r189244  
    2727#include "DatabaseProcessCreationParameters.h"
    2828
    29 #if ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
     29#if ENABLE(DATABASE_PROCESS)
    3030
    3131#include "ArgumentCoders.h"
     
    3939void DatabaseProcessCreationParameters::encode(IPC::ArgumentEncoder& encoder) const
    4040{
     41#if ENABLE(INDEXED_DATABASE)
    4142    encoder << indexedDatabaseDirectory;
    4243    encoder << indexedDatabaseDirectoryExtensionHandle;
     44#endif
    4345}
    4446
    4547bool DatabaseProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, DatabaseProcessCreationParameters& result)
    4648{
     49#if ENABLE(INDEXED_DATABASE)
    4750    if (!decoder.decode(result.indexedDatabaseDirectory))
    4851        return false;
    4952    if (!decoder.decode(result.indexedDatabaseDirectoryExtensionHandle))
    5053        return false;
     54#endif
    5155
    5256    return true;
     
    5559} // namespace WebKit
    5660
    57 #endif // ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
     61#endif // ENABLE(DATABASE_PROCESS)
  • trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.h

    r167946 r189244  
    3131#include <wtf/text/WTFString.h>
    3232
    33 #if ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
     33#if ENABLE(DATABASE_PROCESS)
    3434
    3535namespace IPC {
     
    4646    static bool decode(IPC::ArgumentDecoder&, DatabaseProcessCreationParameters&);
    4747
     48#if ENABLE(INDEXED_DATABASE)
    4849    String indexedDatabaseDirectory;
    4950    SandboxExtension::Handle indexedDatabaseDirectoryExtensionHandle;
     51#endif
    5052};
    5153
    5254} // namespace WebKit
    5355
    54 #endif // ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
     56#endif // ENABLE(DATABASE_PROCESS)
    5557#endif // DatabaseProcessCreationParameters_h
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp

    r188895 r189244  
    470470    m_databaseProcess = DatabaseProcessProxy::create(this);
    471471
    472     ASSERT(!m_configuration->indexedDBDatabaseDirectory().isEmpty());
    473 
    474472    // *********
    475473    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (<rdar://problem/17454712>)
    476474    // *********
    477475    DatabaseProcessCreationParameters parameters;
     476#if ENABLE(INDEXED_DATABASE)
     477    ASSERT(!m_configuration->indexedDBDatabaseDirectory().isEmpty());
    478478    parameters.indexedDatabaseDirectory = m_configuration->indexedDBDatabaseDirectory();
    479479
    480480    SandboxExtension::createHandleForReadWriteDirectory(parameters.indexedDatabaseDirectory, parameters.indexedDatabaseDirectoryExtensionHandle);
     481#endif
    481482
    482483    m_databaseProcess->send(Messages::DatabaseProcess::InitializeDatabaseProcess(parameters), 0);
  • trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp

    r185839 r189244  
    3434#include <wtf/RunLoop.h>
    3535
    36 #if ENABLE(INDEXED_DATABASE)
     36#if ENABLE(DATABASE_PROCESS)
    3737
    3838using namespace WebCore;
     
    5252void WebToDatabaseProcessConnection::didReceiveMessage(IPC::Connection& connection, IPC::MessageDecoder& decoder)
    5353{
     54#if ENABLE(INDEXED_DATABASE)
    5455    if (decoder.messageReceiverName() == Messages::WebIDBServerConnection::messageReceiverName()) {
    5556        HashMap<uint64_t, WebIDBServerConnection*>::iterator connectionIterator = m_webIDBServerConnections.find(decoder.destinationID());
     
    5859        return;
    5960    }
     61#endif
    6062   
    6163    ASSERT_NOT_REACHED();
     
    7173}
    7274
     75#if ENABLE(INDEXED_DATABASE)
    7376void WebToDatabaseProcessConnection::registerWebIDBServerConnection(WebIDBServerConnection& connection)
    7477{
     
    8689    m_webIDBServerConnections.remove(connection.messageSenderDestinationID());
    8790}
     91#endif
    8892
    8993} // namespace WebKit
    9094
    91 #endif // ENABLE(INDEXED_DATABASE)
     95#endif // ENABLE(DATABASE_PROCESS)
  • trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h

    r185637 r189244  
    3232#include <wtf/RefCounted.h>
    3333
    34 #if ENABLE(INDEXED_DATABASE)
     34#if ENABLE(DATABASE_PROCESS)
    3535
    3636namespace WebKit {
     
    4949    IPC::Connection* connection() const { return m_connection.get(); }
    5050
     51#if ENABLE(INDEXED_DATABASE)
    5152    void registerWebIDBServerConnection(WebIDBServerConnection&);
    5253    void removeWebIDBServerConnection(WebIDBServerConnection&);
     54#endif
    5355
    5456private:
     
    6870    RefPtr<IPC::Connection> m_connection;
    6971
     72#if ENABLE(INDEXED_DATABASE)
    7073    HashMap<uint64_t, WebIDBServerConnection*> m_webIDBServerConnections;
     74#endif
    7175};
    7276
    7377} // namespace WebKit
    7478
    75 #endif // ENABLE(INDEXED_DATABASE)
     79#endif // ENABLE(DATABASE_PROCESS)
    7680#endif // WebToDatabaseProcessConnection_h
Note: See TracChangeset for help on using the changeset viewer.