commit 30a34f2a0a97d951dea8de923feafca6d0846011
Author: Adrian Perez de Castro <aperez@igalia.com>
Date:   Fri Feb 3 00:54:51 2017 +0200

    uri-tester: Ensure regexps are properly constructed
    
    This adds a few more cases to the escaping done when converting an AdBlock
    non-regepx "simple pattern" from a rule into a GRegex. This patch does the
    following:
    
    - Adds escaping to some of the regexp metacharacters which were not being
      handled: (){}+.|\
    - Adds support for using a vertical bar at the end of a pattern to anchor the
      match at the end.
    - Adds support for using ^ to match a "separator character" (a non-letter,
      non-number, or one of _-.%).
    
    This also adds as much comment lines as code, which in this particular case
    is probably a good thing, so reading the code in the future does not need
    checking each case against the GRegex documentation.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777714

 embed/web-extension/ephy-uri-tester.c | 56 +++++++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 16 deletions(-)

commit cb4e78d687e3c55c88e0acd928dce9476f049a9a
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Feb 2 21:31:46 2017 -0600

    Do not run new migrator if the main profile has been migrated
    
    This is ephy *profile* migrator. It runs on a per-profile basis. i.e.
    each web app runs migrators separately. So this migration step could run
    once for a profile dir, then again far in the future when an old web app
    is opened. But passwords are global state, not stored in the profile dir,
    and we want to run this migration only once. This is tricky to fix, but
    it's easier if we relax the constraint to "never run this migrator if it
    has been run already for the default profile dir." That's because we don't
    really care if a couple web app passwords get converted from insecure to
    secure, which is not a big problem and indicates the user probably never
    uses Epiphany except for web apps anyway. We just don't want all the user's
    passwords to get converted mysteriously because he happens to open a web
    app. So check the migration version for the default profile dir and abort
    if this migrator has already run there. This way we avoid adding a new flag
    file to clutter the profile dir just to check if this migrator has run.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752738

 lib/ephy-profile-migrator.c | 22 ++++++++++++++++++++++
 lib/ephy-profile-utils.c    | 15 ++++++++++++---
 lib/ephy-profile-utils.h    |  2 ++
 3 files changed, 36 insertions(+), 3 deletions(-)

commit 941fa9fdcf1e621f4356b454dd8b6e2af039b79d
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Feb 2 19:51:15 2017 -0600

    form-auth-data: Properly normalize URI when accessing secret service
    
    I've mishandled this issue pretty badly. Incredibly, my previous patch,
    which was intended to ensure we always normalize URIs to security
    origins when working with form auth data, only fixed use of the form
    auth data cache. It didn't actually fix any use of the secret service
    itself. Fix that.
    
    This commit notably removes support for mailman passwords, which is
    making the code way too complicated and conflicts with the goal of
    storing only security origins and not full URIs in the secret service.
    
    Note: this normalization is way better than what we were doing before.
    In particular, it incidentally fixes odd bugs like the URI framgment,
    even the empty fragment #, being sufficient to trick our password
    manager into storing separate passwords, so this should also make the
    password filling significantly more reliable than it used to be. (Unless
    you need per-URI passwords without a username, i.e. mailman passwords,
    in which case you're just out of luck, sorry!)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752738

 lib/ephy-form-auth-data.c | 68 ++++++++++++++---------------------------------
 1 file changed, 20 insertions(+), 48 deletions(-)

commit 2b0cf9aee2347c948c22578252d5a29d1856b956
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Wed Feb 1 21:43:01 2017 -0600

    Fix impedance mismatch between web extension and form auth data cache
    
    Using just host is not sufficient, we need to have protocol and port as
    well for matching based on security origin to work properly.
    
    Unfortunately the existing code here was full of subtle errors: the
    parameters named "uri" were actually passed hostnames from the web
    extension, and not URIs at all. The code only worked as long as that
    assumption held, but I broke it because I expected the URI parameters to
    actually contain URIs. So fix this. Really pass URIs and not hostnames,
    and properly convert them to security origins.
    
    Thanks to Hussam for reporting this bug so quickly after it was
    introduced. (As well as lots of other bugs in the past that I've rarely
    credited him for in commit messages.)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752738

 embed/web-extension/ephy-web-extension.c | 24 ++++++++++--------------
 lib/ephy-form-auth-data.c                | 31 +++++++++++++++++--------------
 2 files changed, 27 insertions(+), 28 deletions(-)

commit f3f29da094841988c50094d8b6251d109eb473af
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Wed Feb 1 16:41:53 2017 -0600

    Revert "session: Ignore blank URLs when saving session"
    
    This reverts commit 60097bafc38052904e6484232453a48607731de7.
    
    Seems to be causing problems, so let's not do this in gnome-3-22

 src/ephy-session.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 20fec56e03ce24833abcf54cbba5d5e7930394c6
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Wed Feb 1 11:32:32 2017 -0600

    Add profile migrator to migrate insecure passwords
    
    All previously-saved passwords will now only be available to https://
    origins. Users will have to manually enter their passwords once again in
    order to save them separately for an insecure origin.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752738

 lib/ephy-profile-migrator.c | 76 +++++++++++++++++++++++++++++++++++++++++++++
 lib/ephy-profile-utils.h    |  2 +-
 lib/ephy-uri-helpers.c      | 24 ++++++++++++++
 lib/ephy-uri-helpers.h      |  1 +
 4 files changed, 102 insertions(+), 1 deletion(-)

commit ca63e0a9935d49c23039f9737908e5ffad3343b5
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Dec 29 19:33:48 2016 -0600

    form-auth: Store passwords for security origins, not hosts
    
    This prevents an active MITM attacker from enumerating all your saved
    passwords. The attacker will now only be able to access passwords saved
    on http:// sites. That's by design, though; users are now warned when
    focusing insecure password forms and should think twice before saving
    such passwords.
    
    Unfortunately this does introduce a migration issue, in that no
    previously-saved passwords will be available on https:// websites
    anymore, and all previously-saved passwords will still be enumerable by
    attackers. I'm not sure how to handle migration. We might be able to
    handle it nicely by using the history service to guess whether a
    password should be migrated from http:// to https://, but that is not a
    simple project.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752738

 lib/ephy-form-auth-data.c | 34 +++++++++++++++-------------------
 src/passwords-dialog.c    | 24 ++++++++++++++----------
 2 files changed, 29 insertions(+), 29 deletions(-)

commit 63aec58489c92863568137f19158ca707642c416
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Dec 29 12:54:43 2016 -0600

    uri-helpers: Add function to convert URI to security origin

 lib/ephy-uri-helpers.c | 25 ++++++++++++++++++++++++-
 lib/ephy-uri-helpers.h |  2 ++
 2 files changed, 26 insertions(+), 1 deletion(-)

commit 6ff985ed09415473871692eaef98266517562136
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Sun Jan 29 21:51:54 2017 -0600

    embed-prefs: Fix memory leak when setting languages
    
    This was a tough one. It's a GArray rather than a GPtrArray, which led
    me on a wild goose chase trying to set a clear function for the array...
    the clear function is not allowed to actually free memory, since GArray
    is not designed for holding pointers.
    
    This code should probably be refactored further.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682723

 embed/ephy-embed-prefs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 60097bafc38052904e6484232453a48607731de7
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Jan 26 08:29:07 2017 -0600

    session: Ignore blank URLs when saving session

 src/ephy-session.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)