summaryrefslogtreecommitdiffstats
path: root/ppapi
diff options
context:
space:
mode:
authorraymes@google.com <raymes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-25 23:20:18 +0000
committerraymes@google.com <raymes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-25 23:20:18 +0000
commit8f06e4df7c4bd0be8a6a75f95a1f7edf8d977f5c (patch)
tree2500b04f260caae53d0a0ec10eae0c6311243bc1 /ppapi
parentdeacb8e958455787a36a6a4b86e6658aa729b569 (diff)
downloadchromium_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.idl4
-rw-r--r--ppapi/c/private/ppb_pdf.h3
-rw-r--r--ppapi/cpp/private/pdf.cc11
-rw-r--r--ppapi/cpp/private/pdf.h1
-rw-r--r--ppapi/proxy/pdf_resource.cc4
-rw-r--r--ppapi/proxy/pdf_resource.h1
-rw-r--r--ppapi/thunk/ppb_pdf_api.h1
-rw-r--r--ppapi/thunk/ppb_pdf_thunk.cc18
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