| Index: content/utility/utility_thread_impl.cc
|
| ===================================================================
|
| --- content/utility/utility_thread_impl.cc (revision 152976)
|
| +++ content/utility/utility_thread_impl.cc (working copy)
|
| @@ -11,11 +11,15 @@
|
| #include "base/memory/scoped_vector.h"
|
| #include "content/common/child_process.h"
|
| #include "content/common/child_process_messages.h"
|
| +#include "content/common/indexed_db/indexed_db_key.h"
|
| +#include "content/common/indexed_db/indexed_db_key_path.h"
|
| #include "content/common/utility_messages.h"
|
| #include "content/common/webkitplatformsupport_impl.h"
|
| #include "content/public/utility/content_utility_client.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKey.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSerializedScriptValue.h"
|
| +#include "webkit/glue/idb_bindings.h"
|
| #include "webkit/plugins/npapi/plugin_list.h"
|
|
|
| #if defined(TOOLKIT_GTK)
|
| @@ -75,6 +79,9 @@
|
|
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(UtilityThreadImpl, msg)
|
| + IPC_MESSAGE_HANDLER(UtilityMsg_IDBKeysFromValuesAndKeyPath,
|
| + OnIDBKeysFromValuesAndKeyPath)
|
| + IPC_MESSAGE_HANDLER(UtilityMsg_InjectIDBKey, OnInjectIDBKey)
|
| IPC_MESSAGE_HANDLER(UtilityMsg_BatchMode_Started, OnBatchModeStarted)
|
| IPC_MESSAGE_HANDLER(UtilityMsg_BatchMode_Finished, OnBatchModeFinished)
|
| #if defined(OS_POSIX)
|
| @@ -85,6 +92,31 @@
|
| return handled;
|
| }
|
|
|
| +void UtilityThreadImpl::OnIDBKeysFromValuesAndKeyPath(
|
| + int id,
|
| + const std::vector<content::SerializedScriptValue>& serialized_script_values,
|
| + const content::IndexedDBKeyPath& idb_key_path) {
|
| + std::vector<WebKit::WebSerializedScriptValue> web_values;
|
| + ConvertVector(serialized_script_values, &web_values);
|
| + std::vector<WebKit::WebIDBKey> web_keys;
|
| + webkit_glue::IDBKeysFromValuesAndKeyPath(
|
| + web_values, idb_key_path, &web_keys);
|
| + std::vector<content::IndexedDBKey> keys;
|
| + ConvertVector(web_keys, &keys);
|
| + Send(new UtilityHostMsg_IDBKeysFromValuesAndKeyPath_Succeeded(id, keys));
|
| + ReleaseProcessIfNeeded();
|
| +}
|
| +
|
| +void UtilityThreadImpl::OnInjectIDBKey(
|
| + const content::IndexedDBKey& key,
|
| + const content::SerializedScriptValue& value,
|
| + const content::IndexedDBKeyPath& key_path) {
|
| + content::SerializedScriptValue new_value(
|
| + webkit_glue::InjectIDBKey(key, value, key_path));
|
| + Send(new UtilityHostMsg_InjectIDBKey_Finished(new_value));
|
| + ReleaseProcessIfNeeded();
|
| +}
|
| +
|
| void UtilityThreadImpl::OnBatchModeStarted() {
|
| batch_mode_ = true;
|
| }
|
|
|