WebViewAutofillTest.TestSuggestionFetchFillClear fails locally |
||||
Issue descriptionGit revision (run "git cl log"): 48a67cac017693c96bd645a4e4639e12376c097e iOS Version: 10.3 Device: iPhone 7 simulator Steps to reproduce: Run ios_web_view_inttests on Xcode. Observed behavior: [----------] 3 tests from WebViewAutofillTest [ RUN ] WebViewAutofillTest.TestDelegateCallbacks [ OK ] WebViewAutofillTest.TestDelegateCallbacks (915 ms) [ RUN ] WebViewAutofillTest.TestSuggestionFetchFillClear [0419/170609.468545:FATAL:crw_web_controller.mm(2723)] Check failed: _loadPhase == web::LOAD_REQUESTED (2 vs. 0) Stack trace: #0 0x000000010f632c84 in base::debug::BreakDebugger() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/debug/debugger_posix.cc:269 #1 0x000000010f69354c in logging::LogMessage::~LogMessage() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/logging.cc:855 #2 0x000000010f68ffd5 in logging::LogMessage::~LogMessage() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/logging.cc:588 #3 0x000000010f2ba429 in ::-[CRWWebController webPageChangedWithContext:](const web::NavigationContext *) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../ios/web/web_state/ui/crw_web_controller.mm:2723 #4 0x000000010f2d24f7 in ::-[CRWWebController webView:didCommitNavigation:](WKWebView *, WKNavigation *) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../ios/web/web_state/ui/crw_web_controller.mm:4607 #5 0x0000000121f04933 in WebKit::NavigationState::NavigationClient::didCommitNavigation(WebKit::WebPageProxy&, API::Navigation*, API::Object*) () #6 0x00000001220b8d47 in WebKit::WebPageProxy::didCommitLoadForFrame(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, std::optional<WebCore::HasInsecureContent>, WebKit::UserData const&) () #7 0x00000001220e1e08 in void IPC::callMemberFunctionImpl<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, std::optional<WebCore::HasInsecureContent>, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WTF::String, bool, unsigned int, WebCore::CertificateInfo, bool, std::optional<WebCore::HasInsecureContent>, WebKit::UserData>, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul>(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, std::optional<WebCore::HasInsecureContent>, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WTF::String, bool, unsigned int, WebCore::CertificateInfo, bool, std::optional<WebCore::HasInsecureContent>, WebKit::UserData>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul>) () #8 0x00000001220d9ea4 in void IPC::handleMessage<Messages::WebPageProxy::DidCommitLoadForFrame, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, std::optional<WebCore::HasInsecureContent>, WebKit::UserData const&)>(IPC::Decoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, std::optional<WebCore::HasInsecureContent>, WebKit::UserData const&)) () #9 0x0000000121f00d8f in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) () #10 0x00000001221368ae in WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) () #11 0x0000000121ec9041 in IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) () #12 0x0000000121ecb8e3 in IPC::Connection::dispatchOneMessage() () #13 0x000000011e2c541c in WTF::RunLoop::performWork() () #14 0x000000011e2c56c2 in WTF::RunLoop::performWork(void*) () #15 0x000000010d355bb1 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ () #16 0x000000010d33a4af in __CFRunLoopDoSources0 () #17 0x000000010d339a6f in __CFRunLoopRun () #18 0x000000010d33930b in CFRunLoopRunSpecific () #19 0x000000010e166b4a in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] () #20 0x00000001099768ec in base::test::ios::SpinRunLoopWithMaxDelay(base::TimeDelta) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/test/ios/wait_util.mm:57 #21 0x00000001094f50c0 in testing::WaitUntilConditionOrTimeout(double, bool () block_pointer) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../ios/testing/wait_util.mm:29 #22 0x00000001094f467e in ios_web_view::test::EvaluateJavaScript(CWVWebView*, NSString*, NSError* __autoreleasing*) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../ios/web_view/test/web_view_test_util.mm:59 #23 0x00000001094dbb7a in ::___ZN12ios_web_view53WebViewAutofillTest_TestSuggestionFetchFillClear_Test8TestBodyEv_block_invoke.129() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../ios/web_view/test/web_view_autofill_inttest.mm:205 #24 0x00000001094f50d2 in testing::WaitUntilConditionOrTimeout(double, bool () block_pointer) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../ios/testing/wait_util.mm:31 #25 0x00000001094dac12 in ios_web_view::WebViewAutofillTest_TestSuggestionFetchFillClear_Test::TestBody() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../ios/web_view/test/web_view_autofill_inttest.mm:205 #26 0x000000010956dcce in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:2417 #27 0x0000000109540882 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:2472 #28 0x00000001095407b6 in testing::Test::Run() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:2491 #29 0x00000001095417fd in testing::TestInfo::Run() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:2667 #30 0x0000000109542b2c in testing::TestCase::Run() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:2785 #31 0x0000000109556924 in testing::internal::UnitTestImpl::RunAllTests() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:5047 #32 0x000000010957194e in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:2417 #33 0x0000000109556562 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:2472 #34 0x0000000109556455 in testing::UnitTest::Run() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/src/gtest.cc:4663 #35 0x00000001099805a1 in RUN_ALL_TESTS() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../third_party/googletest/src/googletest/include/gtest/gtest.h:2327 #36 0x000000010997f97e in base::TestSuite::Run() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/test/test_suite.cc:275 #37 0x000000010998ac11 in ::-[ChromeUnitTestDelegate runTests]() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/test/test_support_ios.mm:157 #38 0x000000010e1c09eb in __NSFireDelayedPerform () #39 0x000000010d342e64 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ () #40 0x000000010d342a52 in __CFRunLoopDoTimer () #41 0x000000010d34260a in __CFRunLoopDoTimers () #42 0x000000010d339e4c in __CFRunLoopRun () #43 0x000000010d33930b in CFRunLoopRunSpecific () #44 0x0000000117889a73 in GSEventRunModal () #45 0x000000010b1240b7 in UIApplicationMain () #46 0x000000010998af52 in base::RunTestsFromIOSApp() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/test/test_support_ios.mm:213 #47 0x000000010997f84f in base::TestSuite::Run() at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/test/test_suite.cc:256 #48 0x000000010998392d in int base::internal::FunctorTraits<int (base::TestSuite::*)(), void>::Invoke<base::TestSuite*>(int (base::TestSuite::*)(), base::TestSuite*&&) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/bind_internal.h:447 #49 0x0000000109a49f94 in int base::internal::InvokeHelper<false, int>::MakeItSo<int (base::TestSuite::*)(), base::TestSuite*>(int (base::TestSuite::*&&)(), base::TestSuite*&&) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/bind_internal.h:530 #50 0x0000000109a49f45 in int base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<base::TestSuite> >, int ()>::RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<base::TestSuite> >, 0ul>(int (base::TestSuite::*&&)(), std::__1::tuple<base::internal::UnretainedWrapper<base::TestSuite> >&&, std::__1::integer_sequence<unsigned long, 0ul>) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/bind_internal.h:604 #51 0x0000000109a49eb9 in base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<base::TestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/bind_internal.h:572 #52 0x000000010998d181 in base::OnceCallback<int ()>::Run() && at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/callback.h:95 #53 0x000000010998d0eb in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/test/launcher/unit_test_launcher_ios.cc:39 #54 0x0000000109a49d72 in main at /Users/ichikawa/chromium/src/out/Debug-iphonesimulator/../../base/test/run_all_unittests.cc:12 #55 0x000000011972b955 in start () #56 0x000000011972b955 in start ()
,
Apr 19 2018
Yes I can. I'm OOO so I will look at this next Monday.
,
Apr 19 2018
olivierrobin@: If you have time, could you see if this has anything to do with the new delay between fields mechanism?
,
Apr 23 2018
This is pretty flaky, I can't get it to fail all the time. Anyways, it seems like a navigation can sometimes happen when the test is waiting for javascript execution? eugenebut@ do you know what could be causing this?
,
Apr 23 2018
Do we know how this navigation is initiated? Generally |_loadPhase == web::LOAD_REQUESTED| check is not very useful, because WKWebView may have more than one in-progress navigation and when it happens, _loadPhase may not be in correct state. This is something that we will eventually fix, but the tests should not have more than one in-progress navigation.
,
Apr 23 2018
I don't know yet. It seems to happen (again, sometimes) while the test is waiting for "document.getElementById('%@').value".
The test does load a page twice throughout the test, but it blocks until !web_view.loading for each load.
,
May 14 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7ec7e5ae50ff3b7b744c904b36fed1bed4a5a169 commit 7ec7e5ae50ff3b7b744c904b36fed1bed4a5a169 Author: John Z Wu <jzw@chromium.org> Date: Mon May 14 16:43:18 2018 Fix flaky autofill tests in //ios/web_view. These tests were flaky because submitting a form causes a navigation on top of loading the test page. These two navigations happening at the same time can cause some race conditions ending in a DCHECK. By directing the form to 'about:blank', it avoids the extra navigation. Bug: 834660 ,842122 Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs Change-Id: If535a18fdc277d0c6766967cdbeea2f85fa415dc Reviewed-on: https://chromium-review.googlesource.com/1056411 Commit-Queue: John Wu <jzw@chromium.org> Reviewed-by: Eugene But <eugenebut@chromium.org> Cr-Commit-Position: refs/heads/master@{#558335} [modify] https://crrev.com/7ec7e5ae50ff3b7b744c904b36fed1bed4a5a169/ios/web_view/test/web_view_autofill_inttest.mm
,
May 14 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by ichikawa@chromium.org
, Apr 19 2018