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 |