New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 800612 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task



Sign in to add a comment

Use PaintFilter serialization for FilterOperations on CompositorFrames

Project Member Reported by khushals...@chromium.org, Jan 10 2018

Issue description

Implement a security constrained serialization that can be used for cross process transport of cc::PaintFilters on CompositorFrames. This needs to have parity with the current approach that serializes the SkImageFilter backing of the PaintFilter and support the same constraints that skia does, which are as follows:

1) PaintRecords will be disabled until complete PaintRecord serialization is ready and approved by security, similar to SkPictures.
2) Images will be decoded in the renderer.
3) SkDrawLooper (which includes an SkPaint) and SkTypeface (which has font data) on PaintFlags will not be serialized.

The aim is simply to remove quirks in skia to support these constraints (https://chromium-review.googlesource.com/c/chromium/src/+/759129). We'll temporarily add an option to apply these constraints during PaintFilter serialization and remove them once OOP raster is ready.
 
Cc: senorblanco@chromium.org
Project Member

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

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

commit edcfacf19e21ebe0910f7ad90d10902170cda21a
Author: Khushal <khushalsagar@chromium.org>
Date: Wed Jan 17 18:34:05 2018

cc/ipc: Use PaintFilter serialization directly for FilterOperations.

Currently we serialize the underlying SkImageFilter for serializing
PaintFilters on FilterOperation. Use PaintFilter serialization through
PaintOpWriter/PaintOpReader directly. In order to respect the same
security constraints for this serialization implemeted by skia, the
following types are not serialized: PaintRecord and SkDrawLooper.
Images are decoded in the renderer and re-encoded before serialization.

R=enne@chromium.org

Bug:  800612 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I9631168c5c8e30ed121f2e9a390d7df65ada8b67
Reviewed-on: https://chromium-review.googlesource.com/865816
Reviewed-by: enne <enne@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529820}
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/ipc/cc_param_traits.h
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_filter.cc
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_filter.h
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_op_buffer.h
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_op_buffer_unittest.cc
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_op_reader.cc
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_op_reader.h
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_op_writer.cc
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/paint_op_writer.h
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/cc/paint/render_surface_filters.cc
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
[add] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/cpp/compositing/paint_filter.typemap
[add] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/cpp/compositing/paint_filter_struct_traits.cc
[add] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/cpp/compositing/paint_filter_struct_traits.h
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/cpp/compositing/typemaps.gni
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/interfaces/BUILD.gn
[modify] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/interfaces/compositing/filter_operation.mojom
[add] https://crrev.com/edcfacf19e21ebe0910f7ad90d10902170cda21a/services/viz/public/interfaces/compositing/paint_filter.mojom

Status: Fixed (was: Assigned)
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 19 2018

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

commit e6d77aa5c11391400c8b3ae3b21575617017fe44
Author: Mike Reed <reed@google.com>
Date: Fri Jan 19 14:15:40 2018

Remove guard flag for deserializing pictureimagefilters

Bug:  800612 
Change-Id: Ic55c4f985ae070285c5f7986da45de60a8e4eae5
Reviewed-on: https://chromium-review.googlesource.com/874794
Reviewed-by: Victor Miura <vmiura@chromium.org>
Reviewed-by: Wei Li <weili@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530506}
[modify] https://crrev.com/e6d77aa5c11391400c8b3ae3b21575617017fe44/skia/config/SkUserConfig.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 25 2018

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

commit 927ee09a7a14cbafe10bdfedb4989517b3b0d6ee
Author: Khushal <khushalsagar@chromium.org>
Date: Thu Jan 25 02:30:31 2018

skia: Remove unused image filter mojom type.

TBR=reed@google.com

Bug:  800612 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I1507687375387030a354a964c1d4b6ba5415ddd0
Reviewed-on: https://chromium-review.googlesource.com/876949
Commit-Queue: Khushal <khushalsagar@chromium.org>
Reviewed-by: Mike Reed <reed@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531795}
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/services/viz/public/cpp/compositing/compositor_frame_for_blink.typemap
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/services/viz/public/cpp/compositing/copy_output_result.typemap
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/services/viz/public/cpp/compositing/struct_traits_unittest.cc
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/skia/BUILD.gn
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/skia/ext/skia_utils_base.cc
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/skia/ext/skia_utils_base.h
[delete] https://crrev.com/77e19b91361effda2f4eb9f278d9e038aca58d7c/skia/ext/skia_utils_base_unittest.cc
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/skia/public/interfaces/BUILD.gn
[delete] https://crrev.com/77e19b91361effda2f4eb9f278d9e038aca58d7c/skia/public/interfaces/image_filter.mojom
[delete] https://crrev.com/77e19b91361effda2f4eb9f278d9e038aca58d7c/skia/public/interfaces/image_filter.typemap
[delete] https://crrev.com/77e19b91361effda2f4eb9f278d9e038aca58d7c/skia/public/interfaces/image_filter_struct_traits.h
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/skia/public/interfaces/test/struct_traits_unittest.cc
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/skia/public/interfaces/test/traits_test_service.mojom
[modify] https://crrev.com/927ee09a7a14cbafe10bdfedb4989517b3b0d6ee/skia/public/interfaces/typemaps.gni

Sign in to add a comment