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

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 11270027: Add a ResourceScheduler to ResourceDispatcherHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix typo Created 8 years 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Represents the browser side of the browser <--> renderer communication 5 // Represents the browser side of the browser <--> renderer communication
6 // channel. There will be one RenderProcessHost per renderer process. 6 // channel. There will be one RenderProcessHost per renderer process.
7 7
8 #include "content/browser/renderer_host/render_process_host_impl.h" 8 #include "content/browser/renderer_host/render_process_host_impl.h"
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 #include "content/browser/download/mhtml_generation_manager.h" 49 #include "content/browser/download/mhtml_generation_manager.h"
50 #include "content/browser/fileapi/chrome_blob_storage_context.h" 50 #include "content/browser/fileapi/chrome_blob_storage_context.h"
51 #include "content/browser/fileapi/fileapi_message_filter.h" 51 #include "content/browser/fileapi/fileapi_message_filter.h"
52 #include "content/browser/geolocation/geolocation_dispatcher_host.h" 52 #include "content/browser/geolocation/geolocation_dispatcher_host.h"
53 #include "content/browser/gpu/gpu_data_manager_impl.h" 53 #include "content/browser/gpu/gpu_data_manager_impl.h"
54 #include "content/browser/gpu/gpu_process_host.h" 54 #include "content/browser/gpu/gpu_process_host.h"
55 #include "content/browser/histogram_message_filter.h" 55 #include "content/browser/histogram_message_filter.h"
56 #include "content/browser/hyphenator/hyphenator_message_filter.h" 56 #include "content/browser/hyphenator/hyphenator_message_filter.h"
57 #include "content/browser/in_process_webkit/indexed_db_context_impl.h" 57 #include "content/browser/in_process_webkit/indexed_db_context_impl.h"
58 #include "content/browser/in_process_webkit/indexed_db_dispatcher_host.h" 58 #include "content/browser/in_process_webkit/indexed_db_dispatcher_host.h"
59 #include "content/browser/loader/resource_dispatcher_host_impl.h"
59 #include "content/browser/loader/resource_message_filter.h" 60 #include "content/browser/loader/resource_message_filter.h"
61 #include "content/browser/loader/resource_scheduler.h"
62 #include "content/browser/loader/resource_scheduler_filter.h"
60 #include "content/browser/mime_registry_message_filter.h" 63 #include "content/browser/mime_registry_message_filter.h"
61 #include "content/browser/plugin_service_impl.h" 64 #include "content/browser/plugin_service_impl.h"
62 #include "content/browser/profiler_message_filter.h" 65 #include "content/browser/profiler_message_filter.h"
63 #include "content/browser/renderer_host/clipboard_message_filter.h" 66 #include "content/browser/renderer_host/clipboard_message_filter.h"
64 #include "content/browser/renderer_host/database_message_filter.h" 67 #include "content/browser/renderer_host/database_message_filter.h"
65 #include "content/browser/renderer_host/file_utilities_message_filter.h" 68 #include "content/browser/renderer_host/file_utilities_message_filter.h"
66 #include "content/browser/renderer_host/gamepad_browser_message_filter.h" 69 #include "content/browser/renderer_host/gamepad_browser_message_filter.h"
67 #include "content/browser/renderer_host/gpu_message_filter.h" 70 #include "content/browser/renderer_host/gpu_message_filter.h"
68 #include "content/browser/renderer_host/media/audio_input_renderer_host.h" 71 #include "content/browser/renderer_host/media/audio_input_renderer_host.h"
69 #include "content/browser/renderer_host/media/audio_renderer_host.h" 72 #include "content/browser/renderer_host/media/audio_renderer_host.h"
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 475
473 fast_shutdown_started_ = false; 476 fast_shutdown_started_ = false;
474 } 477 }
475 478
476 is_initialized_ = true; 479 is_initialized_ = true;
477 return true; 480 return true;
478 } 481 }
479 482
480 void RenderProcessHostImpl::CreateMessageFilters() { 483 void RenderProcessHostImpl::CreateMessageFilters() {
481 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 484 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
485 channel_->AddFilter(new ResourceSchedulerFilter(GetID()));
482 MediaObserver* media_observer = 486 MediaObserver* media_observer =
483 GetContentClient()->browser()->GetMediaObserver(); 487 GetContentClient()->browser()->GetMediaObserver();
484 // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages 488 // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages
485 // from guests. 489 // from guests.
486 if (IsGuest()) { 490 if (IsGuest()) {
487 scoped_refptr<BrowserPluginMessageFilter> bp_message_filter( 491 scoped_refptr<BrowserPluginMessageFilter> bp_message_filter(
488 new BrowserPluginMessageFilter( 492 new BrowserPluginMessageFilter(
489 GetID(), 493 GetID(),
490 GetBrowserContext())); 494 GetBrowserContext()));
491 channel_->AddFilter(bp_message_filter); 495 channel_->AddFilter(bp_message_filter);
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 ignore_input_events_ = ignore_input_events; 1100 ignore_input_events_ = ignore_input_events;
1097 } 1101 }
1098 1102
1099 bool RenderProcessHostImpl::IgnoreInputEvents() const { 1103 bool RenderProcessHostImpl::IgnoreInputEvents() const {
1100 return ignore_input_events_; 1104 return ignore_input_events_;
1101 } 1105 }
1102 1106
1103 void RenderProcessHostImpl::Attach(RenderWidgetHost* host, 1107 void RenderProcessHostImpl::Attach(RenderWidgetHost* host,
1104 int routing_id) { 1108 int routing_id) {
1105 render_widget_hosts_.AddWithID(host, routing_id); 1109 render_widget_hosts_.AddWithID(host, routing_id);
1110 if (ResourceDispatcherHostImpl::Get()) {
1111 ResourceDispatcherHostImpl::Get()->scheduler()->OnCreate(
1112 GetID(), routing_id);
1113 }
1106 } 1114 }
1107 1115
1108 void RenderProcessHostImpl::Release(int routing_id) { 1116 void RenderProcessHostImpl::Release(int routing_id) {
1109 DCHECK(render_widget_hosts_.Lookup(routing_id) != NULL); 1117 DCHECK(render_widget_hosts_.Lookup(routing_id) != NULL);
1110 render_widget_hosts_.Remove(routing_id); 1118 render_widget_hosts_.Remove(routing_id);
1111 1119
1112 // Make sure that all associated resource requests are stopped. 1120 // Make sure that all associated resource requests are stopped.
1113 CancelResourceRequests(routing_id); 1121 CancelResourceRequests(routing_id);
1114 1122
1115 #if defined(OS_WIN) 1123 #if defined(OS_WIN)
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
1447 child_process_launcher_.reset(); 1455 child_process_launcher_.reset();
1448 channel_.reset(); 1456 channel_.reset();
1449 gpu_message_filter_ = NULL; 1457 gpu_message_filter_ = NULL;
1450 1458
1451 IDMap<RenderWidgetHost>::iterator iter(&render_widget_hosts_); 1459 IDMap<RenderWidgetHost>::iterator iter(&render_widget_hosts_);
1452 while (!iter.IsAtEnd()) { 1460 while (!iter.IsAtEnd()) {
1453 RenderWidgetHostImpl::From(iter.GetCurrentValue())->OnMessageReceived( 1461 RenderWidgetHostImpl::From(iter.GetCurrentValue())->OnMessageReceived(
1454 ViewHostMsg_RenderViewGone(iter.GetCurrentKey(), 1462 ViewHostMsg_RenderViewGone(iter.GetCurrentKey(),
1455 static_cast<int>(status), 1463 static_cast<int>(status),
1456 exit_code)); 1464 exit_code));
1465 if (ResourceDispatcherHostImpl::Get()) {
1466 ResourceDispatcherHostImpl::Get()->scheduler()->OnDestroy(
1467 GetID(), iter.GetCurrentKey());
1468 }
1457 iter.Advance(); 1469 iter.Advance();
1458 } 1470 }
1459 1471
1460 ClearTransportDIBCache(); 1472 ClearTransportDIBCache();
1461 1473
1462 // this object is not deleted at this point and may be reused later. 1474 // this object is not deleted at this point and may be reused later.
1463 // TODO(darin): clean this up 1475 // TODO(darin): clean this up
1464 } 1476 }
1465 1477
1466 int RenderProcessHostImpl::GetActiveViewCount() { 1478 int RenderProcessHostImpl::GetActiveViewCount() {
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1588 int32 gpu_process_host_id) { 1600 int32 gpu_process_host_id) {
1589 TRACE_EVENT0("renderer_host", 1601 TRACE_EVENT0("renderer_host",
1590 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost"); 1602 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost");
1591 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id, 1603 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id,
1592 gpu_process_host_id, 1604 gpu_process_host_id,
1593 surface_handle, 1605 surface_handle,
1594 0); 1606 0);
1595 } 1607 }
1596 1608
1597 } // namespace content 1609 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698