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

Issue 2378503002: Observe visibility of password inputs, for HTTP-bad phase 1 (Closed)

Created:
4 years, 2 months ago by estark
Modified:
4 years, 2 months ago
CC:
Aaron Boodman, abarth-chromium, blink-reviews, blink-reviews-api_chromium.org, blink-reviews-html_chromium.org, browser-components-watch_chromium.org, chromium-reviews, darin (slow to review), darin-cc_chromium.org, dglazkov+blink, estade+watch_chromium.org, gcasto+watchlist_chromium.org, jam, jdonnelly+autofillwatch_chromium.org, kinuko+watch, mlamouri+watch-content_chromium.org, qsr+mojo_chromium.org, rouslan+autofill_chromium.org, vabr+watchlistautofill_chromium.org, vabr+watchlistpasswordmanager_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Observe visibility of password inputs, for HTTP-bad phase 1 This CL is a step along the way to putting a warning in the omnibox when an insecure HTTP page displays a visible password field. When a password input field becomes visible, a Mojo IPC is sent to the browser process and handled by the ContentPasswordManagerDriver. At the moment ContentPasswordManagerDriver does nothing with this message, but in a follow-up CL, it will notify the WebContents which will cause a warning to appear in the omnibox when an HTTP page displays a visible password field. Design doc: https://docs.google.com/document/d/1xno6g6OnA7strcyzE-o_drevW8L0Mb6ZBEkjsiwa6x0/edit# BUG=647560 Committed: https://crrev.com/b3f84073ec1cb1222b32e7dc8d796d231a25efec Cr-Commit-Position: refs/heads/master@{#424809}

Patch Set 1 #

Patch Set 2 : fix components_unittests build failure #

Total comments: 4

Patch Set 3 : esprehn comments #

Patch Set 4 : fix browser-side binding #

Total comments: 2

Patch Set 5 : Split into separate PasswordVisibilityService #

Patch Set 6 : rebase #

Patch Set 7 : use BindingSet per dcheng's suggestion #

Total comments: 6

Patch Set 8 : esprehn comments #

Patch Set 9 : use createLayoutObject instead of IntersectionObserver #

Patch Set 10 : fix superclass createLayoutObject call #

Total comments: 17

Patch Set 11 : vabr, esprehn comments, and remove PasswordVisibilityService factory #

Patch Set 12 : nonsecure => insecure #

Patch Set 13 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+276 lines, -20 lines) Patch
M chrome/browser/chrome_content_browser_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +5 lines, -0 lines 0 comments Download
M components/password_manager/content/browser/DEPS View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M components/password_manager/content/browser/content_password_manager_driver.h View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +13 lines, -2 lines 0 comments Download
M components/password_manager/content/browser/content_password_manager_driver.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +13 lines, -2 lines 0 comments Download
M components/password_manager/content/browser/content_password_manager_driver_factory.h View 1 2 3 5 6 7 8 9 10 2 chunks +5 lines, -0 lines 0 comments Download
M components/password_manager/content/browser/content_password_manager_driver_factory.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +24 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/DEPS View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/html/forms/PasswordInputType.h View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +22 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/html/forms/PasswordInputTypeTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +164 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/html/forms/TextFieldInputType.h View 1 2 3 4 5 6 7 8 9 2 chunks +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/testing/DummyPageHolder.h View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +5 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/testing/DummyPageHolder.cpp View 1 2 3 4 5 2 chunks +10 lines, -8 lines 0 comments Download
M third_party/WebKit/public/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
A third_party/WebKit/public/platform/modules/sensitive_input_visibility/OWNERS View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
A + third_party/WebKit/public/platform/modules/sensitive_input_visibility/sensitive_input_visibility_service.mojom View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +5 lines, -4 lines 0 comments Download

Messages

Total messages: 89 (63 generated)
estark
esprehn, can you please review the Blink parts of this? vabr, can you please review ...
4 years, 2 months ago (2016-09-27 23:05:21 UTC) #4
esprehn
https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/web/ChromeClientImpl.cpp File third_party/WebKit/Source/web/ChromeClientImpl.cpp (right): https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/web/ChromeClientImpl.cpp#newcode1077 third_party/WebKit/Source/web/ChromeClientImpl.cpp:1077: webframe->autofillClient()->passwordFieldBecameVisible(); Please use mojo directly instead, I don't want ...
4 years, 2 months ago (2016-09-27 23:30:20 UTC) #9
esprehn
https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/core/html/HTMLInputElement.cpp File third_party/WebKit/Source/core/html/HTMLInputElement.cpp (right): https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/core/html/HTMLInputElement.cpp#newcode1902 third_party/WebKit/Source/core/html/HTMLInputElement.cpp:1902: m_passwordVisibilityObserver = new ElementVisibilityObserver(this, WTF::bind(&HTMLInputElement::onVisibilityChangedForPasswordInput, wrapWeakPersistent(this))); Lets make this ...
4 years, 2 months ago (2016-09-27 23:32:36 UTC) #10
estark
https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/web/ChromeClientImpl.cpp File third_party/WebKit/Source/web/ChromeClientImpl.cpp (right): https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/web/ChromeClientImpl.cpp#newcode1077 third_party/WebKit/Source/web/ChromeClientImpl.cpp:1077: webframe->autofillClient()->passwordFieldBecameVisible(); On 2016/09/27 23:30:19, esprehn wrote: > Please use ...
4 years, 2 months ago (2016-09-27 23:35:42 UTC) #11
estark
https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/web/ChromeClientImpl.cpp File third_party/WebKit/Source/web/ChromeClientImpl.cpp (right): https://codereview.chromium.org/2378503002/diff/20001/third_party/WebKit/Source/web/ChromeClientImpl.cpp#newcode1077 third_party/WebKit/Source/web/ChromeClientImpl.cpp:1077: webframe->autofillClient()->passwordFieldBecameVisible(); On 2016/09/27 23:35:42, estark wrote: > On 2016/09/27 ...
4 years, 2 months ago (2016-09-27 23:39:42 UTC) #12
estark
Ok, I've taken a stab at esprehn's comments, though I'm not sure that I did ...
4 years, 2 months ago (2016-09-28 04:54:09 UTC) #21
vabr (Chromium)
Hi estark@, The changes in components/password_manager LGTM, assuming you fix the DEPS as specified below. ...
4 years, 2 months ago (2016-09-28 08:49:47 UTC) #24
estark
esprehn, could you please take another look? I seem to be doing something Mojo-y wrong, ...
4 years, 2 months ago (2016-10-06 02:49:39 UTC) #31
dcheng
It looks like the Binding in the browser-side impl is getting rebound. Two possible solutions: ...
4 years, 2 months ago (2016-10-06 05:12:35 UTC) #35
estark
On 2016/10/06 05:12:35, dcheng wrote: > It looks like the Binding in the browser-side impl ...
4 years, 2 months ago (2016-10-06 13:04:47 UTC) #37
estark
Friendly ping to esprehn
4 years, 2 months ago (2016-10-07 16:56:07 UTC) #42
esprehn
https://codereview.chromium.org/2378503002/diff/120001/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp File third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp (right): https://codereview.chromium.org/2378503002/diff/120001/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp#newcode106 third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp:106: mojom::blink::SensitiveInputVisibilityServicePtr sensitiveInputServicePtr; should we be checking isSecureContext() here to ...
4 years, 2 months ago (2016-10-07 21:56:38 UTC) #43
estark
For posterity, bots are red because of crbug.com/654082 and crbug.com/654079 -- thanks, Elliott, for investigating ...
4 years, 2 months ago (2016-10-07 23:26:03 UTC) #46
estark
As discussed off-thread, I changed this to just use createLayoutObject() instead of an IntersectionObserver. That ...
4 years, 2 months ago (2016-10-11 15:45:19 UTC) #57
vabr (Chromium)
components/password_manager LGTM with the comments below. I explicitly acknowledge that the new code is not ...
4 years, 2 months ago (2016-10-11 16:52:45 UTC) #58
esprehn
https://codereview.chromium.org/2378503002/diff/180001/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp File third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp (right): https://codereview.chromium.org/2378503002/diff/180001/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp#newcode92 third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp:92: if (!element().document().frame() || element().document().isSecureContext()) { We can't get here ...
4 years, 2 months ago (2016-10-11 22:15:07 UTC) #59
estark
https://codereview.chromium.org/2378503002/diff/180001/components/password_manager/content/browser/password_visibility_service_factory.cc File components/password_manager/content/browser/password_visibility_service_factory.cc (right): https://codereview.chromium.org/2378503002/diff/180001/components/password_manager/content/browser/password_visibility_service_factory.cc#newcode31 components/password_manager/content/browser/password_visibility_service_factory.cc:31: base::WrapUnique(new PasswordVisibilityServiceFactory(web_contents)); On 2016/10/11 16:52:45, vabr (Chromium) wrote: > ...
4 years, 2 months ago (2016-10-11 23:45:14 UTC) #68
esprehn
lgtm, I think we usually would say "InsecureContext" instead of "NonsecureContext" like you did here ...
4 years, 2 months ago (2016-10-11 23:49:13 UTC) #69
estark
On 2016/10/11 23:49:13, esprehn wrote: > lgtm, I think we usually would say "InsecureContext" instead ...
4 years, 2 months ago (2016-10-11 23:50:42 UTC) #72
estark
+meacer for IPC review of third_party/WebKit/public/platform/modules/sensitive_input_visibility/sensitive_input_visibility_service.mojom, please
4 years, 2 months ago (2016-10-11 23:55:28 UTC) #75
meacer
On 2016/10/11 23:55:28, estark wrote: > +meacer for IPC review of > third_party/WebKit/public/platform/modules/sensitive_input_visibility/sensitive_input_visibility_service.mojom, > please ...
4 years, 2 months ago (2016-10-12 00:00:30 UTC) #78
vabr (Chromium)
(Still LGTM. No comments, just two Acks.) https://codereview.chromium.org/2378503002/diff/180001/components/password_manager/content/browser/password_visibility_service_factory.cc File components/password_manager/content/browser/password_visibility_service_factory.cc (right): https://codereview.chromium.org/2378503002/diff/180001/components/password_manager/content/browser/password_visibility_service_factory.cc#newcode31 components/password_manager/content/browser/password_visibility_service_factory.cc:31: base::WrapUnique(new PasswordVisibilityServiceFactory(web_contents)); ...
4 years, 2 months ago (2016-10-12 09:45:22 UTC) #81
estark
https://codereview.chromium.org/2378503002/diff/180001/components/password_manager/content/browser/password_visibility_service_factory.h File components/password_manager/content/browser/password_visibility_service_factory.h (right): https://codereview.chromium.org/2378503002/diff/180001/components/password_manager/content/browser/password_visibility_service_factory.h#newcode1 components/password_manager/content/browser/password_visibility_service_factory.h:1: // Copyright 2016 The Chromium Authors. All rights reserved. ...
4 years, 2 months ago (2016-10-12 15:53:44 UTC) #82
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2378503002/260001
4 years, 2 months ago (2016-10-12 15:57:44 UTC) #85
commit-bot: I haz the power
Failed to apply the patch. On branch working_branch Your branch is up-to-date with 'origin/refs/pending/heads/master'. nothing ...
4 years, 2 months ago (2016-10-12 19:03:50 UTC) #87
commit-bot: I haz the power
4 years, 2 months ago (2016-10-12 19:05:17 UTC) #89
Message was sent while issue was closed.
Patchset 13 (id:??) landed as
https://crrev.com/b3f84073ec1cb1222b32e7dc8d796d231a25efec
Cr-Commit-Position: refs/heads/master@{#424809}

Powered by Google App Engine
This is Rietveld 408576698