diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-13 18:29:13 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-13 18:29:13 +0000 |
commit | b32505712071c25688fddd89d2226964c6f6b9cd (patch) | |
tree | e3efe231dd9d0462fc14e780b11cccae7cf8dfa3 /ppapi | |
parent | 9077e3b40f26b784949926f9c6e30a2c44c33024 (diff) | |
download | chromium_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.idl | 8 | ||||
-rw-r--r-- | ppapi/c/private/ppb_pdf.h | 4 | ||||
-rw-r--r-- | ppapi/cpp/private/pdf.cc | 10 | ||||
-rw-r--r-- | ppapi/cpp/private/pdf.h | 2 |
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 |