[Webkit-unassigned] [Bug 113583] New: [GTK] Add API for remembering visited links

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Mar 29 08:05:15 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=113583

           Summary: [GTK] Add API for remembering visited links
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P3
         Component: WebKit Gtk
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: scampa.giovanni at gmail.com


Currently webkitgtk apps don't remember visited links across sessions (see https://bugzilla.gnome.org/show_bug.cgi?id=685664).
New API is needed to integrate an external history db with the internal hash table of visited links.

Now, different ports already implement this in various ways (using PlatformStrategies):

- WebCore has a default impleementation in PageGroup, which is in memory only
- Qt/WebKit1 hooks into isVisitedLink() and queries its own DB, failing back to the internal hash table on miss
- Chromium overrides PageGroup handling completely
- WebKit2 uses a shared hashtable that is maintained from the WebContext in the UI process, and has a callback in WKHistoryClient to populate the table
  - EFL exposes the callback into its own API
  - Safari/WK2 and Qt/WK2 don't expose it, but maybe they use the C API directly

For Gtk, there are two approaches possible:
- Expose the populateVisitedLinks callback like EFL does
- Add new injected bundle API used by the VisitedLinkStrategy, that hooks to the application and then uses the shared table on miss

The second approach would be probably faster, as it reduces the IPC overhead and avoids preloading the entire history DB at startup, but in my proof-of-concept patch I chose the second one because it's simpler.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list