Closed
Bug 868047
Opened 11 years ago
Closed 11 years ago
Zoom level is not reset between page loads
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
People
(Reporter: cwiiis, Assigned: ajones)
References
Details
(Whiteboard: [status: needs STR] c=)
Attachments
(7 files)
95.14 KB,
text/plain
|
Details | |
51.61 KB,
image/png
|
Details | |
101.25 KB,
image/png
|
Details | |
12.19 KB,
patch
|
roc
:
review+
BenWa
:
review+
|
Details | Diff | Splinter Review |
3.00 KB,
patch
|
Details | Diff | Splinter Review | |
12.39 KB,
patch
|
akeybl
:
approval-mozilla-b2g18+
|
Details | Diff | Splinter Review |
832 bytes,
patch
|
Details | Diff | Splinter Review |
If you navigate to a page, zoom in, then navigate to a new page, the zoom-level stays the same. This is especially unfortunate when the new page you've navigated to has a viewport that restricts zooming, as you end up stuck zoomed in with nothing you can do about it without navigating away from the page. STR: 1. Open browser 2. Navigate to bing.com 3. Navigate to planet.mozilla.org 4. Zoom in 5. Press back You are now stuck at the previous zoom level with no way to zoom out beyond either closing the tab or navigating to a page that allows zooming. This is an extremely common occurrence if you do any amount of browsing on a device. I've verified this issue exists in v1.0.1 and v1-train.
Comment 1•11 years ago
|
||
I can reproduce this on 1.0.1 on a Keon, I wonder if it might be a regression as I don't remember seeing it before. Is this the right place for this bug?
Component: Gaia::Browser → Graphics: Layers
Product: Boot2Gecko → Core
Comment 2•11 years ago
|
||
I cannot reproduce this with latest 1.0.1: Gecko-b3d69b5 Gaia-716c192 qawanted to try to reproduce it
Keywords: qawanted
Updated•11 years ago
|
Whiteboard: [tef-triage]
Comment 3•11 years ago
|
||
I was not able to reproduce this issue one the Unagi device with the latest builds. Which device were you able to reproduce this on? Unagi Build ID: 20130503070204 Kernel Date: Dec 5 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18/rev/8becaf2a0bc7 Gaia: b0aca0dd1e2955e11190ede725e1fb9ee596438b Unagi Build ID: 20130503070205 Kernel Date: Dec 5 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18_v1_0_1/rev/3f3489356bbc Gaia: 3e232bce289c9e156d92553e752616cba284bc8f
Reporter | ||
Comment 4•11 years ago
|
||
I reproduced this on a Keon - I'm fairly certain this isn't device-specific, I'll see if I can get hold of an unagi and reproduce on that. I'll record a video on Monday to clarify.
Comment 6•11 years ago
|
||
Can we get an Inari/Buri test here too & also a sense of how frequently someone might hit a page that does not allow zooming?
Keywords: qawanted
Comment 7•11 years ago
|
||
I tested this issue on the Unagi again and I was able to reproduce this. Issue reproduced on the Inari device as well. Using these steps to repro: 1. go to msn.com 2. go to cnn.com 3. zoom in 4. press back Unagi Build ID: 20130506070204 Kernel Date: Dec 5 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18/rev/00c554abfc17 Gaia: 9377636cee5ac55b9f1d68f598afc7aadfbb2b00 Inari Build ID: 20130503070205 Kernel Date: Feb 21 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18_v1_0_1/rev/3f3489356bbc Gaia: 3e232bce289c9e156d92553e752616cba284bc8f
Keywords: qawanted
Comment 8•11 years ago
|
||
Those are pretty high traffic sites (at least in en-US) so blocking since it leaves a user stuck in zoomed view.
blocking-b2g: tef? → tef+
Whiteboard: [tef-triage] → c=
Comment 10•11 years ago
|
||
(In reply to Andrew Overholt [:overholt] from comment #9) > Ben, could we work around this in the browser? No
Flags: needinfo?(bfrancis)
Updated•11 years ago
|
Whiteboard: c= → [status: needs owner] c=
Anthony or Kats maybe...
Comment 12•11 years ago
|
||
Daniel - given that this is being reproduced since your comment 2 results can you a) try again to reproduce with the steps in comment 7 and b) weigh in on whether you would also consider this now to be a blocker (and for which milestone) if you are able to reproduce?
Flags: needinfo?(dcoloma)
Comment 13•11 years ago
|
||
Is this an issue only when using back/forward, or is it sometimes also an issue when clicking a link?
Comment 15•11 years ago
|
||
It may take a few tries before being able to reproduce this issue, or after a couple of minutes of browsing. Here is a logcat of one of the times: https://bug868047.bugzilla.mozilla.org/attachment.cgi?id=747650 Also a video if that helps: http://www.youtube.com/watch?v=dU9G_3iqO_4&feature=youtu.be If you look towards the end of the video, I got a "Well this is embarrassing" page. Only happened once after repro'ing this bug a number of times.
Comment 16•11 years ago
|
||
David, The screen stays zoomed in when clicking on other links, unable to zoom out from any of them.
Unable to produce with v1.1 . I followed steps from https://bugzilla.mozilla.org/show_bug.cgi?id=868047#c7 and https://bugzilla.mozilla.org/show_bug.cgi?id=868047#c15 . Could you please mention whether you are using 1.1 or 1.0.1 or master ?
Flags: needinfo?(ahubenya)
Updated•11 years ago
|
Assignee: nobody → tkundu
Updated•11 years ago
|
Status: NEW → ASSIGNED
I also verified with AU_LINUX_GECKO_ICS_STRAWBERRY_V1.01.00.01.019.100 QRD7x27 device. But still I can't reproduce any this issue.
Updated•11 years ago
|
Whiteboard: [status: needs owner] c= → [status: needs STR] c=
Comment 19•11 years ago
|
||
Yesterday's logcat and video were reproduced with yesterday's v1.0.1 build. I just reproduced the issue again with today's v1 and v1.0.1 builds. https://pvtbuilds.mozilla.org/pub/mozilla.org/b2g/nightly/mozilla-b2g18-unagi/latest/ https://pvtbuilds.mozilla.org/pub/mozilla.org/b2g/nightly/mozilla-b2g18_v1_0_1-unagi/latest/
Flags: needinfo?(ahubenya)
Comment 20•11 years ago
|
||
i just checked to see what the forward button does.. when the user is in the zoomed in state and presses the -> arrow, and then <- again, the page is no longer zoomed in and the user is able to navigate through the page.
Not able to produce it.
Assignee: tkundu → nobody
Comment 22•11 years ago
|
||
I also see similar problem in v1.0.1 MozBuild buri. STR: 1. Open browser 2. Navigate to bug 870564 https://bugzilla.mozilla.org/show_bug.cgi?id=870564 4. Zoom in 5. touch youtube link in bug 870564 comment #0 youtube page is sometimes zoomed in.
Assignee | ||
Comment 23•11 years ago
|
||
I've seen this intermittently. I believe it is a race condition mentioned in https://bugzilla.mozilla.org/show_bug.cgi?id=833795#c94
Assignee: nobody → ajones
Updated•11 years ago
|
Flags: needinfo?(dcoloma)
Comment 24•11 years ago
|
||
Unable to reproduce on Keon with gaia master and gecko b2g18.
Comment 25•11 years ago
|
||
Neither with gaia v1-train.
Comment 26•11 years ago
|
||
And neither with gaia v1.0.1. FYI, $ git describe --always e980247 $ git describe --always local.v1-train 08074c4 $ git describe --always local.master 6f1813f
Flags: needinfo?
Comment 27•11 years ago
|
||
Chris, do you still reproduce it with v1.0.1 that I refer to ?
Flags: needinfo? → needinfo?(chrislord.net)
Reporter | ||
Comment 28•11 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #27) > Chris, do you still reproduce it with v1.0.1 that I refer to ? With the 1.0.1 image you just sent me (thanks :)) I can still reproduce this. These were my exact steps: 1. go to bing.com 2. search for 'monaco' 3. Let it load 4. Go to planet.mozilla.org 5. While it's loading, scroll down and zoom in 6. Wait for it to load 7. Press back It's now in a zoomed in state that you can't very easily recover from.
Flags: needinfo?(chrislord.net)
Comment 29•11 years ago
|
||
(In reply to Chris Lord [:cwiiis] from comment #28) > (In reply to Alexandre LISSY :gerard-majax from comment #27) > > Chris, do you still reproduce it with v1.0.1 that I refer to ? > > With the 1.0.1 image you just sent me (thanks :)) I can still reproduce this. > > These were my exact steps: > > 1. go to bing.com > 2. search for 'monaco' > 3. Let it load > 4. Go to planet.mozilla.org > 5. While it's loading, scroll down and zoom in > 6. Wait for it to load > 7. Press back > > It's now in a zoomed in state that you can't very easily recover from. It's master at https://github.com/mozilla-b2g/gaia/commit/6f1813f, not 1.0.1. For now, if I don't wait that the page is totally loaded (wifi slow :/), not reproduced.
Reporter | ||
Comment 30•11 years ago
|
||
For whatever reason, it won't reproduce in the same way now, but it does reproduce a rendering glitch consistently that may be a different manifestation of the same bug. Will attach a video for reference.
Reporter | ||
Comment 31•11 years ago
|
||
Here's what happens, consistently (the first time I did this, the zoom bug happened, but I couldn't get it to happen afterwards...): https://www.youtube.com/watch?v=WAOnyCNhkRU
Comment 32•11 years ago
|
||
It's now too late in the cycle to take a fairly intermittent issue like this and the risk involved with a fix.
blocking-b2g: tef+ → -
tracking-b2g18:
--- → +
Comment 33•11 years ago
|
||
(In reply to Chris Lord [:cwiiis] from comment #30) > For whatever reason, it won't reproduce in the same way now, but it does > reproduce a rendering glitch consistently that may be a different > manifestation of the same bug. > > Will attach a video for reference. If you had provided a screenshot, I could have noticed that I have the exact same behavior as in the video you posted :)
Comment 34•11 years ago
|
||
Chris, is it the issue you described ? If so, I've just reproduced it on Nexus S with up to date gecko b2g18 and gaia master.
Flags: needinfo?(chrislord.net)
Reporter | ||
Comment 35•11 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #34) > Created attachment 751440 [details] > Screenshot of the issue > > Chris, is it the issue you described ? If so, I've just reproduced it on > Nexus S with up to date gecko b2g18 and gaia master. Yes, this is it :)
Flags: needinfo?(chrislord.net)
Comment 36•11 years ago
|
||
Here are some additionnal data which matches the attached screenshot, 0. Zooming on planet.mozilla.org: Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $19 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.2046909332275386, height = 1.0464296924824616}, <No data fields>} (gdb) continue 1. Pressing back, going back on google.fr: Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $20 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.0625, height = 0.32653061224489793}, <No data fields>} (gdb) continue Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $21 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 1, height = 3.0625}, <No data fields>} (gdb) continue 2. Google.fr reloaded: Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $22 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.2046909332275391, height = 1.0464296924824616}, <No data fields>} (gdb) continue Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $24 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.2046909332275391, height = 1.0464296924824616}, <No data fields>} (gdb) continue ==> Correct display. 0. Pressing back, going to google.fr from planet.mozilla.org: Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) watch metrics.mResolution Watchpoint 2: metrics.mResolution (gdb) print metrics.mResolution $1 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.0625, height = 0.32653061224489793}, <No data fields>} (gdb) continue Continuing. Watchpoint 2: metrics.mResolution Old value = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.0625, height = 0.32653061224489793}, <No data fields>} New value = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.0625, height = 3.0625}, <No data fields>} mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) continue Continuing. Watchpoint 2 deleted because the program has left the block in which its expression is valid. 0x408054d4 in nsGlobalWindow::QueryInterface (this=0x42a178b0, aIID=..., aInstancePtr=0xbe8986cc) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/base/nsGlobalWindow.cpp:1238 1238 NS_INTERFACE_MAP_END (gdb) continue Continuing. 1. Google.fr reloaded: Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $2 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 1, height = 3.0625}, <No data fields>} (gdb) continue Continuing. Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $3 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 2.4658710956573486, height = 0.80518239858199137}, <No data fields>} (gdb) continue ===> Incorrect display
Comment 37•11 years ago
|
||
0. Zoomed on planet.mozilla.org Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mDisplayPort $4 = {<mozilla::gfx::BaseRect<float, mozilla::gfx::Rect, mozilla::gfx::Point, mozilla::gfx::Size, mozilla::gfx::Margin>> = {x = 0, y = 0, width = 1213, height = 1954.75}, <No data fields>} (gdb) continue Continuing. 1. Pressing back, Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mDisplayPort $5 = {<mozilla::gfx::BaseRect<float, mozilla::gfx::Rect, mozilla::gfx::Point, mozilla::gfx::Size, mozilla::gfx::Margin>> = {x = -99.75, y = -363.046112, width = 598.5, height = 1269.54614}, <No data fields>} (gdb) continue Continuing. Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mDisplayPort $6 = {<mozilla::gfx::BaseRect<float, mozilla::gfx::Rect, mozilla::gfx::Point, mozilla::gfx::Size, mozilla::gfx::Margin>> = {x = 0, y = 0, width = 320, height = 726.25}, <No data fields>} (gdb) continue Continuing. Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mDisplayPort $7 = {<mozilla::gfx::BaseRect<float, mozilla::gfx::Rect, mozilla::gfx::Point, mozilla::gfx::Size, mozilla::gfx::Margin>> = {x = 0, y = 0, width = 320, height = 638.75}, <No data fields>} (gdb) continue Continuing. 2. Google.fr reloaded, Breakpoint 1, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a98480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mDisplayPort $8 = {<mozilla::gfx::BaseRect<float, mozilla::gfx::Rect, mozilla::gfx::Point, mozilla::gfx::Size, mozilla::gfx::Margin>> = {x = -32.5, y = -126.75, width = 162.5, height = 422.499969}, <No data fields>} =====> Incorrect display
Comment 38•11 years ago
|
||
And, for the record, a correct display session: 0. Zoom on planet.mozilla.org: Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $19 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.2046909332275386, height = 1.0464296924824616}, <No data fields>} (gdb) continue 1. Pressing back button, going back on google.fr: Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $20 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.0625, height = 0.32653061224489793}, <No data fields>} (gdb) continue Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $21 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 1, height = 3.0625}, <No data fields>} (gdb) continue 2. Google.fr reloaded: Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $22 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.2046909332275391, height = 1.0464296924824616}, <No data fields>} (gdb) continue Breakpoint 4, mozilla::dom::TabChild::HandlePossibleViewportChange (this=0x41a91480) at /media/FirefoxOS/Keon/B2G.v1-train/gecko/dom/ipc/TabChild.cpp:536 536 utils->SetResolution(metrics.mResolution.width, metrics.mResolution.height); (gdb) print metrics.mResolution $24 = {<mozilla::gfx::BaseSize<double, gfxSize>> = {width = 3.2046909332275391, height = 1.0464296924824616}, <No data fields>} (gdb) continue ==> Correct display
Comment 39•11 years ago
|
||
Funny, somehow, oldScreenWidth's value disappears, I/Gecko ( 2348): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 I/Gecko ( 2348): TabChild::HandlePossibleViewportChange: oldBrowserWidth=320.000000 -- oldScreenWidth=0.000000 With the first line being emitted when we declare OldScreenWidth and the second one just after computing hysteresis value.
Comment 40•11 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #39) > Funny, somehow, oldScreenWidth's value disappears, > > I/Gecko ( 2348): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 > I/Gecko ( 2348): TabChild::HandlePossibleViewportChange: > oldBrowserWidth=320.000000 -- oldScreenWidth=0.000000 > > With the first line being emitted when we declare OldScreenWidth and the > second one just after computing hysteresis value. Nope, nevermind, I was using %f for int32_t :).
Comment 41•11 years ago
|
||
Here is a diff on some printf'd values. In both case, I went on planet.mozilla.org, zoomed, then pressed the "back" button in the browser to get back to the Google search I did previously. --- ../../../zoom.correct.txt 2013-05-19 20:09:46.711585474 +0200 +++ ../../../zoom.incorrect.txt 2013-05-19 20:09:42.883571975 +0200 @@ -10,7 +10,10 @@ I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={3.062500,3.062500} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: screenW=320.000000, screenH=365.000000, viewportW=320.000000, viewportH=365.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 -I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 +I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 +I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: intrinsicScale={1.000000,1.000000} +I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} +I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=320.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=1.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={3.062500,3.062500} @@ -20,5 +23,5 @@ I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=320.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=1.000000 -I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={1.000000,1.000000} -I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={1.000000,1.000000} +I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={0.834063,0.834063} +I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={2.554319,2.554319}
Comment 42•11 years ago
|
||
Forgot to add both full logs: correct: I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: screenW=320.000000, screenH=415.000000, viewportW=320.000000, viewportH=415.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: intrinsicScale={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=980.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=3.062500 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={0.326531,0.326531} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={3.062500,3.062500} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: screenW=320.000000, screenH=365.000000, viewportW=320.000000, viewportH=365.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=320.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=1.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={3.062500,3.062500} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: screenW=320.000000, screenH=415.000000, viewportW=320.000000, viewportH=415.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=320.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=1.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={1.000000,1.000000} incorrect: I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: screenW=320.000000, screenH=415.000000, viewportW=320.000000, viewportH=415.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: intrinsicScale={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=980.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=3.062500 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={0.326531,0.326531} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={3.062500,3.062500} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: screenW=320.000000, screenH=365.000000, viewportW=320.000000, viewportH=365.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: intrinsicScale={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: metrics.mZoom={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=320.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=1.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={3.062500,3.062500} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={1.000000,1.000000} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: screenW=320.000000, screenH=415.000000, viewportW=320.000000, viewportH=415.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: oldBrowserWidth=320.000000 -- oldScreenWidth=320 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: hysteresis=1.000000 I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (wo/ hysteresis) mResolution={0.834063,0.834063} I/Gecko ( 3206): TabChild::HandlePossibleViewportChange: (w/ hysteresis) mResolution={2.554319,2.554319}
Comment 43•11 years ago
|
||
One can see that in the incorrect case, the second isFirstPaint=1 while it's =0 in the correct case. Could it be the issue ? Looking at the code (https://mxr.mozilla.org/mozilla-b2g18/source/dom/ipc/TabChild.cpp#501): // Changing the zoom when we're not doing a first paint will get ignored // by AsyncPanZoomController and causes a blurry flash. bool isFirstPaint; nsresult rv = utils->GetIsFirstPaint(&isFirstPaint); That could be linked, couldn't it be ?
Comment 44•11 years ago
|
||
0. Loading planet.mozilla.org: I/Gecko ( 3911): TabChild::OnLocationChange SetIsFirstPaint(true) I/Gecko ( 3911): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 3911): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 1. During load, zooming and scrolling 2. Pressing back, google reloads: I/Gecko ( 3911): TabChild::OnLocationChange SetIsFirstPaint(true) I/Gecko ( 3911): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 3911): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 3911): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0
Comment 45•11 years ago
|
||
With a bit more printf(), on a bad case: $ adb logcat -d | grep -i "isFirstPaint" | grep -v "ShadowLayerForwarder::EndTransaction" I/Gecko ( 4163): TabChild::OnLocationChange SetIsFirstPaint(true) I/Gecko ( 4163): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 4163): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 4163): PresShell::Paint: mIsFirstPaint = false I/Gecko ( 4163): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 And on a good case: $ adb logcat -d | grep -i "isFirstPaint" | grep -v "ShadowLayerForwarder::EndTransaction" I/Gecko ( 4163): TabChild::OnLocationChange SetIsFirstPaint(true) I/Gecko ( 4163): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=1 I/Gecko ( 4163): PresShell::Paint: mIsFirstPaint = false I/Gecko ( 4163): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0 I/Gecko ( 4163): TabChild::HandlePossibleViewportChange: rv=0 -- isFirstPaint=0
Comment 46•11 years ago
|
||
A commit just landed that makes changes around zooming, https://git.mozilla.org/?p=releases/gecko.git;a=commit;h=29f0fc2f5945f721363cefa4061b4d983a2301d8 I'll check if it changes anything.
Comment 47•11 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #46) > A commit just landed that makes changes around zooming, > https://git.mozilla.org/?p=releases/gecko.git;a=commit; > h=29f0fc2f5945f721363cefa4061b4d983a2301d8 > > I'll check if it changes anything. Does not fix at all, I'm still reproducing the issue.
Assignee | ||
Comment 48•11 years ago
|
||
The problem is caused by a paint request being sent from the APZC after TabChild has moved to the new location. I'm close to fixing the problem.
Assignee | ||
Comment 49•11 years ago
|
||
(In reply to Alex Keybl [:akeybl] from comment #32) > It's now too late in the cycle to take a fairly intermittent issue like this > and the risk involved with a fix. It's not at all intermittent. It occurs regularly on slow web sites.
Assignee | ||
Comment 51•11 years ago
|
||
Assignee | ||
Updated•11 years ago
|
Attachment #752557 -
Flags: review?(roc)
Attachment #752557 -
Flags: review?(bgirard)
Comment on attachment 752557 [details] [diff] [review] Use a PresShell ID to eliminate stale APZC events; Review of attachment 752557 [details] [diff] [review]: ----------------------------------------------------------------- ::: dom/ipc/TabChild.cpp @@ +1465,5 @@ > +} > + > +bool > +TabChild::ProcessUpdateFrame(const FrameMetrics& aFrameMetrics) > + { Fix indent. ::: layout/base/nsIPresShell.h @@ +1228,5 @@ > * Get the isFirstPaint flag. > */ > bool GetIsFirstPaint() const { return mIsFirstPaint; } > > + uint32_t GetPresShellId() { return mPresShellId; } Document this!
Attachment #752557 -
Flags: review?(roc) → review+
Comment 53•11 years ago
|
||
Comment on attachment 752557 [details] [diff] [review] Use a PresShell ID to eliminate stale APZC events; Review of attachment 752557 [details] [diff] [review]: ----------------------------------------------------------------- r+ with this fixed ::: gfx/layers/FrameMetrics.h @@ +70,5 @@ > bool IsDefault() const > { > + FrameMetrics def; > + > + def.mPresShellId = mPresShellId; This is already checked by operator== below isn't it? ::: layout/base/nsPresShell.cpp @@ +686,5 @@ > > //---------------------------------------------------------------------- > > static bool sSynthMouseMove = true; > +static uint32_t sNextPresShellId; = 0 @@ +713,5 @@ > mIsFirstPaint = false; > #else > mIsFirstPaint = true; > #endif > + mPresShellId = sNextPresShellId++; Use pre-increment.
Attachment #752557 -
Flags: review?(bgirard) → review+
Assignee | ||
Comment 55•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/3ee7ee6ad391
Assignee | ||
Comment 56•11 years ago
|
||
https://tbpl.mozilla.org/?tree=Try&rev=da648741cb6c
Comment 57•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/3ee7ee6ad391
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
Comment 58•11 years ago
|
||
(In reply to Anthony Jones (:kentuckyfriedtakahe) from comment #49) > (In reply to Alex Keybl [:akeybl] from comment #32) > > It's now too late in the cycle to take a fairly intermittent issue like this > > and the risk involved with a fix. > > It's not at all intermittent. It occurs regularly on slow web sites. Should it be uplifted then ? Because I tried to apply it to current b2g18 and a lot of chunks are rejected, so it might need a bit of work.
Flags: needinfo?(akeybl)
Assignee | ||
Comment 59•11 years ago
|
||
Assignee | ||
Comment 60•11 years ago
|
||
Assignee | ||
Comment 61•11 years ago
|
||
STR: 1. Enter nytimes into URL bar 2. Select nytimes from search results 3. Zoom in 4. Press back before the page is fully loaded/finished This bug will affect pages that are slow to paint and in theory could affect moving forward if going from a slow page to a fast (or cached) one.
Assignee | ||
Comment 62•11 years ago
|
||
Comment on attachment 754309 [details] [diff] [review] Use a PresShell ID to eliminate stale APZC events (rebased for b2g18) NOTE: Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings. [Approval Request Comment] Bug caused by (feature/regressing bug #): n/a User impact if declined: Pages occasionally get shown with the wrong zoom. Testing completed: Limited testing of affected sites and others. Risk to taking this patch (and alternatives if risky): Will stop responding if there are bugs where first paint is somehow not set. Bug 804808 is an example but it is reasonable to expect it to stay fixed. String or UUID changes made by this patch: None.
Attachment #754309 -
Flags: approval-mozilla-b2g18?
Assignee | ||
Comment 63•11 years ago
|
||
Bug 873573 would also relate to this patch.
Comment 64•11 years ago
|
||
Comment on attachment 754309 [details] [diff] [review] Use a PresShell ID to eliminate stale APZC events (rebased for b2g18) This is the sort of consistency issue our partners hate. Let's land for v1.1 and backout at the first sign of new blockers.
Attachment #754309 -
Flags: approval-mozilla-b2g18? → approval-mozilla-b2g18+
Flags: needinfo?(akeybl)
Comment 65•11 years ago
|
||
https://hg.mozilla.org/releases/mozilla-b2g18/rev/3b233dc39edf
status-b2g18-v1.0.0:
--- → wontfix
status-firefox22:
--- → wontfix
status-firefox23:
--- → wontfix
status-firefox24:
--- → fixed
Comment 67•11 years ago
|
||
Could you please check this? I think there is a side effect of this patch. When I try to scroll up on some web pages(ex, google search result page), there is a white space instead of repainting the scrolled area some times. It is caused by this, http://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.cpp?from=TabChild.cpp#l1477 AsyncPanZoomController request to repaint scrolled area but some times this patch just block the updating request because the PresShellID of the FrameMetrics on Layer root tree is different with the DocWindow's one. I checked this on my Leo Device.
Flags: needinfo?(ajones)
Comment 68•11 years ago
|
||
just make sure we sync the PresShellID of FrameMetrics with DocWindow PresShell ID to the previous patch work fine at all.
Attachment #759639 -
Flags: review?(ajones)
Assignee | ||
Comment 69•11 years ago
|
||
Comment on attachment 759639 [details] [diff] [review] Additional Patch for bug 868047 See bug 880932.
Attachment #759639 -
Flags: review?(ajones)
Assignee | ||
Updated•11 years ago
|
Flags: needinfo?(ajones)
You need to log in
before you can comment on or make changes to this bug.
Description
•