After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 787486 - don't zoom before switching to the next page
don't zoom before switching to the next page
Status: RESOLVED FIXED
Product: epiphany
Classification: Core
Component: Interface
3.25.x
Other Linux
: Normal minor
: ---
Assigned To: Epiphany Maintainers
Epiphany Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-09-09 20:20 UTC by Dan Jacobson
Modified: 2018-04-26 17:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
web-view: Change zoom in LOAD_COMMITTED (1.33 KB, patch)
2017-09-09 20:41 UTC, Michael Catanzaro
committed Details | Review

Description Dan Jacobson 2017-09-09 20:20:12 UTC
From: 積丹尼 Dan Jacobson <jidanni@jidanni.org>
--text follows this line--
On slower systems (where we would use epiphany more often than other
browsers of course), one notices that when clicking hyperlinks,
if there will be a zoom level difference between the page we are
viewing, and the page we are about to go to, epiphany very disturbingly
first zooms, then switches to the new page.

You won't notice it unless you use a rather slow system.

Also the second time you do it the destination page is already loaded in
memory so you won't notice it either.

Anyway the result is we see the first page suddenly zoomed for no
reason, as it is going to be replaced by the second page anyway,
and then we see a white screen as the second page loads,
and then we finally see the second page.

Anyway please don't zoom first.

How to reproduce:
Have a .html file with a link to a site which you usually browse zoomed
(which epiphany remembers zoom the level of.) And then after rebooting
your computer click that link.

If you want to zoom, do it at the beginning of the white phase.
Comment 1 Dan Jacobson 2017-09-09 20:21:26 UTC
Ignore the "From: 積丹尼 Dan Jacobson <jidanni@jidanni.org> --text follows this line--" above.
Comment 2 Michael Catanzaro 2017-09-09 20:40:36 UTC
Unfortunately it's not currently possible to fix this because we don't have callbacks for render events. That's going to require some plumbing in WebKit.

Now, we *can* significantly shrink the window of time that that the zoom is off by changing the zoom in response to the LOAD_COMMITTED event instead of the LOAD_STARTED event. I'm going to attach a patch for that, and you can see if you like that better or not. But it's still not going to be quite right. It seems to work in general, but you can still see the zoom changing when restoring from page cache (which often occurs when using the back/forward buttons) because in that case the page is rendered before the load is committed. (Page cache makes everything wonky.)
Comment 3 Michael Catanzaro 2017-09-09 20:41:51 UTC
Created attachment 359449 [details] [review]
web-view: Change zoom in LOAD_COMMITTED

Instead of changing zoom in LOAD_STARTED, wait for LOAD_COMMITTED so as
to shrink the amount of time that the zoom is wrong for. This isn't a
proper fix as WebKit's load events don't indicate when rendering has
started, and that would be the only proper time to change the zoom.
Comment 4 Dan Jacobson 2017-09-09 20:48:50 UTC
OK. I'm sure it will look much better when it hits Debian. So I'll close it for now. Thanks.
Comment 5 Michael Catanzaro 2018-04-26 17:37:22 UTC
Attachment 359449 [details] pushed as 4f94f86 - web-view: Change zoom in LOAD_COMMITTED