diff options
Diffstat (limited to 'chrome/common/dom_storage_messages.h')
-rw-r--r-- | chrome/common/dom_storage_messages.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/chrome/common/dom_storage_messages.h b/chrome/common/dom_storage_messages.h new file mode 100644 index 0000000..e36f517 --- /dev/null +++ b/chrome/common/dom_storage_messages.h @@ -0,0 +1,125 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_COMMON_DOM_STORAGE_MESSAGES_H_ +#define CHROME_COMMON_DOM_STORAGE_MESSAGES_H_ +#pragma once + +#include "chrome/common/dom_storage_common.h" +#include "googleurl/src/gurl.h" +#include "ipc/ipc_message_macros.h" +#include "ipc/ipc_param_traits.h" +#include "third_party/WebKit/WebKit/chromium/public/WebStorageArea.h" + +#define IPC_MESSAGE_START DOMStorageMsgStart + +// Signals a storage event. +struct DOMStorageMsg_Event_Params { + DOMStorageMsg_Event_Params(); + ~DOMStorageMsg_Event_Params(); + + // The key that generated the storage event. Null if clear() was called. + NullableString16 key; + + // The old value of this key. Null on clear() or if it didn't have a value. + NullableString16 old_value; + + // The new value of this key. Null on removeItem() or clear(). + NullableString16 new_value; + + // The origin this is associated with. + string16 origin; + + // The URL of the page that caused the storage event. + GURL url; + + // The storage type of this event. + DOMStorageType storage_type; +}; + +namespace IPC { + +template <> +struct ParamTraits<DOMStorageMsg_Event_Params> { + typedef DOMStorageMsg_Event_Params param_type; + static void Write(Message* m, const param_type& p); + static bool Read(const Message* m, void** iter, param_type* p); + static void Log(const param_type& p, std::string* l); +}; + +template <> +struct ParamTraits<DOMStorageType> { + typedef DOMStorageType param_type; + static void Write(Message* m, const param_type& p); + static bool Read(const Message* m, void** iter, param_type* p); + static void Log(const param_type& p, std::string* l); +}; + +template <> +struct ParamTraits<WebKit::WebStorageArea::Result> { + typedef WebKit::WebStorageArea::Result param_type; + static void Write(Message* m, const param_type& p); + static bool Read(const Message* m, void** iter, param_type* p); + static void Log(const param_type& p, std::string* l); +}; + +} // namespace IPC + +// DOM Storage messages sent from the browser to the renderer. + +// Storage events are broadcast to renderer processes. +IPC_MESSAGE_CONTROL1(DOMStorageMsg_Event, + DOMStorageMsg_Event_Params) + + +// DOM Storage messages sent from the renderer to the browser. + + +// Get the storage area id for a particular origin within a namespace. +IPC_SYNC_MESSAGE_CONTROL2_1(DOMStorageHostMsg_StorageAreaId, + int64 /* namespace_id */, + string16 /* origin */, + int64 /* storage_area_id */) + +// Get the length of a storage area. +IPC_SYNC_MESSAGE_CONTROL1_1(DOMStorageHostMsg_Length, + int64 /* storage_area_id */, + unsigned /* length */) + +// Get a the ith key within a storage area. +IPC_SYNC_MESSAGE_CONTROL2_1(DOMStorageHostMsg_Key, + int64 /* storage_area_id */, + unsigned /* index */, + NullableString16 /* key */) + +// Get a value based on a key from a storage area. +IPC_SYNC_MESSAGE_CONTROL2_1(DOMStorageHostMsg_GetItem, + int64 /* storage_area_id */, + string16 /* key */, + NullableString16 /* value */) + +// Set a value that's associated with a key in a storage area. +IPC_SYNC_MESSAGE_CONTROL5_2(DOMStorageHostMsg_SetItem, + int /* routing_id */, + int64 /* storage_area_id */, + string16 /* key */, + string16 /* value */, + GURL /* url */, + WebKit::WebStorageArea::Result /* result */, + NullableString16 /* old_value */) + +// Remove the value associated with a key in a storage area. +IPC_SYNC_MESSAGE_CONTROL3_1(DOMStorageHostMsg_RemoveItem, + int64 /* storage_area_id */, + string16 /* key */, + GURL /* url */, + NullableString16 /* old_value */) + +// Clear the storage area. +IPC_SYNC_MESSAGE_CONTROL2_1(DOMStorageHostMsg_Clear, + int64 /* storage_area_id */, + GURL /* url */, + bool /* something_cleared */) + +#endif // CHROME_COMMON_DOM_STORAGE_MESSAGES_H_ |