Chromium Code Reviews| Index: content/common/fileapi/webblob_messages.h |
| diff --git a/content/common/fileapi/webblob_messages.h b/content/common/fileapi/webblob_messages.h |
| index 3b22b7f588e9883626dce4866b72e73a0f3fcb53..f88b2a5e155f474148cb0babd148b894a2192403 100644 |
| --- a/content/common/fileapi/webblob_messages.h |
| +++ b/content/common/fileapi/webblob_messages.h |
| @@ -54,11 +54,18 @@ IPC_STRUCT_TRAITS_END() |
| // * 'shortcut' transport the memory up to the IPC limit so the browser can use |
| // it if it's not currently full. |
| // See https://bit.ly/BlobStorageRefactor |
| -IPC_MESSAGE_CONTROL4(BlobStorageMsg_RegisterBlob, |
| - std::string /* uuid */, |
| - std::string /* content_type */, |
| - std::string /* content_disposition */, |
| - std::vector<storage::DataElement> /* item_descriptions */) |
| +// |
| +// NOTE: This message is synchronous to ensure that the browser is aware of the |
| +// UUID before the UUID is passed to another process. This protects against a |
| +// race condition in which the browser could be asked about a UUID that doesn't |
| +// yet exist from its perspective. |
| +// |
| +IPC_SYNC_MESSAGE_CONTROL4_0( |
| + BlobStorageMsg_RegisterBlob, |
| + std::string /* uuid */, |
| + std::string /* content_type */, |
| + std::string /* content_disposition */, |
| + std::vector<storage::DataElement> /* item_descriptions */) |
|
kinuko
2017/01/24 12:32:55
I assume blob people are aware/ok about this chang
dmurph
2017/01/25 04:29:22
Thanks for adding me! Yes this sounds good. I thin
|
| IPC_MESSAGE_CONTROL4( |
| BlobStorageMsg_RequestMemoryItem, |
| @@ -80,9 +87,13 @@ IPC_MESSAGE_CONTROL1(BlobHostMsg_IncrementRefCount, |
| std::string /* uuid */) |
| IPC_MESSAGE_CONTROL1(BlobHostMsg_DecrementRefCount, |
| std::string /* uuid */) |
| -IPC_MESSAGE_CONTROL2(BlobHostMsg_RegisterPublicURL, |
| - GURL, |
| - std::string /* uuid */) |
| +// NOTE: This message is synchronous to ensure that the browser is aware of the |
| +// URL before the URL is passed to another process. This protects against a |
| +// race condition in which the browser could be asked to load an URL that |
| +// doesn't yet exist from its perspective. |
| +IPC_SYNC_MESSAGE_CONTROL2_0(BlobHostMsg_RegisterPublicURL, |
| + GURL, |
| + std::string /* uuid */) |
| IPC_MESSAGE_CONTROL1(BlobHostMsg_RevokePublicURL, |
| GURL) |