Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Issue 646983008: Implement signin using webview (Closed)

Created:
6 years, 2 months ago by guohui
Modified:
6 years, 1 month ago
CC:
chromium-reviews, extensions-reviews_chromium.org, tfarina, arv+watch_chromium.org, chromium-apps-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Implement signin using webview This CL implements the Chrome signin on desktop using webview. Since the webview approach is significantly different than the current iframe one, thus I created a fork of some files instead of adding more logic to the existing over-complicated code. The feature is enabled under a flag --enable-webview-based-signin. Once the feature is fully launched on both dekstop and ChromeOS, the old files should be deleted. There are a few known issues. 1. Gaia needs to update their script to post credentials directly to chrome://chrome-signin instead of the gaia auth extension. Before the gaia code is updated, webview signin cannot scrape password and the checkbox value for choosing what to sync. 2. Webview currently only loads in a full tab, need to investigate why it doesn't work when embedded in the avatar menu. 3. Some webview apis are broken in an extension-less webui context. https://codereview.chromium.org/670173002/ fixes a few that are required for a minimum desktop signin flow. One important missing piece is the extension messaging api, and as a result Gnubby does not work with a webview, tracked in crbug/426016. 4. Some standard WebUI features are missing, such as zoom, find, print preview, need to decide whether it is worth to support them. 5. Webview is not fully accessibility proof. According to webview team, most accessibility bugs have been fixed by the accessibility team (crbug/330307, crbug/368298), need to confirm. 6. This CL only implements the desktop signin flow. The ChromeOS signin flow is a superset of the desktop one, and ChromeOS team needs to add extra logic to complete it for ChromeOS. BUG=364432 Committed: https://crrev.com/69cf14737441b102917f3773500e3ae8c6bea794 Cr-Commit-Position: refs/heads/master@{#301130}

Patch Set 1 : #

Total comments: 6

Patch Set 2 : fix crash due to dangling zoom observer #

Total comments: 2

Patch Set 3 : split extension framework changes into separate cl and fixed nits #

Total comments: 10

Patch Set 4 : add a listener interface and remove events #

Total comments: 6

Patch Set 5 : fixed nits and updated histogram #

Unified diffs Side-by-side diffs Delta from patch set Stats (+397 lines, -12 lines) Patch
M chrome/app/generated_resources.grd View 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/browser/about_flags.cc View 1 2 3 1 chunk +7 lines, -0 lines 0 comments Download
M chrome/browser/browser_resources.grd View 1 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/chrome_content_browser_client.cc View 1 2 chunks +4 lines, -2 lines 0 comments Download
A chrome/browser/resources/gaia_auth_host/authenticator.js View 1 2 3 4 1 chunk +315 lines, -0 lines 0 comments Download
M chrome/browser/resources/inline_login/inline_login.html View 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/resources/inline_login/inline_login.js View 1 2 3 3 chunks +31 lines, -4 lines 0 comments Download
A + chrome/browser/resources/inline_login/new_inline_login.html View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/ui/webui/signin/inline_login_handler_impl.cc View 1 1 chunk +4 lines, -2 lines 0 comments Download
M chrome/browser/ui/webui/signin/inline_login_ui.cc View 2 chunks +6 lines, -1 line 0 comments Download
M components/signin/core/browser/about_signin_internals.cc View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download
M components/signin/core/common/profile_management_switches.h View 1 chunk +4 lines, -1 line 0 comments Download
M components/signin/core/common/profile_management_switches.cc View 1 chunk +7 lines, -1 line 0 comments Download
M components/signin/core/common/signin_switches.h View 1 chunk +1 line, -0 lines 0 comments Download
M components/signin/core/common/signin_switches.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 33 (11 generated)
guohui
Hey, could you please review the CL? Thanks, Hui
6 years, 2 months ago (2014-10-21 20:51:47 UTC) #4
guohui
On 2014/10/21 20:51:47, guohui wrote: > Hey, > > could you please review the CL? ...
6 years, 2 months ago (2014-10-21 20:54:31 UTC) #6
Fady Samuel
https://codereview.chromium.org/646983008/diff/40001/extensions/browser/api/web_request/web_request_api_helpers.cc File extensions/browser/api/web_request/web_request_api_helpers.cc (right): https://codereview.chromium.org/646983008/diff/40001/extensions/browser/api/web_request/web_request_api_helpers.cc#newcode1212 extensions/browser/api/web_request/web_request_api_helpers.cc:1212: runtime_data->SetHasUsedWebRequest(extension.get(), true); What's going on here? I'm confused. https://codereview.chromium.org/646983008/diff/40001/extensions/browser/extension_function.h ...
6 years, 2 months ago (2014-10-21 21:32:57 UTC) #7
xiyuan
gnubby needs extension messaging API.
6 years, 2 months ago (2014-10-21 22:19:16 UTC) #8
Fady Samuel
On 2014/10/21 22:19:16, xiyuan wrote: > gnubby needs extension messaging API. I'm working on fixing ...
6 years, 2 months ago (2014-10-21 22:20:19 UTC) #9
Roger Tawa OOO till Jul 10th
https://codereview.chromium.org/646983008/diff/60001/chrome/app/generated_resources.grd File chrome/app/generated_resources.grd (right): https://codereview.chromium.org/646983008/diff/60001/chrome/app/generated_resources.grd#newcode13811 chrome/app/generated_resources.grd:13811: + When enabled, will use a webview-based Chrome sign-in ...
6 years, 2 months ago (2014-10-22 14:49:54 UTC) #10
guohui
With the crash fix in zoomcontroller, the cl has grown much bigger, so as suggested ...
6 years, 2 months ago (2014-10-22 15:35:34 UTC) #11
xiyuan
LGTM with nits https://codereview.chromium.org/646983008/diff/80001/chrome/browser/resources/gaia_auth_host/authenticator.js File chrome/browser/resources/gaia_auth_host/authenticator.js (right): https://codereview.chromium.org/646983008/diff/80001/chrome/browser/resources/gaia_auth_host/authenticator.js#newcode175 chrome/browser/resources/gaia_auth_host/authenticator.js:175: chrome.send('switchToFullTab', [currentUrl]); This assumes webui page. ...
6 years, 2 months ago (2014-10-22 17:20:53 UTC) #12
Roger Tawa OOO till Jul 10th
https://codereview.chromium.org/646983008/diff/80001/chrome/browser/resources/gaia_auth_host/authenticator.js File chrome/browser/resources/gaia_auth_host/authenticator.js (right): https://codereview.chromium.org/646983008/diff/80001/chrome/browser/resources/gaia_auth_host/authenticator.js#newcode61 chrome/browser/resources/gaia_auth_host/authenticator.js:61: assert(this.frame_); Nit: rename frame_ to webView_ ? Rename container ...
6 years, 2 months ago (2014-10-22 19:30:01 UTC) #13
guohui
Removed events from Authenticator.js, and instead created a listener interface for receiving notifications of authenticator ...
6 years, 1 month ago (2014-10-23 19:12:01 UTC) #14
guohui
+sky@ for owner review of chrome\browser\browser_resources.grd
6 years, 1 month ago (2014-10-23 19:16:55 UTC) #17
Roger Tawa OOO till Jul 10th
components/signin lgtm
6 years, 1 month ago (2014-10-23 19:27:18 UTC) #19
xiyuan
SLGTM https://codereview.chromium.org/646983008/diff/140001/chrome/browser/resources/gaia_auth_host/authenticator.js File chrome/browser/resources/gaia_auth_host/authenticator.js (right): https://codereview.chromium.org/646983008/diff/140001/chrome/browser/resources/gaia_auth_host/authenticator.js#newcode52 chrome/browser/resources/gaia_auth_host/authenticator.js:52: * @param {Authenticator.Listener=} listener An optional listener for ...
6 years, 1 month ago (2014-10-23 19:32:04 UTC) #20
guohui
https://codereview.chromium.org/646983008/diff/140001/chrome/browser/resources/gaia_auth_host/authenticator.js File chrome/browser/resources/gaia_auth_host/authenticator.js (right): https://codereview.chromium.org/646983008/diff/140001/chrome/browser/resources/gaia_auth_host/authenticator.js#newcode52 chrome/browser/resources/gaia_auth_host/authenticator.js:52: * @param {Authenticator.Listener=} listener An optional listener for events. ...
6 years, 1 month ago (2014-10-23 20:13:34 UTC) #21
guohui
+asvitkine for owner review of histograms.xml
6 years, 1 month ago (2014-10-23 20:14:27 UTC) #23
Alexei Svitkine (slow)
histograms lgtm, I didn't look at anything else
6 years, 1 month ago (2014-10-23 20:26:53 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/646983008/160001
6 years, 1 month ago (2014-10-24 02:05:52 UTC) #26
guohui
On 2014/10/24 02:05:52, I haz the power (commit-bot) wrote: > CQ is trying da patch. ...
6 years, 1 month ago (2014-10-24 15:54:13 UTC) #28
sky
browser_resources.grd LGTM
6 years, 1 month ago (2014-10-24 16:29:10 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/646983008/160001
6 years, 1 month ago (2014-10-24 16:30:41 UTC) #31
commit-bot: I haz the power
Committed patchset #5 (id:160001)
6 years, 1 month ago (2014-10-24 17:14:35 UTC) #32
commit-bot: I haz the power
6 years, 1 month ago (2014-10-24 17:15:20 UTC) #33
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/69cf14737441b102917f3773500e3ae8c6bea794
Cr-Commit-Position: refs/heads/master@{#301130}

Powered by Google App Engine
This is Rietveld 408576698