summaryrefslogtreecommitdiffstats
path: root/ppapi
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-13 18:29:13 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-13 18:29:13 +0000
commitb32505712071c25688fddd89d2226964c6f6b9cd (patch)
treee3efe231dd9d0462fc14e780b11cccae7cf8dfa3 /ppapi
parent9077e3b40f26b784949926f9c6e30a2c44c33024 (diff)
downloadchromium_src-b32505712071c25688fddd89d2226964c6f6b9cd.zip
chromium_src-b32505712071c25688fddd89d2226964c6f6b9cd.tar.gz
chromium_src-b32505712071c25688fddd89d2226964c6f6b9cd.tar.bz2
Adds a PPAPI interface to request a password. For the Mac it opens a tab-modal password box; for other platforms it falls back to a JavaScript dialog (which is no change from the current behavior).
BUG=54748 TEST=load a password-protected PDF on the Mac, see fancy new UI R=raymes@chromium.org, sail@chromium.org, thestig@chromium.org, tsepez@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=223074 Review URL: https://codereview.chromium.org/23447025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223085 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-rw-r--r--ppapi/api/private/finish_writing_these/ppb_pdf.idl8
-rw-r--r--ppapi/c/private/ppb_pdf.h4
-rw-r--r--ppapi/cpp/private/pdf.cc10
-rw-r--r--ppapi/cpp/private/pdf.h2
4 files changed, 24 insertions, 0 deletions
diff --git a/ppapi/api/private/finish_writing_these/ppb_pdf.idl b/ppapi/api/private/finish_writing_these/ppb_pdf.idl
index b428386..3038d92 100644
--- a/ppapi/api/private/finish_writing_these/ppb_pdf.idl
+++ b/ppapi/api/private/finish_writing_these/ppb_pdf.idl
@@ -138,4 +138,12 @@ interface PPB_PDF_0_1 {
/* Notifies the browser that the PDF has an unsupported feature. */
void HasUnsupportedFeature(
[in] PP_Instance instance);
+
+ /* Tells the browser to open a dialog box to receive a password from the
+ * user, masking input characters. Returns the value entered by the user, or
+ * an empty string if the user cancels instead.
+ */
+ PP_Var ModalPromptForPassword(
+ [in] PP_Instance instance,
+ [in] PP_Var message);
};
diff --git a/ppapi/c/private/ppb_pdf.h b/ppapi/c/private/ppb_pdf.h
index 2e2e73b..fdc5748 100644
--- a/ppapi/c/private/ppb_pdf.h
+++ b/ppapi/c/private/ppb_pdf.h
@@ -156,6 +156,10 @@ struct PPB_PDF {
PP_Resource (*GetResourceImageForScale)(PP_Instance instance,
PP_ResourceImage image_id,
float scale);
+
+ // Invoke password dialog for plugin.
+ struct PP_Var (*ModalPromptForPassword)(PP_Instance instance,
+ struct PP_Var message);
};
#endif // PPAPI_C_PRIVATE_PPB_PDF_H_
diff --git a/ppapi/cpp/private/pdf.cc b/ppapi/cpp/private/pdf.cc
index 753613c..9d6bd89 100644
--- a/ppapi/cpp/private/pdf.cc
+++ b/ppapi/cpp/private/pdf.cc
@@ -184,4 +184,14 @@ ImageData PDF::GetResourceImageForScale(const InstanceHandle& instance,
return ImageData();
}
+Var PDF::ModalPromptForPassword(const InstanceHandle& instance,
+ Var message) {
+ if (has_interface<PPB_PDF>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_PDF>()->ModalPromptForPassword(
+ instance.pp_instance(),
+ message.pp_var()));
+ }
+ return Var();
+}
} // namespace pp
diff --git a/ppapi/cpp/private/pdf.h b/ppapi/cpp/private/pdf.h
index 893f9e3..1e89dd0 100644
--- a/ppapi/cpp/private/pdf.h
+++ b/ppapi/cpp/private/pdf.h
@@ -62,6 +62,8 @@ class PDF {
static ImageData GetResourceImageForScale(const InstanceHandle& instance,
PP_ResourceImage image_id,
float scale);
+ static Var ModalPromptForPassword(const InstanceHandle& instance,
+ Var message);
};
} // namespace pp