Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: chrome/browser/renderer_host/render_view_host.cc

Issue 5172009: This adds some plumbing for propagating the reason for a renderer's death (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/renderer_host/render_view_host.h" 5 #include "chrome/browser/renderer_host/render_view_host.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 suspended_nav_message_(NULL), 127 suspended_nav_message_(NULL),
128 run_modal_reply_msg_(NULL), 128 run_modal_reply_msg_(NULL),
129 is_waiting_for_beforeunload_ack_(false), 129 is_waiting_for_beforeunload_ack_(false),
130 is_waiting_for_unload_ack_(false), 130 is_waiting_for_unload_ack_(false),
131 unload_ack_is_for_cross_site_transition_(false), 131 unload_ack_is_for_cross_site_transition_(false),
132 are_javascript_messages_suppressed_(false), 132 are_javascript_messages_suppressed_(false),
133 sudden_termination_allowed_(false), 133 sudden_termination_allowed_(false),
134 session_storage_namespace_(session_storage), 134 session_storage_namespace_(session_storage),
135 is_extension_process_(false), 135 is_extension_process_(false),
136 autofill_query_id_(0), 136 autofill_query_id_(0),
137 save_accessibility_tree_for_testing_(false) { 137 save_accessibility_tree_for_testing_(false),
138 render_view_termination_status_(base::TERMINATION_STATUS_STILL_RUNNING) {
138 if (!session_storage_namespace_) { 139 if (!session_storage_namespace_) {
139 session_storage_namespace_ = 140 session_storage_namespace_ =
140 new SessionStorageNamespace(process()->profile()); 141 new SessionStorageNamespace(process()->profile());
141 } 142 }
142 143
143 DCHECK(instance_); 144 DCHECK(instance_);
144 DCHECK(delegate_); 145 DCHECK(delegate_);
145 } 146 }
146 147
147 RenderViewHost::~RenderViewHost() { 148 RenderViewHost::~RenderViewHost() {
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 986
986 void RenderViewHost::OnMsgRunModal(IPC::Message* reply_msg) { 987 void RenderViewHost::OnMsgRunModal(IPC::Message* reply_msg) {
987 DCHECK(!run_modal_reply_msg_); 988 DCHECK(!run_modal_reply_msg_);
988 run_modal_reply_msg_ = reply_msg; 989 run_modal_reply_msg_ = reply_msg;
989 990
990 // TODO(darin): Bug 1107929: Need to inform our delegate to show this view in 991 // TODO(darin): Bug 1107929: Need to inform our delegate to show this view in
991 // an app-modal fashion. 992 // an app-modal fashion.
992 } 993 }
993 994
994 void RenderViewHost::OnMsgRenderViewReady() { 995 void RenderViewHost::OnMsgRenderViewReady() {
996 render_view_termination_status_ = base::TERMINATION_STATUS_STILL_RUNNING;
995 WasResized(); 997 WasResized();
996 delegate_->RenderViewReady(this); 998 delegate_->RenderViewReady(this);
997 } 999 }
998 1000
999 void RenderViewHost::OnMsgRenderViewGone() { 1001 void RenderViewHost::OnMsgRenderViewGone(int status, int exit_code) {
1002 // Keep the termination status so we can get at it later when we
1003 // need to know why it died.
1004 render_view_termination_status_ =
1005 static_cast<base::TerminationStatus>(status);
1006
1000 // Our base class RenderWidgetHost needs to reset some stuff. 1007 // Our base class RenderWidgetHost needs to reset some stuff.
1001 RendererExited(); 1008 RendererExited(render_view_termination_status_, exit_code);
1002 1009
1003 delegate_->RenderViewGone(this); 1010 delegate_->RenderViewGone(this,
1011 static_cast<base::TerminationStatus>(status),
1012 exit_code);
1004 } 1013 }
1005 1014
1006 // Called when the renderer navigates. For every frame loaded, we'll get this 1015 // Called when the renderer navigates. For every frame loaded, we'll get this
1007 // notification containing parameters identifying the navigation. 1016 // notification containing parameters identifying the navigation.
1008 // 1017 //
1009 // Subframes are identified by the page transition type. For subframes loaded 1018 // Subframes are identified by the page transition type. For subframes loaded
1010 // as part of a wider page load, the page_id will be the same as for the top 1019 // as part of a wider page load, the page_id will be the same as for the top
1011 // level frame. If the user explicitly requests a subframe navigation, we will 1020 // level frame. If the user explicitly requests a subframe navigation, we will
1012 // get a new page_id because we need to create a new navigation entry for that 1021 // get a new page_id because we need to create a new navigation entry for that
1013 // action. 1022 // action.
(...skipping 1230 matching lines...) Expand 10 before | Expand all | Expand 10 after
2244 TabContents* print_preview_tab = GetOrCreatePrintPreviewTab(); 2253 TabContents* print_preview_tab = GetOrCreatePrintPreviewTab();
2245 DCHECK(print_preview_tab); 2254 DCHECK(print_preview_tab);
2246 2255
2247 // TODO(kmadhusu): Function definition needs to be changed. 2256 // TODO(kmadhusu): Function definition needs to be changed.
2248 // fd_in_browser should be the file descriptor of the metafile. 2257 // fd_in_browser should be the file descriptor of the metafile.
2249 2258
2250 // Send the printingDone msg for now. 2259 // Send the printingDone msg for now.
2251 Send(new ViewMsg_PrintingDone(routing_id(), -1, true)); 2260 Send(new ViewMsg_PrintingDone(routing_id(), -1, true));
2252 } 2261 }
2253 #endif 2262 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698