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

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

Issue 12518033: Browser Plugin: Only install BrowserPluginMessageFilter if render process supports BrowserPlugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 7 years, 9 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) 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 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 bool g_run_renderer_in_process_ = false; 351 bool g_run_renderer_in_process_ = false;
352 352
353 // static 353 // static
354 void RenderProcessHost::SetMaxRendererProcessCount(size_t count) { 354 void RenderProcessHost::SetMaxRendererProcessCount(size_t count) {
355 g_max_renderer_count_override = count; 355 g_max_renderer_count_override = count;
356 } 356 }
357 357
358 RenderProcessHostImpl::RenderProcessHostImpl( 358 RenderProcessHostImpl::RenderProcessHostImpl(
359 BrowserContext* browser_context, 359 BrowserContext* browser_context,
360 StoragePartitionImpl* storage_partition_impl, 360 StoragePartitionImpl* storage_partition_impl,
361 bool supports_browser_plugin,
361 bool is_guest) 362 bool is_guest)
362 : fast_shutdown_started_(false), 363 : fast_shutdown_started_(false),
363 deleting_soon_(false), 364 deleting_soon_(false),
364 pending_views_(0), 365 pending_views_(0),
365 visible_widgets_(0), 366 visible_widgets_(0),
366 backgrounded_(true), 367 backgrounded_(true),
367 ALLOW_THIS_IN_INITIALIZER_LIST(cached_dibs_cleaner_( 368 ALLOW_THIS_IN_INITIALIZER_LIST(cached_dibs_cleaner_(
368 FROM_HERE, base::TimeDelta::FromSeconds(5), 369 FROM_HERE, base::TimeDelta::FromSeconds(5),
369 this, &RenderProcessHostImpl::ClearTransportDIBCache)), 370 this, &RenderProcessHostImpl::ClearTransportDIBCache)),
370 is_initialized_(false), 371 is_initialized_(false),
371 id_(ChildProcessHostImpl::GenerateChildProcessUniqueId()), 372 id_(ChildProcessHostImpl::GenerateChildProcessUniqueId()),
372 browser_context_(browser_context), 373 browser_context_(browser_context),
373 storage_partition_impl_(storage_partition_impl), 374 storage_partition_impl_(storage_partition_impl),
374 sudden_termination_allowed_(true), 375 sudden_termination_allowed_(true),
375 ignore_input_events_(false), 376 ignore_input_events_(false),
376 #if defined(OS_ANDROID) 377 #if defined(OS_ANDROID)
377 dummy_shutdown_event_(false, false), 378 dummy_shutdown_event_(false, false),
378 #endif 379 #endif
380 supports_browser_plugin_(supports_browser_plugin),
Charlie Reis 2013/03/21 01:09:39 Can you add a CHECK(!is_guest || supports_browser_
Fady Samuel 2013/03/21 02:51:13 No, unfortunately. is_guest does not imply suppor
379 is_guest_(is_guest) { 381 is_guest_(is_guest) {
380 widget_helper_ = new RenderWidgetHelper(); 382 widget_helper_ = new RenderWidgetHelper();
381 383
382 ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID()); 384 ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID());
383 385
384 CHECK(!g_exited_main_message_loop); 386 CHECK(!g_exited_main_message_loop);
385 RegisterHost(GetID(), this); 387 RegisterHost(GetID(), this);
386 g_all_hosts.Get().set_check_on_null_data(true); 388 g_all_hosts.Get().set_check_on_null_data(true);
387 // Initialize |child_process_activity_time_| to a reasonable value. 389 // Initialize |child_process_activity_time_| to a reasonable value.
388 mark_child_process_activity_time(); 390 mark_child_process_activity_time();
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 is_initialized_ = true; 524 is_initialized_ = true;
523 return true; 525 return true;
524 } 526 }
525 527
526 void RenderProcessHostImpl::CreateMessageFilters() { 528 void RenderProcessHostImpl::CreateMessageFilters() {
527 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 529 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
528 channel_->AddFilter(new ResourceSchedulerFilter(GetID())); 530 channel_->AddFilter(new ResourceSchedulerFilter(GetID()));
529 MediaInternals* media_internals = MediaInternals::GetInstance();; 531 MediaInternals* media_internals = MediaInternals::GetInstance();;
530 // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages 532 // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages
531 // from guests. 533 // from guests.
532 // TODO(fsamuel): Call out to the ContentBrowserClient to decide whether or 534 if (supports_browser_plugin_) {
533 // not to install the BrowserPluginMessageFilter. 535 scoped_refptr<BrowserPluginMessageFilter> bp_message_filter(
534 scoped_refptr<BrowserPluginMessageFilter> bp_message_filter( 536 new BrowserPluginMessageFilter(GetID(), IsGuest()));
535 new BrowserPluginMessageFilter(GetID(), IsGuest())); 537 channel_->AddFilter(bp_message_filter);
536 channel_->AddFilter(bp_message_filter); 538 }
537 539
538 scoped_refptr<RenderMessageFilter> render_message_filter( 540 scoped_refptr<RenderMessageFilter> render_message_filter(
539 new RenderMessageFilter( 541 new RenderMessageFilter(
540 GetID(), 542 GetID(),
541 #if defined(ENABLE_PLUGINS) 543 #if defined(ENABLE_PLUGINS)
542 PluginServiceImpl::GetInstance(), 544 PluginServiceImpl::GetInstance(),
543 #else 545 #else
544 NULL, 546 NULL,
545 #endif 547 #endif
546 GetBrowserContext(), 548 GetBrowserContext(),
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 DCHECK(!backgrounded_); 713 DCHECK(!backgrounded_);
712 SetBackgrounded(true); 714 SetBackgrounded(true);
713 } 715 }
714 } 716 }
715 717
716 int RenderProcessHostImpl::VisibleWidgetCount() const { 718 int RenderProcessHostImpl::VisibleWidgetCount() const {
717 return visible_widgets_; 719 return visible_widgets_;
718 } 720 }
719 721
720 bool RenderProcessHostImpl::IsGuest() const { 722 bool RenderProcessHostImpl::IsGuest() const {
721 return is_guest_; 723 return is_guest_;
Charlie Reis 2013/03/21 01:09:39 Maybe this should be supports_browser_plugin_ && i
Fady Samuel 2013/03/21 02:51:13 No, guests don't support browser plugin.
722 } 724 }
723 725
724 StoragePartition* RenderProcessHostImpl::GetStoragePartition() const { 726 StoragePartition* RenderProcessHostImpl::GetStoragePartition() const {
725 return storage_partition_impl_; 727 return storage_partition_impl_;
726 } 728 }
727 729
728 void RenderProcessHostImpl::AppendRendererCommandLine( 730 void RenderProcessHostImpl::AppendRendererCommandLine(
729 CommandLine* command_line) const { 731 CommandLine* command_line) const {
730 // Pass the process type first, so it shows first in process listings. 732 // Pass the process type first, so it shows first in process listings.
731 command_line->AppendSwitchASCII(switches::kProcessType, 733 command_line->AppendSwitchASCII(switches::kProcessType,
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after
1693 TRACE_EVENT0("renderer_host", 1695 TRACE_EVENT0("renderer_host",
1694 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost"); 1696 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost");
1695 AcceleratedSurfaceMsg_BufferPresented_Params ack_params; 1697 AcceleratedSurfaceMsg_BufferPresented_Params ack_params;
1696 ack_params.sync_point = 0; 1698 ack_params.sync_point = 0;
1697 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id, 1699 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id,
1698 gpu_process_host_id, 1700 gpu_process_host_id,
1699 ack_params); 1701 ack_params);
1700 } 1702 }
1701 1703
1702 } // namespace content 1704 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.h ('k') | content/browser/site_instance_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698