Home | History | Annotate | Download | only in dom_storage
      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 
     15 // Signals a local storage event.
     16 IPC_STRUCT_BEGIN(DOMStorageMsg_Event_Params)
     17   // The key that generated the storage event.  Null if clear() was called.
     18   IPC_STRUCT_MEMBER(base::NullableString16, key)
     19 
     20   // The old value of this key.  Null on clear() or if it didn't have a value.
     21   IPC_STRUCT_MEMBER(base::NullableString16, old_value)
     22 
     23   // The new value of this key.  Null on removeItem() or clear().
     24   IPC_STRUCT_MEMBER(base::NullableString16, new_value)
     25 
     26   // The origin this is associated with.
     27   IPC_STRUCT_MEMBER(GURL, origin)
     28 
     29   // The URL of the page that caused the storage event.
     30   IPC_STRUCT_MEMBER(GURL, page_url)
     31 
     32   // The non-zero connection_id which caused the event or 0 if the event
     33   // was not caused by the target renderer process.
     34   IPC_STRUCT_MEMBER(int, connection_id)
     35 
     36   // The non-zero session namespace_id associated with the event or 0 if
     37   // this is a local storage event.
     38   IPC_STRUCT_MEMBER(int64, namespace_id)
     39 IPC_STRUCT_END()
     40 
     41 IPC_ENUM_TRAITS(WebKit::WebStorageArea::Result)
     42 
     43 // DOM Storage messages sent from the browser to the renderer.
     44 
     45 // Storage events are broadcast to all renderer processes.
     46 IPC_MESSAGE_CONTROL1(DOMStorageMsg_Event,
     47                      DOMStorageMsg_Event_Params)
     48 
     49 // Completion notification sent in response to each async
     50 // load, set, remove, and clear operation.
     51 // Used to maintain the integrity  of the renderer-side cache.
     52 IPC_MESSAGE_CONTROL1(DOMStorageMsg_AsyncOperationComplete,
     53                      bool /* success */)
     54 
     55 // DOM Storage messages sent from the renderer to the browser.
     56 // Note: The 'connection_id' must be the first parameter in these message.
     57 
     58 // Open the storage area for a particular origin within a namespace.
     59 IPC_MESSAGE_CONTROL3(DOMStorageHostMsg_OpenStorageArea,
     60                      int /* connection_id */,
     61                      int64 /* namespace_id */,
     62                      GURL /* origin */)
     63 
     64 // Close a previously opened storage area.
     65 IPC_MESSAGE_CONTROL1(DOMStorageHostMsg_CloseStorageArea,
     66                      int /* connection_id */)
     67 
     68 // Retrieves the set of key/value pairs for the area. Used to prime
     69 // the renderer-side cache. A completion notification is sent in response.
     70 IPC_SYNC_MESSAGE_CONTROL1_1(DOMStorageHostMsg_LoadStorageArea,
     71                             int /* connection_id */,
     72                             content::DOMStorageValuesMap)
     73 
     74 // Set a value that's associated with a key in a storage area.
     75 // A completion notification is sent in response.
     76 IPC_MESSAGE_CONTROL4(DOMStorageHostMsg_SetItem,
     77                      int /* connection_id */,
     78                      string16 /* key */,
     79                      string16 /* value */,
     80                      GURL /* page_url */)
     81 
     82 // Remove the value associated with a key in a storage area.
     83 // A completion notification is sent in response.
     84 IPC_MESSAGE_CONTROL3(DOMStorageHostMsg_RemoveItem,
     85                      int /* connection_id */,
     86                      string16 /* key */,
     87                      GURL /* page_url */)
     88 
     89 // Clear the storage area. A completion notification is sent in response.
     90 IPC_MESSAGE_CONTROL2(DOMStorageHostMsg_Clear,
     91                      int /* connection_id */,
     92                      GURL /* page_url */)
     93 
     94 // Used to flush the ipc message queue.
     95 IPC_SYNC_MESSAGE_CONTROL0_0(DOMStorageHostMsg_FlushMessages)
     96