New issue
Advanced search Search tips

Content Modularization Project: Blob Service

Project Member Reported by jam@chromium.org, May 14 2016

Issue description

Tracking bug for the blob part of the Content Modularization Project.

Some task items:
-convert existing IPCs to mojo
-add mojo interface to create & access blobs (to be used by other code in browser, renderer and eventually network proces
-talk to quota code through its new mojo interface ( bug 611909 )
-move code from storage/browser/blob to components/blob
-change how it hooks into network layer by implementing new mojo interfaces (to be spec’d, see  bug 611897 )
 

Comment 1 by jam@chromium.org, May 16 2016

Blocking: 611900

Comment 2 by jam@chromium.org, May 16 2016

Blocking: 612285

Comment 3 by jam@chromium.org, May 16 2016

Blockedon: 611909
How will be going this issue?

I started mojofication of service workers, and I'm worried about an ordering issue between mojo IPCs (dispatching fetch event) and chromium IPCs (creating blob instance?). [1] is a doc of my plan of mojofication, and I wrote about the ordering issue on Concerns at Step3.
As a straightforward solution, we can mojofy the blob storage codes at the same time, but I'm not familiar with blob storage. 

Could you help me?

[1] https://docs.google.com/document/d/1DwPpvZG1gTCk5JAULmjPf0eCOHt01Pk59YdwRrbQWsY/edit#heading=h.y1gbucxscla1
Cc: reillyg@chromium.org
reillyg@ - any guidance here re: ordering issues?

moving blob storage over to mojo makes sense but dmurph@ has in-flight changes (https://codereview.chromium.org/2055053003/) that might make sense to land first; he's OOO for another week, though.

If you are concerned about ordering between Mojo and legacy IPC then you can use a BrowserAssociatedInterface. This allows you to have Mojo IPCs dispatched onto either the IO or UI threads in a way that maintains ordering with the existing IPC channel.

An example CL: https://codereview.chromium.org/2167513003

Comment 7 by mek@chromium.org, Apr 14 2017

Owner: mek@chromium.org
Status: Assigned (was: Available)

Comment 8 by mek@chromium.org, Apr 14 2017

Description: Show this description

Comment 9 by mek@chromium.org, Apr 17 2017

Components: Blink>Storage

Comment 10 by jam@chromium.org, Apr 26 2017

design doc: https://docs.google.com/a/chromium.org/document/d/1_ROmusFvd8ATwIZa29-P6Ls5yyLjfld0KvKchVfA84Y/edit?disco=AAAABKKsfaI&usp=comment_email_document

I'm going to create a bug just for the hooking-into-networking piece for tracking network service dependencies

Comment 11 by jam@chromium.org, Apr 26 2017

Blockedon: 715677
Blocking: 717798
Blocking: 717812
Project Member

Comment 14 by bugdroid1@chromium.org, Jun 1 2017

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

commit 51f66cecd6268a754963bec0f30c9200fc6e4cf8
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Jun 01 01:15:13 2017

Start work on blob mojofication.

Adds a feature flag for blob mojofication, as well as adds the basic mojom
interface definitions.

Also adds some of the framework code to blink to transport blobs over mojo
to the browser.

Bug: 611935
Change-Id: I6ab9486053d4fd7982b4732b8f732c89cc7d27f5
Reviewed-on: https://chromium-review.googlesource.com/514426
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476126}
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/content/child/runtime_features.cc
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/content/public/common/content_features.cc
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/content/public/common/content_features.h
[add] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/storage/public/interfaces/BUILD.gn
[add] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/storage/public/interfaces/OWNERS
[add] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/storage/public/interfaces/blobs.mojom
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/blob/BlobData.cpp
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/blob/BlobData.h
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/blob/BlobDataTest.cpp
[add] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/blob/DEPS
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/exported/WebRuntimeFeatures.cpp
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/loader/BUILD.gn
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/Source/platform/testing/RuntimeEnabledFeaturesTestHelpers.h
[modify] https://crrev.com/51f66cecd6268a754963bec0f30c9200fc6e4cf8/third_party/WebKit/public/platform/WebRuntimeFeatures.h

Blocking: 712693
Labels: Type-Feature
Project Member

Comment 17 by bugdroid1@chromium.org, Jun 22 2017

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

commit ff99c46646355881d219b30bdfecc879b1916c62
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Jun 22 23:01:28 2017

Implement blink side code to pass blob data elements over mojo.

No implementation for BytesProvider so no data is actually being
transported, but this does contain the bulk of the logic of converting
BlobDataItems to mojo DataElement, combining byte elements, and
optionally embedding data in the byte elements.

Bug: 611935
Change-Id: Iccd789c03130c03549d1a00866af05d7c958434b
Reviewed-on: https://chromium-review.googlesource.com/517254
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481705}
[modify] https://crrev.com/ff99c46646355881d219b30bdfecc879b1916c62/storage/public/interfaces/blobs.mojom
[modify] https://crrev.com/ff99c46646355881d219b30bdfecc879b1916c62/third_party/WebKit/Source/platform/blob/BlobData.cpp
[modify] https://crrev.com/ff99c46646355881d219b30bdfecc879b1916c62/third_party/WebKit/Source/platform/blob/BlobDataTest.cpp

Project Member

Comment 18 by bugdroid1@chromium.org, Jun 28 2017

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

commit 159b6ee709a6fb2ef416f7c10e39c8c706e92206
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Wed Jun 28 04:46:24 2017

Start implementing browser side mojo blob logic.

This just hooks up a stub BlobRegistry implementation, and starts adding
unittests for it and the Blob implementation. Actually implementing
BlobRegistry::Register will happen in follow-up CLs.

Bug: 611935
Change-Id: Iea254122f0dcaaedcf8e782740fc61cfa1e2b941
Reviewed-on: https://chromium-review.googlesource.com/525132
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482883}
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/content/browser/blob_storage/DEPS
[modify] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/content/browser/blob_storage/chrome_blob_storage_context.cc
[modify] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/content/browser/blob_storage/chrome_blob_storage_context.h
[modify] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/DEPS
[modify] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/browser/BUILD.gn
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/browser/blob/blob_impl.cc
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/browser/blob/blob_impl.h
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/browser/blob/blob_impl_unittest.cc
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/browser/blob/blob_registry_impl.cc
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/browser/blob/blob_registry_impl.h
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/browser/blob/blob_registry_impl_unittest.cc
[modify] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/common/BUILD.gn
[add] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/common/run_all_unittests.cc
[modify] https://crrev.com/159b6ee709a6fb2ef416f7c10e39c8c706e92206/storage/public/interfaces/BUILD.gn

Project Member

Comment 19 by bugdroid1@chromium.org, Jun 29 2017

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

commit 4c5b129ec39d43aeb821907ccf5a4f486ca46643
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Jun 29 00:45:24 2017

Implement blob BytesProvider interface.

This adds the renderer side of transporting blob bytes to the blob service.

Bug: 611935
Change-Id: I1e18a09ff0fb0c91b18ac7df8a5cc554d489d2f8
Reviewed-on: https://chromium-review.googlesource.com/522934
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483229}
[modify] https://crrev.com/4c5b129ec39d43aeb821907ccf5a4f486ca46643/storage/public/interfaces/blobs.mojom
[modify] https://crrev.com/4c5b129ec39d43aeb821907ccf5a4f486ca46643/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/4c5b129ec39d43aeb821907ccf5a4f486ca46643/third_party/WebKit/Source/platform/blob/BlobBytesProvider.cpp
[add] https://crrev.com/4c5b129ec39d43aeb821907ccf5a4f486ca46643/third_party/WebKit/Source/platform/blob/BlobBytesProvider.h
[add] https://crrev.com/4c5b129ec39d43aeb821907ccf5a4f486ca46643/third_party/WebKit/Source/platform/blob/BlobBytesProviderTest.cpp
[modify] https://crrev.com/4c5b129ec39d43aeb821907ccf5a4f486ca46643/third_party/WebKit/Source/platform/blob/BlobData.cpp
[modify] https://crrev.com/4c5b129ec39d43aeb821907ccf5a4f486ca46643/third_party/WebKit/Source/platform/blob/BlobDataTest.cpp

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 7 2017

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

commit db0bcc5a58d6d90bfc7447f652048b4f707bd45a
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Jul 07 02:15:20 2017

Implement logic for mojo blob registry to resolve dependent blobs.

Due to the nature of the mojo blob API, the mojo blob registry can't
synchronously determine the UUIDs of dependent blobs of blobs being
constructed. This CL implements the extra states and logic needed to
asynchronously resolve the UUIDs of dependent blobs.

This results in the slightly odd situation that for some time you can
get BlobDataHandles with an unknown size, while later handles for the
same blob do have the correct size, but that should hopefully never be
an issue as almost no code actually uses the size of a BlobDataHandle.
Furthermore BlobRegistryImpl itself tries to make extra sure that any
references to blobs that might be in this state aren't considered
resolved until all those blobs actually have a valid size. At least as
long as no code other than BlobRegistryImpl is creating blobs in this
interim state.

In the future hopefully we can annotate blob mojo MessagePipes with the
blobs UUID, eliminating the need for this complicated async dereference
scheme in the vast majority of cases.

Bug: 611935
Change-Id: Ia53e6c80c8a6fd45418915799184e116f51030c1
Reviewed-on: https://chromium-review.googlesource.com/546861
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484797}
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_data_handle.cc
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_data_handle.h
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_entry.h
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_reader.cc
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_registry_impl.cc
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_registry_impl.h
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_registry_impl_unittest.cc
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_storage_context.cc
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/blob_storage_context.h
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/browser/blob/view_blob_internals_job.cc
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/common/blob_storage/blob_storage_constants.cc
[modify] https://crrev.com/db0bcc5a58d6d90bfc7447f652048b4f707bd45a/storage/common/blob_storage/blob_storage_constants.h

Comment 21 by mek@chromium.org, Jul 10 2017

Blockedon: 740584

Comment 22 by mek@chromium.org, Jul 10 2017

Blockedon: 740585

Comment 23 by mek@chromium.org, Jul 10 2017

Blockedon: 740588

Comment 24 by mek@chromium.org, Jul 10 2017

Blocking: 740590

Comment 25 by mek@chromium.org, Jul 10 2017

Blockedon: 740592

Comment 26 by mek@chromium.org, Jul 10 2017

Blockedon: 740595

Comment 27 by mek@chromium.org, Jul 10 2017

Blockedon: 740596

Comment 28 by mek@chromium.org, Jul 10 2017

Blockedon: 740730

Comment 29 by mek@chromium.org, Jul 10 2017

Blockedon: 740740

Comment 30 by mek@chromium.org, Jul 10 2017

Blockedon: 740744
Project Member

Comment 31 by bugdroid1@chromium.org, Jul 11 2017

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

commit 76098688e753fed23f6b1d3a4cebf949fbb65f56
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Tue Jul 11 17:06:51 2017

Add handling of file and filesystem references to mojo blob service.

Also involves changing ownership of BlobRegistryImpl to be per-storage partition
to make it easier to get access to the right information to resolve filesystem
references.

Bug: 611935
Change-Id: I330474d3d0fdd084c93d7e6fb40f536dc8515d3d
Reviewed-on: https://chromium-review.googlesource.com/553582
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485659}
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/BUILD.gn
[add] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/blob_storage/blob_registry_wrapper.cc
[add] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/blob_storage/blob_registry_wrapper.h
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/blob_storage/chrome_blob_storage_context.cc
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/blob_storage/chrome_blob_storage_context.h
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/content/browser/storage_partition_impl.h
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/storage/browser/blob/blob_registry_impl.cc
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/storage/browser/blob/blob_registry_impl.h
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/storage/browser/blob/blob_registry_impl_unittest.cc
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/storage/public/interfaces/blobs.mojom
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/third_party/WebKit/Source/platform/blob/BlobData.cpp
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/third_party/WebKit/Source/platform/blob/BlobDataTest.cpp
[modify] https://crrev.com/76098688e753fed23f6b1d3a4cebf949fbb65f56/third_party/WebKit/Source/platform/mojo/blink_typemaps.gni

Comment 32 by mek@chromium.org, Jul 11 2017

Blockedon: 741159
Project Member

Comment 33 by bugdroid1@chromium.org, Jul 12 2017

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

commit 738752a4b4460d85bd13fb65e9f85128acc7e5fe
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Wed Jul 12 01:56:12 2017

Fix bug in BlobRegistryWrapper creation.

Since RefCounted starts out with a zero ref-count, it is not safe to
create scoped_refptrs (such as the one in base::BindOnce) in the
constructor (could result in this case in the IO thread deref-ing and
destroying the BlobRegistryWrapper before the UI thread got around to
increasing the refcount). This fixes that by not posting the task until
after the constructor has completed.

Bug: 611935
Change-Id: I3c716e23dd1b89692d61fef12e37eb3f9a8be6d5
Reviewed-on: https://chromium-review.googlesource.com/567383
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485789}
[modify] https://crrev.com/738752a4b4460d85bd13fb65e9f85128acc7e5fe/content/browser/blob_storage/blob_registry_wrapper.cc
[modify] https://crrev.com/738752a4b4460d85bd13fb65e9f85128acc7e5fe/content/browser/blob_storage/blob_registry_wrapper.h
[modify] https://crrev.com/738752a4b4460d85bd13fb65e9f85128acc7e5fe/content/browser/storage_partition_impl.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Jul 17 2017

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

commit 2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Mon Jul 17 23:58:00 2017

Implement byte transportation for mojo blob service.

Also turn on the BlobStorageBrowserTest for the new mojo implementation
now that transportation mostly works. This required a couple of minor
other changes:
- Adding BlobRegistry to the browser process' manifest
- Turning off some BlobDispatcherHost IsInUseInProcess checks. These
  checks don't really make sense anyway when it will become possible
  to transfer blobs between renderers directly, and this never was a
  security boundary anyway, so removing the check shouldn't hurt.

Bug: 611935
Change-Id: If8bfc2d8351aecc72a3818d0cbb013a55efc6175
Reviewed-on: https://chromium-review.googlesource.com/558192
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487290}
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/content/browser/blob_storage/blob_dispatcher_host.cc
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/content/browser/blob_storage/blob_storage_browsertest.cc
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/BUILD.gn
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_data_builder.cc
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_data_builder.h
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_registry_impl.cc
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_registry_impl_unittest.cc
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_storage_context.h
[add] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_transport_strategy.cc
[add] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_transport_strategy.h
[add] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/blob/blob_transport_strategy_unittest.cc
[add] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/test/mock_bytes_provider.cc
[add] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/browser/test/mock_bytes_provider.h
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/common/blob_storage/blob_storage_constants.cc
[modify] https://crrev.com/2d263e6d8f564c97fc1fa9914bf56c5d97c3f96b/storage/common/blob_storage/blob_storage_constants.h

Comment 35 by mek@chromium.org, Jul 19 2017

Blockedon: 746543

Comment 36 by mek@chromium.org, Jul 26 2017

Blockedon: 749275

Comment 37 by mek@chromium.org, Jul 27 2017

Blockedon: 696107

Comment 38 by mek@chromium.org, Aug 4 2017

Blockedon: 752639

Comment 39 by jam@chromium.org, Aug 10 2017

Blocking: 754493
Blockedon: 756743
Project Member

Comment 41 by bugdroid1@chromium.org, Sep 2 2017

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

commit 93e92e6e94948bf7613155d3d0ed1bdeb7c044c6
Author: John Abd-El-Malek <jam@chromium.org>
Date: Sat Sep 02 00:53:58 2017

Turn on the Mojo Blob code path when network service is enabled.

BUG=611935, 761117 

Change-Id: I63243ff26fe81667a47619f104627d4f5b5111c1
Reviewed-on: https://chromium-review.googlesource.com/646504
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499363}
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/browser/blob_storage/blob_dispatcher_host.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/browser/blob_storage/blob_registry_wrapper.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/browser/cache_storage/cache_storage_cache.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/browser/service_worker/service_worker_url_request_job.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/child/runtime_features.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/public/common/content_features.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/public/common/content_features.h
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/renderer/cache_storage/cache_storage_dispatcher.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/93e92e6e94948bf7613155d3d0ed1bdeb7c044c6/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService

Comment 42 by mek@chromium.org, Sep 26 2017

Blockedon: 769024

Comment 43 by mek@chromium.org, Oct 13 2017

Blockedon: 695031

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

Blockedon: 776166

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

Blockedon: 776179
Project Member

Comment 46 by bugdroid1@chromium.org, Oct 18 2017

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

commit c8efc9dab96dae0426d8e42f343a2ca3c9ef42d6
Author: Reilly Grant <reillyg@chromium.org>
Date: Wed Oct 18 23:44:39 2017

Enable a lot more LayoutTests with Network Service

These tests appear to be passing and should be enabled.

TBR=jam@chromium.org

Bug:  729849 , 721408 ,611935
Change-Id: I163023024f2f94c8b6031f7f2c3a4ec85f2f2ada
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/724282
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509932}
[modify] https://crrev.com/c8efc9dab96dae0426d8e42f343a2ca3c9ef42d6/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService

Comment 47 by mek@chromium.org, Oct 20 2017

Blockedon: 776909

Comment 48 by mek@chromium.org, Oct 23 2017

Blockedon: 777585
Project Member

Comment 49 by bugdroid1@chromium.org, Oct 26 2017

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

commit df51989616e170eef04e72779d0d7e5c3ee5980a
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Oct 26 19:52:57 2017

Turn mojo blobs on by default.

This makes the mojo code path for creating blobs the default. Blob
URL creation/revocation is still done over IPC, as migrating that has
its own set of issues. At least this starts paving the way towards
getting rid of old codepaths.

Also forces mojo blobs off for blob_dispatcher_host_unittest (since it
only tests the old IPC blob interface anyway), and updates some cache
storage unit tests to work with mojo blobs enabled.

Bug: 611935,  776166 ,  351753 
Change-Id: Icff60abaadfca04a0db99269ad1abb9d7cc3ee77
Reviewed-on: https://chromium-review.googlesource.com/734304
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511929}
[modify] https://crrev.com/df51989616e170eef04e72779d0d7e5c3ee5980a/content/browser/blob_storage/blob_dispatcher_host_unittest.cc
[modify] https://crrev.com/df51989616e170eef04e72779d0d7e5c3ee5980a/content/browser/cache_storage/cache_storage_cache_unittest.cc
[modify] https://crrev.com/df51989616e170eef04e72779d0d7e5c3ee5980a/content/browser/cache_storage/cache_storage_manager_unittest.cc
[modify] https://crrev.com/df51989616e170eef04e72779d0d7e5c3ee5980a/content/public/common/content_features.cc
[modify] https://crrev.com/df51989616e170eef04e72779d0d7e5c3ee5980a/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/df51989616e170eef04e72779d0d7e5c3ee5980a/third_party/WebKit/LayoutTests/VirtualTestSuites

Comment 50 by mek@chromium.org, Oct 31 2017

Blockedon: 779798

Comment 51 by mek@chromium.org, Oct 31 2017

Blockedon: 779495

Comment 52 by mek@chromium.org, Oct 31 2017

Blockedon: 780126
Components: Internals>Network>Service
Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.

Comment 55 by jam@chromium.org, Nov 7 2017

Components: -Internals>Services>Network
Components: Internals>Services
Labels: Type-Task
Appending component Internals>Services to S13N projects and changing the Type (for tracking sake) to Type=Task.
Components: Internals>Services>Storage

Comment 58 by mek@chromium.org, Nov 11 2017

Blockedon: 784052

Comment 59 by mek@chromium.org, Nov 15 2017

Blockedon: 785412
Components: Blink>Internals>Modularization

Comment 61 by mek@chromium.org, Nov 27 2017

Blockedon: 788681
Project Member

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

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

commit 144e2c98f3ff7585f2719c1bf4d7e17afb209002
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Wed Jan 17 18:57:08 2018

First step of removing the old IPC Blob registration code paths.

This removes the mojo blobs feature flag, as well as most of the code
no longer used with mojo blobs. After this is done there is still a
lot of further cleanup left, but this gets rid of the bulk of it.

Bug: 611935
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_mojo
Change-Id: Ifa201074f65addce98f486c668302767cfbf8498
Reviewed-on: https://chromium-review.googlesource.com/862515
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529829}
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/background_fetch/background_fetch_data_manager.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/blob_storage/blob_dispatcher_host.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/blob_storage/blob_dispatcher_host.h
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/browser/blob_storage/blob_dispatcher_host_unittest.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/blob_storage/blob_registry_wrapper.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/blob_storage/blob_storage_browsertest.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/cache_storage/cache_storage_cache.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/cache_storage/cache_storage_cache_unittest.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/cache_storage/cache_storage_manager_unittest.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/indexed_db/indexed_db_callbacks.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/service_worker/service_worker_url_request_job.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/child/runtime_features.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/common/fileapi/webblob_messages.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/common/service_worker/service_worker_loader_helpers.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/public/common/content_features.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/public/common/content_features.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/BUILD.gn
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_consolidation.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_consolidation.h
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_consolidation_unittest.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_message_filter.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_message_filter.h
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_transport_controller.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_transport_controller.h
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/content/renderer/blob_storage/blob_transport_controller_unittest.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/blob_storage/webblobregistry_impl.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/blob_storage/webblobregistry_impl.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/cache_storage/cache_storage_dispatcher.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/render_thread_impl.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/test/BUILD.gn
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/test/mock_webblob_registry_impl.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/content/test/mock_webblob_registry_impl.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/storage/browser/BUILD.gn
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/storage/browser/blob/blob_storage_context_unittest.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/browser/blob/blob_transport_host.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/browser/blob/blob_transport_host.h
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/browser/blob/blob_transport_request_builder.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/browser/blob/blob_transport_request_builder.h
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/browser/blob/blob_transport_request_builder_unittest.cc
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/storage/common/BUILD.gn
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/common/blob_storage/blob_item_bytes_request.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/common/blob_storage/blob_item_bytes_request.h
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/common/blob_storage/blob_item_bytes_response.cc
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/storage/common/blob_storage/blob_item_bytes_response.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/LayoutTests/VirtualTestSuites
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/FileAPI/README.txt
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/FileAPI/blob/Blob-XHR-revoke-expected.txt
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/IndexedDB/README.txt
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/fetch/README.txt
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/service-workers/README.txt
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/third_party/WebKit/LayoutTests/virtual/mojo-blobs/external/wpt/webmessaging/README.txt
[delete] https://crrev.com/ad2356e01c720eed788977faadbefee181a9ea69/third_party/WebKit/LayoutTests/virtual/mojo-blobs/fast/files/README.txt
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/core/fileapi/FileReaderLoader.cpp
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/core/messaging/BlinkCloneableMessageStructTraits.cpp
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/platform/blob/BlobData.cpp
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/platform/blob/BlobDataTest.cpp
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/platform/blob/BlobRegistry.cpp
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/platform/blob/BlobRegistry.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/platform/exported/WebRuntimeFeatures.cpp
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/Source/platform/runtime_enabled_features.json5
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/public/platform/WebBlobRegistry.h
[modify] https://crrev.com/144e2c98f3ff7585f2719c1bf4d7e17afb209002/third_party/WebKit/public/platform/WebRuntimeFeatures.h

Project Member

Comment 63 by bugdroid1@chromium.org, Jan 18 2018

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

commit aca25a2d1b5423411a38e9807e34d180bd4f392d
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Jan 18 04:25:07 2018

Remove blink::WebBlobData.

This class is no longer used anywhere.

Bug: 611935
Change-Id: I12617af6b7a677029d22862fde8d2199389ece4c
Reviewed-on: https://chromium-review.googlesource.com/871653
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@{#530052}
[modify] https://crrev.com/aca25a2d1b5423411a38e9807e34d180bd4f392d/content/test/mock_webblob_registry_impl.cc
[modify] https://crrev.com/aca25a2d1b5423411a38e9807e34d180bd4f392d/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/aca25a2d1b5423411a38e9807e34d180bd4f392d/third_party/WebKit/Source/platform/blob/BlobRegistry.cpp
[delete] https://crrev.com/de9ef229b6bf033bf8a1eb42d0305e0ff626e0c8/third_party/WebKit/Source/platform/exported/WebBlobData.cpp
[modify] https://crrev.com/aca25a2d1b5423411a38e9807e34d180bd4f392d/third_party/WebKit/public/BUILD.gn
[delete] https://crrev.com/de9ef229b6bf033bf8a1eb42d0305e0ff626e0c8/third_party/WebKit/public/platform/WebBlobData.h
[modify] https://crrev.com/aca25a2d1b5423411a38e9807e34d180bd4f392d/third_party/WebKit/public/platform/WebHTTPBody.h
[modify] https://crrev.com/aca25a2d1b5423411a38e9807e34d180bd4f392d/third_party/WebKit/public/web/WebBlob.h

Cc: pwnall@chromium.org
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