Skip to content
  1. Sep 07, 2019
  2. Sep 05, 2019
    • Michael Catanzaro's avatar
      web-view: don't connect to embed-shell in page-created cb · 9bc50399
      Michael Catanzaro authored
      This isn't the right place. It could lead to these signals being
      connected multiple times due to PSON.
      9bc50399
    • Michael Catanzaro's avatar
      Do not trust URI during WEBKIT_LOAD_STARTED · a0912049
      Michael Catanzaro authored
      Since WebKit r243434 [1][2], the web view's URI property might not be
      updated during WEBKIT_LOAD_STARTED. For example, when on the
      about:overview page, if we click on any overview thumbnail, the URI is
      still ephy-about:overview at this point. WebKit internally knows the
      URI is different, but it is hiding the change from us until
      WEBKIT_LOAD_COMMITTED because it doesn't know if web content is
      maliciously attempting to spoof the URI. The URI is now only expected to
      be accurate if the load was initiated by API request, e.g.
      webkit_web_view_load_uri(), and our code here doesn't know anything
      about how the load was initiated, so we'd better not check the URI here
      at all.
      
      There were several regressions that I never noticed until today:
      
       (1) We freeze the history here improperly, since we incorrectly think
           that we are loading about:overview. Then the page we load doesn't
           make it into history.
      
       (2) For the same reason, we don't save a new snapshot of the page for
           the overview, resulting in stale snapshots persisting the next time
           the overview is opened.
      
       (3) We set the loading message in the floating statusbar to indicate
           that we are loading the currently-viewed page, rather than the page
           that is actually being loaded. To fix this, we can just set the
           label to "Loading...", without displaying any URL at all, until
           WEBKIT_LOAD_COMMITTED is reached.
      
      These bugs only occur when the load is initiated by web content, or by
      user interaction with web content. Loads triggered by API request should
      be fine.
      
      [1] https://trac.webkit.org/changeset/243434
      [2] https://bugs.webkit.org/show_bug.cgi?id=194208
      a0912049
  3. Sep 03, 2019
  4. May 27, 2019
  5. May 15, 2019
  6. Feb 20, 2019
  7. Nov 27, 2018
  8. Sep 21, 2018
  9. Sep 20, 2018
    • Michael Catanzaro's avatar
      Try enabling MSE · d564aba7
      Michael Catanzaro authored
      This is broken and not ready to be enabled, but we think YouTube has
      begun to require MSE to access WebM videos. So we're left with no
      real choice here.
      d564aba7
  10. Sep 02, 2018
  11. Aug 22, 2018
  12. Aug 03, 2018
  13. Jul 06, 2018
  14. Jul 01, 2018
  15. Jun 29, 2018
  16. Jun 27, 2018
  17. Jun 24, 2018
  18. Jun 13, 2018
    • Gabriel Ivașcu's avatar
      Revert "gsb-storage: Don't hardcode Linux threat lists" · c0eea401
      Gabriel Ivașcu authored and Michael Catanzaro's avatar Michael Catanzaro committed
      This reverts commit 3c8cd638.
      
      Also, increment SCHEMA_VERSION in ephy-gsb-storage.c.
      c0eea401
    • Michael Catanzaro's avatar
      uri-tester: Fix cache lookups when URI is not matched · d76a4019
      Michael Catanzaro authored
      This regressed in e17dc362.
      g_hash_table_lookup() cannot distinguish between a missing value and a
      NULL value. We are storing a NULL pointer (GINT_TO_POINTER (FALSE)) to
      indicate that the URL is not a match, so the end result is that instead
      of a cache hit indicating we should return FALSE, we instead get a cache
      miss and then have to manually determine that we need to return FALSE.
      
      This should be a performance fix only, it should not affect correctness.
      
      Fixes #37
      d76a4019
    • Michael Catanzaro's avatar
      uri-tester: Fix urlcache memory leak · facfa80c
      Michael Catanzaro authored
      Something went wrong with the git history related to e17dc362, and we
      wound up allocating a string here that will never be freed. Whoops.
      
      Then we pass it through GPOINTER_TO_INT() even though it is really a
      random pointer and not going to be a meaningful integer value, and
      return it as a gboolean. So we have a gboolean that is neither TRUE nor
      FALSE, which is bad. But fortunately, it looks like it's never
      explicitly compared to TRUE, so there should have been no behavioral
      issue besides the leak.
      
      This is related to #37.
      facfa80c
  19. Jun 08, 2018
  20. Jun 03, 2018
    • Michael Catanzaro's avatar
      Fix password manager crash on chase.com · 2f575a06
      Michael Catanzaro authored
      We need to be way more careful when converting URIs to security origins.
      This can fail. In this case, Chase used a valid URI javascript:void(0);
      for its form action, which of course does not have any hostname and
      therefore cannot be converted to a security origin. This is a legitimate
      technique in order to prevent the web browser from actually submitting
      the form. That doesn't even matter, because this is untrusted HTML and
      the website can put whatever bogus data it wants there, so we'd better
      be prepared to handle it.
      
      The solution is to always use the page's origin for the target origin if
      the form action cannot be converted to an origin. This is correct
      because the target origin is just used as a heuristic when detecting and
      filling the forms.
      
      The same problem could, in theory, exist with the actual origin of the
      page containing a form. It's not guaranteed that every page will have a
      sane URI, e.g. when pages are opened by JavaScript. So, although I don't
      have a...
      2f575a06
  21. Jun 01, 2018
  22. May 29, 2018
  23. May 27, 2018