WebProcessProxyGLib.cpp [plain text]
#include "config.h"
#include "WebProcessProxy.h"
#include "UserMessage.h"
#include "WebProcessPool.h"
#include "WebsiteDataStore.h"
#include <WebCore/PlatformDisplay.h>
#include <wtf/FileSystem.h>
namespace WebKit {
using namespace WebCore;
void WebProcessProxy::platformGetLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
{
launchOptions.extraInitializationData.set("enable-sandbox", m_processPool->sandboxEnabled() ? "true" : "false");
if (m_processPool->sandboxEnabled()) {
WebsiteDataStore* dataStore = m_websiteDataStore.get();
if (!dataStore) {
dataStore = m_processPool->websiteDataStore();
}
ASSERT(dataStore);
dataStore->resolveDirectoriesIfNecessary();
launchOptions.extraInitializationData.set("webSQLDatabaseDirectory", dataStore->resolvedDatabaseDirectory());
launchOptions.extraInitializationData.set("mediaKeysDirectory", dataStore->resolvedMediaKeysDirectory());
launchOptions.extraInitializationData.set("applicationCacheDirectory", dataStore->resolvedApplicationCacheDirectory());
launchOptions.extraWebProcessSandboxPaths = m_processPool->sandboxPaths();
}
}
void WebProcessProxy::sendMessageToWebContextWithReply(UserMessage&& message, CompletionHandler<void(UserMessage&&)>&& completionHandler)
{
if (const auto& userMessageHandler = m_processPool->userMessageHandler())
userMessageHandler(WTFMove(message), WTFMove(completionHandler));
}
void WebProcessProxy::sendMessageToWebContext(UserMessage&& message)
{
sendMessageToWebContextWithReply(WTFMove(message), [](UserMessage&&) { });
}
};