Closed Bug 817127 Opened 12 years ago Closed 12 years ago

[Browser] Double-tap to zoom in and then zoom-out on pastebin.mozilla.org --> large portions of the screen turn white & panning breaks

Categories

(Core :: DOM: Core & HTML, defect, P3)

ARM
Gonk (Firefox OS)
defect

Tracking

()

RESOLVED DUPLICATE of bug 804985
B2G C3 (12dec-1jan)
blocking-basecamp +

People

(Reporter: dholbert, Assigned: cyu)

References

()

Details

(Keywords: b2g-testdriver, unagi)

STR:
 1. Visit http://pastebin.mozilla.org/
 2. Double-tap the large-ish footer text ("Mozilla systems and collaborative tools..."
  --> Browser zooms in to that text.
 3. Double-tap it again
  --> Browser zooms out.

EXPECTED RESULTS: After zoom-out, page should look approximately like it did after step 1

ACTUAL RESULTS: After zoom-out, page has large white un-painted chunks on right & bottom sides, covering up significant regions of the page.  Panning doesn't work, or makes other regions of the screen end up painting as white.
Video of bug in action (just 13 seconds long) https://www.youtube.com/watch?v=WwFY34uknlM
OS: Linux → Gonk (Firefox OS)
Hardware: x86_64 → ARM
Summary: [Browser] Double-tap to zoom in and then zoom-out on pastebin.mozilla.org --> screen turns white → [Browser] Double-tap to zoom in and then zoom-out on pastebin.mozilla.org --> large portions of the screen turn white & panning breaks
I'm running latest stable dogfood build, from a few days ago: 20121127132302
blocking-basecamp: ? → +
Priority: -- → P3
The actual code that handles double-tap lives in dom/browser-element/BrowserElementScrolling.js. Not really a Gaia bug so let's move component.
Component: Gaia::Browser → DOM: Core & HTML
Product: Boot2Gecko → Core
Assignee: nobody → bechen
There is a bug in comment 0 STR step2: Double-tap the large-ish footer text
The zoom ratio is too large.

STR: double-tapping a rect which location is close to cssPage bottom/right boundary

http://mxr.mozilla.org/mozilla-central/source/gfx/layers/ipc/AsyncPanZoomController.cpp#1212 to L1225

1. L1212 get a reasonable |targetResolution|.
2. L1217~1218 extend the rect by device's composition ratio.
3. L1221 cut the rect using |cssPageRect|
4. L1224 get a wrong |targetResolution| since the rect had been cut 

=====
I can't reproduce the white un-painted chunks on STR step 3.

But it seems something we can do in AsyncPanZoomController::ZoomToRect
http://mxr.mozilla.org/mozilla-central/source/gfx/layers/ipc/AsyncPanZoomController.cpp#1255

Seems that we set |zoomToRect.x y| into the |mEndZoomToMetrics.mScrollOffset| directly without some checking computations (cssPageRect cssCompositionBounds...)?

The |mEndZoomToMetrics.mScrollOffset| is the left-top coordination after zooming. We may need some adjustment to avoid showing the area out of cssPage?
Mass Modify: All un-milestoned, unresolved blocking-basecamp+ bugs are being moved into the C3 milestone. Note that the target milestone does not mean that these bugs can't be resolved prior to 12/10, rather C2 bugs should be prioritized ahead of C3 bugs.
Target Milestone: --- → B2G C3 (12dec-1jan)
Hi Benjamin, it's been nearly 10 days since an update here. Can you comment on your status?
Sorry I am blocking on bug 805746.
And I think I have a solution on comment 4. I'll fix it right after resolving 805746.
It's not a complicated implementation if someone wants to take it :) .
(In reply to Benjamin Chen from comment #7)
> Sorry I am blocking on bug 805746.
> And I think I have a solution on comment 4. I'll fix it right after
> resolving 805746.
> It's not a complicated implementation if someone wants to take it :) .

Let's re-assign to nobody and see if someone picks it up.  If no one does, you can always take it back once bug 805746 is finished.  Thanks very much, Benjamin!
Assignee: bechen → nobody
I'm actually unable to reproduce the bug now.  Comment 0's second double-tap on the text (in step 3, to zoom out) no longer does anything -- but if I double-tap elsewhere, it sometimes zooms out, and when it does, the screen repaints correctly AFAICT.

Build ID: 20121212102240  (beta channel)

Can anyone else still reproduce this?
Version: unspecified → Trunk
Cervantes, it looks like you're handling a similar case. Could you help this case as well? Thanks.
Assignee: nobody → cyu
Cervantes, could you provide an ETA for this case? Thanks!
I think the white area and wrapping around in panning after zooming out is the result of bug 804985. But failure to zoom out after zooming in with double tap looks to be another issue with AsyncPanZoomController. Targeting 1/1.
Close this bug since the original problem is fixed in bug 804985. The problem that double-tap fails to zoom out after zooming in is another issue. Will open another bug for tracking the issue.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.