Backed out changeset a8ca75f3002d (bug 1633985) on request by dev

This commit is contained in:
Daniel Varga
2020-04-30 01:58:25 +03:00
parent 19b87b02bb
commit aa27d10c14
11 changed files with 25 additions and 28 deletions

View File

@@ -266,7 +266,7 @@ void WebRenderImageData::CreateAsyncImageWebRenderCommands(
// where it will be done when we build the display list for the iframe. // where it will be done when we build the display list for the iframe.
// That happens in AsyncImagePipelineManager. // That happens in AsyncImagePipelineManager.
wr::LayoutRect r = wr::ToLayoutRect(aBounds); wr::LayoutRect r = wr::ToLayoutRect(aBounds);
aBuilder.PushIFrame(r, mPipelineId.ref(), aBuilder.PushIFrame(r, aIsBackfaceVisible, mPipelineId.ref(),
/*ignoreMissingPipelines*/ false); /*ignoreMissingPipelines*/ false);
WrBridge()->AddWebRenderParentCommand( WrBridge()->AddWebRenderParentCommand(

View File

@@ -1315,11 +1315,12 @@ void DisplayListBuilder::PushYCbCrInterleavedImage(
} }
void DisplayListBuilder::PushIFrame(const wr::LayoutRect& aBounds, void DisplayListBuilder::PushIFrame(const wr::LayoutRect& aBounds,
bool aIsBackfaceVisible,
PipelineId aPipeline, PipelineId aPipeline,
bool aIgnoreMissingPipeline) { bool aIgnoreMissingPipeline) {
mRemotePipelineIds.AppendElement(aPipeline); mRemotePipelineIds.AppendElement(aPipeline);
wr_dp_push_iframe(mWrState, aBounds, MergeClipLeaf(aBounds), wr_dp_push_iframe(mWrState, aBounds, MergeClipLeaf(aBounds),
mCurrentSpaceAndClipChain.space, aPipeline, aIsBackfaceVisible, &mCurrentSpaceAndClipChain, aPipeline,
aIgnoreMissingPipeline); aIgnoreMissingPipeline);
} }

View File

@@ -541,8 +541,8 @@ class DisplayListBuilder final {
wr::WrColorRange aColorRange, wr::ImageRendering aFilter, wr::WrColorRange aColorRange, wr::ImageRendering aFilter,
bool aPreferCompositorSurface = false); bool aPreferCompositorSurface = false);
void PushIFrame(const wr::LayoutRect& aBounds, wr::PipelineId aPipeline, void PushIFrame(const wr::LayoutRect& aBounds, bool aIsBackfaceVisible,
bool aIgnoreMissingPipeline); wr::PipelineId aPipeline, bool aIgnoreMissingPipeline);
// XXX WrBorderSides are passed with Range. // XXX WrBorderSides are passed with Range.
// It is just to bypass compiler bug. See Bug 1357734. // It is just to bypass compiler bug. See Bug 1357734.

View File

@@ -2546,7 +2546,8 @@ pub extern "C" fn wr_dp_push_iframe(
state: &mut WrState, state: &mut WrState,
rect: LayoutRect, rect: LayoutRect,
clip: LayoutRect, clip: LayoutRect,
spatial_id: WrSpatialId, _is_backface_visible: bool,
parent: &WrSpaceAndClipChain,
pipeline_id: WrPipelineId, pipeline_id: WrPipelineId,
ignore_missing_pipeline: bool, ignore_missing_pipeline: bool,
) { ) {
@@ -2555,7 +2556,7 @@ pub extern "C" fn wr_dp_push_iframe(
state.frame_builder.dl_builder.push_iframe( state.frame_builder.dl_builder.push_iframe(
rect, rect,
clip, clip,
spatial_id.to_webrender(state.pipeline_id), &parent.to_webrender(state.pipeline_id),
pipeline_id, pipeline_id,
ignore_missing_pipeline, ignore_missing_pipeline,
); );

View File

@@ -83,13 +83,7 @@ impl Example for App {
sub_bounds, sub_bounds,
ColorF::new(1.0, 0.0, 0.0, 1.0) ColorF::new(1.0, 0.0, 0.0, 1.0)
); );
builder.push_iframe( builder.push_iframe(sub_bounds, sub_bounds, &space_and_clip, sub_pipeline_id, false);
sub_bounds,
sub_bounds,
space_and_clip.spatial_id,
sub_pipeline_id,
false,
);
builder.pop_stacking_context(); builder.pop_stacking_context();
builder.pop_reference_frame(); builder.pop_reference_frame();
} }

View File

@@ -952,16 +952,14 @@ impl<'a> SceneBuilder<'a> {
}, },
}; };
let space_and_clip = SpaceAndClipInfo {
spatial_id: info.spatial_id,
clip_id: ClipId::root(self.scene.root_pipeline_id.unwrap()),
};
let current_offset = self.current_offset(spatial_node_index); let current_offset = self.current_offset(spatial_node_index);
let clip_chain_index = self.add_rect_clip_node( let clip_chain_index = self.add_clip_node(
ClipId::root(iframe_pipeline_id), ClipId::root(iframe_pipeline_id),
&space_and_clip, &info.space_and_clip,
&info.clip_rect.translate(current_offset), ClipRegion::create_for_clip_node_with_local_clip(
&info.clip_rect,
&current_offset,
),
); );
self.pipeline_clip_chain_stack.push(clip_chain_index); self.pipeline_clip_chain_stack.push(clip_chain_index);
@@ -1378,7 +1376,7 @@ impl<'a> SceneBuilder<'a> {
); );
} }
DisplayItem::Iframe(ref info) => { DisplayItem::Iframe(ref info) => {
let space = self.get_space(&info.spatial_id); let space = self.get_space(&info.space_and_clip.spatial_id);
self.build_iframe( self.build_iframe(
info, info,
space, space,

View File

@@ -1136,7 +1136,7 @@ impl FilterData {
pub struct IframeDisplayItem { pub struct IframeDisplayItem {
pub bounds: LayoutRect, pub bounds: LayoutRect,
pub clip_rect: LayoutRect, pub clip_rect: LayoutRect,
pub spatial_id: SpatialId, pub space_and_clip: SpaceAndClipInfo,
pub pipeline_id: PipelineId, pub pipeline_id: PipelineId,
pub ignore_missing_pipeline: bool, pub ignore_missing_pipeline: bool,
} }

View File

@@ -1836,14 +1836,14 @@ impl DisplayListBuilder {
&mut self, &mut self,
bounds: LayoutRect, bounds: LayoutRect,
clip_rect: LayoutRect, clip_rect: LayoutRect,
spatial_id: di::SpatialId, space_and_clip: &di::SpaceAndClipInfo,
pipeline_id: PipelineId, pipeline_id: PipelineId,
ignore_missing_pipeline: bool ignore_missing_pipeline: bool
) { ) {
let item = di::DisplayItem::Iframe(di::IframeDisplayItem { let item = di::DisplayItem::Iframe(di::IframeDisplayItem {
bounds, bounds,
clip_rect, clip_rect,
spatial_id, space_and_clip: *space_and_clip,
pipeline_id, pipeline_id,
ignore_missing_pipeline, ignore_missing_pipeline,
}); });

View File

@@ -1624,7 +1624,10 @@ impl YamlFrameReader {
dl.push_iframe( dl.push_iframe(
bounds, bounds,
info.clip_rect, info.clip_rect,
info.spatial_id, &SpaceAndClipInfo {
spatial_id: info.spatial_id,
clip_id: info.clip_id
},
pipeline_id, pipeline_id,
ignore ignore
); );

View File

@@ -162,7 +162,7 @@ class nsDisplayCanvas final : public nsPaintedDisplayItem {
// the iframe. That happens in WebRenderCompositableHolder. // the iframe. That happens in WebRenderCompositableHolder.
wr::LayoutRect r = wr::ToLayoutRect(bounds); wr::LayoutRect r = wr::ToLayoutRect(bounds);
aBuilder.PushIFrame(r, data->GetPipelineId().ref(), aBuilder.PushIFrame(r, !BackfaceIsHidden(), data->GetPipelineId().ref(),
/*ignoreMissingPipelines*/ false); /*ignoreMissingPipelines*/ false);
gfx::Matrix4x4 scTransform; gfx::Matrix4x4 scTransform;

View File

@@ -1445,7 +1445,7 @@ bool nsDisplayRemote::CreateWebRenderCommands(
contentRect, mFrame->PresContext()->AppUnitsPerDevPixel()); contentRect, mFrame->PresContext()->AppUnitsPerDevPixel());
rect += mOffset; rect += mOffset;
aBuilder.PushIFrame(mozilla::wr::ToLayoutRect(rect), aBuilder.PushIFrame(mozilla::wr::ToLayoutRect(rect), !BackfaceIsHidden(),
mozilla::wr::AsPipelineId(mLayersId), mozilla::wr::AsPipelineId(mLayersId),
/*ignoreMissingPipelines*/ true); /*ignoreMissingPipelines*/ true);