Index: content/ppapi_plugin/ppapi_thread.cc |
diff --git a/content/ppapi_plugin/ppapi_thread.cc b/content/ppapi_plugin/ppapi_thread.cc |
index 6d77afe546f494f9e220b5480421833016773bb3..103a7b8dcd373e3873da822f0d42e01f73cff9a9 100644 |
--- a/content/ppapi_plugin/ppapi_thread.cc |
+++ b/content/ppapi_plugin/ppapi_thread.cc |
@@ -42,12 +42,10 @@ |
#include "ppapi/proxy/plugin_message_filter.h" |
#include "ppapi/proxy/ppapi_messages.h" |
#include "ppapi/proxy/resource_reply_thread_registrar.h" |
-#include "ppapi/shared_impl/proxy_lock.h" |
#include "third_party/WebKit/public/web/WebKit.h" |
#include "ui/base/ui_base_switches.h" |
#if defined(OS_WIN) |
-#include "base/win/iat_patch_function.h" |
#include "base/win/win_util.h" |
#include "base/win/windows_version.h" |
#include "sandbox/win/src/sandbox.h" |
@@ -94,54 +92,6 @@ static void WarmupWindowsLocales(const ppapi::PpapiPermissions& permissions) { |
} |
} |
-// TODO(scottmg): http://crbug.com/448473. This code should be removed from the |
-// renderer once PDF is always OOP and/or PDF is made to use Skia instead of GDI |
-// directly. |
-const wchar_t kPdfFileName[] = L"pdf.dll"; |
- |
-static base::win::IATPatchFunction g_iat_patch_createdca; |
-HDC WINAPI CreateDCAPatch(LPCSTR driver_name, |
- LPCSTR device_name, |
- LPCSTR output, |
- const void* init_data) { |
- DCHECK(std::string("DISPLAY") == std::string(driver_name)); |
- DCHECK(!device_name); |
- DCHECK(!output); |
- DCHECK(!init_data); |
- |
- // CreateDC fails behind the sandbox, but not CreateCompatibleDC. |
- return CreateCompatibleDC(NULL); |
-} |
- |
-static base::win::IATPatchFunction g_iat_patch_get_font_data; |
-DWORD WINAPI GetFontDataPatch(HDC hdc, |
- DWORD table, |
- DWORD offset, |
- LPVOID buffer, |
- DWORD length) { |
- int rv = GetFontData(hdc, table, offset, buffer, length); |
- if (rv == GDI_ERROR && hdc) { |
- HFONT font = static_cast<HFONT>(GetCurrentObject(hdc, OBJ_FONT)); |
- |
- LOGFONT logfont; |
- if (GetObject(font, sizeof(LOGFONT), &logfont)) { |
- std::vector<char> font_data; |
- { |
- ppapi::ProxyAutoLock lock; |
- // In the sandbox, font loading will fail. We ask the browser to load it |
- // which causes it to be loaded by the kernel, which then makes the |
- // subsequent call succeed. |
- ppapi::proxy::PluginGlobals::Get()->PreCacheFontForFlash( |
- reinterpret_cast<const void*>(&logfont)); |
- } |
- rv = GetFontData(hdc, table, offset, buffer, length); |
- } |
- } |
- return rv; |
-} |
- |
-#else |
-extern void* g_target_services; |
#endif |
namespace content { |
@@ -173,7 +123,7 @@ PpapiThread::~PpapiThread() { |
} |
void PpapiThread::Shutdown() { |
- ChildThread::Shutdown(); |
+ ChildThreadImpl::Shutdown(); |
ppapi::proxy::PluginGlobals::Get()->ResetPluginProxyDelegate(); |
if (plugin_entry_points_.shutdown_module) |
@@ -185,7 +135,7 @@ void PpapiThread::Shutdown() { |
bool PpapiThread::Send(IPC::Message* msg) { |
// Allow access from multiple threads. |
if (base::MessageLoop::current() == message_loop()) |
- return ChildThread::Send(msg); |
+ return ChildThreadImpl::Send(msg); |
return sync_message_filter()->Send(msg); |
} |
@@ -207,7 +157,7 @@ bool PpapiThread::OnControlMessageReceived(const IPC::Message& msg) { |
} |
void PpapiThread::OnChannelConnected(int32 peer_pid) { |
- ChildThread::OnChannelConnected(peer_pid); |
+ ChildThreadImpl::OnChannelConnected(peer_pid); |
#if defined(OS_WIN) |
if (is_broker_) |
peer_handle_.Set(::OpenProcess(PROCESS_DUP_HANDLE, FALSE, peer_pid)); |
@@ -253,8 +203,7 @@ std::string PpapiThread::GetUILanguage() { |
void PpapiThread::PreCacheFont(const void* logfontw) { |
#if defined(OS_WIN) |
- Send(new ChildProcessHostMsg_PreCacheFont( |
- *static_cast<const LOGFONTW*>(logfontw))); |
+ ChildThreadImpl::PreCacheFont(*static_cast<const LOGFONTW*>(logfontw)); |
#endif |
} |
@@ -374,15 +323,6 @@ void PpapiThread::OnLoadPlugin(const base::FilePath& path, |
// otherwise these would be silent terminations and fly under the radar). |
base::win::SetAbortBehaviorForCrashReporting(); |
- // Need to patch a few functions for font loading to work correctly. This can |
- // be removed once we switch PDF to use Skia. |
- if (GetModuleHandle(kPdfFileName)) { |
- g_iat_patch_createdca.Patch(kPdfFileName, "gdi32.dll", "CreateDCA", |
- CreateDCAPatch); |
- g_iat_patch_get_font_data.Patch(kPdfFileName, "gdi32.dll", "GetFontData", |
- GetFontDataPatch); |
- } |
- |
// Once we lower the token the sandbox is locked down and no new modules |
// can be loaded. TODO(cpu): consider changing to the loading style of |
// regular plugins. |