Comment #7 on issue 21849 by su...@chromium.org: AutocompleteEditViewTest.EnterToSearch is flaky http://code.google.com/p/chromium/issues/detail?id=21849
I debugged this issue and found that the sequence of calls to some of RenderView's methods (from WebFrameClient interface) are suspect: Sequence of success case: <press enter with some text in omnibox> NavigationController::NavigateToPendingEntry RenderView::didStartProvisionalLoad RenderView::didFailProvisionalLoad RenderView::didStartProvisionalLoad RenderView::didCommitProvisionalLoad RenderView::didFinishDocumentLoad RenderView::didFinishLoad NavigationController::RendererDidNavigate RenderView::AltErrorPageFinished RenderView::LoadNavigationErrorPage RenderView::didStartProvisionalLoad RenderView::didCommitProvisionalLoad NavigationController::RendererDidNavigate RenderView::didFinishDocumentLoad RenderView::didFinishLoad Sequence of failure case: <press enter with some text in omnibox> NavigationController::NavigateToPendingEntry RenderView::didStartProvisionalLoad RenderView::didFailProvisionalLoad RenderView::didStartProvisionalLoad RenderView::AltErrorPageFinished RenderView::LoadNavigationErrorPage RenderView::didFailProvisionalLoad RenderView::didStartProvisionalLoad RenderView::didCommitProvisionalLoad NavigationController::RendererDidNavigate <error occurred> Looking into the source code of RenderView::MaybeLoadAlternateErrorPage(), which is called by RenderView::didFailProvisionalLoad(): ... // Load an empty page first so there is an immediate response to the error, // and then kick off a request for the alternate error page. frame->loadHTMLString(std::string(), GURL(kUnreachableWebDataURL), error.unreachableURL, replace); // Now, create a fetcher for the error page and associate it with the data // source we just created via the LoadHTMLString call. That way if another // navigation occurs, the fetcher will get destroyed. NavigationState* navigation_state = NavigationState::FromDataSource(frame->provisionalDataSource()); navigation_state->set_alt_error_page_fetcher( new AltErrorPageResourceFetcher( error_page_url, frame, error, NewCallback(this, &RenderView::AltErrorPageFinished))); ... Seems that the reason of the failure is: RenderView::AltErrorPageFinished() gets called before finish loading the empty page. -- You received this message because you are listed in the owner or CC fields of this issue, or because you starred this issue. You may adjust your issue notification preferences at: http://code.google.com/hosting/settings --~--~---------~--~----~------------~-------~--~----~ Automated mail from issue updates at http://crbug.com/ Subscription options: http://groups.google.com/group/chromium-bugs -~----------~----~----~----~------~----~------~--~---