New issue
Advanced search Search tips

Issue 808917 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocking:
issue 777268



Sign in to add a comment

Chromium prompts for saving wrong password on Facebook.com

Reported by ivafa...@gmail.com, Feb 5 2018

Issue description

UserAgent: 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
 

Comment 1 by ivafa...@gmail.com, Feb 5 2018

ss_chromium_facebook_passw_on_login_fail.png
84.7 KB View Download
Components: UI>Browser>Passwords
Labels: Needs-Feedback
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?
Screenshot from 2018-02-05 15:06:43.png
65.7 KB View Download
Labels: Needs-Triage-M63

Comment 4 by ivafa...@gmail.com, Feb 6 2018

Attached.
passman_internals.log
17.5 KB View Download
Project Member

Comment 5 by sheriffbot@chromium.org, Feb 6 2018

Cc: vasi...@chromium.org
Labels: -Needs-Feedback
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

Comment 6 by ivafa...@gmail.com, 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.

Comment 7 by ivafa...@gmail.com, 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

Blocking: 777268
Cc: dvadym@chromium.org kolos@chromium.org battre@chromium.org
Status: Available (was: Unconfirmed)
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.
My changes did not apply to M63. Can you `git blame` to figure out who introduced a trigger for a change of the action?
Cc: jochen@chromium.org
It was introduced in https://codereview.chromium.org/2865233003

jochen@, dvadym@, could you share the reasoning behind reacting to "action" changes?
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.
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?

Comment 14 by ivafa...@gmail.com, 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.
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?

Comment 16 by ivafa...@gmail.com, Feb 20 2018

Good. I will try.
Project Member

Comment 18 by bugdroid1@chromium.org, 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

Comment 19 by ivafa...@gmail.com, Feb 26 2018

I don't have an access to mark the issue fixed.
Could anyone please change the status.

Thanks a lot!
Status: Fixed (was: Available)
Project Member

Comment 21 by bugdroid1@chromium.org, 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

Status: Available (was: Fixed)
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)

Comment 24 by ivafa...@gmail.com, 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.
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.

Comment 26 by ivafa...@gmail.com, Feb 28 2018

Thanks a lot, dvadym@ !

Relanded.
Project Member

Comment 27 by bugdroid1@chromium.org, 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

Could anybody please change the issue status to "resolved"?

Thanks in advance.
Status: Fixed (was: Available)

Sign in to add a comment