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

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

Issue 6330007: Don't use GetAsTabContents. Send notifications from TabContentsView instead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 11 months 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_widget_helper.h" 5 #include "chrome/browser/renderer_host/render_widget_helper.h"
6 6
7 #include "base/eintr_wrapper.h" 7 #include "base/eintr_wrapper.h"
8 #include "base/threading/thread.h" 8 #include "base/threading/thread.h"
9 #include "chrome/browser/browser_thread.h" 9 #include "chrome/browser/browser_thread.h"
10 #include "chrome/browser/renderer_host/render_process_host.h" 10 #include "chrome/browser/renderer_host/render_process_host.h"
11 #include "chrome/browser/renderer_host/render_view_host.h" 11 #include "chrome/browser/renderer_host/render_view_host.h"
12 #include "chrome/browser/renderer_host/render_view_host_delegate.h"
13 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" 12 #include "chrome/browser/renderer_host/resource_dispatcher_host.h"
14 #include "chrome/common/notification_service.h"
15 #include "chrome/common/render_messages_params.h" 13 #include "chrome/common/render_messages_params.h"
16 14
17 // A Task used with InvokeLater that we hold a pointer to in pending_paints_. 15 // A Task used with InvokeLater that we hold a pointer to in pending_paints_.
18 // Instances are deleted by MessageLoop after it calls their Run method. 16 // Instances are deleted by MessageLoop after it calls their Run method.
19 class RenderWidgetHelper::UpdateMsgProxy : public Task { 17 class RenderWidgetHelper::UpdateMsgProxy : public Task {
20 public: 18 public:
21 UpdateMsgProxy(RenderWidgetHelper* h, const IPC::Message& m) 19 UpdateMsgProxy(RenderWidgetHelper* h, const IPC::Message& m)
22 : helper(h), 20 : helper(h),
23 message(m), 21 message(m),
24 cancelled(false) { 22 cancelled(false) {
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 BrowserThread::UI, FROM_HERE, 213 BrowserThread::UI, FROM_HERE,
216 NewRunnableMethod( 214 NewRunnableMethod(
217 this, &RenderWidgetHelper::OnCreateWindowOnUI, params, *route_id)); 215 this, &RenderWidgetHelper::OnCreateWindowOnUI, params, *route_id));
218 } 216 }
219 217
220 void RenderWidgetHelper::OnCreateWindowOnUI( 218 void RenderWidgetHelper::OnCreateWindowOnUI(
221 const ViewHostMsg_CreateWindow_Params& params, 219 const ViewHostMsg_CreateWindow_Params& params,
222 int route_id) { 220 int route_id) {
223 RenderViewHost* host = 221 RenderViewHost* host =
224 RenderViewHost::FromID(render_process_id_, params.opener_id); 222 RenderViewHost::FromID(render_process_id_, params.opener_id);
225 if (host) { 223 if (host)
226 host->CreateNewWindow(route_id, 224 host->CreateNewWindow(route_id, params);
227 params.window_container_type,
228 params.frame_name);
229 TabContents* tab_contents = host->delegate()->GetAsTabContents();
230 if (tab_contents) {
231 NotificationService::current()->Notify(
232 NotificationType::CREATING_NEW_WINDOW,
233 Source<TabContents>(tab_contents),
234 Details<const ViewHostMsg_CreateWindow_Params>(&params));
235 }
236 }
237 225
238 BrowserThread::PostTask( 226 BrowserThread::PostTask(
239 BrowserThread::IO, FROM_HERE, 227 BrowserThread::IO, FROM_HERE,
240 NewRunnableMethod(this, &RenderWidgetHelper::OnCreateWindowOnIO, 228 NewRunnableMethod(this, &RenderWidgetHelper::OnCreateWindowOnIO,
241 route_id)); 229 route_id));
242 } 230 }
243 231
244 void RenderWidgetHelper::OnCreateWindowOnIO(int route_id) { 232 void RenderWidgetHelper::OnCreateWindowOnIO(int route_id) {
245 resource_dispatcher_host_->ResumeBlockedRequestsForRoute( 233 resource_dispatcher_host_->ResumeBlockedRequestsForRoute(
246 render_process_id_, route_id); 234 render_process_id_, route_id);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 void RenderWidgetHelper::ClearAllocatedDIBs() { 318 void RenderWidgetHelper::ClearAllocatedDIBs() {
331 for (std::map<TransportDIB::Id, int>::iterator 319 for (std::map<TransportDIB::Id, int>::iterator
332 i = allocated_dibs_.begin(); i != allocated_dibs_.end(); ++i) { 320 i = allocated_dibs_.begin(); i != allocated_dibs_.end(); ++i) {
333 if (HANDLE_EINTR(close(i->second)) < 0) 321 if (HANDLE_EINTR(close(i->second)) < 0)
334 PLOG(ERROR) << "close: " << i->first; 322 PLOG(ERROR) << "close: " << i->first;
335 } 323 }
336 324
337 allocated_dibs_.clear(); 325 allocated_dibs_.clear();
338 } 326 }
339 #endif 327 #endif
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_view_host_delegate.h ('k') | chrome/browser/tab_contents/background_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698