New issue
Advanced search Search tips

Issue 600719 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Jun 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android
Pri: 2
Type: Feature

Blocked on:
issue 614564

Blocking:
issue 597790



Sign in to add a comment

Develop minimal viable product for BlobChannel and BlobCache

Project Member Reported by klo...@chromium.org, Apr 5 2016

Issue description

Here is the overall design doc for https://docs.google.com/document/d/1cuRiBdeTI0hPiHfK4muUjX7_n8DoUGKqAcxccCLAHRY/edit

We would like to have a MVP for 0.5.2.

Please attach the definition of MVP and track the implementation here.

 

Comment 1 Deleted

Project Member

Comment 2 by bugdroid1@chromium.org, Apr 6 2016

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

commit db1502a140cda830761a84ea089017cd1a375783
Author: kmarshall <kmarshall@chromium.org>
Date: Wed Apr 06 18:46:58 2016

Blimp: create Mojo component for renderer/browser communication.

* Define new Mojo interface: "BlobChannelMojo".
* Add browser impl class "BlobChannelMojoImpl", add service registration
  logic.
* Add BlobChannelMojo connection code to BlimpContentRendererClient.
* Bifurcate ImageSerializationProcessor into client- and engine-specific
  versions. The engine specific portion is a client of the
  BlobChannelMojo service.
* Promote the skia, libwebp DEPS to the top-level of Blimp
  (blimp/client and blimp/engine will have their own
  ImageSerializationProcessor implementations.)
* Add new DEP for mojo.

R=nyquist@chromium.org
BUG= 600719 

Review URL: https://codereview.chromium.org/1859753002

Cr-Commit-Position: refs/heads/master@{#385510}

[add] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/DEPS
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/client/DEPS
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/BUILD.gn
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/DEPS
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/app/blimp_content_browser_client.cc
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/app/blimp_content_browser_client.h
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/app/blimp_content_main_delegate.cc
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/app/blimp_content_renderer_client.cc
[modify] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/app/blimp_content_renderer_client.h
[add] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/mojo/blob_channel.mojom
[add] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/mojo/blob_channel_service.cc
[add] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/mojo/blob_channel_service.h
[delete] https://crrev.com/442dab7d080bd180f1aa70da966c78eedd7e4c88/blimp/engine/renderer/BUILD.gn
[add] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/renderer/engine_image_serialization_processor.cc
[add] https://crrev.com/db1502a140cda830761a84ea089017cd1a375783/blimp/engine/renderer/engine_image_serialization_processor.h

Labels: Blimp-M52-Proj-Scope
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 18 2016

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

commit a2796c212636511499f47597e76865d7577cd1c8
Author: nyquist <nyquist@chromium.org>
Date: Mon Apr 18 20:58:17 2016

Initial version of Blimp BlobCache.

Currently, every time there is a commit from engine to client, all
pictures are sent again, leading to poor performance and high
bandwidth usage.

This CL adds a cache on the client side that never clears out any
received resources. This means that the engine can depend on that
the client has all resources it has previously sent, and uses this fact
to only send down a unique identifier (SHA1 hash of the image) and the
the width and height in place of the image itself. This is wrapped in
the new proto BlobCacheImageMetadata. If this would be a new image for
the client, the proto also includes the payload of the image. This
payload will be removed when the BlobChannel is fully integrated.

The identifier is calculated based on the source image, to ensure that
no encode is required on the engine when the same image is seen again.

To ensure that the cache is used for all images, this changes the
behavior of the serializer to also encode images that were previously
encoded as WebP, to ensure that they become cacheable.

BUG= 597807 ,  600719 ,  603353 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1867653002

Cr-Commit-Position: refs/heads/master@{#388013}

[modify] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/client/feature/compositor/decoding_image_generator.cc
[modify] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/BUILD.gn
[add] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/blob_cache/blob_cache.h
[add] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/blob_cache/id_util.cc
[add] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/blob_cache/id_util.h
[add] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/blob_cache/in_memory_blob_cache.cc
[add] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/blob_cache/in_memory_blob_cache.h
[add] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/blob_cache/in_memory_blob_cache_unittest.cc
[modify] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/compositor/webp_decoder.cc
[modify] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/proto/BUILD.gn
[add] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/common/proto/blob_cache.proto
[modify] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/engine/BUILD.gn
[modify] https://crrev.com/a2796c212636511499f47597e76865d7577cd1c8/blimp/engine/renderer/engine_image_serialization_processor.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 25 2016

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

commit 5344a6eebfbd65e6a86f2274c69e74ac6ccfe138
Author: nyquist <nyquist@chromium.org>
Date: Mon Apr 25 23:29:24 2016

[blimp] Change to use SHA-256 instead of SHA-1 for unique ids

Blimp currently uses SHA-1 to uniquely identify resources. There was
no specific reason for this other than the goal of having a unique
ID, so this changes it to instead use SHA-256 from //crypto, since it
is in general better. This does however change the length of the
hash from 20 bytes to 32 bytes.

This concern was raised as a drive-by comment on
https://codereview.chromium.org/1867653002/

This CL also adds functionality to verify that a specific BlobId has
the correct length, and removes all references to SHA1 outside of
the //blimp/common/blob_cache/id_util.[cc|h] files.

In addition, this CL adds a test to ensure that there is certainty
that this unique ID only ever changes intentionally.

BUG= 597807 ,  600719 ,  603353 

Review URL: https://codereview.chromium.org/1912153004

Cr-Commit-Position: refs/heads/master@{#389608}

[modify] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/common/BUILD.gn
[modify] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/common/DEPS
[modify] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/common/blob_cache/id_util.cc
[modify] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/common/blob_cache/id_util.h
[add] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/common/blob_cache/id_util_unittest.cc
[modify] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/common/blob_cache/in_memory_blob_cache.cc
[modify] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/common/compositor/webp_decoder.cc
[modify] https://crrev.com/5344a6eebfbd65e6a86f2274c69e74ac6ccfe138/blimp/engine/renderer/engine_image_serialization_processor.cc

Project Member

Comment 6 by bugdroid1@chromium.org, May 3 2016

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

commit eaac155c0dd775c2b295c94b1b3ed85dab453908
Author: kmarshall <kmarshall@chromium.org>
Date: Tue May 03 23:29:54 2016

Blimp: Implement BlobChannelReceiver.

This class is responsible for routing blob reads to locally cached
entries, or if they aren't available, issuing requests for the data to
a remote BlobChannelReceiver.

The transport-specific details are provided by a delegate object,
the implementation of which is out of scope for this CL.

Add a BlobCache mock class.

R=wez@chromium.org,nyquist@chromium.org
BUG= 600719 

Review-Url: https://codereview.chromium.org/1891083002
Cr-Commit-Position: refs/heads/master@{#391394}

[modify] https://crrev.com/eaac155c0dd775c2b295c94b1b3ed85dab453908/blimp/common/BUILD.gn
[add] https://crrev.com/eaac155c0dd775c2b295c94b1b3ed85dab453908/blimp/common/blob_cache/mock_blob_cache.cc
[add] https://crrev.com/eaac155c0dd775c2b295c94b1b3ed85dab453908/blimp/common/blob_cache/mock_blob_cache.h
[modify] https://crrev.com/eaac155c0dd775c2b295c94b1b3ed85dab453908/blimp/net/BUILD.gn
[add] https://crrev.com/eaac155c0dd775c2b295c94b1b3ed85dab453908/blimp/net/blob_channel/blob_channel_receiver.cc
[add] https://crrev.com/eaac155c0dd775c2b295c94b1b3ed85dab453908/blimp/net/blob_channel/blob_channel_receiver.h
[add] https://crrev.com/eaac155c0dd775c2b295c94b1b3ed85dab453908/blimp/net/blob_channel/blob_channel_receiver_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, May 4 2016

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

commit 66b30ed02476e009cfb27237cc217f05acf5096c
Author: kmarshall <kmarshall@chromium.org>
Date: Wed May 04 18:21:58 2016

Blimp: BlobChannelSender and bindings interface.

This class is responsible for sending blobs to a remote receiver.
The transport-specific details are delegated to a bindings object,
the implementation of which is out of scope for this CL.

R=wez@chromium.org,nyquist@chromium.org
BUG= 600719 

Review-Url: https://codereview.chromium.org/1887013003
Cr-Commit-Position: refs/heads/master@{#391567}

[modify] https://crrev.com/66b30ed02476e009cfb27237cc217f05acf5096c/blimp/net/BUILD.gn
[add] https://crrev.com/66b30ed02476e009cfb27237cc217f05acf5096c/blimp/net/blob_channel/blob_channel_sender.cc
[add] https://crrev.com/66b30ed02476e009cfb27237cc217f05acf5096c/blimp/net/blob_channel/blob_channel_sender.h
[add] https://crrev.com/66b30ed02476e009cfb27237cc217f05acf5096c/blimp/net/blob_channel/blob_channel_sender_unittest.cc

Owner: kmarshall@chromium.org
Project Member

Comment 9 by bugdroid1@chromium.org, May 10 2016

[Bulk edit]

This Blimp bug is targeted to M-52, which ends today.  Please change the target milestone to M-53 (which ends June 30) if appropriate and if your team lead signs off.  Any items still targeted to M-52 on Monday will have their milestone tags removed.

Please do *not* remove the label Blimp-M52-Proj-Scope if it exists on this bug; that is a scope tracking label only.  Similarly, do not add Blimp-M53-Proj-Scope yet either; I'll take care of that.

Ping me with any questions, thanks!

Comment 11 by w...@chromium.org, May 24 2016

Labels: -M-52 M-53
Status: Started (was: Assigned)
Blockedon: 614564
Labels: Blimp-M53-Proj-Scope
[Bulk edit]

Setting tracking label Blimp-M53-Proj-Scope.  This label is for scope tracking purposes only and should not be added / removed from any bugs, even if we add additional bugs to M-53 scope, or remove this bug from M-53 scope.
Project Member

Comment 14 by bugdroid1@chromium.org, May 26 2016

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

commit 9dced9059d886d9fecdd3316db84ac9a931d3cc7
Author: kmarshall <kmarshall@chromium.org>
Date: Thu May 26 20:32:57 2016

Blimp: Add BlobChannel Helium messages and delegate impls.

* Add BlobChannelMessage protobuf definition.
* Add prettyprint logging for BlobChannelMessage.
* Add CreateBlimpMessage specialization for BlobChannelMessage.
* Add targeted unit tests for new Helium delegates.
* Move BlobData constness into BlobDataPtr, so that BlobData objects are mutable following their creation (necessary for passing payload buffers w/o copies).
* Refactor CreateBlobDataPtr into common location.
* Turn BlobChannelReceiver into an abstract interface for testing, moving implementation to BlobChannelReceiverImpl.

R=haibinlu@chromium.org,nyquist@chromium.org
CC=wez@chromium.org
BUG= 600719 

Review-Url: https://codereview.chromium.org/1970463004
Cr-Commit-Position: refs/heads/master@{#396271}

[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/BUILD.gn
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/blob_cache/blob_cache.h
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/blob_cache/in_memory_blob_cache_unittest.cc
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/create_blimp_message.cc
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/create_blimp_message.h
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/create_blimp_message_unittest.cc
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/logging.cc
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/logging_unittest.cc
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/proto/BUILD.gn
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/proto/blimp_message.proto
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/common/proto/blob_channel.proto
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/BUILD.gn
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/blob_channel_integration_test.cc
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/blob_channel_receiver.cc
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/blob_channel_receiver.h
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/blob_channel_receiver_unittest.cc
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/helium_blob_channel_unittest.cc
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/helium_blob_receiver_delegate.cc
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/helium_blob_receiver_delegate.h
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/helium_blob_sender_delegate.cc
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/helium_blob_sender_delegate.h
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/mock_blob_channel_receiver.cc
[add] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/blob_channel/mock_blob_channel_receiver.h
[modify] https://crrev.com/9dced9059d886d9fecdd3316db84ac9a931d3cc7/blimp/net/test_common.h

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 14 2016

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

commit 27ea310df5b26c303575e1c7c401045e3f51f8af
Author: kmarshall <kmarshall@chromium.org>
Date: Tue Jun 14 02:09:41 2016

Incorporate BlobChannel into Blimp image encode/decode pipeline.

* Add "BlobChannelSenderHost" class which encapsulates calls to Mojo
  and manages a renderer-resident copy of the cache state.
  Access to the cache state enables the renderer to avoid
  performing redundant operations such as resampling/transcoding
  if the data has previously been processed by another renderer.
* Modify Mojo interface to transmit blob payloads as strings,
  which is consistent with the C++ BlobData typedef.
* Remove BlobChannel/BlobCache calls from WebPDecoder (now it only
  decodes WebP images.)
* Make ClientImageSerializationProcessor into a singleton.
* Add getter path for BlobChannel sender for Engine browser process.

R=wez@chromium.org,nyquist@chromium.org
BUG= 600719 

Review-Url: https://codereview.chromium.org/1985863002
Cr-Commit-Position: refs/heads/master@{#399639}

[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/BUILD.gn
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_compositor_manager.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_compositor_manager.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_compositor_unittest.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_image_decoder.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blob_image_serialization_processor.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blob_image_serialization_processor.h
[delete] https://crrev.com/8aabf1cae3ef9f86554b93a12eaed4baebb2956b/blimp/client/feature/compositor/client_image_serialization_processor.cc
[delete] https://crrev.com/8aabf1cae3ef9f86554b93a12eaed4baebb2956b/blimp/client/feature/compositor/client_image_serialization_processor.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/decoding_image_generator.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/session/blimp_client_session.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/session/blimp_client_session.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/common/proto/blob_cache.proto
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/BUILD.gn
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/app/blimp_browser_main_parts.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/app/blimp_browser_main_parts.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/app/blimp_content_browser_client.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/mojo/blob_channel.mojom
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/mojo/blob_channel_service.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/mojo/blob_channel_service.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/blimp_content_renderer_client.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/blob_channel_sender_proxy.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/blob_channel_sender_proxy.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/engine_image_serialization_processor.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/engine_image_serialization_processor.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/session/blimp_engine_session.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/session/blimp_engine_session.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/BUILD.gn
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blimp_connection_unittest.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_integration_test.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_receiver.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender.h
[rename] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender_impl.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender_impl.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender_unittest.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/helium_blob_sender_delegate.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/browser_connection_handler.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/browser_connection_handler.h

Status: Verified (was: Started)
Excluding sharedmem and renderer cache state seeding from this bug, so everything is done. :)
Project Member

Comment 17 by bugdroid1@chromium.org, Jun 15 2016

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

commit 27ea310df5b26c303575e1c7c401045e3f51f8af
Author: kmarshall <kmarshall@chromium.org>
Date: Tue Jun 14 02:09:41 2016

Incorporate BlobChannel into Blimp image encode/decode pipeline.

* Add "BlobChannelSenderHost" class which encapsulates calls to Mojo
  and manages a renderer-resident copy of the cache state.
  Access to the cache state enables the renderer to avoid
  performing redundant operations such as resampling/transcoding
  if the data has previously been processed by another renderer.
* Modify Mojo interface to transmit blob payloads as strings,
  which is consistent with the C++ BlobData typedef.
* Remove BlobChannel/BlobCache calls from WebPDecoder (now it only
  decodes WebP images.)
* Make ClientImageSerializationProcessor into a singleton.
* Add getter path for BlobChannel sender for Engine browser process.

R=wez@chromium.org,nyquist@chromium.org
BUG= 600719 

Review-Url: https://codereview.chromium.org/1985863002
Cr-Commit-Position: refs/heads/master@{#399639}

[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/BUILD.gn
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_compositor_manager.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_compositor_manager.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_compositor_unittest.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blimp_image_decoder.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blob_image_serialization_processor.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/blob_image_serialization_processor.h
[delete] https://crrev.com/8aabf1cae3ef9f86554b93a12eaed4baebb2956b/blimp/client/feature/compositor/client_image_serialization_processor.cc
[delete] https://crrev.com/8aabf1cae3ef9f86554b93a12eaed4baebb2956b/blimp/client/feature/compositor/client_image_serialization_processor.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/feature/compositor/decoding_image_generator.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/session/blimp_client_session.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/client/session/blimp_client_session.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/common/proto/blob_cache.proto
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/BUILD.gn
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/app/blimp_browser_main_parts.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/app/blimp_browser_main_parts.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/app/blimp_content_browser_client.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/mojo/blob_channel.mojom
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/mojo/blob_channel_service.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/mojo/blob_channel_service.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/blimp_content_renderer_client.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/blob_channel_sender_proxy.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/blob_channel_sender_proxy.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/engine_image_serialization_processor.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/renderer/engine_image_serialization_processor.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/session/blimp_engine_session.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/engine/session/blimp_engine_session.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/BUILD.gn
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blimp_connection_unittest.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_integration_test.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_receiver.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender.h
[rename] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender_impl.cc
[add] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender_impl.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/blob_channel_sender_unittest.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/blob_channel/helium_blob_sender_delegate.h
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/browser_connection_handler.cc
[modify] https://crrev.com/27ea310df5b26c303575e1c7c401045e3f51f8af/blimp/net/browser_connection_handler.h

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 18 2016

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

commit ca6057dcb4c724085356bda1706b48cf54e08fba
Author: kmarshall <kmarshall@chromium.org>
Date: Mon Jul 18 18:39:16 2016

Use shared memory for moving data over BlobChannel Mojo interface.

* Change BlobChannel PutBlob() Mojo IDL to use shared memory handles
  instead of a byte array.
* Create "SharedMemoryBlob" class for encapsulating Mojo shared
  memory initialization and lifetime management semantics.
* Add BlobChannelSenderProxy class, which manages interactions with the renderer side of the BlobChannel IPC interface.
* Add Blimp-specific run_all_unittests.cc, which bootstraps the Mojo environment before executing unittests.

R=wez@chromium.org
CC=maniscalco@chromium.org
BUG= 600719 , 614564 

Review-Url: https://codereview.chromium.org/2033013003
Cr-Commit-Position: refs/heads/master@{#406045}

[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/BUILD.gn
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/client/BUILD.gn
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/BUILD.gn
[add] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/mojo/OWNERS
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/mojo/blob_channel.mojom
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/mojo/blob_channel_service.cc
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/mojo/blob_channel_service.h
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/renderer/blob_channel_sender_proxy.cc
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/renderer/blob_channel_sender_proxy.h
[add] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/engine/renderer/blob_channel_sender_proxy_unittest.cc
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/net/BUILD.gn
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/net/blob_channel/blob_channel_sender.h
[add] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/net/blob_channel/mock_blob_channel_sender.cc
[add] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/net/blob_channel/mock_blob_channel_sender.h
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/test/BUILD.gn
[modify] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/test/DEPS
[add] https://crrev.com/ca6057dcb4c724085356bda1706b48cf54e08fba/blimp/test/run_all_unittests.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 20 2016

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

commit 2cfb64fdb531ebf178913ccda75d8b6954b9bae9
Author: kmarshall <kmarshall@chromium.org>
Date: Wed Jul 20 20:39:41 2016

Add Mojo IPC for seeding new Renderer with Browser's cached blob state.

Cache key state is currently stored in the renderer and is used
by the image processor to determine which images should be transcoded
and sent to the client, and which images do not need to be sent,
reducing latency and compute resources. A drawback of storing this
state in the renderer is that the cache state is dumped when the
renderer is torn down, as in the case when the user navigates
to another site.

This patch provides the renderer with a snapshot of the browser's
cache state, which means that the knowledge of cache state is
retained when the renderer of a given site is torn down
and brought back again.

* Add GetCacheState() to BlobCache
* Add GetCacheState() to BlobChannelSender()
* Add GetCacheState() to .mojom file.

R=nyquist@chromium.org,wez@chromium.org
BUG= 600719 

Review-Url: https://codereview.chromium.org/2056993003
Cr-Commit-Position: refs/heads/master@{#406658}

[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/OWNERS
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/common/blob_cache/blob_cache.h
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/common/blob_cache/in_memory_blob_cache.cc
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/common/blob_cache/in_memory_blob_cache.h
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/common/blob_cache/in_memory_blob_cache_unittest.cc
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/common/blob_cache/mock_blob_cache.h
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/engine/BUILD.gn
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/engine/mojo/blob_channel.mojom
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/engine/mojo/blob_channel_service.cc
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/engine/mojo/blob_channel_service.h
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/engine/renderer/blob_channel_sender_proxy.cc
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/engine/renderer/blob_channel_sender_proxy.h
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/net/blob_channel/blob_channel_sender.h
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/net/blob_channel/blob_channel_sender_impl.cc
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/net/blob_channel/blob_channel_sender_impl.h
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/net/blob_channel/blob_channel_sender_unittest.cc
[modify] https://crrev.com/2cfb64fdb531ebf178913ccda75d8b6954b9bae9/blimp/net/blob_channel/mock_blob_channel_sender.h

Labels: Archive-Blimp

Sign in to add a comment