| 
 | 
 | 
 Chromium Code Reviews
 Chromium Code Reviews Issue 
            2835203002:
    Reject CompositorFrames with no render passes when deserializing  (Closed)
    
  
    Issue 
            2835203002:
    Reject CompositorFrames with no render passes when deserializing  (Closed) 
  | Created: 3 years, 8 months ago by Saman Sami Modified: 3 years, 8 months ago CC: chromium-reviews, jam, cc-bugs_chromium.org, darin-cc_chromium.org Target Ref: refs/heads/master Project: chromium Visibility: Public. | DescriptionReject CompositorFrames with no render passes when deserializing
LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no
render passes. Currently we verify that the CompositorFrame sent from
the renderer does not have an empty render pass list in
RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary
because letting such CompositorFrames through will violate assumptions
and causes the browser to crash. This CL moves the validation code
to StructTraits / ParamTraits to centralize IPC message validation.
Some changes in Android's synchronous compositor was necessary because
currently when it wants to send the CompositorFrameMetadata to the
browser, instead of just sending the metadata directly it creates an
empty CompositorFrame, puts the metadata there and then sends the 
frame. Such frames do not pass the new validation rule, so now we just
send the metadata directly.
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2835203002
Cr-Commit-Position: refs/heads/master@{#466708}
Committed: https://chromium.googlesource.com/chromium/src/+/ac53e53db3b6db49588a3ad69ba4231308091009
   Patch Set 1 #Patch Set 2 : Fixed Android Webview #
 Messages
    Total messages: 41 (35 generated)
     
 Description was changed from ========== Reject CompositorFrames with no render passes when deserializing ========== to ========== Reject CompositorFrames with no render passes when deserializing CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== 
 The CQ bit was checked by samans@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 Description was changed from ========== Reject CompositorFrames with no render passes when deserializing CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits because that's where all the IPC validations are supposed to happen. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== 
 The CQ bit was checked by samans@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 The CQ bit was checked by samans@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 The CQ bit was checked by samans@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 The CQ bit was checked by samans@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 Patchset #4 (id:60001) has been deleted 
 Patchset #3 (id:40001) has been deleted 
 Patchset #2 (id:20001) has been deleted 
 The CQ bit was checked by samans@chromium.org to run a CQ dry run 
 Patchset #2 (id:80001) has been deleted 
 Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 Description was changed from ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits because that's where all the IPC validations are supposed to happen. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits because that's where all the IPC validations are supposed to happen. Some changes in Android's synchronous compositor was necessary because currently it sends CompositorFrames with no render passes when swap fails. Now it sends a base::Optional<CompositorFrame> because otherwise its messages would get rejected. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== 
 Description was changed from ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits because that's where all the IPC validations are supposed to happen. Some changes in Android's synchronous compositor was necessary because currently it sends CompositorFrames with no render passes when swap fails. Now it sends a base::Optional<CompositorFrame> because otherwise its messages would get rejected. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits because that's where all the IPC validations are supposed to happen. Some changes in Android's synchronous compositor was necessary because currently it sends CompositorFrames with no render passes when swap fails. After this CL it will send a base::Optional<CompositorFrame> because otherwise its messages would get rejected. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== 
 samans@chromium.org changed reviewers: + tsepez@chromium.org 
 Description was changed from ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits because that's where all the IPC validations are supposed to happen. Some changes in Android's synchronous compositor was necessary because currently it sends CompositorFrames with no render passes when swap fails. After this CL it will send a base::Optional<CompositorFrame> because otherwise its messages would get rejected. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits to centralize IPC message validation. Some changes in Android's synchronous compositor was necessary because currently it sends CompositorFrames with no render passes when swap fails. After this CL it will send a base::Optional<CompositorFrame> because otherwise its messages would get rejected. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== 
 samans@chromium.org changed reviewers: - tsepez@chromium.org 
 The CQ bit was checked by samans@chromium.org to run a CQ dry run 
 Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 Description was changed from ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits to centralize IPC message validation. Some changes in Android's synchronous compositor was necessary because currently it sends CompositorFrames with no render passes when swap fails. After this CL it will send a base::Optional<CompositorFrame> because otherwise its messages would get rejected. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits to centralize IPC message validation. Some changes in Android's synchronous compositor was necessary because currently when it wants to send the CompositorFrameMetadata to the browser, instead of just sending the metadata directly it creates an empty CompositorFrame, puts the metadata there and then sends the frame. Such frames do not pass the new validation rule, so now we just send the metadata directly. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== 
 Description was changed from ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits to centralize IPC message validation. Some changes in Android's synchronous compositor was necessary because currently when it wants to send the CompositorFrameMetadata to the browser, instead of just sending the metadata directly it creates an empty CompositorFrame, puts the metadata there and then sends the frame. Such frames do not pass the new validation rule, so now we just send the metadata directly. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits to centralize IPC message validation. Some changes in Android's synchronous compositor was necessary because currently when it wants to send the CompositorFrameMetadata to the browser, instead of just sending the metadata directly it creates an empty CompositorFrame, puts the metadata there and then sends the frame. Such frames do not pass the new validation rule, so now we just send the metadata directly. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== 
 samans@chromium.org changed reviewers: + tsepez@chromium.org 
 tsepez: Please review IPC. 
 lgtm 
 Patchset #2 (id:100001) has been deleted 
 samans@chromium.org changed reviewers: + boliu@chromium.org 
 boliu: Preview review changes to Android. 
 lgtm 
 The CQ bit was unchecked by samans@chromium.org 
 The CQ bit was checked by samans@chromium.org 
 CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... 
 CQ is committing da patch.
Bot data: {"patchset_id": 120001, "attempt_start_ts": 1493060673363230,
"parent_rev": "443a29819b5b55a5a9bf8fff7b6275a29028cfac", "commit_rev":
"9fa92a5ede5f54c27637f4bd65ad4d78af74f91d"}
 CQ is committing da patch.
Bot data: {"patchset_id": 120001, "attempt_start_ts": 1493060673363230,
"parent_rev": "4323f7f47559ef583751c803306e8370ef7d1561", "commit_rev":
"ac53e53db3b6db49588a3ad69ba4231308091009"}
 
            
              
                Message was sent while issue was closed.
              
            
             Description was changed from ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits to centralize IPC message validation. Some changes in Android's synchronous compositor was necessary because currently when it wants to send the CompositorFrameMetadata to the browser, instead of just sending the metadata directly it creates an empty CompositorFrame, puts the metadata there and then sends the frame. Such frames do not pass the new validation rule, so now we just send the metadata directly. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Reject CompositorFrames with no render passes when deserializing LayerTreeHostImpl::DrawLayers never submits a CompositorFrame with no render passes. Currently we verify that the CompositorFrame sent from the renderer does not have an empty render pass list in RenderWidgetHostImpl::SubmitCompositorFrame. This check is necessary because letting such CompositorFrames through will violate assumptions and causes the browser to crash. This CL moves the validation code to StructTraits / ParamTraits to centralize IPC message validation. Some changes in Android's synchronous compositor was necessary because currently when it wants to send the CompositorFrameMetadata to the browser, instead of just sending the metadata directly it creates an empty CompositorFrame, puts the metadata there and then sends the frame. Such frames do not pass the new validation rule, so now we just send the metadata directly. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2835203002 Cr-Commit-Position: refs/heads/master@{#466708} Committed: https://chromium.googlesource.com/chromium/src/+/ac53e53db3b6db49588a3ad69ba4... ========== 
 
            
              
                Message was sent while issue was closed.
              
            
             Committed patchset #2 (id:120001) as https://chromium.googlesource.com/chromium/src/+/ac53e53db3b6db49588a3ad69ba4... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
