summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorraymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-21 23:31:36 +0000
committerraymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-21 23:31:36 +0000
commit6a77ef2c9b299c6e39919cabda9600680ca024c5 (patch)
tree951688c0eb5bbfbd54f6f27cd7ecaac6bd53bfae
parentea6c4239e295ebf0c8e36199d425a482c7f5b3ac (diff)
downloadchromium_src-6a77ef2c9b299c6e39919cabda9600680ca024c5.zip
chromium_src-6a77ef2c9b299c6e39919cabda9600680ca024c5.tar.gz
chromium_src-6a77ef2c9b299c6e39919cabda9600680ca024c5.tar.bz2
Refactor Flash Print to the new pepper resource model
This refactors PPB_Flash_Print to the new pepper resource model. This is the last function from the ppb_flash_proxy to be refactored. The old proxy is still full of stale #includes and can now be removed entirely but this will be done in a separate CL. This was tested by printing from http://mycoloringbook.keasoftware.com/ Review URL: https://chromiumcodereview.appspot.com/11640033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174477 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/chrome_renderer.gypi2
-rw-r--r--chrome/renderer/pepper/chrome_ppapi_interfaces.cc4
-rw-r--r--chrome/renderer/pepper/pepper_flash_renderer_host.cc9
-rw-r--r--chrome/renderer/pepper/pepper_flash_renderer_host.h1
-rw-r--r--chrome/renderer/pepper/pepper_flash_renderer_message_filter.cc17
-rw-r--r--chrome/renderer/pepper/pepper_flash_renderer_message_filter.h3
-rw-r--r--chrome/renderer/pepper/ppb_flash_print_impl.cc21
-rw-r--r--chrome/renderer/pepper/ppb_flash_print_impl.h15
-rw-r--r--ppapi/ppapi_shared.gypi1
-rw-r--r--ppapi/proxy/flash_resource.cc4
-rw-r--r--ppapi/proxy/flash_resource.h1
-rw-r--r--ppapi/proxy/interface_list.cc5
-rw-r--r--ppapi/proxy/ppapi_messages.h8
-rw-r--r--ppapi/proxy/ppb_flash_proxy.cc47
-rw-r--r--ppapi/proxy/ppb_flash_proxy.h8
-rw-r--r--ppapi/thunk/interfaces_ppb_private_flash.h21
-rw-r--r--ppapi/thunk/ppb_flash_functions_api.h2
-rw-r--r--ppapi/thunk/ppb_flash_print_thunk.cc34
-rw-r--r--webkit/plugins/ppapi/plugin_module.cc1
19 files changed, 70 insertions, 134 deletions
diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi
index 104c70f..e5a9f06 100644
--- a/chrome/chrome_renderer.gypi
+++ b/chrome/chrome_renderer.gypi
@@ -206,8 +206,6 @@
'renderer/pepper/pepper_flash_renderer_message_filter.h',
'renderer/pepper/pepper_helper.cc',
'renderer/pepper/pepper_helper.h',
- 'renderer/pepper/ppb_flash_print_impl.cc',
- 'renderer/pepper/ppb_flash_print_impl.h',
'renderer/pepper/ppb_nacl_private_impl.cc',
'renderer/pepper/ppb_nacl_private_impl.h',
'renderer/pepper/ppb_pdf_impl.cc',
diff --git a/chrome/renderer/pepper/chrome_ppapi_interfaces.cc b/chrome/renderer/pepper/chrome_ppapi_interfaces.cc
index f62ab79..91f5d3b 100644
--- a/chrome/renderer/pepper/chrome_ppapi_interfaces.cc
+++ b/chrome/renderer/pepper/chrome_ppapi_interfaces.cc
@@ -4,10 +4,8 @@
#include "chrome/renderer/pepper/chrome_ppapi_interfaces.h"
-#include "chrome/renderer/pepper/ppb_flash_print_impl.h"
#include "chrome/renderer/pepper/ppb_nacl_private_impl.h"
#include "chrome/renderer/pepper/ppb_pdf_impl.h"
-#include "ppapi/c/private/ppb_flash_print.h"
#include "ppapi/c/private/ppb_nacl_private.h"
#include "ppapi/c/private/ppb_pdf.h"
#include "webkit/plugins/ppapi/ppapi_interface_factory.h"
@@ -21,8 +19,6 @@ const void* ChromePPAPIInterfaceFactory(const std::string& interface_name) {
#endif // DISABLE_NACL
if (interface_name == PPB_PDF_INTERFACE)
return PPB_PDF_Impl::GetInterface();
- if (interface_name == PPB_FLASH_PRINT_INTERFACE)
- return PPB_Flash_Print_Impl::GetInterface();
return NULL;
}
diff --git a/chrome/renderer/pepper/pepper_flash_renderer_host.cc b/chrome/renderer/pepper/pepper_flash_renderer_host.cc
index 47bae16..b907286 100644
--- a/chrome/renderer/pepper/pepper_flash_renderer_host.cc
+++ b/chrome/renderer/pepper/pepper_flash_renderer_host.cc
@@ -6,6 +6,7 @@
#include <vector>
+#include "chrome/renderer/pepper/ppb_pdf_impl.h"
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/renderer_ppapi_host.h"
#include "googleurl/src/gurl.h"
@@ -66,6 +67,8 @@ int32_t PepperFlashRendererHost::OnResourceMessageReceived(
OnMsgNavigate);
PPAPI_DISPATCH_HOST_RESOURCE_CALL(PpapiHostMsg_Flash_IsRectTopmost,
OnMsgIsRectTopmost);
+ PPAPI_DISPATCH_HOST_RESOURCE_CALL_0(PpapiHostMsg_Flash_InvokePrinting,
+ OnMsgInvokePrinting);
IPC_END_MESSAGE_MAP()
return PP_ERROR_FAILED;
}
@@ -240,4 +243,10 @@ int32_t PepperFlashRendererHost::OnMsgIsRectTopmost(
return PP_ERROR_FAILED;
}
+int32_t PepperFlashRendererHost::OnMsgInvokePrinting(
+ ppapi::host::HostMessageContext* host_context) {
+ PPB_PDF_Impl::InvokePrintingForInstance(pp_instance());
+ return PP_OK;
+}
+
} // namespace chrome
diff --git a/chrome/renderer/pepper/pepper_flash_renderer_host.h b/chrome/renderer/pepper/pepper_flash_renderer_host.h
index 26d6a70..fadb27a 100644
--- a/chrome/renderer/pepper/pepper_flash_renderer_host.h
+++ b/chrome/renderer/pepper/pepper_flash_renderer_host.h
@@ -57,6 +57,7 @@ class PepperFlashRendererHost : public ppapi::host::ResourceHost {
bool from_user_action);
int32_t OnMsgIsRectTopmost(ppapi::host::HostMessageContext* host_context,
const PP_Rect& rect);
+ int32_t OnMsgInvokePrinting(ppapi::host::HostMessageContext* host_context);
base::WeakPtrFactory<PepperFlashRendererHost> weak_factory_;
// A stack of ReplyMessageContexts to track Navigate() calls which have not
diff --git a/chrome/renderer/pepper/pepper_flash_renderer_message_filter.cc b/chrome/renderer/pepper/pepper_flash_renderer_message_filter.cc
index 544a2f6..da9d2ba 100644
--- a/chrome/renderer/pepper/pepper_flash_renderer_message_filter.cc
+++ b/chrome/renderer/pepper/pepper_flash_renderer_message_filter.cc
@@ -22,22 +22,7 @@ PepperFlashRendererMessageFilter::~PepperFlashRendererMessageFilter() {
bool PepperFlashRendererMessageFilter::OnInstanceMessageReceived(
const IPC::Message& msg) {
- if (!host_->GetPpapiHost()->permissions().HasPermission(
- ppapi::PERMISSION_FLASH))
- return false;
-
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(PepperFlashRendererMessageFilter, msg)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_InvokePrinting,
- OnHostMsgInvokePrinting)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void PepperFlashRendererMessageFilter::OnHostMsgInvokePrinting(
- PP_Instance instance) {
- PPB_PDF_Impl::InvokePrintingForInstance(instance);
+ return false;
}
} // namespace chrome
diff --git a/chrome/renderer/pepper/pepper_flash_renderer_message_filter.h b/chrome/renderer/pepper/pepper_flash_renderer_message_filter.h
index 6bda03d..7fc661d 100644
--- a/chrome/renderer/pepper/pepper_flash_renderer_message_filter.h
+++ b/chrome/renderer/pepper/pepper_flash_renderer_message_filter.h
@@ -29,9 +29,6 @@ class PepperFlashRendererMessageFilter
virtual bool OnInstanceMessageReceived(const IPC::Message& msg) OVERRIDE;
private:
- // Message handlers.
- void OnHostMsgInvokePrinting(PP_Instance instance);
-
content::RendererPpapiHost* host_;
DISALLOW_COPY_AND_ASSIGN(PepperFlashRendererMessageFilter);
diff --git a/chrome/renderer/pepper/ppb_flash_print_impl.cc b/chrome/renderer/pepper/ppb_flash_print_impl.cc
deleted file mode 100644
index ecf13a7..0000000
--- a/chrome/renderer/pepper/ppb_flash_print_impl.cc
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/renderer/pepper/ppb_flash_print_impl.h"
-
-#include "chrome/renderer/pepper/ppb_pdf_impl.h"
-#include "ppapi/c/private/ppb_flash_print.h"
-
-namespace {
-
-const PPB_Flash_Print flash_print_interface = {
- &PPB_PDF_Impl::InvokePrintingForInstance
-};
-
-} // namespace
-
-// static
-const PPB_Flash_Print_1_0* PPB_Flash_Print_Impl::GetInterface() {
- return &flash_print_interface;
-}
diff --git a/chrome/renderer/pepper/ppb_flash_print_impl.h b/chrome/renderer/pepper/ppb_flash_print_impl.h
deleted file mode 100644
index 5cf3b02..0000000
--- a/chrome/renderer/pepper/ppb_flash_print_impl.h
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_RENDERER_PEPPER_PPB_FLASH_PRINT_IMPL_H_
-#define CHROME_RENDERER_PEPPER_PPB_FLASH_PRINT_IMPL_H_
-
-struct PPB_Flash_Print_1_0;
-
-class PPB_Flash_Print_Impl {
- public:
- static const PPB_Flash_Print_1_0* GetInterface();
-};
-
-#endif // CHROME_RENDERER_PEPPER_PPB_FLASH_PRINT_IMPL_H_
diff --git a/ppapi/ppapi_shared.gypi b/ppapi/ppapi_shared.gypi
index 9033612..34ec95a 100644
--- a/ppapi/ppapi_shared.gypi
+++ b/ppapi/ppapi_shared.gypi
@@ -175,6 +175,7 @@
'thunk/ppb_flash_menu_thunk.cc',
'thunk/ppb_flash_message_loop_api.h',
'thunk/ppb_flash_message_loop_thunk.cc',
+ 'thunk/ppb_flash_print_thunk.cc',
'thunk/ppb_flash_thunk.cc',
'thunk/ppb_fullscreen_thunk.cc',
'thunk/ppb_gamepad_api.h',
diff --git a/ppapi/proxy/flash_resource.cc b/ppapi/proxy/flash_resource.cc
index 854996e..3f72e78 100644
--- a/ppapi/proxy/flash_resource.cc
+++ b/ppapi/proxy/flash_resource.cc
@@ -240,5 +240,9 @@ PP_Bool FlashResource::IsRectTopmost(PP_Instance instance,
return PP_FromBool(result == PP_OK);
}
+void FlashResource::InvokePrinting(PP_Instance instance) {
+ Post(RENDERER, PpapiHostMsg_Flash_InvokePrinting());
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/ppapi/proxy/flash_resource.h b/ppapi/proxy/flash_resource.h
index b8c819e..cfb6b1e 100644
--- a/ppapi/proxy/flash_resource.h
+++ b/ppapi/proxy/flash_resource.h
@@ -60,6 +60,7 @@ class FlashResource
PP_Bool from_user_action) OVERRIDE;
virtual PP_Bool IsRectTopmost(PP_Instance instance,
const PP_Rect* rect) OVERRIDE;
+ virtual void InvokePrinting(PP_Instance instance) OVERRIDE;
private:
// Non-owning pointer to the PluginDispatcher that owns this object.
diff --git a/ppapi/proxy/interface_list.cc b/ppapi/proxy/interface_list.cc
index 719df25..51537f7a 100644
--- a/ppapi/proxy/interface_list.cc
+++ b/ppapi/proxy/interface_list.cc
@@ -224,11 +224,6 @@ InterfaceList::InterfaceList() {
PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(), PERMISSION_NONE);
AddPPB(PPB_OPENGLES2_QUERY_INTERFACE_1_0, API_ID_NONE,
PPB_OpenGLES2_Shared::GetQueryInterface(), PERMISSION_NONE);
-#if !defined(OS_NACL)
- AddPPB(PPB_FLASH_PRINT_INTERFACE_1_0, API_ID_PPB_FLASH,
- PPB_Flash_Proxy::GetFlashPrintInterface(),
- PERMISSION_FLASH);
-#endif
AddPPB(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0, API_ID_NONE,
PPB_Var_Shared::GetVarArrayBufferInterface1_0(),
PERMISSION_NONE);
diff --git a/ppapi/proxy/ppapi_messages.h b/ppapi/proxy/ppapi_messages.h
index 82428d4..de7253a 100644
--- a/ppapi/proxy/ppapi_messages.h
+++ b/ppapi/proxy/ppapi_messages.h
@@ -1247,10 +1247,6 @@ IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Reset,
IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVideoDecoder_Destroy,
ppapi::HostResource /* video_decoder */)
-// PPB_Flash.
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBFlash_InvokePrinting,
- PP_Instance /* instance */)
-
// PPB_Flash_MessageLoop.
IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Create,
PP_Instance /* instance */,
@@ -1625,6 +1621,10 @@ IPC_MESSAGE_CONTROL3(PpapiHostMsg_Flash_Navigate,
IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_IsRectTopmost,
PP_Rect /* rect */)
+// Notifies the renderer to invoke printing for the given plugin instance. No
+// reply is sent.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_InvokePrinting)
+
// DeviceEnumeration -----------------------------------------------------------
// Device enumeration messages used by audio input and video capture.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
diff --git a/ppapi/proxy/ppb_flash_proxy.cc b/ppapi/proxy/ppb_flash_proxy.cc
index cacd863..0fa79c5 100644
--- a/ppapi/proxy/ppb_flash_proxy.cc
+++ b/ppapi/proxy/ppb_flash_proxy.cc
@@ -39,26 +39,6 @@ using ppapi::thunk::EnterResourceNoLock;
namespace ppapi {
namespace proxy {
-namespace {
-
-void InvokePrinting(PP_Instance instance) {
- ProxyAutoLock lock;
-
- PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
- if (dispatcher) {
- dispatcher->Send(new PpapiHostMsg_PPBFlash_InvokePrinting(
- API_ID_PPB_FLASH, instance));
- }
-}
-
-const PPB_Flash_Print_1_0 g_flash_print_interface = {
- &InvokePrinting
-};
-
-} // namespace
-
-// -----------------------------------------------------------------------------
-
PPB_Flash_Proxy::PPB_Flash_Proxy(Dispatcher* dispatcher)
: InterfaceProxy(dispatcher) {
}
@@ -66,33 +46,8 @@ PPB_Flash_Proxy::PPB_Flash_Proxy(Dispatcher* dispatcher)
PPB_Flash_Proxy::~PPB_Flash_Proxy() {
}
-// static
-const PPB_Flash_Print_1_0* PPB_Flash_Proxy::GetFlashPrintInterface() {
- return &g_flash_print_interface;
-}
-
bool PPB_Flash_Proxy::OnMessageReceived(const IPC::Message& msg) {
- if (!dispatcher()->permissions().HasPermission(PERMISSION_FLASH))
- return false;
-
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(PPB_Flash_Proxy, msg)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_InvokePrinting,
- OnHostMsgInvokePrinting)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- // TODO(brettw) handle bad messages!
- return handled;
-}
-
-void PPB_Flash_Proxy::OnHostMsgInvokePrinting(PP_Instance instance) {
- // This function is actually implemented in the PPB_Flash_Print interface.
- // It's rarely used enough that we just request this interface when needed.
- const PPB_Flash_Print_1_0* print_interface =
- static_cast<const PPB_Flash_Print_1_0*>(
- dispatcher()->local_get_interface()(PPB_FLASH_PRINT_INTERFACE_1_0));
- if (print_interface)
- print_interface->InvokePrinting(instance);
+ return false;
}
} // namespace proxy
diff --git a/ppapi/proxy/ppb_flash_proxy.h b/ppapi/proxy/ppb_flash_proxy.h
index e7c773a..89fcb6e 100644
--- a/ppapi/proxy/ppb_flash_proxy.h
+++ b/ppapi/proxy/ppb_flash_proxy.h
@@ -39,20 +39,12 @@ class PPB_Flash_Proxy : public InterfaceProxy, public thunk::PPB_Flash_API {
explicit PPB_Flash_Proxy(Dispatcher* dispatcher);
virtual ~PPB_Flash_Proxy();
- // This flash proxy also proxies the PPB_Flash_Print interface. This one
- // doesn't use the regular thunk system because the _impl side is actually in
- // Chrome rather than with the rest of the interface implementations.
- static const PPB_Flash_Print_1_0* GetFlashPrintInterface();
-
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
static const ApiID kApiID = API_ID_PPB_FLASH;
private:
- // Message handlers.
- void OnHostMsgInvokePrinting(PP_Instance instance);
-
DISALLOW_COPY_AND_ASSIGN(PPB_Flash_Proxy);
};
diff --git a/ppapi/thunk/interfaces_ppb_private_flash.h b/ppapi/thunk/interfaces_ppb_private_flash.h
index eb42315..a020a3a 100644
--- a/ppapi/thunk/interfaces_ppb_private_flash.h
+++ b/ppapi/thunk/interfaces_ppb_private_flash.h
@@ -7,26 +7,26 @@
#include "ppapi/thunk/interfaces_preamble.h"
-PROXIED_API(PPB_Flash)
-PROXIED_IFACE(PPB_Flash,
+PROXIED_IFACE(NoAPIName,
PPB_FLASH_INTERFACE_12_4,
- PPB_Flash_12_4)
-PROXIED_IFACE(PPB_Flash,
+ PPB_Flash_12_4)
+PROXIED_IFACE(NoAPIName,
PPB_FLASH_INTERFACE_12_5,
PPB_Flash_12_5)
-PROXIED_IFACE(PPB_Flash,
+PROXIED_IFACE(NoAPIName,
PPB_FLASH_INTERFACE_12_6,
PPB_Flash_12_6)
-PROXIED_IFACE(PPB_Flash,
+PROXIED_IFACE(NoAPIName,
PPB_FLASH_INTERFACE_13_0,
PPB_Flash_13_0)
-PROXIED_IFACE(PPB_Flash,
+PROXIED_IFACE(NoAPIName,
PPB_FLASH_FILE_MODULELOCAL_INTERFACE_3_0,
PPB_Flash_File_ModuleLocal_3_0)
-PROXIED_IFACE(PPB_Flash,
+PROXIED_IFACE(NoAPIName,
PPB_FLASH_FILE_FILEREF_INTERFACE,
PPB_Flash_File_FileRef)
+
PROXIED_IFACE(NoAPIName,
PPB_FLASH_CLIPBOARD_INTERFACE_4_0,
PPB_Flash_Clipboard_4_0)
@@ -34,7 +34,6 @@ PROXIED_IFACE(NoAPIName,
PPB_FLASH_CLIPBOARD_INTERFACE_5_0,
PPB_Flash_Clipboard_5_0)
-
PROXIED_IFACE(NoAPIName,
PPB_FLASH_DEVICEID_INTERFACE_1_0,
PPB_Flash_DeviceID_1_0)
@@ -52,4 +51,8 @@ PROXIED_IFACE(PPB_Flash_MessageLoop,
PPB_FLASH_MESSAGELOOP_INTERFACE_0_1,
PPB_Flash_MessageLoop_0_1)
+PROXIED_IFACE(NoAPIName,
+ PPB_FLASH_PRINT_INTERFACE_1_0,
+ PPB_Flash_Print_1_0)
+
#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/ppapi/thunk/ppb_flash_functions_api.h b/ppapi/thunk/ppb_flash_functions_api.h
index c497286..9c54fca 100644
--- a/ppapi/thunk/ppb_flash_functions_api.h
+++ b/ppapi/thunk/ppb_flash_functions_api.h
@@ -47,8 +47,8 @@ class PPAPI_THUNK_EXPORT PPB_Flash_Functions_API {
PP_Resource request_info,
const char* target,
PP_Bool from_user_action) = 0;
-
virtual PP_Bool IsRectTopmost(PP_Instance instance, const PP_Rect* rect) = 0;
+ virtual void InvokePrinting(PP_Instance instance) = 0;
static const SingletonResourceID kSingletonResourceID = FLASH_SINGLETON_ID;
};
diff --git a/ppapi/thunk/ppb_flash_print_thunk.cc b/ppapi/thunk/ppb_flash_print_thunk.cc
new file mode 100644
index 0000000..1316784
--- /dev/null
+++ b/ppapi/thunk/ppb_flash_print_thunk.cc
@@ -0,0 +1,34 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/private/ppb_flash_print.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_flash_functions_api.h"
+#include "ppapi/thunk/thunk.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+void InvokePrinting(PP_Instance instance) {
+ EnterInstanceAPI<PPB_Flash_Functions_API> enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->InvokePrinting(instance);
+}
+
+const PPB_Flash_Print_1_0 g_ppb_flash_print_1_0_thunk = {
+ &InvokePrinting,
+};
+
+} // namespace
+
+const PPB_Flash_Print_1_0* GetPPB_Flash_Print_1_0_Thunk() {
+ return &g_ppb_flash_print_1_0_thunk;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/webkit/plugins/ppapi/plugin_module.cc b/webkit/plugins/ppapi/plugin_module.cc
index 74c8942..f7fda16 100644
--- a/webkit/plugins/ppapi/plugin_module.cc
+++ b/webkit/plugins/ppapi/plugin_module.cc
@@ -74,6 +74,7 @@
#include "ppapi/c/private/ppb_flash_font_file.h"
#include "ppapi/c/private/ppb_flash_fullscreen.h"
#include "ppapi/c/private/ppb_flash_message_loop.h"
+#include "ppapi/c/private/ppb_flash_print.h"
#include "ppapi/c/private/ppb_gpu_blacklist_private.h"
#include "ppapi/c/private/ppb_instance_private.h"
#include "ppapi/c/private/ppb_network_list_private.h"