Password Manager should work well with Site isolation |
|||||||||||
Issue description
,
May 15 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/67528afa905ab02f9f4830267b7ace84abe168d5 commit 67528afa905ab02f9f4830267b7ace84abe168d5 Author: Chris Pickel <sfiera@chromium.org> Date: Tue May 15 09:34:44 2018 Revert "Change some password browser tests to produce user input." This reverts commit b54641a0c86a76359b8332208aff6aef4b48563b. Reason for revert: Findit has detected a flake at test All/PasswordManagerBrowserTestWithViewsFeature.NoFormElementTest/1. Culprit (70.0% confidence): https://chromium-review.googlesource.com/q/I4dd593c829c25e8f45ad816f6a3ddd3b941d76af Regression range: None Analysis: https://findit-for-me.appspot.com/waterfall/flake?key=ag9zfmZpbmRpdC1mb3ItbWVyxAELEhdNYXN0ZXJGbGFrZUFuYWx5c2lzUm9vdCKNAWNocm9taXVtLndpbi9XaW4gNyBUZXN0cyB4NjQgKDEpLzM4NDY3L2Jyb3dzZXJfdGVzdHMvUVd4c0wxQmhjM04zYjNKa1RXRnVZV2RsY2tKeWIzZHpaWEpVWlhOMFYybDBhRlpwWlhkelJtVmhkSFZ5WlM1T2IwWnZjbTFGYkdWdFpXNTBWR1Z6ZEM4eAwLEhNNYXN0ZXJGbGFrZUFuYWx5c2lzGAEM Original change's description: > Change some password browser tests to produce user input. > > This is a preparation CL for removing some code from PasswordAutofillAgent. Most of the tests in the file do not test the real behavior. We fill the username/password using JavaScript and it's a different code path from typing them manually. > The tests changed here are necessary to update. Let's land them first and observe if it introduces some flakiness before proceeding. > > Bug: 842643 > Change-Id: I4dd593c829c25e8f45ad816f6a3ddd3b941d76af > Reviewed-on: https://chromium-review.googlesource.com/1054675 > Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org> > Reviewed-by: Dominic Battré <battre@chromium.org> > Cr-Commit-Position: refs/heads/master@{#558296} TBR=battre@chromium.org,vasilii@chromium.org Change-Id: I3f54c76a4e3bb797f894750b16e1cdd6970e0d2b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 842643 Reviewed-on: https://chromium-review.googlesource.com/1059168 Reviewed-by: Chris Pickel <sfiera@chromium.org> Commit-Queue: Chris Pickel <sfiera@chromium.org> Cr-Commit-Position: refs/heads/master@{#558651} [modify] https://crrev.com/67528afa905ab02f9f4830267b7ace84abe168d5/chrome/browser/password_manager/password_manager_browsertest.cc [modify] https://crrev.com/67528afa905ab02f9f4830267b7ace84abe168d5/chrome/browser/password_manager/password_manager_test_base.cc [modify] https://crrev.com/67528afa905ab02f9f4830267b7ace84abe168d5/chrome/browser/password_manager/password_manager_test_base.h
,
May 15 2018
Captured this from the test: [ RUN ] All/PasswordManagerBrowserTestWithViewsFeature.NoFormElementTest/1 [1932:4532:0515/010535.806:ERROR:install_util.cc(589)] Unable to create registry key HKLM\SOFTWARE\Policies\Chromium for reading result=2 [1932:4100:0515/010535.837:WARNING:discovery_network_list_win.cc(195)] Failed to open Wlan client handle: 1062 [1932:4532:0515/010535.837:WARNING:chrome_browser_main_win.cc(630)] Command line too long for RegisterApplicationRestart: --brave-new-test-launcher --cfi-diag=0 --gtest_also_run_disabled_tests --gtest_filter=All/PasswordManagerBrowserTestWithViewsFeature.NoFormElementTest/1 --single_process --test-launcher-bot-mode --test-launcher-output="C:\Users\CHROME~2\AppData\Local\Temp\scoped_dir3752_9973\results3752_18108\test_results.xml" --test-launcher-retry-limit=0 --test-launcher-summary-output="e:\b\s\w\ioiddmd8\output.json" --user-data-dir="C:\Users\CHROME~2\AppData\Local\Temp\scoped_dir3752_9973\d3752_896" --disable-offline-auto-reload --no-first-run --no-default-browser-check --enable-logging=stderr --disable-default-apps --wm-window-animations-disabled --disable-component-update --test-type=browser --force-color-profile=srgb --disable-zero-browsers-open-for-tests --ipc-connection-timeout=30 --allow-file-access-from-files --dom-automation --log-gpu-control-list-decisions --disable-backgrounding-occluded-windows --disable-gl-drawing-for-tests --override-use-software-gl-for-tests --force-color-profile=srgb --disable-compositor-ukm-for-tests --enable-features=AutofillExpandedPopupViews,TestFeatureForBrowserTest1 --disable-features=NetworkPrediction,TestFeatureForBrowserTest2 --flag-switches-begin --flag-switches-end --restore-last-session about:blank [1932:4532:0515/010536.006:INFO:CONSOLE(0)] "[DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o", source: http://127.0.0.1:61343/password/no_form_element.html (0) [1932:4012:0515/010536.017:WARNING:embedded_test_server.cc(229)] Request not handled. Returning 404: /favicon.ico [1932:4532:0515/010536.059:ERROR:test_password_store.cc(198)] NOT IMPLEMENTED [1932:4532:0515/010536.069:INFO:CONSOLE(0)] "[DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o", source: http://127.0.0.1:61343/password/no_form_element.html (0) [1/1] All/PasswordManagerBrowserTestWithViewsFeature.NoFormElementTest/1 (TIMED OUT) 1 test timed out: All/PasswordManagerBrowserTestWithViewsFeature.NoFormElementTest/1 (../../chrome/browser/password_manager/password_manager_browsertest.cc:239)
,
May 15 2018
Better info is on Linux. Looking into it. [ RUN ] All/PasswordManagerBrowserTestWithViewsFeature.NoFormElementTest/1 Xlib: extension "RANDR" missing on display ":99". [9562:9645:0514/211512.775036:ERROR:bus.cc(394)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix") [9562:9562:0514/211512.833205:WARNING:password_store_factory.cc(250)] Using basic (unencrypted) store for password storage. See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_password_storage.md for more information about password storage options. (browser_tests:9562): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Unknown or unsupported transport 'disabled' for address 'disabled:' [9562:9562:0514/211513.390454:WARNING:gaia_auth_fetcher.cc(902)] Could not reach Google Accounts servers: errno -11 [9562:9562:0514/211514.362795:WARNING:gaia_auth_fetcher.cc(902)] Could not reach Google Accounts servers: errno -102 [9562:9562:0514/211514.478388:INFO:CONSOLE(0)] "[DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o", source: http://127.0.0.1:40457/password/no_form_element.html (0) [9562:9762:0514/211514.600310:WARNING:embedded_test_server.cc(229)] Request not handled. Returning 404: /favicon.ico [9562:9562:0514/211515.452286:ERROR:test_password_store.cc(198)] Not implemented reached in virtual void password_manager::TestPasswordStore::AddSiteStatsImpl(const password_manager::InteractionsStats &) [9562:9562:0514/211515.779421:INFO:CONSOLE(0)] "[DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o", source: http://127.0.0.1:40457/password/no_form_element.html (0) [9562:9562:0514/211517.184780:WARNING:gaia_auth_fetcher.cc(902)] Could not reach Google Accounts servers: errno -102 [9562:9562:0514/211525.751809:WARNING:gaia_auth_fetcher.cc(902)] Could not reach Google Accounts servers: errno -102 [9562:9562:0514/211547.970732:WARNING:gaia_auth_fetcher.cc(902)] Could not reach Google Accounts servers: errno -102 BrowserTestBase received signal: Terminated. Backtrace: #0 0x00000826e651 in __interceptor_backtrace /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:3980:13 #1 0x00001508b50c in base::debug::StackTrace::StackTrace(unsigned long) ./../../base/debug/stack_trace_posix.cc:808:41 #2 0x000016555e96 in content::(anonymous namespace)::DumpStackTraceSignalHandler(int) ./../../content/public/test/browser_test_base.cc:87:5 #3 0x7fc011fdccb0 in killpg ??:? #4 0x7fc011fdccb0 in ?? ??:0 #5 0x7fc012096c9d in __poll /build/eglibc-ripdx6/eglibc-2.19/io/../sysdeps/unix/syscall-template.S:81:0 #6 0x00000826a798 in __interceptor_poll /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:3802:13 #7 0x7fc017f76fe4 in g_main_context_dispatch ??:? #8 0x7fc017f76fe4 in ?? ??:0 #9 0x7fc017f770ec in g_main_context_iteration ??:0:0 #10 0x000014e80a76 in base::MessagePumpGlib::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_glib.cc:305:30 #11 0x000014e6c212 in base::MessageLoop::Run(bool) ./../../base/message_loop/message_loop.cc:271:12 #12 0x000014f1613b in base::RunLoop::Run() ./../../base/run_loop.cc:131:14 #13 0x0000165fa709 in RunThisRunLoop ./../../content/public/test/test_utils.cc:128:13 #14 0x0000165fa709 in content::MessageLoopRunner::Run() ./../../content/public/test/test_utils.cc:301:0 #15 0x00001656c355 in content::DOMMessageQueue::WaitForMessage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) ./../../content/public/test/browser_test_utils.cc:1788:27 #16 0x000016565b94 in content::(anonymous namespace)::ExecuteScriptHelper(content::RenderFrameHost*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, std::__1::unique_ptr<base::Value, std::__1::default_delete<base::Value> >*) ./../../content/public/test/browser_test_utils.cc:180:26 #17 0x000016567393 in content::ExecuteScriptWithoutUserGestureAndExtractInt(content::ToRenderFrameHost const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int*) ./../../content/public/test/browser_test_utils.cc:1163:10 #18 0x0000291aeb10 in PasswordManagerBrowserTestBase::WaitForElementValue(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) ./../../chrome/browser/password_manager/password_manager_test_base.cc:614:3 #19 0x0000291ac565 in WaitForElementValue ./../../chrome/browser/password_manager/password_manager_test_base.cc:563:3 #20 0x0000291ac565 in PasswordManagerBrowserTestBase::VerifyPasswordIsSavedAndFilled(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) ./../../chrome/browser/password_manager/password_manager_test_base.cc:531:0 #21 0x00000917432a in password_manager::PasswordManagerBrowserTestWithViewsFeature_NoFormElementTest_Test::RunTestOnMainThread() ./../../chrome/browser/password_manager/password_manager_browsertest.cc:2397:3 #22 0x0000165555f2 in content::BrowserTestBase::ProxyRunTestOnMainThreadLoop() ./../../content/public/test/browser_test_base.cc:385:5 #23 0x000015309a7d in Run ./../../base/callback.h:125:12 #24 0x000015309a7d in ChromeBrowserMainParts::PreMainMessageLoopRunImpl() ./../../chrome/browser/chrome_browser_main.cc:2082:0 #25 0x000015306b5c in ChromeBrowserMainParts::PreMainMessageLoopRun() ./../../chrome/browser/chrome_browser_main.cc:1474:18 #26 0x00000f71df55 in content::BrowserMainLoop::PreMainMessageLoopRun() ./../../content/browser/browser_main_loop.cc:961:13 #27 0x00001086d8b8 in Run ./../../base/callback.h:125:12 #28 0x00001086d8b8 in content::StartupTaskRunner::RunAllTasksNow() ./../../content/browser/startup_task_runner.cc:44:0 #29 0x00000f719df5 in content::BrowserMainLoop::CreateStartupTasks() ./../../content/browser/browser_main_loop.cc:872:25 #30 0x00000f726cab in content::BrowserMainRunnerImpl::Initialize(content::MainFunctionParams const&, std::__1::unique_ptr<content::BrowserProcessSubThread, std::__1::default_delete<content::BrowserProcessSubThread> >) ./../../content/browser/browser_main_runner_impl.cc:148:15 #31 0x00000f712bd2 in content::BrowserMain(content::MainFunctionParams const&, std::__1::unique_ptr<content::BrowserProcessSubThread, std::__1::default_delete<content::BrowserProcessSubThread> >) ./../../content/browser/browser_main.cc:47:20 #32 0x0000149ef3ed in content::RunBrowserProcessMain(content::MainFunctionParams const&, content::ContentMainDelegate*, std::__1::unique_ptr<content::BrowserProcessSubThread, std::__1::default_delete<content::BrowserProcessSubThread> >) ./../../content/app/content_main_runner_impl.cc:619:10 #33 0x0000149f1fc3 in content::ContentMainRunnerImpl::Run() ./../../content/app/content_main_runner_impl.cc:959:12 #34 0x00001bc0090e in service_manager::Main(service_manager::MainParams const&) ./../../services/service_manager/embedder/main.cc:459:29 #35 0x0000149ec281 in content::ContentMain(content::ContentMainParams const&) ./../../content/app/content_main.cc:19:10 #36 0x00001655421b in content::BrowserTestBase::SetUp() ./../../content/public/test/browser_test_base.cc:323:3 #37 0x0000151878ed in InProcessBrowserTest::SetUp() ./../../chrome/test/base/in_process_browser_test.cc:243:20 #38 0x00000c6e86b3 in testing::Test::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:0:0 #39 0x00000c6ea9c5 in testing::TestInfo::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2667:11 #40 0x00000c6ebdc7 in testing::TestCase::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:2785:28 #41 0x00000c711af7 in testing::internal::UnitTestImpl::RunAllTests() ./../../third_party/googletest/src/googletest/src/gtest.cc:5047:43 #42 0x00000c710d44 in testing::UnitTest::Run() ./../../third_party/googletest/src/googletest/src/gtest.cc:0:0 #43 0x0000151d2369 in RUN_ALL_TESTS ./../../third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46 #44 0x0000151d2369 in base::TestSuite::Run() ./../../base/test/test_suite.cc:275:0 #45 0x000014dc2580 in ChromeTestSuiteRunner::RunTestSuite(int, char**) ./../../chrome/test/base/chrome_test_launcher.cc:65:38 #46 0x0000165e76b1 in content::LaunchTests(content::TestLauncherDelegate*, unsigned long, int, char**) ./../../content/public/test/test_launcher.cc:625:31 #47 0x000014dc335c in LaunchChromeTests(unsigned long, content::TestLauncherDelegate*, int, char**) ./../../chrome/test/base/chrome_test_launcher.cc:170:10 #48 0x000014dc237c in main ./../../chrome/test/base/browser_tests_main.cc:36:10 #49 0x7fc011fc7f45 in __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:287:0 #50 0x00000822202a in _start ??:0:0 [687/814] All/PasswordManagerBrowserTestWithViewsFeature.NoFormElementTest/1 (TIMED OUT)
,
May 15 2018
There is a bunch of interesting tests failures: ../../chrome/browser/password_manager/password_manager_browsertest.cc:675: Failure Value of: BubbleObserver(WebContents()).IsSavePromptShownAutomatically() Actual: false Expected: true I expected this kinda. The tests should be interactive UI tests now. However, the most severe flakiness that caused the revert is different. It's caused by the new condition I added to test that the username was filled. It looks like a production bug and I'm gonna investigate it separately.
,
May 15 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d7267e5db1f8df25950e251cbd2a966ac90bb1c7 commit d7267e5db1f8df25950e251cbd2a966ac90bb1c7 Author: Vasilii Sukhanov <vasilii@chromium.org> Date: Tue May 15 18:40:39 2018 Reland: Change some password browser tests to produce user input. Previous attempt: https://chromium-review.googlesource.com/c/chromium/src/+/1054675 This is a preparation CL for removing some code from PasswordAutofillAgent. Most of the tests in the file do not test the real behavior. We fill the username/password using JavaScript and it's a different code path from typing them manually. The tests changed here are necessary to update. Let's land them first and observe if it introduces some flakiness before proceeding. They are interactive UI tests because actual typing is involved. Bug: 842643 Change-Id: I81e8f444374012272433e514d12d398d850a15b9 Reviewed-on: https://chromium-review.googlesource.com/1059627 Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org> Reviewed-by: Vaclav Brozek <vabr@chromium.org> Cr-Commit-Position: refs/heads/master@{#558789} [modify] https://crrev.com/d7267e5db1f8df25950e251cbd2a966ac90bb1c7/chrome/browser/password_manager/password_manager_browsertest.cc [add] https://crrev.com/d7267e5db1f8df25950e251cbd2a966ac90bb1c7/chrome/browser/password_manager/password_manager_interactive_test_base.cc [add] https://crrev.com/d7267e5db1f8df25950e251cbd2a966ac90bb1c7/chrome/browser/password_manager/password_manager_interactive_test_base.h [modify] https://crrev.com/d7267e5db1f8df25950e251cbd2a966ac90bb1c7/chrome/browser/password_manager/password_manager_interactive_uitest.cc [modify] https://crrev.com/d7267e5db1f8df25950e251cbd2a966ac90bb1c7/chrome/browser/password_manager/password_manager_test_base.cc [modify] https://crrev.com/d7267e5db1f8df25950e251cbd2a966ac90bb1c7/chrome/browser/password_manager/password_manager_test_base.h [modify] https://crrev.com/d7267e5db1f8df25950e251cbd2a966ac90bb1c7/chrome/test/BUILD.gn
,
May 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/946f221e4d06a96a6e6b3bf898c64403b99bd562 commit 946f221e4d06a96a6e6b3bf898c64403b99bd562 Author: Vasilii Sukhanov <vasilii@chromium.org> Date: Wed May 16 19:42:55 2018 Add UKM metrics for password submission indicator. The CL is created in response to https://chromium-review.googlesource.com/c/chromium/src/+/1057235 SubmissionIndicatorEvent is already recorded via UMA. It indicates the event that made the password manager believe that there was a submission. The UKM is to be recorded only when a password is saved. It means that the submission detectioln was probably correct. Bug: 842643 Change-Id: Ic381ee93de7459d7d942a9ee1b27d43e39095fc7 Reviewed-on: https://chromium-review.googlesource.com/1060034 Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Reviewed-by: Dominic Battré <battre@chromium.org> Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org> Cr-Commit-Position: refs/heads/master@{#559236} [modify] https://crrev.com/946f221e4d06a96a6e6b3bf898c64403b99bd562/components/password_manager/core/browser/password_form_manager.cc [modify] https://crrev.com/946f221e4d06a96a6e6b3bf898c64403b99bd562/components/password_manager/core/browser/password_form_metrics_recorder.cc [modify] https://crrev.com/946f221e4d06a96a6e6b3bf898c64403b99bd562/components/password_manager/core/browser/password_form_metrics_recorder.h [modify] https://crrev.com/946f221e4d06a96a6e6b3bf898c64403b99bd562/tools/metrics/ukm/ukm.xml
,
May 22 2018
,
May 23 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3 commit 7cfbc45eb1e007c6c92ff2de891578cde29ae1e3 Author: Vasilii Sukhanov <vasilii@chromium.org> Date: Wed May 23 15:17:37 2018 Remove part of PasswordAutofillAgent::OnProbablyFormSubmitted functionality. When the main frame starts navigation, PasswordAutofillAgent treats it as a form submission. It's correct to do so when there was a form (provisionally saved) the user interacted with. However, in the opposite case PasswordAutofillAgent is desperately looking for for forms/controls to report as submitted. That's wrong: - none of the tests reproduces the flow on purpose. Still the CL is blocked on https://chromium-review.googlesource.com/c/chromium/src/+/1054675 because of implementation details. - AcceptedSaveUpdateSubmissionIndicatorEvent and SuccessfulSubmissionIndicatorEvent UMA metrics say that in ~0.6% of successful submissions it was detected via the code path being discussed. However, when it comes to successfully saved/updated credentials it goes down to 0.2%. - I don't know a site that works only due to the event being removed. - There is at least one real case when it produces the bubble incorrectly. A page contains a form with the placeholders. User interacts with the page (but not with the form) and JS causes frame navigation. In such a case Chrome offers to save the placeholders. Bug: 842643 Change-Id: Ib85d90a6fd4a3ed76535382bc5df308af26ad590 Reviewed-on: https://chromium-review.googlesource.com/1057235 Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: Vadym Doroshenko <dvadym@chromium.org> Cr-Commit-Position: refs/heads/master@{#561089} [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/components/autofill/content/common/autofill_types.mojom [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/components/autofill/content/common/autofill_types_struct_traits.cc [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/components/autofill/content/renderer/password_autofill_agent.cc [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/components/autofill/core/common/password_form.cc [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/components/autofill/core/common/password_form.h [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/components/autofill/core/common/save_password_progress_logger.cc [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/components/autofill/core/common/save_password_progress_logger.h [modify] https://crrev.com/7cfbc45eb1e007c6c92ff2de891578cde29ae1e3/tools/metrics/histograms/enums.xml
,
May 23 2018
Comment 8: Thanks for adding the component! I hadn't been following this. vasilii@: Can you comment on the impact of this to users in M67, when Site Isolation is targeting launch on desktop? It looks like these changes are all in M68, so if there are regressions we might have to live with them for a milestone.
,
May 24 2018
We don't expect major regressions. The only flow I know about is an XHR form submit from an iFrame navigating the main frame to a cross-origin. It's not a common case.
,
May 24 2018
Thanks! That's good to hear.
,
May 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/759e8869b881071c8fab9697e4ee7a5ec08b4bea commit 759e8869b881071c8fab9697e4ee7a5ec08b4bea Author: Vasilii Sukhanov <vasilii@chromium.org> Date: Wed May 30 15:46:43 2018 Introduce start navigation handling in the browser process for the password manager. The functionality is supposed to replace partially FormTracker because we plan to handle some events in the browser process. Bug: 842643 Change-Id: Ic0c763931c51cad7abf144e72d48c1827bc3776f Reviewed-on: https://chromium-review.googlesource.com/1076428 Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org> Reviewed-by: Vadym Doroshenko <dvadym@chromium.org> Cr-Commit-Position: refs/heads/master@{#562849} [modify] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/chrome/browser/password_manager/chrome_password_manager_client.cc [modify] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/content/browser/BUILD.gn [add] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/content/browser/form_submission_tracker_util.cc [add] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/content/browser/form_submission_tracker_util.h [add] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/content/browser/form_submission_tracker_util_unittest.cc [modify] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/core/browser/BUILD.gn [add] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/core/browser/form_submission_observer.h [modify] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/core/browser/password_manager.cc [modify] https://crrev.com/759e8869b881071c8fab9697e4ee7a5ec08b4bea/components/password_manager/core/browser/password_manager.h
,
Jun 15 2018
Just checking in. Is there more work to do after r562849 (69.0.3446.0)? If so, will the remaining fixes make it into M69? Thanks!
,
Jun 15 2018
Yes, I should land a couple of patches to this bug. Right now I'm blocked on dvadym@ doing refactoring. Vadym, when do you foresee the new class to be ready?
,
Jun 15 2018
The plan is to launch the new refactoring in M-69. It will be ready to implement changes needed to this bug in 2-3 weeks (and as far as I understand it will be relatively easy)
,
Jun 29 2018
Thanks. dvadym@: Can you list the bug for the refactoring you mentioned, so we can follow along and know when we can proceed with this one? (For reference, the branch cut is July 19.)
,
Aug 7
The project is basically 1 CL away from the end. It's blocked on the current refactoring. I move the bug to the robustness squad for handling.
,
Sep 28
A refactoring from the bug 831123 which blocks this issue took more time that it was expected. Not it is almost finished. We're planing to launch it with Finch in M-71 (if everything goes smoothly) or in M-72 (otherwise).
,
Nov 20
,
Nov 23
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/773c0cc5bccf3b371e5e820d92d3412735fe7280 commit 773c0cc5bccf3b371e5e820d92d3412735fe7280 Author: Vadym Doroshenko <dvadym@chromium.org> Date: Fri Nov 23 12:03:42 2018 Provisionally save password form when saving manual fallback is shown. Before this CL on saving manual fallback: 1.User keystroke happen 2.FormData received in PasswordManager for manual fallback 3.Corresponding NewPasswordFormManager (NPFM) is found 4.NPFM is cloned. 5.The FormData is passed to the cloned NPFM. 6.The cloned NPFM is sent to UI The problem with that approach that PasswordManager has no information about user input, which might be used for offering save prompt. The similar logic is implemented in the renderer (where it's called Save on provisional load start). But because of the site isolation the renderer path will disappear soon. But we can do everything from browser process, just by swaping steps 4 and 5, namely to pass FormData to NPFM and then to clone. It's implemented in this CL. As result PasswordManager always has the last user input and can propose saving when the password form is disappeared after navigation (that's basically the same as now but with the renderer path). Along the way SetSubmittedFormIfIsManaged renamed to ProvisionallySaveIfIsManaged since now it's called on each typing not only on submit. Bug: 842643, 831123 Change-Id: If47c5cb3aa5e411818c49e359cd10732a0131ce3 Reviewed-on: https://chromium-review.googlesource.com/c/1348060 Commit-Queue: Vadym Doroshenko <dvadym@chromium.org> Reviewed-by: Vaclav Brozek <vabr@chromium.org> Cr-Commit-Position: refs/heads/master@{#610577} [modify] https://crrev.com/773c0cc5bccf3b371e5e820d92d3412735fe7280/components/password_manager/core/browser/new_password_form_manager.cc [modify] https://crrev.com/773c0cc5bccf3b371e5e820d92d3412735fe7280/components/password_manager/core/browser/new_password_form_manager.h [modify] https://crrev.com/773c0cc5bccf3b371e5e820d92d3412735fe7280/components/password_manager/core/browser/new_password_form_manager_unittest.cc [modify] https://crrev.com/773c0cc5bccf3b371e5e820d92d3412735fe7280/components/password_manager/core/browser/password_manager.cc [modify] https://crrev.com/773c0cc5bccf3b371e5e820d92d3412735fe7280/components/password_manager/core/browser/password_manager.h [modify] https://crrev.com/773c0cc5bccf3b371e5e820d92d3412735fe7280/components/password_manager/core/browser/password_manager_unittest.cc
,
Dec 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4f009f4c944662c1eab47d5a7584f24eec1ddf6e commit 4f009f4c944662c1eab47d5a7584f24eec1ddf6e Author: Vadym Doroshenko <dvadym@chromium.org> Date: Sat Dec 08 08:41:15 2018 Propagate information about navigation to DidMainFrameNavigate. Navigations that are renderer initiated and not link clicked initiated are considered as maybe form submission. And PasswordManager checks whether it was successful submission (by checking that a form in which the user typed is absent after navigation finished). This CL implements propagating that navigation was renderer initiated to PasswordManager. Along the way form_submission_tracker_util.h was NotifyOnStartNavigation was renamed to NotifyDidNavigateMainFrame and PasswordManager::OnStartNavigation is removed since DidNavigateMainFrame is used submission detection. Bug: 912134 , 831123, 842643 Change-Id: I3c6404ac2fbe5f8489541ab551f6a338b650f21c Reviewed-on: https://chromium-review.googlesource.com/c/1363193 Reviewed-by: Eugene But <eugenebut@chromium.org> Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org> Commit-Queue: Vadym Doroshenko <dvadym@chromium.org> Cr-Commit-Position: refs/heads/master@{#614962} [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/chrome/browser/password_manager/chrome_password_manager_client.cc [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/chrome/browser/password_manager/password_manager_browsertest.cc [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/content/browser/content_password_manager_driver.cc [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/content/browser/form_submission_tracker_util.cc [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/content/browser/form_submission_tracker_util.h [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/content/browser/form_submission_tracker_util_unittest.cc [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/core/browser/form_submission_observer.h [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/core/browser/password_manager.cc [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/core/browser/password_manager.h [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/components/password_manager/core/browser/password_manager_unittest.cc [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/ios/chrome/browser/passwords/password_controller.mm [modify] https://crrev.com/4f009f4c944662c1eab47d5a7584f24eec1ddf6e/ios/web_view/internal/passwords/cwv_password_controller.mm
,
Dec 12
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b10d17c23b26f133a42d8757d67e39fcdbffb6ce commit b10d17c23b26f133a42d8757d67e39fcdbffb6ce Author: Vadym Doroshenko <dvadym@chromium.org> Date: Wed Dec 12 18:18:26 2018 Propagate information about navigation to DidMainFrameNavigate. Navigations that are renderer initiated and not link clicked initiated are considered as maybe form submission. And PasswordManager checks whether it was successful submission (by checking that a form in which the user typed is absent after navigation finished). This CL implements propagating that navigation was renderer initiated to PasswordManager. Along the way form_submission_tracker_util.h was NotifyOnStartNavigation was renamed to NotifyDidNavigateMainFrame and PasswordManager::OnStartNavigation is removed since DidNavigateMainFrame is used submission detection. TBR=dvadym@chromium.org (cherry picked from commit 4f009f4c944662c1eab47d5a7584f24eec1ddf6e) Bug: 912134 , 831123, 842643 Change-Id: I3c6404ac2fbe5f8489541ab551f6a338b650f21c Reviewed-on: https://chromium-review.googlesource.com/c/1363193 Reviewed-by: Eugene But <eugenebut@chromium.org> Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org> Commit-Queue: Vadym Doroshenko <dvadym@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#614962} Reviewed-on: https://chromium-review.googlesource.com/c/1374351 Reviewed-by: Vadym Doroshenko <dvadym@chromium.org> Cr-Commit-Position: refs/branch-heads/3626@{#291} Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437} [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/chrome/browser/password_manager/chrome_password_manager_client.cc [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/chrome/browser/password_manager/password_manager_browsertest.cc [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/content/browser/content_password_manager_driver.cc [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/content/browser/form_submission_tracker_util.cc [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/content/browser/form_submission_tracker_util.h [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/content/browser/form_submission_tracker_util_unittest.cc [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/core/browser/form_submission_observer.h [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/core/browser/password_manager.cc [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/core/browser/password_manager.h [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/components/password_manager/core/browser/password_manager_unittest.cc [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/ios/chrome/browser/passwords/password_controller.mm [modify] https://crrev.com/b10d17c23b26f133a42d8757d67e39fcdbffb6ce/ios/web_view/internal/passwords/cwv_password_controller.mm
,
Dec 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b10d17c23b26f133a42d8757d67e39fcdbffb6ce Commit: b10d17c23b26f133a42d8757d67e39fcdbffb6ce Author: dvadym@chromium.org Commiter: dvadym@chromium.org Date: 2018-12-12 18:18:26 +0000 UTC Propagate information about navigation to DidMainFrameNavigate. Navigations that are renderer initiated and not link clicked initiated are considered as maybe form submission. And PasswordManager checks whether it was successful submission (by checking that a form in which the user typed is absent after navigation finished). This CL implements propagating that navigation was renderer initiated to PasswordManager. Along the way form_submission_tracker_util.h was NotifyOnStartNavigation was renamed to NotifyDidNavigateMainFrame and PasswordManager::OnStartNavigation is removed since DidNavigateMainFrame is used submission detection. TBR=dvadym@chromium.org (cherry picked from commit 4f009f4c944662c1eab47d5a7584f24eec1ddf6e) Bug: 912134 , 831123, 842643 Change-Id: I3c6404ac2fbe5f8489541ab551f6a338b650f21c Reviewed-on: https://chromium-review.googlesource.com/c/1363193 Reviewed-by: Eugene But <eugenebut@chromium.org> Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org> Commit-Queue: Vadym Doroshenko <dvadym@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#614962} Reviewed-on: https://chromium-review.googlesource.com/c/1374351 Reviewed-by: Vadym Doroshenko <dvadym@chromium.org> Cr-Commit-Position: refs/branch-heads/3626@{#291} Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
,
Dec 28
,
Dec 28
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/03cad4f76faeae0a2e9cf2089ea109e99b4c16c5 commit 03cad4f76faeae0a2e9cf2089ea109e99b4c16c5 Author: Vadym Doroshenko <dvadym@chromium.org> Date: Fri Dec 28 11:10:53 2018 Fix detection when form may be submitted. In order to prevent regressions because of site isolation, the logic of detection that navigation might be a form submission was implemented in the browser process. Namely the navigation may be a form submission if it is renderer initiated and is not link transition. It is the same as it was in the renderer process. It turned out, that now enum ui::PageTransition doesn't allow to detect link transition. This CL implements the similar logic, namely: 1.Renderer initiated navigations 2.Form submission or navigations without user gesture (nowadays a lot of forms are submitted with some JavaScript). Bug: 918111 , 831123, 842643 Change-Id: I246e5a5f0f92ec6482053fe77b53fab45445242e Reviewed-on: https://chromium-review.googlesource.com/c/1391675 Commit-Queue: Vadym Doroshenko <dvadym@chromium.org> Reviewed-by: Maxim Kolosovskiy <kolos@chromium.org> Cr-Commit-Position: refs/heads/master@{#619143} [modify] https://crrev.com/03cad4f76faeae0a2e9cf2089ea109e99b4c16c5/components/password_manager/content/browser/content_password_manager_driver.cc [modify] https://crrev.com/03cad4f76faeae0a2e9cf2089ea109e99b4c16c5/components/password_manager/content/browser/form_submission_tracker_util.cc [modify] https://crrev.com/03cad4f76faeae0a2e9cf2089ea109e99b4c16c5/components/password_manager/content/browser/form_submission_tracker_util.h [modify] https://crrev.com/03cad4f76faeae0a2e9cf2089ea109e99b4c16c5/components/password_manager/content/browser/form_submission_tracker_util_unittest.cc
,
Jan 7
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/81c3334c4a621885ff8efb51b157f3dcac0444e1 commit 81c3334c4a621885ff8efb51b157f3dcac0444e1 Author: Vadym Doroshenko <dvadym@chromium.org> Date: Mon Jan 07 18:43:57 2019 Fix detection when form may be submitted. In order to prevent regressions because of site isolation, the logic of detection that navigation might be a form submission was implemented in the browser process. Namely the navigation may be a form submission if it is renderer initiated and is not link transition. It is the same as it was in the renderer process. It turned out, that now enum ui::PageTransition doesn't allow to detect link transition. This CL implements the similar logic, namely: 1.Renderer initiated navigations 2.Form submission or navigations without user gesture (nowadays a lot of forms are submitted with some JavaScript). Bug: 918111 , 831123, 842643 TBR=dvadym@chromium.org (cherry picked from commit 03cad4f76faeae0a2e9cf2089ea109e99b4c16c5) Change-Id: I246e5a5f0f92ec6482053fe77b53fab45445242e Reviewed-on: https://chromium-review.googlesource.com/c/1391675 Commit-Queue: Vadym Doroshenko <dvadym@chromium.org> Reviewed-by: Maxim Kolosovskiy <kolos@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#619143} Reviewed-on: https://chromium-review.googlesource.com/c/1398445 Reviewed-by: Vadym Doroshenko <dvadym@chromium.org> Cr-Commit-Position: refs/branch-heads/3626@{#594} Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437} [modify] https://crrev.com/81c3334c4a621885ff8efb51b157f3dcac0444e1/components/password_manager/content/browser/content_password_manager_driver.cc [modify] https://crrev.com/81c3334c4a621885ff8efb51b157f3dcac0444e1/components/password_manager/content/browser/form_submission_tracker_util.cc [modify] https://crrev.com/81c3334c4a621885ff8efb51b157f3dcac0444e1/components/password_manager/content/browser/form_submission_tracker_util.h [modify] https://crrev.com/81c3334c4a621885ff8efb51b157f3dcac0444e1/components/password_manager/content/browser/form_submission_tracker_util_unittest.cc
,
Jan 7
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/81c3334c4a621885ff8efb51b157f3dcac0444e1 Commit: 81c3334c4a621885ff8efb51b157f3dcac0444e1 Author: dvadym@chromium.org Commiter: dvadym@chromium.org Date: 2019-01-07 18:43:57 +0000 UTC Fix detection when form may be submitted. In order to prevent regressions because of site isolation, the logic of detection that navigation might be a form submission was implemented in the browser process. Namely the navigation may be a form submission if it is renderer initiated and is not link transition. It is the same as it was in the renderer process. It turned out, that now enum ui::PageTransition doesn't allow to detect link transition. This CL implements the similar logic, namely: 1.Renderer initiated navigations 2.Form submission or navigations without user gesture (nowadays a lot of forms are submitted with some JavaScript). Bug: 918111 , 831123, 842643 TBR=dvadym@chromium.org (cherry picked from commit 03cad4f76faeae0a2e9cf2089ea109e99b4c16c5) Change-Id: I246e5a5f0f92ec6482053fe77b53fab45445242e Reviewed-on: https://chromium-review.googlesource.com/c/1391675 Commit-Queue: Vadym Doroshenko <dvadym@chromium.org> Reviewed-by: Maxim Kolosovskiy <kolos@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#619143} Reviewed-on: https://chromium-review.googlesource.com/c/1398445 Reviewed-by: Vadym Doroshenko <dvadym@chromium.org> Cr-Commit-Position: refs/branch-heads/3626@{#594} Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437} |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by bugdroid1@chromium.org
, May 14 2018