Closed Bug 890279 Opened 11 years ago Closed 11 years ago

Create ScrollInfoLayers for frames we want APZC support

Categories

(Core :: Graphics: Layers, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla25

People

(Reporter: BenWa, Assigned: BenWa)

References

Details

Attachments

(1 file, 2 obsolete files)

Attached patch patch (obsolete) — Splinter Review
Follow up to bug 775459 since it didn't really fit in there.

Carrying r=kats,mattwoodrow . Patch should be ready to go once I fix the assertion in dom/indexedDB/ipc:
https://tbpl.mozilla.org/php/getParsedLog.php?id=24842027&tree=Try
Attachment #771353 - Flags: review+
My code is trying to build a nsScrollInfoLayer to hold the scroll meta data but it's hitting this assertion. Looks like we can either:
1) Change the layer type to LAYER_ACTIVE and remove the _EMPTY part or
2) Remove this assertion: http://mxr.mozilla.org/mozilla-central/source/layout/base/FrameLayerBuilder.cpp#2099

Matt can you weight in on the implications here.
Flags: needinfo?(matt.woodrow)
We discussed this in person. We're moving the area from the layer visible region to the frame metrics.
Flags: needinfo?(matt.woodrow)
Attached patch Use mViewport instead (obsolete) — Splinter Review
The changes to layout are the same minus two hunks that are no longer needed. Modified the tests and hit testing code.

https://tbpl.mozilla.org/?tree=Try&rev=c0512cb7f643
Assignee: nobody → bgirard
Attachment #771353 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #772480 - Flags: review?(bugmail.mozilla)
Comment on attachment 772480 [details] [diff] [review]
Use mViewport instead

Review of attachment 772480 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/layers/composite/ContainerLayerComposite.cpp
@@ +157,5 @@
>  
> +    const FrameMetrics& frame = aContainer->GetFrameMetrics();
> +    CSSRect viewport = frame.mViewport;
> +    CSSToLayerScale paintedScale = frame.mDevPixelsPerCSSPixel * frame.mResolution;
> +    LayerRect layerViewport = viewport * paintedScale;

You can do frame.mViewport * frame.LayerPixelsPerCSSPixel() here, it's a little simpler.

::: gfx/layers/ipc/AsyncPanZoomController.cpp
@@ +1483,5 @@
> +  if (aLayer.GetFrameMetrics().IsScrollable()) {
> +    const FrameMetrics& frame = aLayer.GetFrameMetrics();
> +    CSSRect viewport = frame.mViewport;
> +    CSSToLayerScale paintedScale = frame.mDevPixelsPerCSSPixel * frame.mResolution;
> +    LayerRect layerViewport = viewport * paintedScale;

Ditto here
Attachment #772480 - Flags: review?(bugmail.mozilla) → review+
Attachment #772480 - Attachment is obsolete: true
Attachment #772773 - Flags: review+
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/48d6452c9d10
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: