Add pre- and post-commit modes to LoginHandler

LoginHandler currently handles two tasks when showing an interstitial:
running the request through extensions and then showing a login
prompt. When converted to committed interstitials, we need to run the
request through extensions before the navigation commits, and then
show a login prompt on top of a committed error page. This CL adds a
"mode" argument to LoginHandler. When committed interstitials are
enabled, the "mode" argument determines whether we should just run the
request through extensions and then cancel it (pre-commit mode), or
show a login prompt (post-commit). The post-commit mode is currently
not reachable; we'll use it once we add the WebContentsObserver that
observes the committed error page (https://crbug.com/963313).

Note: this "mode" design is kind of messy and we'll probably want to
come back and clean it up later. For now, it's the simplest way to
leave LoginHandler intact for when committed interstitials are
disabled, and use the parts of it that we need before+after commit
when committed interstitials are enabled. Once committed interstitials
land and we clean up the old code, we will probably want to split
LoginHandler into two classes rather than having one class that can
operate in two different modes.

Bug: 963311
Change-Id: I1efddb3eca3a6b822135bd721db05f2f47561a86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1616943
Reviewed-by: Carlos IL <carlosil@chromium.org>
Reviewed-by: Joe DeBlasio <jdeblasio@chromium.org>
Commit-Queue: Emily Stark <estark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661141}
4 files changed