summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_view.cc
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-02 16:15:01 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-02 16:15:01 +0000
commit78a3a6f8ea98f45a4b8f41f1dfc067f913815f43 (patch)
treef3f97bb15f24be4bbff09c2f73fefc6cd5dc2fe2 /chrome/renderer/render_view.cc
parent574d5c165f055e21a93ac97e8f5f66a2aea5b65a (diff)
downloadchromium_src-78a3a6f8ea98f45a4b8f41f1dfc067f913815f43.zip
chromium_src-78a3a6f8ea98f45a4b8f41f1dfc067f913815f43.tar.gz
chromium_src-78a3a6f8ea98f45a4b8f41f1dfc067f913815f43.tar.bz2
Set the WebViewDelegate earlier during WebView creation to ensure that
DidCreateDataSource gets called when constructing the initial data source for the WebView's main frame. This ensures that the NavigationState associated with a WebDataSource can never be null. I went ahead and removed some of the null-checks that were added to avoid other related crashes. (To fix bug 15594, I really really didn't want to add another one of those null checks.) BUG=15594 TEST=partially covered by existing ui tests R=dglazkov Review URL: http://codereview.chromium.org/150208 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19818 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r--chrome/renderer/render_view.cc34
1 files changed, 14 insertions, 20 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index f59cfce..0d65aac 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -1076,18 +1076,15 @@ void RenderView::DidPaint() {
WebDataSource* ds = main_frame->GetDataSource();
NavigationState* navigation_state = NavigationState::FromDataSource(ds);
- // TODO(darin): It should not be possible for navigation_state to
- // be null here! But the UI test DownloadTest.IncognitoDownload
- // can cause it to happen.
- if (navigation_state) {
- Time now = Time::Now();
- if (navigation_state->first_paint_time().is_null()) {
- navigation_state->set_first_paint_time(now);
- }
- if (navigation_state->first_paint_after_load_time().is_null() &&
- !navigation_state->finish_load_time().is_null()) {
- navigation_state->set_first_paint_after_load_time(now);
- }
+ DCHECK(navigation_state);
+
+ Time now = Time::Now();
+ if (navigation_state->first_paint_time().is_null()) {
+ navigation_state->set_first_paint_time(now);
+ }
+ if (navigation_state->first_paint_after_load_time().is_null() &&
+ !navigation_state->finish_load_time().is_null()) {
+ navigation_state->set_first_paint_after_load_time(now);
}
}
@@ -1318,10 +1315,8 @@ void RenderView::DidReceiveTitle(WebView* webview,
void RenderView::DidFinishLoadForFrame(WebView* webview, WebFrame* frame) {
WebDataSource* ds = frame->GetDataSource();
NavigationState* navigation_state = NavigationState::FromDataSource(ds);
- // TODO(darin): It should not be possible for navigation_state to be null
- // here!
- if (navigation_state)
- navigation_state->set_finish_load_time(Time::Now());
+ DCHECK(navigation_state);
+ navigation_state->set_finish_load_time(Time::Now());
}
void RenderView::DidFailLoadWithError(WebView* webview,
@@ -1336,10 +1331,8 @@ void RenderView::DidFinishDocumentLoadForFrame(WebView* webview,
WebFrame* frame) {
WebDataSource* ds = frame->GetDataSource();
NavigationState* navigation_state = NavigationState::FromDataSource(ds);
- // TODO(darin): It should not be possible for navigation_state to be null
- // here!
- if (navigation_state)
- navigation_state->set_finish_document_load_time(Time::Now());
+ DCHECK(navigation_state);
+ navigation_state->set_finish_document_load_time(Time::Now());
Send(new ViewHostMsg_DocumentLoadedInFrame(routing_id_));
@@ -2727,6 +2720,7 @@ void RenderView::DidAddHistoryItem() {
DCHECK(ds != NULL);
NavigationState* navigation_state = NavigationState::FromDataSource(ds);
+ DCHECK(navigation_state);
if (navigation_state->transition_type() == PageTransition::START_PAGE)
return;