| Index: chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
|
| diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
|
| index 989c3263aa0580ac125564d394987e81bc964f12..9ee909df878da2c989dac8314d7094ac90432f2f 100644
|
| --- a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
|
| +++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
|
| @@ -528,10 +528,22 @@ void WebNavigationTabObserver::DocumentLoadedInFrame(
|
| FrameNavigationState::FrameID frame_id(frame_num, render_view_host);
|
| if (!navigation_state_.CanSendEvents(frame_id))
|
| return;
|
| + navigation_state_.SetParsingFinished(frame_id);
|
| helpers::DispatchOnDOMContentLoaded(web_contents(),
|
| navigation_state_.GetUrl(frame_id),
|
| navigation_state_.IsMainFrame(frame_id),
|
| frame_num);
|
| +
|
| + if (!navigation_state_.GetNavigationCompleted(frame_id))
|
| + return;
|
| +
|
| + // The load might already have finished by the time we finished parsing. For
|
| + // compatibility reasons, we artifically delay the load completed signal until
|
| + // after parsing was completed.
|
| + helpers::DispatchOnCompleted(web_contents(),
|
| + navigation_state_.GetUrl(frame_id),
|
| + navigation_state_.IsMainFrame(frame_id),
|
| + frame_num);
|
| }
|
|
|
| void WebNavigationTabObserver::DidFinishLoad(
|
| @@ -559,6 +571,12 @@ void WebNavigationTabObserver::DidFinishLoad(
|
| << "validated URL is " << validated_url << " but we expected "
|
| << navigation_state_.GetUrl(frame_id);
|
| DCHECK_EQ(navigation_state_.IsMainFrame(frame_id), is_main_frame);
|
| +
|
| + // The load might already have finished by the time we finished parsing. For
|
| + // compatibility reasons, we artifically delay the load completed signal until
|
| + // after parsing was completed.
|
| + if (!navigation_state_.GetParsingFinished(frame_id))
|
| + return;
|
| helpers::DispatchOnCompleted(web_contents(),
|
| navigation_state_.GetUrl(frame_id),
|
| is_main_frame,
|
|
|