diff options
author | jam <jam@chromium.org> | 2015-02-03 10:16:08 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-03 18:16:56 +0000 |
commit | 8a021512a24f87d3b1723f260e0380b874f3b9eb (patch) | |
tree | fe0fd8bea7c18d5b6d6f28338d150db187512866 /content/renderer | |
parent | 4adea21c6771ac1aaa6260524c3c283e85415672 (diff) | |
download | chromium_src-8a021512a24f87d3b1723f260e0380b874f3b9eb.zip chromium_src-8a021512a24f87d3b1723f260e0380b874f3b9eb.tar.gz chromium_src-8a021512a24f87d3b1723f260e0380b874f3b9eb.tar.bz2 |
Unify the three places that patch font loading for PDFium on Windows.
This also removed the code from content, which doesn't belong there because it's for a feature in Chrome.
In order to implement this in a unified way, I needed to create a public interface around ChildThread. A lot of the change is updating callers of ChildThread to use ChildThreadImpl instead.
BUG=448473
Review URL: https://codereview.chromium.org/897563002
Cr-Commit-Position: refs/heads/master@{#314367}
Diffstat (limited to 'content/renderer')
19 files changed, 58 insertions, 54 deletions
diff --git a/content/renderer/geolocation_dispatcher.cc b/content/renderer/geolocation_dispatcher.cc index ce56f8e..65b85a1 100644 --- a/content/renderer/geolocation_dispatcher.cc +++ b/content/renderer/geolocation_dispatcher.cc @@ -4,7 +4,6 @@ #include "content/renderer/geolocation_dispatcher.h" -#include "content/child/child_thread.h" #include "content/public/common/geoposition.h" #include "content/renderer/render_view_impl.h" #include "third_party/WebKit/public/platform/WebString.h" diff --git a/content/renderer/media/renderer_gpu_video_accelerator_factories.cc b/content/renderer/media/renderer_gpu_video_accelerator_factories.cc index 9c24682..66f3d28 100644 --- a/content/renderer/media/renderer_gpu_video_accelerator_factories.cc +++ b/content/renderer/media/renderer_gpu_video_accelerator_factories.cc @@ -8,7 +8,7 @@ #include <GLES2/gl2ext.h> #include "base/bind.h" -#include "content/child/child_thread.h" +#include "content/child/child_thread_impl.h" #include "content/common/gpu/client/context_provider_command_buffer.h" #include "content/common/gpu/client/gl_helper.h" #include "content/common/gpu/client/gpu_channel_host.h" @@ -48,7 +48,7 @@ RendererGpuVideoAcceleratorFactories::RendererGpuVideoAcceleratorFactories( : task_runner_(task_runner), gpu_channel_host_(gpu_channel_host), context_provider_(context_provider), - thread_safe_sender_(ChildThread::current()->thread_safe_sender()) {} + thread_safe_sender_(ChildThreadImpl::current()->thread_safe_sender()) {} RendererGpuVideoAcceleratorFactories::~RendererGpuVideoAcceleratorFactories() {} @@ -239,7 +239,7 @@ scoped_ptr<base::SharedMemory> RendererGpuVideoAcceleratorFactories::CreateSharedMemory(size_t size) { DCHECK(task_runner_->BelongsToCurrentThread()); scoped_ptr<base::SharedMemory> mem( - ChildThread::AllocateSharedMemory(size, thread_safe_sender_.get())); + ChildThreadImpl::AllocateSharedMemory(size, thread_safe_sender_.get())); if (mem && !mem->Map(size)) return nullptr; return mem; diff --git a/content/renderer/media/rtc_video_decoder.cc b/content/renderer/media/rtc_video_decoder.cc index ffa2536..0bfc9d8 100644 --- a/content/renderer/media/rtc_video_decoder.cc +++ b/content/renderer/media/rtc_video_decoder.cc @@ -13,7 +13,6 @@ #include "base/stl_util.h" #include "base/synchronization/waitable_event.h" #include "base/task_runner_util.h" -#include "content/child/child_thread.h" #include "content/renderer/media/native_handle_impl.h" #include "gpu/command_buffer/common/mailbox_holder.h" #include "media/base/bind_to_current_loop.h" diff --git a/content/renderer/npapi/webplugin_delegate_proxy.cc b/content/renderer/npapi/webplugin_delegate_proxy.cc index 32cac5d..66bc362 100644 --- a/content/renderer/npapi/webplugin_delegate_proxy.cc +++ b/content/renderer/npapi/webplugin_delegate_proxy.cc @@ -640,7 +640,7 @@ bool WebPluginDelegateProxy::CreateLocalBitmap( bool WebPluginDelegateProxy::CreateSharedBitmap( scoped_ptr<SharedMemoryBitmap>* memory, scoped_ptr<skia::PlatformCanvas>* canvas) { - *memory = ChildThread::current() + *memory = ChildThreadImpl::current() ->shared_bitmap_manager() ->AllocateSharedMemoryBitmap(plugin_rect_.size()); if (!memory->get()) diff --git a/content/renderer/pepper/pepper_compositor_host.cc b/content/renderer/pepper/pepper_compositor_host.cc index c5f5e98..eec292a 100644 --- a/content/renderer/pepper/pepper_compositor_host.cc +++ b/content/renderer/pepper/pepper_compositor_host.cc @@ -12,7 +12,7 @@ #include "cc/resources/texture_mailbox.h" #include "cc/trees/layer_tree_host.h" #include "content/child/child_shared_bitmap_manager.h" -#include "content/child/child_thread.h" +#include "content/child/child_thread_impl.h" #include "content/public/renderer/renderer_ppapi_host.h" #include "content/renderer/pepper/gfx_conversion.h" #include "content/renderer/pepper/host_globals.h" @@ -288,7 +288,7 @@ void PepperCompositorHost::UpdateLayer( DCHECK_EQ(desc.stride, desc.size.width * 4); DCHECK_EQ(desc.format, PP_IMAGEDATAFORMAT_RGBA_PREMUL); scoped_ptr<cc::SharedBitmap> bitmap = - ChildThread::current() + ChildThreadImpl::current() ->shared_bitmap_manager() ->GetBitmapForSharedMemory(image_shm.get()); diff --git a/content/renderer/pepper/pepper_file_system_host.cc b/content/renderer/pepper/pepper_file_system_host.cc index 6994534..bce63a2 100644 --- a/content/renderer/pepper/pepper_file_system_host.cc +++ b/content/renderer/pepper/pepper_file_system_host.cc @@ -6,7 +6,7 @@ #include "base/bind.h" #include "base/callback.h" -#include "content/child/child_thread.h" +#include "content/child/child_thread_impl.h" #include "content/child/fileapi/file_system_dispatcher.h" #include "content/common/pepper_file_util.h" #include "content/renderer/pepper/pepper_plugin_instance_impl.h" @@ -102,7 +102,7 @@ int32_t PepperFileSystemHost::OnHostMsgOpen( return PP_ERROR_FAILED; FileSystemDispatcher* file_system_dispatcher = - ChildThread::current()->file_system_dispatcher(); + ChildThreadImpl::current()->file_system_dispatcher(); reply_context_ = context->MakeReplyMessageContext(); file_system_dispatcher->OpenFileSystem( document_url.GetOrigin(), diff --git a/content/renderer/pepper/ppb_broker_impl.cc b/content/renderer/pepper/ppb_broker_impl.cc index 33181a25..ead54a0 100644 --- a/content/renderer/pepper/ppb_broker_impl.cc +++ b/content/renderer/pepper/ppb_broker_impl.cc @@ -32,7 +32,7 @@ PPB_Broker_Impl::PPB_Broker_Impl(PP_Instance instance) connect_callback_(), pipe_handle_(PlatformFileToInt(base::SyncSocket::kInvalidHandle)), routing_id_(RenderThreadImpl::current()->GenerateRoutingID()) { - ChildThread::current()->GetRouter()->AddRoute(routing_id_, this); + ChildThreadImpl::current()->GetRouter()->AddRoute(routing_id_, this); } PPB_Broker_Impl::~PPB_Broker_Impl() { @@ -43,7 +43,7 @@ PPB_Broker_Impl::~PPB_Broker_Impl() { // The plugin owns the handle. pipe_handle_ = PlatformFileToInt(base::SyncSocket::kInvalidHandle); - ChildThread::current()->GetRouter()->RemoveRoute(routing_id_); + ChildThreadImpl::current()->GetRouter()->RemoveRoute(routing_id_); } PPB_Broker_API* PPB_Broker_Impl::AsPPB_Broker_API() { return this; } diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 876e8ae..9ad8d4f 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -2041,13 +2041,13 @@ blink::WebServiceWorkerProvider* RenderFrameImpl::createServiceWorkerProvider( DCHECK(!frame_ || frame_ == frame); // At this point we should have non-null data source. DCHECK(frame->dataSource()); - if (!ChildThread::current()) + if (!ChildThreadImpl::current()) return NULL; // May be null in some tests. ServiceWorkerNetworkProvider* provider = ServiceWorkerNetworkProvider::FromDocumentState( DocumentState::FromDataSource(frame->dataSource())); return new WebServiceWorkerProviderImpl( - ChildThread::current()->thread_safe_sender(), + ChildThreadImpl::current()->thread_safe_sender(), provider ? provider->context() : NULL); } @@ -3362,7 +3362,7 @@ void RenderFrameImpl::requestStorageQuota( callbacks.didFail(blink::WebStorageQuotaErrorAbort); return; } - ChildThread::current()->quota_dispatcher()->RequestStorageQuota( + ChildThreadImpl::current()->quota_dispatcher()->RequestStorageQuota( render_view_->GetRoutingID(), GURL(origin.toString()), static_cast<storage::StorageType>(type), diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc index 2914c9c..533f950 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc @@ -282,8 +282,8 @@ void AddHistogramSample(void* hist, int sample) { scoped_ptr<cc::SharedBitmap> AllocateSharedBitmapFunction( const gfx::Size& size) { - return ChildThread::current()->shared_bitmap_manager()->AllocateSharedBitmap( - size); + return ChildThreadImpl::current()->shared_bitmap_manager()-> + AllocateSharedBitmap(size); } void EnableBlinkPlatformLogChannels(const std::string& channels) { @@ -423,18 +423,18 @@ RenderThreadImpl* RenderThreadImpl::current() { // When we run plugins in process, we actually run them on the render thread, // which means that we need to make the render thread pump UI events. RenderThreadImpl::RenderThreadImpl() - : ChildThread(Options(ShouldUseMojoChannel())) { + : ChildThreadImpl(Options(ShouldUseMojoChannel())) { Init(); } RenderThreadImpl::RenderThreadImpl(const std::string& channel_name) - : ChildThread(Options(channel_name, ShouldUseMojoChannel())) { + : ChildThreadImpl(Options(channel_name, ShouldUseMojoChannel())) { Init(); } RenderThreadImpl::RenderThreadImpl( scoped_ptr<base::MessageLoop> main_message_loop) - : ChildThread(Options(ShouldUseMojoChannel())), + : ChildThreadImpl(Options(ShouldUseMojoChannel())), main_message_loop_(main_message_loop.Pass()) { Init(); } @@ -655,7 +655,7 @@ void RenderThreadImpl::Init() { } base::DiscardableMemoryShmemAllocator::SetInstance( - ChildThread::discardable_shared_memory_manager()); + ChildThreadImpl::discardable_shared_memory_manager()); service_registry()->AddService<RenderFrameSetup>( base::Bind(CreateRenderFrameSetup)); @@ -670,7 +670,7 @@ void RenderThreadImpl::Shutdown() { FOR_EACH_OBSERVER( RenderProcessObserver, observers_, OnRenderProcessShutdown()); - ChildThread::Shutdown(); + ChildThreadImpl::Shutdown(); if (memory_observer_) { message_loop()->RemoveTaskObserver(memory_observer_.get()); @@ -811,7 +811,7 @@ bool RenderThreadImpl::Send(IPC::Message* msg) { #endif } - bool rv = ChildThread::Send(msg); + bool rv = ChildThreadImpl::Send(msg); if (pumping_events) { #if defined(ENABLE_PLUGINS) @@ -860,7 +860,7 @@ scoped_refptr<base::MessageLoopProxy> } void RenderThreadImpl::AddRoute(int32 routing_id, IPC::Listener* listener) { - ChildThread::GetRouter()->AddRoute(routing_id, listener); + ChildThreadImpl::GetRouter()->AddRoute(routing_id, listener); PendingRenderFrameConnectMap::iterator it = pending_render_frame_connects_.find(routing_id); if (it == pending_render_frame_connects_.end()) @@ -881,7 +881,7 @@ void RenderThreadImpl::AddRoute(int32 routing_id, IPC::Listener* listener) { } void RenderThreadImpl::RemoveRoute(int32 routing_id) { - ChildThread::GetRouter()->RemoveRoute(routing_id); + ChildThreadImpl::GetRouter()->RemoveRoute(routing_id); } void RenderThreadImpl::AddEmbeddedWorkerRoute(int32 routing_id, @@ -1112,7 +1112,7 @@ void RenderThreadImpl::RecordComputedAction(const std::string& action) { scoped_ptr<base::SharedMemory> RenderThreadImpl::HostAllocateSharedMemoryBuffer(size_t size) { - return ChildThread::AllocateSharedMemory(size, thread_safe_sender()); + return ChildThreadImpl::AllocateSharedMemory(size, thread_safe_sender()); } cc::SharedBitmapManager* RenderThreadImpl::GetSharedBitmapManager() { @@ -1326,14 +1326,6 @@ void RenderThreadImpl::PreCacheFontCharacters(const LOGFONT& log_font, Send(new ViewHostMsg_PreCacheFontCharacters(log_font, str)); } -void RenderThreadImpl::PreCacheFont(const LOGFONT& log_font) { - Send(new ChildProcessHostMsg_PreCacheFont(log_font)); -} - -void RenderThreadImpl::ReleaseCachedFonts() { - Send(new ChildProcessHostMsg_ReleaseCachedFonts()); -} - #endif // OS_WIN ServiceRegistry* RenderThreadImpl::GetServiceRegistry() { diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h index e204c63..18ceb7b 100644 --- a/content/renderer/render_thread_impl.h +++ b/content/renderer/render_thread_impl.h @@ -18,7 +18,7 @@ #include "base/threading/thread_checker.h" #include "base/timer/timer.h" #include "build/build_config.h" -#include "content/child/child_thread.h" +#include "content/child/child_thread_impl.h" #include "content/common/content_export.h" #include "content/common/frame_replication_state.h" #include "content/common/gpu/client/gpu_channel_host.h" @@ -110,6 +110,12 @@ class VideoCaptureImplManager; class WebGraphicsContext3DCommandBufferImpl; class WebRTCIdentityService; +#if defined(COMPILER_MSVC) +// See explanation for other RenderViewHostImpl which is the same issue. +#pragma warning(push) +#pragma warning(disable: 4250) +#endif + // The RenderThreadImpl class represents a background thread where RenderView // instances live. The RenderThread supports an API that is used by its // consumer to talk indirectly to the RenderViews and supporting objects. @@ -121,7 +127,7 @@ class WebRTCIdentityService; // The routing IDs correspond to RenderView instances. class CONTENT_EXPORT RenderThreadImpl : public RenderThread, - public ChildThread, + public ChildThreadImpl, public GpuChannelHostFactory, NON_EXPORTED_BASE(public CompositorDependencies) { public: @@ -175,10 +181,6 @@ class CONTENT_EXPORT RenderThreadImpl int PostTaskToAllWebWorkers(const base::Closure& closure) override; bool ResolveProxy(const GURL& url, std::string* proxy_list) override; base::WaitableEvent* GetShutdownEvent() override; -#if defined(OS_WIN) - virtual void PreCacheFont(const LOGFONT& log_font) override; - virtual void ReleaseCachedFonts() override; -#endif ServiceRegistry* GetServiceRegistry() override; // CompositorDependencies implementation. @@ -625,6 +627,10 @@ class CONTENT_EXPORT RenderThreadImpl DISALLOW_COPY_AND_ASSIGN(RenderThreadImpl); }; +#if defined(COMPILER_MSVC) +#pragma warning(pop) +#endif + } // namespace content #endif // CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ diff --git a/content/renderer/render_thread_impl_browsertest.cc b/content/renderer/render_thread_impl_browsertest.cc index 3e4a795..39bf764 100644 --- a/content/renderer/render_thread_impl_browsertest.cc +++ b/content/renderer/render_thread_impl_browsertest.cc @@ -77,6 +77,12 @@ class TestTaskCounter : public base::SingleThreadTaskRunner { int count_; }; +#if defined(COMPILER_MSVC) +// See explanation for other RenderViewHostImpl which is the same issue. +#pragma warning(push) +#pragma warning(disable: 4250) +#endif + class RenderThreadImplForTest : public RenderThreadImpl { public: RenderThreadImplForTest(const std::string& channel_id, @@ -91,12 +97,16 @@ class RenderThreadImplForTest : public RenderThreadImpl { RenderThreadImpl::SetResourceDispatchTaskQueue(test_task_counter_); } - using ChildThread::OnMessageReceived; + using ChildThreadImpl::OnMessageReceived; private: scoped_refptr<TestTaskCounter> test_task_counter_; }; +#if defined(COMPILER_MSVC) +#pragma warning(pop) +#endif + void QuitTask(base::MessageLoop* message_loop) { message_loop->QuitWhenIdle(); } diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 3be3eb3..8831340 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -35,7 +35,6 @@ #include "content/child/appcache/appcache_dispatcher.h" #include "content/child/appcache/web_application_cache_host_impl.h" #include "content/child/child_shared_bitmap_manager.h" -#include "content/child/child_thread.h" #include "content/child/npapi/webplugin_delegate_impl.h" #include "content/child/request_extra_data.h" #include "content/child/webmessageportchannel_impl.h" diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc index 2894dc6..1fcf5bf 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc @@ -245,10 +245,10 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( } // ChildThread may not exist in some tests. - if (ChildThread::current()) { - sync_message_filter_ = ChildThread::current()->sync_message_filter(); - thread_safe_sender_ = ChildThread::current()->thread_safe_sender(); - quota_message_filter_ = ChildThread::current()->quota_message_filter(); + if (ChildThreadImpl::current()) { + sync_message_filter_ = ChildThreadImpl::current()->sync_message_filter(); + thread_safe_sender_ = ChildThreadImpl::current()->thread_safe_sender(); + quota_message_filter_ = ChildThreadImpl::current()->quota_message_filter(); blob_registry_.reset(new WebBlobRegistryImpl(thread_safe_sender_.get())); web_idb_factory_.reset(new WebIDBFactoryImpl(thread_safe_sender_.get())); web_database_observer_impl_.reset( diff --git a/content/renderer/renderer_clipboard_delegate.cc b/content/renderer/renderer_clipboard_delegate.cc index b8d0b0c..0ed03f6 100644 --- a/content/renderer/renderer_clipboard_delegate.cc +++ b/content/renderer/renderer_clipboard_delegate.cc @@ -143,7 +143,7 @@ bool RendererClipboardDelegate::WriteImage(ui::ClipboardType clipboard_type, // Allocate a shared memory buffer to hold the bitmap bits. uint32 buf_size = checked_buf_size.ValueOrDie(); - shared_buf = ChildThread::current()->AllocateSharedMemory(buf_size); + shared_buf = ChildThreadImpl::current()->AllocateSharedMemory(buf_size); if (!shared_buf) return false; if (!shared_buf->Map(buf_size)) diff --git a/content/renderer/service_worker/embedded_worker_context_client.cc b/content/renderer/service_worker/embedded_worker_context_client.cc index d04fc06..2c50e5c 100644 --- a/content/renderer/service_worker/embedded_worker_context_client.cc +++ b/content/renderer/service_worker/embedded_worker_context_client.cc @@ -103,7 +103,7 @@ EmbeddedWorkerContextClient::EmbeddedWorkerContextClient( service_worker_scope_(service_worker_scope), script_url_(script_url), worker_devtools_agent_route_id_(worker_devtools_agent_route_id), - sender_(ChildThread::current()->thread_safe_sender()), + sender_(ChildThreadImpl::current()->thread_safe_sender()), main_thread_proxy_(base::MessageLoopProxy::current()), weak_factory_(this) { TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker", diff --git a/content/renderer/service_worker/embedded_worker_context_message_filter.cc b/content/renderer/service_worker/embedded_worker_context_message_filter.cc index cbc141d..4999b38 100644 --- a/content/renderer/service_worker/embedded_worker_context_message_filter.cc +++ b/content/renderer/service_worker/embedded_worker_context_message_filter.cc @@ -5,7 +5,7 @@ #include "content/renderer/service_worker/embedded_worker_context_message_filter.h" #include "base/message_loop/message_loop_proxy.h" -#include "content/child/child_thread.h" +#include "content/child/child_thread_impl.h" #include "content/child/thread_safe_sender.h" #include "content/child/worker_thread_task_runner.h" #include "content/renderer/service_worker/embedded_worker_context_client.h" @@ -15,7 +15,7 @@ namespace content { EmbeddedWorkerContextMessageFilter::EmbeddedWorkerContextMessageFilter() : main_thread_loop_proxy_(base::MessageLoopProxy::current()), - thread_safe_sender_(ChildThread::current()->thread_safe_sender()) {} + thread_safe_sender_(ChildThreadImpl::current()->thread_safe_sender()) {} EmbeddedWorkerContextMessageFilter::~EmbeddedWorkerContextMessageFilter() {} diff --git a/content/renderer/service_worker/embedded_worker_devtools_agent.cc b/content/renderer/service_worker/embedded_worker_devtools_agent.cc index 791a2ca..e1c640a 100644 --- a/content/renderer/service_worker/embedded_worker_devtools_agent.cc +++ b/content/renderer/service_worker/embedded_worker_devtools_agent.cc @@ -4,7 +4,6 @@ #include "content/renderer/service_worker/embedded_worker_devtools_agent.h" -#include "content/child/child_thread.h" #include "content/common/devtools_messages.h" #include "content/renderer/render_thread_impl.h" #include "third_party/WebKit/public/platform/WebCString.h" diff --git a/content/renderer/shared_worker/embedded_shared_worker_stub.cc b/content/renderer/shared_worker/embedded_shared_worker_stub.cc index d026cec..121831f 100644 --- a/content/renderer/shared_worker/embedded_shared_worker_stub.cc +++ b/content/renderer/shared_worker/embedded_shared_worker_stub.cc @@ -168,7 +168,7 @@ blink::WebWorkerPermissionClientProxy* GURL(origin.toString()), origin.isUnique(), route_id_, - ChildThread::current()->thread_safe_sender()); + ChildThreadImpl::current()->thread_safe_sender()); } void EmbeddedSharedWorkerStub::sendDevToolsMessage( diff --git a/content/renderer/shared_worker_repository.cc b/content/renderer/shared_worker_repository.cc index a883464..46dcb91 100644 --- a/content/renderer/shared_worker_repository.cc +++ b/content/renderer/shared_worker_repository.cc @@ -4,7 +4,7 @@ #include "content/renderer/shared_worker_repository.h" -#include "content/child/child_thread.h" +#include "content/child/child_thread_impl.h" #include "content/common/view_messages.h" #include "content/renderer/render_frame_impl.h" #include "content/renderer/websharedworker_proxy.h" @@ -39,7 +39,7 @@ SharedWorkerRepository::createSharedWorkerConnector( if (route_id == MSG_ROUTING_NONE) return NULL; documents_with_workers_.insert(document_id); - return new WebSharedWorkerProxy(ChildThread::current()->GetRouter(), + return new WebSharedWorkerProxy(ChildThreadImpl::current()->GetRouter(), document_id, route_id, params.render_frame_route_id); |