New issue
Advanced search Search tips

Issue 740744 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Proj-Servicification

Blocked on:
issue 769835

Blocking:
issue 611935



Sign in to add a comment

[mojo-blobs] Update any IPC/mojo interface that passes a blob UUID to instead pass a mojo Blob instance

Project Member Reported by mek@chromium.org, Jul 10 2017

Issue description

This should fix lifetime issues around blobs being passed over IPC/mojo. In particular a problematic situation at the moment is:
1) renderer creates a blob (over mojo)
2) renderer passes blob UUID to some other API over IPC or mojo
3) renderer no longer needs blob, and derefs it

Since there is no ordering guarantee between 2) and 3) this likely results in the browser failing to resolve a blob UUID it receives. Transfering every blob as Blob mojo interface rather than as its UUID (or in addition to) should fix all these issues.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/454da00474917fe0ff83f5da3ade188b9af92127

commit 454da00474917fe0ff83f5da3ade188b9af92127
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Sat Jul 29 05:02:38 2017

Change how messages over a MessagePort are serialized.

In preparation for adding mojo Blob handles to the serialized message
port messages, this changes the logic in content::MessagePort to
serialize its messages using a mojom bindings generated struct. For now
the struct still just contains the blink encoded message and a list of
message port handles, but in the future blobs and other extra data can
be added much easier.

Bug:  351753 , 740744
Change-Id: I411dd4398907eb7bbf21e630f5c82fb49798c440
Reviewed-on: https://chromium-review.googlesource.com/590082
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Darin Fisher <darin@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490628}
[modify] https://crrev.com/454da00474917fe0ff83f5da3ade188b9af92127/content/common/BUILD.gn
[modify] https://crrev.com/454da00474917fe0ff83f5da3ade188b9af92127/content/common/message_port.cc
[add] https://crrev.com/454da00474917fe0ff83f5da3ade188b9af92127/content/common/message_port.mojom
[modify] https://crrev.com/454da00474917fe0ff83f5da3ade188b9af92127/mojo/public/cpp/bindings/lib/serialization.h
[modify] https://crrev.com/454da00474917fe0ff83f5da3ade188b9af92127/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_declaration.tmpl

Project Member

Comment 2 by bugdroid1@chromium.org, Aug 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d

commit 058ca543e9c4bcb6250fb8cc78e595dd4b0b452d
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Tue Aug 01 22:55:21 2017

Make sure Blob refcounts/lifetime work for cache and fetch APIs.

Pass a mojo BlobPtr in addition to the uuid in all the IPCs/mojo calls
for the cache and fetch APIs to make sure the blobs stay alive long
enough. Since the cache and fetch APIs largely pass around their parameters
in a copyable struct (mostly passed by const reference) this also required
introduction of a storage::BlobHandle type, a ref-counted wrapper around
a BlobPtr.

The BlobPtr passed along in IPCs/mojo messages isn't actually used for
anything other than lifetime management at this point. The browser side
code still uses the UUID to actually look up the blob and get its data.

Also add service worker and fetch tests to the mojo blobs virtual test
suite to make sure this all works correctly.

Bug: 740744
Change-Id: I6bfcda977cd605099bd6c04d9f079ce7783b43f4
Reviewed-on: https://chromium-review.googlesource.com/567549
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491140}
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/browser/cache_storage/cache_storage_cache.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/browser/cache_storage/cache_storage_cache_unittest.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/browser/cache_storage/cache_storage_manager_unittest.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/browser/service_worker/embedded_worker_test_helper.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/browser/service_worker/service_worker_url_request_job.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/browser/service_worker/service_worker_url_request_job.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/browser/service_worker/service_worker_url_request_job_unittest.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/BUILD.gn
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/content_param_traits.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/content_param_traits.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/service_worker/service_worker_fetch_request.typemap
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/service_worker/service_worker_fetch_request_struct_traits.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/service_worker/service_worker_fetch_request_struct_traits.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/service_worker/service_worker_messages.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/service_worker/service_worker_types.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/common/service_worker/service_worker_types.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/renderer/cache_storage/cache_storage_dispatcher.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/content/renderer/service_worker/service_worker_type_util.cc
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/storage/browser/BUILD.gn
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/storage/common/BUILD.gn
[add] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/storage/common/blob_storage/blob_handle.cc
[add] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/storage/common/blob_storage/blob_handle.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/storage/public/interfaces/BUILD.gn
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/fetch/README.txt
[add] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/service-workers/README.txt
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/Source/modules/fetch/FetchDataLoader.cpp
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/Source/platform/blob/BlobData.cpp
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/Source/platform/blob/BlobData.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/Source/platform/exported/WebServiceWorkerRequest.cpp
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/Source/platform/exported/WebServiceWorkerResponse.cpp
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/Source/platform/mojo/FetchAPIRequestStructTraits.cpp
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/Source/platform/mojo/FetchAPIRequestStructTraits.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/public/platform/DEPS
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/public/platform/modules/fetch/fetch_api_request.mojom
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerRequest.h
[modify] https://crrev.com/058ca543e9c4bcb6250fb8cc78e595dd4b0b452d/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerResponse.h

Comment 3 by mek@chromium.org, Sep 28 2017

Blockedon: 769835
Project Member

Comment 4 by bugdroid1@chromium.org, Sep 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/300dbd0e930e0067af267a1ffbecf5e1f5022385

commit 300dbd0e930e0067af267a1ffbecf5e1f5022385
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Sep 28 21:18:45 2017

Make passing mojo blobs over IndexedDB work.

Like other CLs this only adds a mojo blob handle for lifetime purposes,
but browser-side code still uses the separately passed UUID to actually
access the blob data.

Bug: 740744
Change-Id: I880db368d033473d4b923083b5e84be54e8e1716
Reviewed-on: https://chromium-review.googlesource.com/608744
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505159}
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/content/browser/indexed_db/indexed_db_callbacks.cc
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/content/browser/indexed_db/indexed_db_dispatcher_host_unittest.cc
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/content/child/indexed_db/indexed_db_callbacks_impl.cc
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/content/child/indexed_db/webidbdatabase_impl.cc
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/content/common/indexed_db/indexed_db.mojom
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/IndexedDB/README.txt
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/third_party/WebKit/Source/platform/exported/WebBlobInfo.cpp
[modify] https://crrev.com/300dbd0e930e0067af267a1ffbecf5e1f5022385/third_party/WebKit/public/platform/WebBlobInfo.h

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/18a1bc3630fed6666a66d45c01ffc92ab7c644e9

commit 18a1bc3630fed6666a66d45c01ffc92ab7c644e9
Author: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Date: Fri Sep 29 05:57:55 2017

Revert "Make passing mojo blobs over IndexedDB work."

This reverts commit 300dbd0e930e0067af267a1ffbecf5e1f5022385.

Reason for revert: Timing out on MSAN:

https://luci-milo.appspot.com/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/3438

Original change's description:
> Make passing mojo blobs over IndexedDB work.
> 
> Like other CLs this only adds a mojo blob handle for lifetime purposes,
> but browser-side code still uses the separately passed UUID to actually
> access the blob data.
> 
> Bug: 740744
> Change-Id: I880db368d033473d4b923083b5e84be54e8e1716
> Reviewed-on: https://chromium-review.googlesource.com/608744
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Daniel Murphy <dmurph@chromium.org>
> Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#505159}

TBR=dcheng@chromium.org,dmurph@chromium.org,mek@chromium.org,haraken@chromium.org

Change-Id: I570eaf73fa9dc307c50a9593fe51faf61537d0a8
No-Tree-Checks: true
No-Try: true
Bug: 740744
Reviewed-on: https://chromium-review.googlesource.com/691396
Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505310}
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/content/browser/indexed_db/indexed_db_callbacks.cc
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/content/browser/indexed_db/indexed_db_dispatcher_host_unittest.cc
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/content/child/indexed_db/indexed_db_callbacks_impl.cc
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/content/child/indexed_db/webidbdatabase_impl.cc
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/content/common/indexed_db/indexed_db.mojom
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/third_party/WebKit/LayoutTests/VirtualTestSuites
[delete] https://crrev.com/59f941fd507f6a6d45cea7147f758c3ebe6bfae0/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/IndexedDB/README.txt
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/third_party/WebKit/Source/platform/BUILD.gn
[delete] https://crrev.com/59f941fd507f6a6d45cea7147f758c3ebe6bfae0/third_party/WebKit/Source/platform/exported/WebBlobInfo.cpp
[modify] https://crrev.com/18a1bc3630fed6666a66d45c01ffc92ab7c644e9/third_party/WebKit/public/platform/WebBlobInfo.h

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d55522c98c70352389e58097daeb34afe9eeb5e

commit 6d55522c98c70352389e58097daeb34afe9eeb5e
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Mon Oct 02 19:49:36 2017

Reland "Make passing mojo blobs over IndexedDB work."

This is a reland of 300dbd0e930e0067af267a1ffbecf5e1f5022385
Original change's description:
> Make passing mojo blobs over IndexedDB work.
> 
> Like other CLs this only adds a mojo blob handle for lifetime purposes,
> but browser-side code still uses the separately passed UUID to actually
> access the blob data.
> 
> Bug: 740744
> Change-Id: I880db368d033473d4b923083b5e84be54e8e1716
> Reviewed-on: https://chromium-review.googlesource.com/608744
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Daniel Murphy <dmurph@chromium.org>
> Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#505159}

TBR=dcheng@chromium.org,dmurph@chromium.org,haraken@chromium.org

Bug: 740744
Change-Id: I70dceb92a9d7f91841f0a6f928229e17bc463243
Reviewed-on: https://chromium-review.googlesource.com/695603
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505736}
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/content/browser/indexed_db/indexed_db_callbacks.cc
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/content/browser/indexed_db/indexed_db_dispatcher_host_unittest.cc
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/content/child/indexed_db/indexed_db_callbacks_impl.cc
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/content/child/indexed_db/webidbdatabase_impl.cc
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/content/common/indexed_db/indexed_db.mojom
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/LayoutTests/MSANExpectations
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/IndexedDB/README.txt
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/Source/platform/exported/WebBlobInfo.cpp
[modify] https://crrev.com/6d55522c98c70352389e58097daeb34afe9eeb5e/third_party/WebKit/public/platform/WebBlobInfo.h

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/94b81b508179a877b893dbf0c0986bd27e5f7818

commit 94b81b508179a877b893dbf0c0986bd27e5f7818
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Sat Oct 14 01:34:11 2017

Add typemaps for MessagePortMessage mojo struct.

This splits the mojom MessagePortMessage struct into CloneableMessage
and TransferableMessage structs, and adds typemaps to map these structs
to either blink::*Message or blink::Blink*Message, and uses the split out
CloneableMessage struct type in the BroadcastChannel mojo interface.

In a follow-up CL CloneableMessage will be expended with Blob handles to
keep blobs that are part of the message alive, at which point sharing the
same serialization logic will make code a lot simpler.

Other follow-up patches will use the same struct for other postMessage
APIs/IPCs/mojo interfaces.

Bug: 740744,  351753 
Change-Id: I6cb6849352f7726cb9628b0156a507e08745fabe
Reviewed-on: https://chromium-review.googlesource.com/600541
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508906}
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/content/browser/BUILD.gn
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/content/browser/broadcast_channel/broadcast_channel_provider.cc
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/content/browser/broadcast_channel/broadcast_channel_provider.h
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BUILD.gn
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkCloneableMessage.cpp
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkCloneableMessage.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkCloneableMessageStructTraits.cpp
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkCloneableMessageStructTraits.h
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/Source/core/dom/BlinkMessagePortMessage.cpp
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/Source/core/dom/BlinkMessagePortMessage.h
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/Source/core/dom/BlinkMessagePortMessageStructTraits.cpp
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/Source/core/dom/BlinkMessagePortMessageStructTraits.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkTransferableMessage.cpp
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkTransferableMessage.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkTransferableMessageStructTraits.cpp
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/BlinkTransferableMessageStructTraits.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/CloneableMessage.typemap
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/MessagePort.cpp
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/MessagePort.h
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/OWNERS
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/core/dom/TransferableMessage.typemap
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/modules/broadcastchannel/BroadcastChannel.cpp
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/modules/broadcastchannel/BroadcastChannel.h
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/platform/bindings/V8GlobalValueMap.h
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/Source/platform/mojo/blink_typemaps.gni
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/BUILD.gn
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/OWNERS
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/cloneable_message.cc
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/cloneable_message.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/cloneable_message.typemap
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/cloneable_message_struct_traits.cc
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/cloneable_message_struct_traits.h
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/message_port.mojom
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/message_port_channel.cc
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/common/message_port/message_port_message.cc
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/common/message_port/message_port_message.h
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/common/message_port/message_port_message_struct_traits.cc
[delete] https://crrev.com/90fc06da35c82f233c46a58828da66bcda11f038/third_party/WebKit/common/message_port/message_port_message_struct_traits.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/transferable_message.cc
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/transferable_message.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/transferable_message.typemap
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/transferable_message_struct_traits.cc
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/message_port/transferable_message_struct_traits.h
[add] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/common/typemaps.gni
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/94b81b508179a877b893dbf0c0986bd27e5f7818/third_party/WebKit/public/platform/modules/broadcastchannel/broadcast_channel.mojom

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c1df6de6c2d70f5fd2b9cf26cb7bb0fe0f90be11

commit c1df6de6c2d70f5fd2b9cf26cb7bb0fe0f90be11
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Tue Oct 17 01:58:54 2017

Rename typemap files and don't use std::vector in blink code.

Follow ups to post-commit review of
https://chromium-review.googlesource.com/600541, this renames the two
blink specific .typemap files to match the name of the native type
rather than the name of the mojom struct, and updates the struct traits
to not use std::vector at all.

Bug: 740744,  351753 
Change-Id: I19b9a45d1bc1352e9b2ea89dcc0237aa5f938a0b
Reviewed-on: https://chromium-review.googlesource.com/721774
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509212}
[rename] https://crrev.com/c1df6de6c2d70f5fd2b9cf26cb7bb0fe0f90be11/third_party/WebKit/Source/core/dom/BlinkCloneableMessage.typemap
[rename] https://crrev.com/c1df6de6c2d70f5fd2b9cf26cb7bb0fe0f90be11/third_party/WebKit/Source/core/dom/BlinkTransferableMessage.typemap
[modify] https://crrev.com/c1df6de6c2d70f5fd2b9cf26cb7bb0fe0f90be11/third_party/WebKit/Source/core/dom/BlinkTransferableMessageStructTraits.cpp
[modify] https://crrev.com/c1df6de6c2d70f5fd2b9cf26cb7bb0fe0f90be11/third_party/WebKit/Source/platform/mojo/blink_typemaps.gni

Comment 9 by mek@chromium.org, Oct 18 2017

Blocking: 776166

Comment 10 by mek@chromium.org, Oct 18 2017

I'm tempted to bypass a lot of this work by marking BlobRegistry.GetBlobFromUUID as sync. That way all the existing hacks to ensure blob lifetime should remain functional, allowing us to turn on mojo blobs without exhaustively getting rid of old/bad code paths. The entire method is only supposed to be a transitional stop-gap method anyway, and as long as most of the common places have been migrated to properly transfer blob handles the performance hit shouldn't be too much (but should probably log to make sure of that).

Comment 11 by mek@chromium.org, Oct 18 2017

Blocking: -776166
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/97fabdbe4aa75b032fd80853ed32d1cda530f426

commit 97fabdbe4aa75b032fd80853ed32d1cda530f426
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Oct 20 07:09:24 2017

Move blobs.mojom file to WebKit/common/blob

For code in WebKit/common/message_port/ to be able to depend on
blobs.mojom the file can't be part of the storage/common target since
that target itself depends on blink. So rather than split up the code in
storage/, and make a confusing mess of dependencies and different parts
of storage being in different places in the dependency stack, just move
the mojom bits to WebKit/common.

Ultimately I expect all of the blob code to move to WebKit, but
obviously we're still a far way away from that.

Bug: 740744
Change-Id: Ic4e1099f47aa10df5a98b0dc606e05dc3e83eefe
Reviewed-on: https://chromium-review.googlesource.com/724280
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510366}
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/DEPS
[delete] https://crrev.com/17d9831dcb64ea84379aeb27a77540b14a9f12a9/content/browser/blob_storage/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/blob_storage/blob_registry_wrapper.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/blob_storage/blob_registry_wrapper.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/cache_storage/cache_storage_cache.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/indexed_db/indexed_db_callbacks.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_browsertest.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_fetch_dispatcher.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_fetch_dispatcher.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_url_loader_job.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_url_loader_job.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_url_loader_job_unittest.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_url_request_job.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/browser/service_worker/service_worker_url_request_job.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/child/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/child/indexed_db/webidbdatabase_impl.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/child/service_worker/service_worker_provider_context.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/child/service_worker/service_worker_subresource_loader.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/child/service_worker/service_worker_subresource_loader.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/child/service_worker/service_worker_subresource_loader_unittest.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/child/web_url_request_util.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/BUILD.gn
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/content_param_traits.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/indexed_db/indexed_db.mojom
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/resource_messages.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/service_worker/service_worker_event_dispatcher.mojom
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/service_worker/service_worker_fetch_request_struct_traits.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/service_worker/service_worker_fetch_request_struct_traits.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/common/service_worker/service_worker_fetch_response_callback.mojom
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/network/url_loader_impl.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/public/common/BUILD.gn
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/public/common/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/public/common/resource_request_body.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/public/common/resource_request_body.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/renderer/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/renderer/service_worker/service_worker_context_client.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/content/renderer/service_worker/service_worker_type_util.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/BUILD.gn
[delete] https://crrev.com/17d9831dcb64ea84379aeb27a77540b14a9f12a9/storage/browser/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_impl.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_impl.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_impl_unittest.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_registry_impl.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_registry_impl.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_registry_impl_unittest.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_transport_strategy.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_transport_strategy.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/blob/blob_transport_strategy_unittest.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/browser/test/mock_bytes_provider.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/common/BUILD.gn
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/common/blob_storage/blob_handle.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/common/blob_storage/blob_handle.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/common/data_element.cc
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/storage/common/data_element.h
[delete] https://crrev.com/17d9831dcb64ea84379aeb27a77540b14a9f12a9/storage/public/interfaces/BUILD.gn
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/modules/fetch/FetchDataLoader.cpp
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/blob/BUILD.gn
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/blob/BlobBytesProvider.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/blob/BlobData.cpp
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/blob/BlobData.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/blob/BlobDataTest.cpp
[delete] https://crrev.com/17d9831dcb64ea84379aeb27a77540b14a9f12a9/third_party/WebKit/Source/platform/blob/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/exported/WebBlobInfo.cpp
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/exported/WebServiceWorkerRequest.cpp
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/exported/WebServiceWorkerResponse.cpp
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/mojo/FetchAPIRequestStructTraits.cpp
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/Source/platform/mojo/FetchAPIRequestStructTraits.h
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/common/BUILD.gn
[rename] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/common/blob/OWNERS
[add] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/common/blob/blob.mojom
[rename] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/common/blob/blob_registry.mojom
[rename] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/common/blob/size_getter.mojom
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/public/platform/DEPS
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/public/platform/modules/fetch/fetch_api_request.mojom
[modify] https://crrev.com/97fabdbe4aa75b032fd80853ed32d1cda530f426/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerRequest.h

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a8eb8f48203f631abc64a3eef91c9e913460c53c

commit a8eb8f48203f631abc64a3eef91c9e913460c53c
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Oct 20 20:13:34 2017

Fix passing blobs on MessagePort and BroadcastChannel.

Also add/update WPT tests to test this, and try to garbage collect the
blob being send before the message is received.

Bug: 740744,  351753 
Change-Id: Ibe2f130dd3fa37130ceb0ed6330b5ba9282f9a7b
Reviewed-on: https://chromium-review.googlesource.com/594495
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510541}
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_Blob.htm
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/blobs.html
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/resources/worker.js
[add] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/webmessaging/README.txt
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/Source/core/dom/BlinkCloneableMessageStructTraits.cpp
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/Source/core/dom/BlinkCloneableMessageStructTraits.h
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/common/message_port/cloneable_message.cc
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/common/message_port/cloneable_message.h
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/common/message_port/cloneable_message_struct_traits.cc
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/common/message_port/cloneable_message_struct_traits.h
[modify] https://crrev.com/a8eb8f48203f631abc64a3eef91c9e913460c53c/third_party/WebKit/common/message_port/message_port.mojom

Components: Internals>Network>Service
Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.
Components: Internals>Services>Storage
Setting Internals>Services>Storage to all children of issue 611935
Project Member

Comment 17 by bugdroid1@chromium.org, Jan 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f4e2d638a9059794d68df60f6f7559f1ad141ccf

commit f4e2d638a9059794d68df60f6f7559f1ad141ccf
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Jan 26 19:44:30 2018

Take advantage of mojo blobs for lifetime management in clipboard code.

Bug:  604800 , 769024, 740744
Change-Id: I2267b1015e3c9ad0d3dfe019572ff328557e0112
Reviewed-on: https://chromium-review.googlesource.com/882483
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532042}
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/content/browser/blob_storage/chrome_blob_storage_context.cc
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/content/browser/renderer_host/clipboard_host_impl.cc
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/content/public/browser/blob_handle.h
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/third_party/WebKit/Source/core/clipboard/DataObjectItem.cpp
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/third_party/WebKit/Source/platform/exported/WebClipboardImpl.cpp
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/third_party/WebKit/common/blob/blob.mojom
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/third_party/WebKit/common/clipboard/clipboard.mojom
[modify] https://crrev.com/f4e2d638a9059794d68df60f6f7559f1ad141ccf/third_party/WebKit/common/message_port/message_port.mojom

Project Member

Comment 18 by bugdroid1@chromium.org, Mar 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4128665dd79d4333640aca24354dc6f457f1ba2f

commit 4128665dd79d4333640aca24354dc6f457f1ba2f
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Mar 16 19:56:33 2018

Use existing BlobPtr when possible when converting blob to DataPipeGetter.

EncodedFormData already (optionally) contains a blink::BlobDataHandle,
so rather than looking up the same blob again by uuid just use that
handle if we have it. This should ensure no races are possible between a
blob being dereferenced (in blink) and the blob being converted into a
DataPipeGetter (as looking up the blob by UUID is an async operation).

Bug: 740744,  821878 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Ic8464b778ec91d10fdbd7688e2b680b9464fe1dc
Reviewed-on: https://chromium-review.googlesource.com/964716
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543794}
[modify] https://crrev.com/4128665dd79d4333640aca24354dc6f457f1ba2f/content/renderer/loader/web_url_request_util.cc
[modify] https://crrev.com/4128665dd79d4333640aca24354dc6f457f1ba2f/third_party/WebKit/Source/platform/exported/WebHTTPBody.cpp
[modify] https://crrev.com/4128665dd79d4333640aca24354dc6f457f1ba2f/third_party/WebKit/public/platform/WebHTTPBody.h

Comment 19 by dxie@chromium.org, May 22 2018

mek@, does this work with network service? 

Comment 20 by mek@chromium.org, May 22 2018

It's mostly unrelated to network service. And either way blob servicication/mojofication has launched, there just might be some leftover cleanup work now we can actually properly track blob lifetimes.

Either way there isn't much here that should block shipping anything at this point.

Comment 21 by dxie@chromium.org, May 22 2018

Labels: Hotlist-KnownIssue
Status: Assigned (was: Available)
Components: -Internals>Services>Storage Internals>Storage
The Storage team monitors Internals>Storage. The Internals>Services>Storage label will be deprecated & removed.

Sign in to add a comment