| OLD | NEW |
| 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 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 } | 550 } |
| 551 | 551 |
| 552 is_initialized_ = true; | 552 is_initialized_ = true; |
| 553 return true; | 553 return true; |
| 554 } | 554 } |
| 555 | 555 |
| 556 void RenderProcessHostImpl::CreateMessageFilters() { | 556 void RenderProcessHostImpl::CreateMessageFilters() { |
| 557 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 557 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 558 channel_->AddFilter(new ResourceSchedulerFilter(GetID())); | 558 channel_->AddFilter(new ResourceSchedulerFilter(GetID())); |
| 559 MediaInternals* media_internals = MediaInternals::GetInstance();; | 559 MediaInternals* media_internals = MediaInternals::GetInstance();; |
| 560 media::AudioManager* audio_manager = |
| 561 BrowserMainLoop::GetInstance()->audio_manager(); |
| 560 // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages | 562 // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages |
| 561 // from guests. | 563 // from guests. |
| 562 if (supports_browser_plugin_) { | 564 if (supports_browser_plugin_) { |
| 563 scoped_refptr<BrowserPluginMessageFilter> bp_message_filter( | 565 scoped_refptr<BrowserPluginMessageFilter> bp_message_filter( |
| 564 new BrowserPluginMessageFilter(GetID(), IsGuest())); | 566 new BrowserPluginMessageFilter(GetID(), IsGuest())); |
| 565 channel_->AddFilter(bp_message_filter.get()); | 567 channel_->AddFilter(bp_message_filter.get()); |
| 566 } | 568 } |
| 567 | 569 |
| 568 scoped_refptr<RenderMessageFilter> render_message_filter( | 570 scoped_refptr<RenderMessageFilter> render_message_filter( |
| 569 new RenderMessageFilter( | 571 new RenderMessageFilter( |
| 570 GetID(), | 572 GetID(), |
| 571 #if defined(ENABLE_PLUGINS) | 573 #if defined(ENABLE_PLUGINS) |
| 572 PluginServiceImpl::GetInstance(), | 574 PluginServiceImpl::GetInstance(), |
| 573 #else | 575 #else |
| 574 NULL, | 576 NULL, |
| 575 #endif | 577 #endif |
| 576 GetBrowserContext(), | 578 GetBrowserContext(), |
| 577 GetBrowserContext()->GetRequestContextForRenderProcess(GetID()), | 579 GetBrowserContext()->GetRequestContextForRenderProcess(GetID()), |
| 578 widget_helper_.get(), | 580 widget_helper_.get(), |
| 581 audio_manager, |
| 579 media_internals, | 582 media_internals, |
| 580 storage_partition_impl_->GetDOMStorageContext())); | 583 storage_partition_impl_->GetDOMStorageContext())); |
| 581 channel_->AddFilter(render_message_filter.get()); | 584 channel_->AddFilter(render_message_filter.get()); |
| 582 BrowserContext* browser_context = GetBrowserContext(); | 585 BrowserContext* browser_context = GetBrowserContext(); |
| 583 ResourceContext* resource_context = browser_context->GetResourceContext(); | 586 ResourceContext* resource_context = browser_context->GetResourceContext(); |
| 584 | 587 |
| 585 ResourceMessageFilter* resource_message_filter = new ResourceMessageFilter( | 588 ResourceMessageFilter* resource_message_filter = new ResourceMessageFilter( |
| 586 GetID(), PROCESS_TYPE_RENDERER, resource_context, | 589 GetID(), PROCESS_TYPE_RENDERER, resource_context, |
| 587 storage_partition_impl_->GetAppCacheService(), | 590 storage_partition_impl_->GetAppCacheService(), |
| 588 ChromeBlobStorageContext::GetFor(browser_context), | 591 ChromeBlobStorageContext::GetFor(browser_context), |
| 589 storage_partition_impl_->GetFileSystemContext(), | 592 storage_partition_impl_->GetFileSystemContext(), |
| 590 new RendererURLRequestContextSelector(browser_context, GetID())); | 593 new RendererURLRequestContextSelector(browser_context, GetID())); |
| 591 | 594 |
| 592 channel_->AddFilter(resource_message_filter); | 595 channel_->AddFilter(resource_message_filter); |
| 593 media::AudioManager* audio_manager = BrowserMainLoop::GetAudioManager(); | |
| 594 MediaStreamManager* media_stream_manager = | 596 MediaStreamManager* media_stream_manager = |
| 595 BrowserMainLoop::GetMediaStreamManager(); | 597 BrowserMainLoop::GetInstance()->media_stream_manager(); |
| 596 channel_->AddFilter(new AudioInputRendererHost(audio_manager, | 598 channel_->AddFilter(new AudioInputRendererHost( |
| 597 media_stream_manager)); | 599 audio_manager, |
| 600 media_stream_manager, |
| 601 BrowserMainLoop::GetInstance()->audio_mirroring_manager())); |
| 598 channel_->AddFilter(new AudioRendererHost( | 602 channel_->AddFilter(new AudioRendererHost( |
| 599 GetID(), audio_manager, BrowserMainLoop::GetAudioMirroringManager(), | 603 GetID(), audio_manager, |
| 604 BrowserMainLoop::GetInstance()->audio_mirroring_manager(), |
| 600 media_internals, media_stream_manager)); | 605 media_internals, media_stream_manager)); |
| 601 channel_->AddFilter(new VideoCaptureHost()); | 606 channel_->AddFilter(new VideoCaptureHost(media_stream_manager)); |
| 602 channel_->AddFilter(new AppCacheDispatcherHost( | 607 channel_->AddFilter(new AppCacheDispatcherHost( |
| 603 storage_partition_impl_->GetAppCacheService(), | 608 storage_partition_impl_->GetAppCacheService(), |
| 604 GetID())); | 609 GetID())); |
| 605 channel_->AddFilter(new ClipboardMessageFilter); | 610 channel_->AddFilter(new ClipboardMessageFilter); |
| 606 channel_->AddFilter( | 611 channel_->AddFilter(new DOMStorageMessageFilter( |
| 607 new DOMStorageMessageFilter( | 612 GetID(), |
| 608 GetID(), | 613 storage_partition_impl_->GetDOMStorageContext())); |
| 609 storage_partition_impl_->GetDOMStorageContext())); | 614 channel_->AddFilter(new IndexedDBDispatcherHost( |
| 610 channel_->AddFilter( | 615 GetID(), |
| 611 new IndexedDBDispatcherHost( | 616 storage_partition_impl_->GetIndexedDBContext())); |
| 612 GetID(), | |
| 613 storage_partition_impl_->GetIndexedDBContext())); | |
| 614 if (IsGuest()) { | 617 if (IsGuest()) { |
| 615 if (!g_browser_plugin_geolocation_context.Get().get()) { | 618 if (!g_browser_plugin_geolocation_context.Get().get()) { |
| 616 g_browser_plugin_geolocation_context.Get() = | 619 g_browser_plugin_geolocation_context.Get() = |
| 617 new BrowserPluginGeolocationPermissionContext(); | 620 new BrowserPluginGeolocationPermissionContext(); |
| 618 } | 621 } |
| 619 channel_->AddFilter(GeolocationDispatcherHost::New( | 622 channel_->AddFilter(GeolocationDispatcherHost::New( |
| 620 GetID(), g_browser_plugin_geolocation_context.Get().get())); | 623 GetID(), g_browser_plugin_geolocation_context.Get().get())); |
| 621 } else { | 624 } else { |
| 622 channel_->AddFilter(GeolocationDispatcherHost::New( | 625 channel_->AddFilter(GeolocationDispatcherHost::New( |
| 623 GetID(), browser_context->GetGeolocationPermissionContext())); | 626 GetID(), browser_context->GetGeolocationPermissionContext())); |
| 624 } | 627 } |
| 625 gpu_message_filter_ = new GpuMessageFilter(GetID(), widget_helper_.get()); | 628 gpu_message_filter_ = new GpuMessageFilter(GetID(), widget_helper_.get()); |
| 626 channel_->AddFilter(gpu_message_filter_); | 629 channel_->AddFilter(gpu_message_filter_); |
| 627 #if defined(ENABLE_WEBRTC) | 630 #if defined(ENABLE_WEBRTC) |
| 628 peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID()); | 631 peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID()); |
| 629 channel_->AddFilter(peer_connection_tracker_host_.get()); | 632 channel_->AddFilter(peer_connection_tracker_host_.get()); |
| 630 channel_->AddFilter(new MediaStreamDispatcherHost(GetID())); | 633 channel_->AddFilter(new MediaStreamDispatcherHost( |
| 634 GetID(), media_stream_manager)); |
| 631 #endif | 635 #endif |
| 632 #if defined(ENABLE_PLUGINS) | 636 #if defined(ENABLE_PLUGINS) |
| 633 // TODO(raymes): PepperMessageFilter should be removed from here. | 637 // TODO(raymes): PepperMessageFilter should be removed from here. |
| 634 channel_->AddFilter(new PepperMessageFilter(GetID(), browser_context)); | 638 channel_->AddFilter(new PepperMessageFilter(GetID(), browser_context)); |
| 635 channel_->AddFilter(new PepperRendererConnection); | 639 channel_->AddFilter(new PepperRendererConnection); |
| 636 #endif | 640 #endif |
| 637 #if defined(ENABLE_INPUT_SPEECH) | 641 #if defined(ENABLE_INPUT_SPEECH) |
| 638 channel_->AddFilter(new InputTagSpeechDispatcherHost( | 642 channel_->AddFilter(new InputTagSpeechDispatcherHost( |
| 639 IsGuest(), GetID(), storage_partition_impl_->GetURLRequestContext(), | 643 IsGuest(), GetID(), storage_partition_impl_->GetURLRequestContext(), |
| 640 browser_context->GetSpeechRecognitionPreferences())); | 644 browser_context->GetSpeechRecognitionPreferences())); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 657 #elif defined(OS_WIN) | 661 #elif defined(OS_WIN) |
| 658 channel_->AddFilter(new FontCacheDispatcher()); | 662 channel_->AddFilter(new FontCacheDispatcher()); |
| 659 #endif | 663 #endif |
| 660 | 664 |
| 661 SocketStreamDispatcherHost* socket_stream_dispatcher_host = | 665 SocketStreamDispatcherHost* socket_stream_dispatcher_host = |
| 662 new SocketStreamDispatcherHost(GetID(), | 666 new SocketStreamDispatcherHost(GetID(), |
| 663 new RendererURLRequestContextSelector(browser_context, GetID()), | 667 new RendererURLRequestContextSelector(browser_context, GetID()), |
| 664 resource_context); | 668 resource_context); |
| 665 channel_->AddFilter(socket_stream_dispatcher_host); | 669 channel_->AddFilter(socket_stream_dispatcher_host); |
| 666 | 670 |
| 667 channel_->AddFilter( | 671 channel_->AddFilter(new WorkerMessageFilter( |
| 668 new WorkerMessageFilter( | 672 GetID(), |
| 669 GetID(), | 673 resource_context, |
| 670 resource_context, | 674 WorkerStoragePartition( |
| 671 WorkerStoragePartition( | 675 storage_partition_impl_->GetURLRequestContext(), |
| 672 storage_partition_impl_->GetURLRequestContext(), | 676 storage_partition_impl_->GetMediaURLRequestContext(), |
| 673 storage_partition_impl_->GetMediaURLRequestContext(), | 677 storage_partition_impl_->GetAppCacheService(), |
| 674 storage_partition_impl_->GetAppCacheService(), | 678 storage_partition_impl_->GetQuotaManager(), |
| 675 storage_partition_impl_->GetQuotaManager(), | 679 storage_partition_impl_->GetFileSystemContext(), |
| 676 storage_partition_impl_->GetFileSystemContext(), | 680 storage_partition_impl_->GetDatabaseTracker(), |
| 677 storage_partition_impl_->GetDatabaseTracker(), | 681 storage_partition_impl_->GetIndexedDBContext()), |
| 678 storage_partition_impl_->GetIndexedDBContext()), | 682 base::Bind(&RenderWidgetHelper::GetNextRoutingID, |
| 679 base::Bind(&RenderWidgetHelper::GetNextRoutingID, | 683 base::Unretained(widget_helper_.get())))); |
| 680 base::Unretained(widget_helper_.get())))); | |
| 681 | 684 |
| 682 #if defined(ENABLE_WEBRTC) | 685 #if defined(ENABLE_WEBRTC) |
| 683 channel_->AddFilter(new P2PSocketDispatcherHost(resource_context)); | 686 channel_->AddFilter(new P2PSocketDispatcherHost(resource_context)); |
| 684 #endif | 687 #endif |
| 685 | 688 |
| 686 channel_->AddFilter(new TraceMessageFilter()); | 689 channel_->AddFilter(new TraceMessageFilter()); |
| 687 channel_->AddFilter(new ResolveProxyMsgHelper( | 690 channel_->AddFilter(new ResolveProxyMsgHelper( |
| 688 browser_context->GetRequestContextForRenderProcess(GetID()))); | 691 browser_context->GetRequestContextForRenderProcess(GetID()))); |
| 689 channel_->AddFilter(new QuotaDispatcherHost( | 692 channel_->AddFilter(new QuotaDispatcherHost( |
| 690 GetID(), | 693 GetID(), |
| (...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1778 continue; | 1781 continue; |
| 1779 | 1782 |
| 1780 RenderViewHost* rvh = | 1783 RenderViewHost* rvh = |
| 1781 RenderViewHost::From(const_cast<RenderWidgetHost*>(widget)); | 1784 RenderViewHost::From(const_cast<RenderWidgetHost*>(widget)); |
| 1782 | 1785 |
| 1783 rvh->UpdateWebkitPreferences(rvh->GetWebkitPreferences()); | 1786 rvh->UpdateWebkitPreferences(rvh->GetWebkitPreferences()); |
| 1784 } | 1787 } |
| 1785 } | 1788 } |
| 1786 | 1789 |
| 1787 } // namespace content | 1790 } // namespace content |
| OLD | NEW |