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

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: Use ResourceThrottle 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 956 matching lines...) Expand 10 before | Expand all | Expand 10 after
1448 child_process_launcher_.reset(); 1452 child_process_launcher_.reset();
1449 channel_.reset(); 1453 channel_.reset();
1450 gpu_message_filter_ = NULL; 1454 gpu_message_filter_ = NULL;
1451 1455
1452 IDMap<RenderWidgetHost>::iterator iter(&render_widget_hosts_); 1456 IDMap<RenderWidgetHost>::iterator iter(&render_widget_hosts_);
1453 while (!iter.IsAtEnd()) { 1457 while (!iter.IsAtEnd()) {
1454 RenderWidgetHostImpl::From(iter.GetCurrentValue())->OnMessageReceived( 1458 RenderWidgetHostImpl::From(iter.GetCurrentValue())->OnMessageReceived(
1455 ViewHostMsg_RenderViewGone(iter.GetCurrentKey(), 1459 ViewHostMsg_RenderViewGone(iter.GetCurrentKey(),
1456 static_cast<int>(status), 1460 static_cast<int>(status),
1457 exit_code)); 1461 exit_code));
1462 if (ResourceDispatcherHostImpl::Get()) {
1463 ResourceDispatcherHostImpl::Get()->scheduler()->OnDestroy(
darin (slow to review) 2012/12/15 05:17:24 This looks like it is the main thread, and I don't
James Simonsen 2012/12/17 21:31:38 Done. Let me know if I should separate out or rena
1464 GetID(), iter.GetCurrentKey());
1465 }
1458 iter.Advance(); 1466 iter.Advance();
1459 } 1467 }
1460 1468
1461 ClearTransportDIBCache(); 1469 ClearTransportDIBCache();
1462 1470
1463 // this object is not deleted at this point and may be reused later. 1471 // this object is not deleted at this point and may be reused later.
1464 // TODO(darin): clean this up 1472 // TODO(darin): clean this up
1465 } 1473 }
1466 1474
1467 int RenderProcessHostImpl::GetActiveViewCount() { 1475 int RenderProcessHostImpl::GetActiveViewCount() {
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1589 int32 gpu_process_host_id) { 1597 int32 gpu_process_host_id) {
1590 TRACE_EVENT0("renderer_host", 1598 TRACE_EVENT0("renderer_host",
1591 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost"); 1599 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost");
1592 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id, 1600 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id,
1593 gpu_process_host_id, 1601 gpu_process_host_id,
1594 surface_handle, 1602 surface_handle,
1595 0); 1603 0);
1596 } 1604 }
1597 1605
1598 } // namespace content 1606 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698