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 703772 - Poke at URI when loading up remote site
Poke at URI when loading up remote site
Status: RESOLVED FIXED
Product: epiphany
Classification: Core
Component: General
3.8.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: Epiphany Maintainers
Epiphany Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-07-08 09:29 UTC by Bastien Nocera
Modified: 2013-07-12 12:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ephy-string: Avoid poking at remote websites (1.82 KB, patch)
2013-07-08 09:46 UTC, Bastien Nocera
committed Details | Review

Description Bastien Nocera 2013-07-08 09:29:04 UTC
When loading up a remote site, especially one that's slow to answer, epiphany will "load" the remote URI, delaying the display of the URL given.

This currently happens with http://build.gnome.org that's having some hardware problems and not answering. With a running remote epiphany, run:
epiphany http://build.gnome.org/

This also creates problems with one-time URI such as those given in password resets or confirmation emails where the website might tell you that the token was already used.

Here's a backtrace of the hang:

  • #0 poll
    from /lib64/libc.so.6
  • #1 g_poll
    at gpoll.c line 132
  • #2 g_main_context_poll
    at gmain.c line 4005
  • #3 g_main_context_iterate
    at gmain.c line 3706
  • #4 g_main_loop_run
    at gmain.c line 3905
  • #5 g_dbus_connection_send_message_with_reply_sync
    at gdbusconnection.c line 2252
  • #6 g_dbus_connection_call_sync_internal
    at gdbusconnection.c line 5715
  • #7 g_dbus_connection_call_with_unix_fd_list_sync
    at gdbusconnection.c line 6059
  • #8 g_dbus_proxy_call_sync_internal
    at gdbusproxy.c line 2908
  • #9 g_dbus_proxy_call_sync
    at gdbusproxy.c line 3100
  • #10 gvfs_dbus_mount_call_query_info_sync
    at gvfsdbus.c line 10831
  • #11 g_daemon_file_query_info
    at gdaemonfile.c line 821
  • #12 g_file_query_info
    at gfile.c line 1181
  • #13 g_file_query_exists
    at gfile.c line 1063
  • #14 ephy_string_commandline_args_to_uris
    at ephy-string.c line 516
  • #15 main
    at ephy-main.c line 394

Comment 1 Bastien Nocera 2013-07-08 09:46:15 UTC
Created attachment 248596 [details] [review]
ephy-string: Avoid poking at remote websites

Epiphany tries to query the existence of remote sites before loading
their page. This causes problems when the remote site is not available
and loading it requires the query to timeout (epiphany would look like
it's not loading the site for up to 60 seconds) or for one-time URLs
(where it might invalidate the query, such as for password resets, or
confirmation e-mails).

We'll now only check whether the file exists so that incomplete URLs
("epiphany foo.com/bar.html") still loads the bar.html file if it exists
locally, but the remote website if not.
Comment 2 Bastien Nocera 2013-07-08 10:01:45 UTC
I should also add that:
file = g_file_new (uri1);
uri2 = g_file_get_uri (file);
uri1 will be different from uri2 in case of invalid URI, or when fragments are used. One more reason to avoid the intermediate steps in most cases.
Comment 3 Claudio Saavedra 2013-07-12 12:02:02 UTC
Review of attachment 248596 [details] [review]:

Looks good!
Comment 4 Claudio Saavedra 2013-07-12 12:02:04 UTC
Review of attachment 248596 [details] [review]:

Looks good!
Comment 5 Claudio Saavedra 2013-07-12 12:03:27 UTC
Actually that explains that annoying slowdown when opening links in other applications. Thanks a lot for digging into it!
Comment 6 Bastien Nocera 2013-07-12 12:18:21 UTC
Pushed to gnome-3-8 and master

Attachment 248596 [details] pushed as 56fbaeb - ephy-string: Avoid poking at remote websites