diff options
author | raymes@google.com <raymes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-25 23:20:18 +0000 |
---|---|---|
committer | raymes@google.com <raymes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-25 23:20:18 +0000 |
commit | 8f06e4df7c4bd0be8a6a75f95a1f7edf8d977f5c (patch) | |
tree | 2500b04f260caae53d0a0ec10eae0c6311243bc1 /ppapi | |
parent | deacb8e958455787a36a6a4b86e6658aa729b569 (diff) | |
download | chromium_src-8f06e4df7c4bd0be8a6a75f95a1f7edf8d977f5c.zip chromium_src-8f06e4df7c4bd0be8a6a75f95a1f7edf8d977f5c.tar.gz chromium_src-8f06e4df7c4bd0be8a6a75f95a1f7edf8d977f5c.tar.bz2 |
Add a flag for running the PDF plugin out of process.
Add a flag --out-of-process-pdf to run the PDF plugin out of process. This
also adds an interface for the plugin to determine whether it is running
out of process. We can remove this once we finish transitioning to the
out of process plugin.
BUG=303491
R=jam@chromium.org, yzshen@chromium.org
Review URL: https://codereview.chromium.org/78003006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237175 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-rw-r--r-- | ppapi/api/private/finish_writing_these/ppb_pdf.idl | 4 | ||||
-rw-r--r-- | ppapi/c/private/ppb_pdf.h | 3 | ||||
-rw-r--r-- | ppapi/cpp/private/pdf.cc | 11 | ||||
-rw-r--r-- | ppapi/cpp/private/pdf.h | 1 | ||||
-rw-r--r-- | ppapi/proxy/pdf_resource.cc | 4 | ||||
-rw-r--r-- | ppapi/proxy/pdf_resource.h | 1 | ||||
-rw-r--r-- | ppapi/thunk/ppb_pdf_api.h | 1 | ||||
-rw-r--r-- | ppapi/thunk/ppb_pdf_thunk.cc | 18 |
8 files changed, 42 insertions, 1 deletions
diff --git a/ppapi/api/private/finish_writing_these/ppb_pdf.idl b/ppapi/api/private/finish_writing_these/ppb_pdf.idl index 3038d92..d586f09 100644 --- a/ppapi/api/private/finish_writing_these/ppb_pdf.idl +++ b/ppapi/api/private/finish_writing_these/ppb_pdf.idl @@ -146,4 +146,8 @@ interface PPB_PDF_0_1 { PP_Var ModalPromptForPassword( [in] PP_Instance instance, [in] PP_Var message); + + /* Returns PP_TRUE if the plugin is out of process. */ + PP_Bool IsOutOfProcess( + [in] PP_Instance instance); }; diff --git a/ppapi/c/private/ppb_pdf.h b/ppapi/c/private/ppb_pdf.h index fdc5748..9053802 100644 --- a/ppapi/c/private/ppb_pdf.h +++ b/ppapi/c/private/ppb_pdf.h @@ -160,6 +160,9 @@ struct PPB_PDF { // Invoke password dialog for plugin. struct PP_Var (*ModalPromptForPassword)(PP_Instance instance, struct PP_Var message); + + // Returns PP_TRUE if the plugin is out of process. + PP_Bool(*IsOutOfProcess)(PP_Instance instance); }; #endif // PPAPI_C_PRIVATE_PPB_PDF_H_ diff --git a/ppapi/cpp/private/pdf.cc b/ppapi/cpp/private/pdf.cc index 9d6bd89..77fb0b2 100644 --- a/ppapi/cpp/private/pdf.cc +++ b/ppapi/cpp/private/pdf.cc @@ -184,6 +184,7 @@ ImageData PDF::GetResourceImageForScale(const InstanceHandle& instance, return ImageData(); } +// static Var PDF::ModalPromptForPassword(const InstanceHandle& instance, Var message) { if (has_interface<PPB_PDF>()) { @@ -194,4 +195,14 @@ Var PDF::ModalPromptForPassword(const InstanceHandle& instance, } return Var(); } + +// static +bool PDF::IsOutOfProcess(const InstanceHandle& instance) { + if (has_interface<PPB_PDF>()) { + return PP_ToBool(get_interface<PPB_PDF>()->IsOutOfProcess( + instance.pp_instance())); + } + return false; +} + } // namespace pp diff --git a/ppapi/cpp/private/pdf.h b/ppapi/cpp/private/pdf.h index 1e89dd0..4634430 100644 --- a/ppapi/cpp/private/pdf.h +++ b/ppapi/cpp/private/pdf.h @@ -64,6 +64,7 @@ class PDF { float scale); static Var ModalPromptForPassword(const InstanceHandle& instance, Var message); + static bool IsOutOfProcess(const InstanceHandle& instance); }; } // namespace pp diff --git a/ppapi/proxy/pdf_resource.cc b/ppapi/proxy/pdf_resource.cc index 8e0a2e0..80c4237 100644 --- a/ppapi/proxy/pdf_resource.cc +++ b/ppapi/proxy/pdf_resource.cc @@ -188,5 +188,9 @@ PP_Resource PDFResource::GetResourceImage(PP_ResourceImage image_id) { return GetResourceImageForScale(image_id, 1.0f); } +PP_Bool PDFResource::IsOutOfProcess() { + return PP_TRUE; +} + } // namespace proxy } // namespace ppapi diff --git a/ppapi/proxy/pdf_resource.h b/ppapi/proxy/pdf_resource.h index 704e1d4..4ab30ba 100644 --- a/ppapi/proxy/pdf_resource.h +++ b/ppapi/proxy/pdf_resource.h @@ -54,6 +54,7 @@ class PPAPI_PROXY_EXPORT PDFResource virtual PP_Resource GetResourceImageForScale(PP_ResourceImage image_id, float scale) OVERRIDE; virtual PP_Resource GetResourceImage(PP_ResourceImage image_id) OVERRIDE; + virtual PP_Bool IsOutOfProcess() OVERRIDE; private: std::string locale_; diff --git a/ppapi/thunk/ppb_pdf_api.h b/ppapi/thunk/ppb_pdf_api.h index c5d276a..a23c527 100644 --- a/ppapi/thunk/ppb_pdf_api.h +++ b/ppapi/thunk/ppb_pdf_api.h @@ -31,6 +31,7 @@ class PPB_PDF_API { virtual void Print() = 0; virtual PP_Resource GetResourceImageForScale(PP_ResourceImage image_id, float scale) = 0; + virtual PP_Bool IsOutOfProcess() = 0; static const SingletonResourceID kSingletonResourceID = PDF_SINGLETON_ID; }; diff --git a/ppapi/thunk/ppb_pdf_thunk.cc b/ppapi/thunk/ppb_pdf_thunk.cc index 94334d1..282f893 100644 --- a/ppapi/thunk/ppb_pdf_thunk.cc +++ b/ppapi/thunk/ppb_pdf_thunk.cc @@ -133,6 +133,20 @@ PP_Resource GetResourceImageForScale(PP_Instance instance, return enter.functions()->GetResourceImageForScale(image_id, scale); } +PP_Var ModalPromptForPassword(PP_Instance instance_id, + PP_Var message) { + // TODO(raymes): Implement or remove this function. + NOTIMPLEMENTED(); + return PP_MakeUndefined(); +} + +PP_Bool IsOutOfProcess(PP_Instance instance) { + EnterInstanceAPI<PPB_PDF_API> enter(instance); + if (enter.failed()) + return PP_FALSE; + return enter.functions()->IsOutOfProcess(); +} + const PPB_PDF g_ppb_pdf_thunk = { &GetLocalizedString, &GetResourceImage, @@ -148,7 +162,9 @@ const PPB_PDF g_ppb_pdf_thunk = { &SaveAs, &Print, &IsFeatureEnabled, - &GetResourceImageForScale + &GetResourceImageForScale, + &ModalPromptForPassword, + &IsOutOfProcess, }; } // namespace |