Chromium prompts for saving wrong password on Facebook.com
Reported by
ivafa...@gmail.com,
Feb 5 2018
|
||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 YaBrowser/17.11.0.1675 Yowser/2.5 Safari/537.36 Steps to reproduce the problem: 1. Navigate to facebook.com 2. Type a non-existent login and password to login_form 3. Press Enter 4. Navigation is performed 5. Chromium prompts for saving the wrong password. What is the expected behavior? Chromium recognizes that user is not logged in and doesn't prompt for saving a wrong password. What went wrong? Issue is not reproduced in 100% cases. I'm not sure which input triggers issue (number of symbols in form fields / number of login tries ...) I've found the problematic path in a code: 1. When user presses "submit", sometimes |FormTracker::FormElementObserverCallback::ElementWasHiddenOrRemoved| is triggered in renderer process. 2. It fires |PasswordManager::OnSameDocumentNavigation| in browser process. 3. It calls |PasswordManager::OnLoginSucessful|. I.e. |PasswordManager| recognizes click on "submit" in facebook.com as successful login. Did this work before? N/A Chrome version: 63.0.3239.132 Channel: n/a OS Version: 10.0 Flash Version: Shockwave Flash 28.0 r0 There are an attempt to fix an issue here: https://chromium-review.googlesource.com/c/chromium/src/+/897638
,
Feb 5 2018
I can't reproduce it. I land on another login form and don't see the bubble. Can you attach chrome://password-manager-internals/ log collected while you tried to log in?
,
Feb 6 2018
,
Feb 6 2018
Attached.
,
Feb 6 2018
Thank you for providing more feedback. Adding requester "vasilii@chromium.org" to the cc list and removing "Needs-Feedback" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Feb 6 2018
Looks like something interesting in the attached log file is at the line 400: "Successful submission indicator event: DOM_MUTATION_AFTER_XHR" Unfortunately, I'm not so good with password manager code to say more.
,
Feb 6 2018
Well, looks like I've found the root cause.
Facebook.com has the following javascript code that is running on submit pressed:
s.setAttribute("action", u.toString());
where |s| is a form element. It appends some parameters to action url.
Chromium recognizes action attribute modification as successful form submission here:
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/exported/WebFormElementObserverImpl.cpp?dr&l=88
,
Feb 6 2018
,
Feb 6 2018
I agree with the Comment #7. Here is the stack trace #2 0x5652db99bd93 autofill::PasswordAutofillAgent::FireSubmissionIfFormDisappear() #3 0x5652db9a9e05 autofill::PasswordAutofillAgent::OnInferredFormSubmission() #4 0x5652db98c68e autofill::FormTracker::FireInferredFormSubmission() #5 0x5652db98d58e autofill::FormTracker::FormElementObserverCallback::ElementWasHiddenOrRemoved() #6 0x7f43d2d74849 blink::WebFormElementObserverImpl::ObserverCallback::Deliver() #7 0x7f43d2ae3a77 blink::MutationObserver::Deliver() #8 0x7f43d2ae3ff5 blink::MutationObserver::DeliverMutations() Dominic, you changed something there recently. Is there a reason why we react to "action" changes? Seems like a side effect of using MutationObserver.
,
Feb 8 2018
My changes did not apply to M63. Can you `git blame` to figure out who introduced a trigger for a change of the action?
,
Feb 8 2018
It was introduced in https://codereview.chromium.org/2865233003 jochen@, dvadym@, could you share the reasoning behind reacting to "action" changes?
,
Feb 8 2018
if we receive an XHR, we check whether the action of the form has changed here: https://cs.chromium.org/chromium/src/components/autofill/content/renderer/password_autofill_agent.cc?rcl=2985dde3a38d4918612a2faa6e4bd0e2168a1432&l=1039 and if not, we attach the mutation observer to get notified when the action changes. I didn't add the initial check that takes the action into account.
,
Feb 9 2018
What do you mean by "I didn't add"? In https://codereview.chromium.org/2865233003 WebFormElementObserverImpl.cpp was added. It had a comment "// If the action was modified, we just assume that the form as submitted.". At the same time the CL description talks only about detecting that the form disappeared (not the case here). The original bug investigation ( https://crbug.com/589533 ) also didn't mention the action. I'm trying to understand the reasoning behind reacting to action changes. Does anything break if I remove it?
,
Feb 19 2018
Hi, colleagues. Is there any idea how to fix the issue? If there is an idea I can prepare changeset myself and send a patch to chromium.
,
Feb 19 2018
We discussed and decided that the mutation observer shouldn't trigger on action changes. That is, FormTracker::FormElementObserverCallback::ElementWasHiddenOrRemoved is redundant here. Would you like to fix it?
,
Feb 20 2018
Good. I will try.
,
Feb 20 2018
,
Feb 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ccaa8bf97edd3288a57330ff0d772bd48e08f8b3 commit ccaa8bf97edd3288a57330ff0d772bd48e08f8b3 Author: Ivan Afanasyev <ivafanas@yandex-team.ru> Date: Mon Feb 26 11:42:33 2018 Fix wrong password saving when loging to facebook. Facebook.com may perform |SameDocumentNavigation| on login form submit. User password will be saved even if it is wrong. The changeset disables trigger on action changes. Change-Id: I4103661fb9649280862229248f329da23dcc8912 Bug: 808917 Reviewed-on: https://chromium-review.googlesource.com/897638 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Dominic Battré <battre@chromium.org> Commit-Queue: Иван Афанасьев <ivafanas@yandex-team.ru> Cr-Commit-Position: refs/heads/master@{#539110} [modify] https://crrev.com/ccaa8bf97edd3288a57330ff0d772bd48e08f8b3/chrome/browser/password_manager/password_manager_browsertest.cc [add] https://crrev.com/ccaa8bf97edd3288a57330ff0d772bd48e08f8b3/chrome/test/data/password/password_form_action_mutation.html [modify] https://crrev.com/ccaa8bf97edd3288a57330ff0d772bd48e08f8b3/third_party/WebKit/Source/core/exported/WebFormElementObserverImpl.cpp [modify] https://crrev.com/ccaa8bf97edd3288a57330ff0d772bd48e08f8b3/third_party/WebKit/public/web/modules/autofill/WebFormElementObserverCallback.h
,
Feb 26 2018
I don't have an access to mark the issue fixed. Could anyone please change the status. Thanks a lot!
,
Feb 26 2018
,
Feb 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/72d8a4818ad31bddd52844b1fb61c74605f1f3ec commit 72d8a4818ad31bddd52844b1fb61c74605f1f3ec Author: Nektarios Paisios <nektar@chromium.org> Date: Mon Feb 26 16:43:58 2018 Revert "Fix wrong password saving when loging to facebook." This reverts commit ccaa8bf97edd3288a57330ff0d772bd48e08f8b3. Reason for revert: Possibly broke PasswordManagerBrowserTestBase.PasswordOverridenUpdateBubbleShown in browser_tests Original change's description: > Fix wrong password saving when loging to facebook. > > Facebook.com may perform |SameDocumentNavigation| on login form submit. > User password will be saved even if it is wrong. > > The changeset disables trigger on action changes. > > Change-Id: I4103661fb9649280862229248f329da23dcc8912 > Bug: 808917 > Reviewed-on: https://chromium-review.googlesource.com/897638 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Dominic Battré <battre@chromium.org> > Commit-Queue: Иван Афанасьев <ivafanas@yandex-team.ru> > Cr-Commit-Position: refs/heads/master@{#539110} TBR=battre@chromium.org,vasilii@chromium.org,dvadym@chromium.org,jochen@chromium.org,ivafanas@yandex-team.ru Change-Id: I097c2922ee9172e7b5cd6f6a291582c28c66c1f7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 808917 Reviewed-on: https://chromium-review.googlesource.com/937761 Reviewed-by: Nektarios Paisios <nektar@chromium.org> Commit-Queue: Nektarios Paisios <nektar@chromium.org> Cr-Commit-Position: refs/heads/master@{#539159} [modify] https://crrev.com/72d8a4818ad31bddd52844b1fb61c74605f1f3ec/chrome/browser/password_manager/password_manager_browsertest.cc [delete] https://crrev.com/52b69b4323ac7cb73d3444b89d20bafef5d6f4cc/chrome/test/data/password/password_form_action_mutation.html [modify] https://crrev.com/72d8a4818ad31bddd52844b1fb61c74605f1f3ec/third_party/WebKit/Source/core/exported/WebFormElementObserverImpl.cpp [modify] https://crrev.com/72d8a4818ad31bddd52844b1fb61c74605f1f3ec/third_party/WebKit/public/web/modules/autofill/WebFormElementObserverCallback.h
,
Feb 26 2018
,
Feb 26 2018
Looks like it happened on Linux ASAN https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.memory%2FLinux_ASan_Tests__sandboxed_%2F44045%2F%2B%2Frecipes%2Fsteps%2Fbrowser_tests%2F0%2Fstdout Interesting output [22665:22897:0226/034425.907581:WARNING:embedded_test_server.cc(228)] Request not handled. Returning 404: /favicon.ico [1:1:0226/034426.409539:FATAL:autofill_agent.cc(466)] Check failed: false. #0 0x000007bc3af1 in __interceptor_backtrace /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:3957:13 #1 0x000013da51cc in base::debug::StackTrace::StackTrace(unsigned long) ./../../base/debug/stack_trace_posix.cc:808:41 #2 0x000013e1677f in logging::LogMessage::~LogMessage() ./../../base/logging.cc:581:29 #3 0x000025567607 in autofill::AutofillAgent::ClearPreviewedForm() ./../../components/autofill/content/renderer/autofill_agent.cc:466:5 #4 0x00000b7c96bb in autofill::mojom::AutofillAgentStubDispatch::Accept(autofill::mojom::AutofillAgent*, mojo::Message*) ./gen/components/autofill/content/common/autofill_agent.mojom.cc:721:13 #5 0x000017d48f0c in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:419:32 #6 0x000017d474f8 in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17 #7 0x000017d4d3dc in mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:306:19 #8 0x000017d656da in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:880:42 #9 0x000017d632e1 in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:604:38 #10 0x000017d474f8 in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17 #11 0x000017d3d30d in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:445:51 #12 0x000017d3f648 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:474:10 #13 0x000017d3efa1 in mojo::Connector::OnHandleReadyInternal(unsigned int) ./../../mojo/public/cpp/bindings/lib/connector.cc:375:3 #14 0x00000df04845 in Run ./../../base/callback.h:124:12 #15 0x00000df04845 in mojo::SimpleWatcher::DiscardReadyState(base::RepeatingCallback<void (unsigned int)> const&, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.h:194:0 #16 0x000017d2869a in Run ./../../base/callback.h:124:12 #17 0x000017d2869a in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:276:0 #18 0x000017d29929 in Invoke<const base::WeakPtr<mojo::SimpleWatcher> &, const int &, const unsigned int &, const mojo::HandleSignalsState &> ./../../base/bind_internal.h:447:12 #19 0x000017d29929 in MakeItSo<void (mojo::SimpleWatcher::*const &)(int, unsigned int, const mojo::HandleSignalsState &), const base::WeakPtr<mojo::SimpleWatcher> &, const int &, const unsigned int &, const mojo::HandleSignalsState &> ./../../base/bind_internal.h:550:0 #20 0x000017d29929 in void base::internal::Invoker<base::internal::BindState<void (mojo::SimpleWatcher::*)(int, unsigned int, mojo::HandleSignalsState const&), base::WeakPtr<mojo::SimpleWatcher>, int, unsigned int, mojo::HandleSignalsState>, void ()>::RunImpl<void (mojo::SimpleWatcher::* const&)(int, unsigned int, mojo::HandleSignalsState const&), std::__1::tuple<base::WeakPtr<mojo::SimpleWatcher>, int, unsigned int, mojo::HandleSignalsState> const&, 0ul, 1ul, 2ul, 3ul>(void (mojo::SimpleWatcher::* const&)(int, unsigned int, mojo::HandleSignalsState const&), std::__1::tuple<base::WeakPtr<mojo::SimpleWatcher>, int, unsigned int, mojo::HandleSignalsState> const&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) ./../../base/bind_internal.h:604:0 #21 0x000013da8e10 in Run ./../../base/callback.h:95:12 #22 0x000013da8e10 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) ./../../base/debug/task_annotator.cc:55:0 #23 0x0000134e88e7 in blink::scheduler::internal::ThreadControllerImpl::DoWork(blink::scheduler::internal::Sequence::WorkType) ./../../third_party/WebKit/Source/platform/scheduler/base/thread_controller_impl.cc:162:21 #24 0x0000134ee0fc in Invoke<const base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl> &, const blink::scheduler::internal::Sequence::WorkType &> ./../../base/bind_internal.h:447:12 #25 0x0000134ee0fc in MakeItSo<void (blink::scheduler::internal::ThreadControllerImpl::*const &)(blink::scheduler::internal::Sequence::WorkType), const base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl> &, const blink::scheduler::internal::Sequence::WorkType &> ./../../base/bind_internal.h:550:0 #26 0x0000134ee0fc in RunImpl<void (blink::scheduler::internal::ThreadControllerImpl::*const &)(blink::scheduler::internal::Sequence::WorkType), const std::__1::tuple<base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl>, blink::scheduler::internal::Sequence::WorkType> &, 0, 1> ./../../base/bind_internal.h:604:0 #27 0x0000134ee0fc in base::internal::Invoker<base::internal::BindState<void (blink::scheduler::internal::ThreadControllerImpl::*)(blink::scheduler::internal::Sequence::WorkType), base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl>, blink::scheduler::internal::Sequence::WorkType>, void ()>::Run(base::internal::BindStateBase*) ./../../base/bind_internal.h:586:0 #28 0x000013da8e10 in Run ./../../base/callback.h:95:12 #29 0x000013da8e10 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) ./../../base/debug/task_annotator.cc:55:0 #30 0x000013e3dd62 in base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) ./../../base/message_loop/incoming_task_queue.cc:124:19 #31 0x000013e3734c in base::MessageLoop::RunTask(base::PendingTask*) ./../../base/message_loop/message_loop.cc:395:25 #32 0x000013e37ede in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) ./../../base/message_loop/message_loop.cc:407:5 #33 0x000013e38816 in base::MessageLoop::DoWork() ./../../base/message_loop/message_loop.cc:451:16 #34 0x000013e45d3a in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_default.cc:37:31 #35 0x000013e35c69 in base::MessageLoop::Run(bool) ./../../base/message_loop/message_loop.cc:346:12 #36 0x000013ef039b in base::RunLoop::Run() ./../../base/run_loop.cc:133:14 #37 0x000025c81d25 in content::RendererMain(content::MainFunctionParams const&) ./../../content/renderer/renderer_main.cc:235:23 #38 0x000013abc4f3 in content::RunZygote(content::ContentMainDelegate*) ./../../content/app/content_main_runner.cc:352:14 #39 0x000013abd7ed in content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) ./../../content/app/content_main_runner.cc:431:12 #40 0x000013ac0d76 in content::ContentMainRunnerImpl::Run() ./../../content/app/content_main_runner.cc:703:12 #41 0x00001a987f77 in service_manager::Main(service_manager::MainParams const&) ./../../services/service_manager/embedder/main.cc:453:29 #42 0x000013abbcc9 in content::ContentMain(content::ContentMainParams const&) ./../../content/app/content_main.cc:19:10 #43 0x00001558e9c4 in content::LaunchTests(content::TestLauncherDelegate*, unsigned long, int, char**) ./../../content/public/test/test_launcher.cc:613:12 #44 0x000013d7926c in LaunchChromeTests(unsigned long, content::TestLauncherDelegate*, int, char**) ./../../chrome/test/base/chrome_test_launcher.cc:171:10 #45 0x000013d7828c in main ./../../chrome/test/base/browser_tests_main.cc:36:10 #46 0x7f7db1216f45 in __libc_start_main /build/eglibc-SvCtMH/eglibc-2.19/csu/libc-start.c:287:0 #47 0x000007b7802a in _start ??:0:0 Failed to tell parent about crash. Received signal 6 #0 0x000007bc3af1 in __interceptor_backtrace /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:3957:13 #1 0x000013da51cc in base::debug::StackTrace::StackTrace(unsigned long) ./../../base/debug/stack_trace_posix.cc:808:41 #2 0x000013da3f6d in base::debug::(anonymous namespace)::StackDumpSignalHandler(int, siginfo_t*, void*) ./../../base/debug/stack_trace_posix.cc:334:3 #3 0x7f7db7cf4330 in _L_unlock_13 ??:? #4 0x7f7db7cf4330 in ?? ??:0 #5 0x7f7db122bc37 in gsignal /build/eglibc-SvCtMH/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0 #6 0x7f7db122f028 in abort /build/eglibc-SvCtMH/eglibc-2.19/stdlib/abort.c:89:0 #7 0x000013da067a in base::debug::BreakDebugger() ./../../base/debug/debugger_posix.cc:258:3 #8 0x000013e17174 in Run ./../../base/callback.h:124:12 #9 0x000013e17174 in logging::LogMessage::~LogMessage() ./../../base/logging.cc:822:0 #10 0x000025567607 in autofill::AutofillAgent::ClearPreviewedForm() ./../../components/autofill/content/renderer/autofill_agent.cc:466:5 #11 0x00000b7c96bb in autofill::mojom::AutofillAgentStubDispatch::Accept(autofill::mojom::AutofillAgent*, mojo::Message*) ./gen/components/autofill/content/common/autofill_agent.mojom.cc:721:13 #12 0x000017d48f0c in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:419:32 #13 0x000017d474f8 in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17 #14 0x000017d4d3dc in mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:306:19 #15 0x000017d656da in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:880:42 #16 0x000017d632e1 in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:604:38 #17 0x000017d474f8 in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17 #18 0x000017d3d30d in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:445:51 #19 0x000017d3f648 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:474:10 #20 0x000017d3efa1 in mojo::Connector::OnHandleReadyInternal(unsigned int) ./../../mojo/public/cpp/bindings/lib/connector.cc:375:3 #21 0x00000df04845 in Run ./../../base/callback.h:124:12 #22 0x00000df04845 in mojo::SimpleWatcher::DiscardReadyState(base::RepeatingCallback<void (unsigned int)> const&, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.h:194:0 #23 0x000017d2869a in Run ./../../base/callback.h:124:12 #24 0x000017d2869a in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:276:0 #25 0x000017d29929 in Invoke<const base::WeakPtr<mojo::SimpleWatcher> &, const int &, const unsigned int &, const mojo::HandleSignalsState &> ./../../base/bind_internal.h:447:12 #26 0x000017d29929 in MakeItSo<void (mojo::SimpleWatcher::*const &)(int, unsigned int, const mojo::HandleSignalsState &), const base::WeakPtr<mojo::SimpleWatcher> &, const int &, const unsigned int &, const mojo::HandleSignalsState &> ./../../base/bind_internal.h:550:0 #27 0x000017d29929 in void base::internal::Invoker<base::internal::BindState<void (mojo::SimpleWatcher::*)(int, unsigned int, mojo::HandleSignalsState const&), base::WeakPtr<mojo::SimpleWatcher>, int, unsigned int, mojo::HandleSignalsState>, void ()>::RunImpl<void (mojo::SimpleWatcher::* const&)(int, unsigned int, mojo::HandleSignalsState const&), std::__1::tuple<base::WeakPtr<mojo::SimpleWatcher>, int, unsigned int, mojo::HandleSignalsState> const&, 0ul, 1ul, 2ul, 3ul>(void (mojo::SimpleWatcher::* const&)(int, unsigned int, mojo::HandleSignalsState const&), std::__1::tuple<base::WeakPtr<mojo::SimpleWatcher>, int, unsigned int, mojo::HandleSignalsState> const&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) ./../../base/bind_internal.h:604:0 #28 0x000013da8e10 in Run ./../../base/callback.h:95:12 #29 0x000013da8e10 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) ./../../base/debug/task_annotator.cc:55:0 #30 0x0000134e88e7 in blink::scheduler::internal::ThreadControllerImpl::DoWork(blink::scheduler::internal::Sequence::WorkType) ./../../third_party/WebKit/Source/platform/scheduler/base/thread_controller_impl.cc:162:21 #31 0x0000134ee0fc in Invoke<const base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl> &, const blink::scheduler::internal::Sequence::WorkType &> ./../../base/bind_internal.h:447:12 #32 0x0000134ee0fc in MakeItSo<void (blink::scheduler::internal::ThreadControllerImpl::*const &)(blink::scheduler::internal::Sequence::WorkType), const base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl> &, const blink::scheduler::internal::Sequence::WorkType &> ./../../base/bind_internal.h:550:0 #33 0x0000134ee0fc in RunImpl<void (blink::scheduler::internal::ThreadControllerImpl::*const &)(blink::scheduler::internal::Sequence::WorkType), const std::__1::tuple<base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl>, blink::scheduler::internal::Sequence::WorkType> &, 0, 1> ./../../base/bind_internal.h:604:0 #34 0x0000134ee0fc in base::internal::Invoker<base::internal::BindState<void (blink::scheduler::internal::ThreadControllerImpl::*)(blink::scheduler::internal::Sequence::WorkType), base::WeakPtr<blink::scheduler::internal::ThreadControllerImpl>, blink::scheduler::internal::Sequence::WorkType>, void ()>::Run(base::internal::BindStateBase*) ./../../base/bind_internal.h:586:0 #35 0x000013da8e10 in Run ./../../base/callback.h:95:12 #36 0x000013da8e10 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) ./../../base/debug/task_annotator.cc:55:0 #37 0x000013e3dd62 in base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) ./../../base/message_loop/incoming_task_queue.cc:124:19 #38 0x000013e3734c in base::MessageLoop::RunTask(base::PendingTask*) ./../../base/message_loop/message_loop.cc:395:25 #39 0x000013e37ede in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) ./../../base/message_loop/message_loop.cc:407:5 #40 0x000013e38816 in base::MessageLoop::DoWork() ./../../base/message_loop/message_loop.cc:451:16 #41 0x000013e45d3a in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_default.cc:37:31 #42 0x000013e35c69 in base::MessageLoop::Run(bool) ./../../base/message_loop/message_loop.cc:346:12 #43 0x000013ef039b in base::RunLoop::Run() ./../../base/run_loop.cc:133:14 #44 0x000025c81d25 in content::RendererMain(content::MainFunctionParams const&) ./../../content/renderer/renderer_main.cc:235:23 #45 0x000013abc4f3 in content::RunZygote(content::ContentMainDelegate*) ./../../content/app/content_main_runner.cc:352:14 #46 0x000013abd7ed in content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) ./../../content/app/content_main_runner.cc:431:12 #47 0x000013ac0d76 in content::ContentMainRunnerImpl::Run() ./../../content/app/content_main_runner.cc:703:12 #48 0x00001a987f77 in service_manager::Main(service_manager::MainParams const&) ./../../services/service_manager/embedder/main.cc:453:29 #49 0x000013abbcc9 in content::ContentMain(content::ContentMainParams const&) ./../../content/app/content_main.cc:19:10 #50 0x00001558e9c4 in content::LaunchTests(content::TestLauncherDelegate*, unsigned long, int, char**) ./../../content/public/test/test_launcher.cc:613:12 #51 0x000013d7926c in LaunchChromeTests(unsigned long, content::TestLauncherDelegate*, int, char**) ./../../chrome/test/base/chrome_test_launcher.cc:171:10 #52 0x000013d7828c in main ./../../chrome/test/base/browser_tests_main.cc:36:10 #53 0x7f7db1216f45 in __libc_start_main /build/eglibc-SvCtMH/eglibc-2.19/csu/libc-start.c:287:0 #54 0x000007b7802a in _start ??:0:0 r8: 000061e00004c8cb r9: 0000000000000a4c r10: 0000000000000008 r11: 0000000000000202 r12: 00000ff03535a200 r13: 00007f7da9b11060 r14: 00007f7da9b112e0 r15: 00007f7da9b117a0 di: 0000000000000001 si: 0000000000000001 bp: 00007ffcaf581950 bx: 00007ffcaf581960 dx: 0000000000000006 ax: 0000000000000000 cx: ffffffffffffffff sp: 00007ffcaf581818 ip: 00007f7db122bc37 efl: 0000000000000202 cgf: 0000000000000033 erf: 0000000000000000 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000 [end of stack trace] Calling _exit(1). Core file will not be generated. ../../chrome/browser/password_manager/password_manager_browsertest.cc:2527: Failure Value of: prompt_observer->IsUpdatePromptShownAutomatically() Actual: false Expected: true [22665:22665:0226/034426.770045:INFO:chrome_cryptauth_service.cc(232)] Profile is not authenticated yet; waiting before starting CryptAuth managers. [22665:22807:0226/034426.850306:WARNING:discardable_shared_memory_manager.cc(436)] Some MojoDiscardableSharedMemoryManagerImpls are still alive. They will be leaked. [22665:22665:0226/034426.864488:WARNING:url_request_context_getter.cc(43)] URLRequestContextGetter leaking due to no owning thread. [ FAILED ] PasswordManagerBrowserTestBase.PasswordOverridenUpdateBubbleShown, where TypeParam = and GetParam() = (6869 ms)
,
Feb 27 2018
Hmm, I'm not clearly understand how the fix can affect |PasswordOverridenUpdateBubbleShown| test. Also found related issue: https://bugs.chromium.org/p/chromium/issues/detail?id=96321#c6 Seems like it is needed an additional investigation.
,
Feb 27 2018
I've checked. The failure of PasswordManagerBrowserTestBase.PasswordOverridenUpdateBubbleShown was not related to CL from this bug. It was because of CL https://chromium-review.googlesource.com/c/chromium/src/+/908371 (that was also reverted), the reason of failure is the following: 1.|element_| is reset in autofill_agent.cc 2.ClearPreviewedForm has a DCHECK for checking that element_ is not null. ivafanas@ you can reland your CL.
,
Feb 28 2018
Thanks a lot, dvadym@ ! Relanded.
,
Feb 28 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/466556b75191165674c3af7f15dc802c52ca369e commit 466556b75191165674c3af7f15dc802c52ca369e Author: Ivan Afanasyev <ivafanas@yandex-team.ru> Date: Wed Feb 28 10:40:59 2018 Reland "Fix wrong password saving when loging to facebook." This is a reland of ccaa8bf97edd3288a57330ff0d772bd48e08f8b3. Original change's description: > Fix wrong password saving when loging to facebook. > > Facebook.com may perform |SameDocumentNavigation| on login form submit. > User password will be saved even if it is wrong. > > The changeset disables trigger on action changes. > > Change-Id: I4103661fb9649280862229248f329da23dcc8912 > Bug: 808917 > Reviewed-on: https://chromium-review.googlesource.com/897638 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Dominic Battré <battre@chromium.org> > Commit-Queue: Иван Афанасьев <ivafanas@yandex-team.ru> > Cr-Commit-Position: refs/heads/master@{#539110} Bug: 808917 Change-Id: I098cde3361288d60d083649f25ceec8265140f7a Reviewed-on: https://chromium-review.googlesource.com/940122 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Иван Афанасьев <ivafanas@yandex-team.ru> Cr-Commit-Position: refs/heads/master@{#539781} [modify] https://crrev.com/466556b75191165674c3af7f15dc802c52ca369e/chrome/browser/password_manager/password_manager_browsertest.cc [add] https://crrev.com/466556b75191165674c3af7f15dc802c52ca369e/chrome/test/data/password/password_form_action_mutation.html [modify] https://crrev.com/466556b75191165674c3af7f15dc802c52ca369e/third_party/WebKit/Source/core/exported/WebFormElementObserverImpl.cpp [modify] https://crrev.com/466556b75191165674c3af7f15dc802c52ca369e/third_party/WebKit/public/web/modules/autofill/WebFormElementObserverCallback.h
,
Mar 2 2018
Could anybody please change the issue status to "resolved"? Thanks in advance.
,
Mar 2 2018
|
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by ivafa...@gmail.com
, Feb 5 201884.7 KB
84.7 KB View Download