Fix back/forward navigation when the history contains pages that failed to load (issue #125).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@106 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
39553a1947
commit
de51597b22
|
@ -672,7 +672,12 @@ void BrowserWebViewDelegate::didFailProvisionalLoad(
|
||||||
const WebDataSource* failed_ds = frame->provisionalDataSource();
|
const WebDataSource* failed_ds = frame->provisionalDataSource();
|
||||||
BrowserExtraData* extra_data =
|
BrowserExtraData* extra_data =
|
||||||
static_cast<BrowserExtraData*>(failed_ds->extraData());
|
static_cast<BrowserExtraData*>(failed_ds->extraData());
|
||||||
bool replace = extra_data && extra_data->pending_page_id != -1;
|
|
||||||
|
if (extra_data && !extra_data->request_committed) {
|
||||||
|
// Set the pending extra_data for our error page as the same pending_page_id
|
||||||
|
// to keep the history from getting messed up.
|
||||||
|
set_pending_extra_data(new BrowserExtraData(extra_data->pending_page_id));
|
||||||
|
}
|
||||||
|
|
||||||
std::string error_text;
|
std::string error_text;
|
||||||
|
|
||||||
|
@ -695,7 +700,10 @@ void BrowserWebViewDelegate::didFailProvisionalLoad(
|
||||||
frame->enableViewSourceMode(false);
|
frame->enableViewSourceMode(false);
|
||||||
|
|
||||||
frame->loadHTMLString(
|
frame->loadHTMLString(
|
||||||
error_text, GURL("testshell-error:"), error.unreachableURL, replace);
|
error_text, GURL("testshell-error:"), error.unreachableURL, false);
|
||||||
|
|
||||||
|
// In case loadHTMLString failed before DidCreateDataSource was called.
|
||||||
|
set_pending_extra_data(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BrowserWebViewDelegate::didCommitProvisionalLoad(
|
void BrowserWebViewDelegate::didCommitProvisionalLoad(
|
||||||
|
|
Loading…
Reference in New Issue