1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Multiply-included message file, no traditional include guard. 6#include "content/common/dom_storage/dom_storage_types.h" 7#include "content/public/common/common_param_traits.h" 8#include "ipc/ipc_message_macros.h" 9#include "ipc/ipc_param_traits.h" 10#include "third_party/WebKit/public/platform/WebStorageArea.h" 11#include "url/gurl.h" 12 13#define IPC_MESSAGE_START DOMStorageMsgStart 14 15IPC_ENUM_TRAITS_MAX_VALUE(blink::WebStorageArea::Result, 16 blink::WebStorageArea::ResultLast) 17 18// Signals a local storage event. 19IPC_STRUCT_BEGIN(DOMStorageMsg_Event_Params) 20 // The key that generated the storage event. Null if clear() was called. 21 IPC_STRUCT_MEMBER(base::NullableString16, key) 22 23 // The old value of this key. Null on clear() or if it didn't have a value. 24 IPC_STRUCT_MEMBER(base::NullableString16, old_value) 25 26 // The new value of this key. Null on removeItem() or clear(). 27 IPC_STRUCT_MEMBER(base::NullableString16, new_value) 28 29 // The origin this is associated with. 30 IPC_STRUCT_MEMBER(GURL, origin) 31 32 // The URL of the page that caused the storage event. 33 IPC_STRUCT_MEMBER(GURL, page_url) 34 35 // The non-zero connection_id which caused the event or 0 if the event 36 // was not caused by the target renderer process. 37 IPC_STRUCT_MEMBER(int, connection_id) 38 39 // The non-zero session namespace_id associated with the event or 0 if 40 // this is a local storage event. 41 IPC_STRUCT_MEMBER(int64, namespace_id) 42IPC_STRUCT_END() 43 44// DOM Storage messages sent from the browser to the renderer. 45 46// Storage events are broadcast to all renderer processes. 47IPC_MESSAGE_CONTROL1(DOMStorageMsg_Event, 48 DOMStorageMsg_Event_Params) 49 50// Completion notification sent in response to each async 51// load, set, remove, and clear operation. 52// Used to maintain the integrity of the renderer-side cache. 53IPC_MESSAGE_CONTROL1(DOMStorageMsg_AsyncOperationComplete, 54 bool /* success */) 55 56// Notification instructing the renderer to refresh all cached values for 57// the given namespace. 58IPC_MESSAGE_CONTROL1(DOMStorageMsg_ResetCachedValues, 59 int64 /* namespace_id */) 60 61// DOM Storage messages sent from the renderer to the browser. 62// Note: The 'connection_id' must be the first parameter in these message. 63 64// Open the storage area for a particular origin within a namespace. 65IPC_MESSAGE_CONTROL3(DOMStorageHostMsg_OpenStorageArea, 66 int /* connection_id */, 67 int64 /* namespace_id */, 68 GURL /* origin */) 69 70// Close a previously opened storage area. 71IPC_MESSAGE_CONTROL1(DOMStorageHostMsg_CloseStorageArea, 72 int /* connection_id */) 73 74// Retrieves the set of key/value pairs for the area. Used to prime 75// the renderer-side cache. A completion notification is sent in response. 76// The response will also indicate whether the renderer should send 77// messagse to the browser for get operations for logging purposes. 78IPC_SYNC_MESSAGE_CONTROL1_2(DOMStorageHostMsg_LoadStorageArea, 79 int /* connection_id */, 80 content::DOMStorageValuesMap, 81 bool /* send_log_get_messages */) 82 83// Set a value that's associated with a key in a storage area. 84// A completion notification is sent in response. 85IPC_MESSAGE_CONTROL4(DOMStorageHostMsg_SetItem, 86 int /* connection_id */, 87 base::string16 /* key */, 88 base::string16 /* value */, 89 GURL /* page_url */) 90 91// Logs that a get operation was performed on a key/value pair. 92IPC_MESSAGE_CONTROL3(DOMStorageHostMsg_LogGetItem, 93 int /* connection_id */, 94 base::string16 /* key */, 95 base::NullableString16 /* value */) 96 97// Remove the value associated with a key in a storage area. 98// A completion notification is sent in response. 99IPC_MESSAGE_CONTROL3(DOMStorageHostMsg_RemoveItem, 100 int /* connection_id */, 101 base::string16 /* key */, 102 GURL /* page_url */) 103 104// Clear the storage area. A completion notification is sent in response. 105IPC_MESSAGE_CONTROL2(DOMStorageHostMsg_Clear, 106 int /* connection_id */, 107 GURL /* page_url */) 108 109// Used to flush the ipc message queue. 110IPC_SYNC_MESSAGE_CONTROL0_0(DOMStorageHostMsg_FlushMessages) 111