uri-tester: Never block the UI process main thread

Desktop / GNOME / Epiphany - Carlos Garcia Campos [igalia.com] - 3 December 2016 02:26 UTC

Split the uri tester into updater and loader/filter. The updater code is done directly by EphyEmbedShell. The loader/filter part is what URITester is now, and it has been moved to the web extension again. The web extension creates the uri tester, but it doesn't use it until required and the load happens synchronously. This way it's now the web process the one waiting until everything is ready to load requests, leaving the UI process always responsive. I've also moved the previous checks to decide whether to apply adblock or https everywhere rules on a resource to the web extension, as well as the tracking queries handling, to avoid loading all the rules for resources that are not going to be filtered at all. This makes loading overview pages a lot faster, for example. I've also added a few more conditions to ensure we don't run the uri tester if it's not actually required.

https://bugzilla.gnome.org/show_bug.cgi?id=775067

5da7d07 uri-tester: Never block the UI process main thread
configure.ac | 2 +-
embed/Makefile.am | 2 -
embed/ephy-embed-shell.c | 234 ++++-
embed/ephy-uri-tester.c | 1186 -------------------------
embed/ephy-uri-tester.h | 36 -
embed/web-extension/Makefile.am | 6 +-
embed/web-extension/ephy-uri-tester-proxy.c | 120 ---
embed/web-extension/ephy-uri-tester-proxy.h | 40 -
embed/web-extension/ephy-uri-tester.c | 821 +++++++++++++++++
embed/web-extension/ephy-uri-tester.h | 47 +
embed/web-extension/ephy-web-extension-main.c | 4 +-
embed/web-extension/ephy-web-extension.c | 206 +++--
embed/web-extension/ephy-web-extension.h | 2 +-
lib/Makefile.am | 3 +-
lib/ephy-dbus-names.h | 4 -
lib/ephy-uri-tester-interface.h | 45 -
lib/ephy-uri-tester-shared.c | 37 +
lib/ephy-uri-tester-shared.h | 31 +
18 files changed, 1325 insertions(+), 1501 deletions(-)

Upstream: git.gnome.org


  • Share