diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-04-23 18:02:57 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-04-23 18:02:57 +0000 |
commit | 0784c7317e3aaa2c65d098cf2593b6b49986307d (patch) | |
tree | a264d06dcd9fd0d914324d5bd0a96430cc543b87 /fxjs/ijs_runtime.h | |
parent | 9f71afb882a9d1294f8a4392b8553e2c285f51c7 (diff) | |
download | pdfium-0784c7317e3aaa2c65d098cf2593b6b49986307d.tar.xz |
Disable JavaScript entirely if no JSPlatform passed by embedder.
Allows run-time selection of whether to permit JS inside PDF. Previously,
this was a link-time decision only. This requires a little more caution
before we decide that we have the CJS_Runtime, and not the CJS_RuntimeStub
in a few casts.
Adds a kDisableJavaScript option to the form fill embeddertests.
Adds a --disable-javascript flag to the pdfium_test executable.
Also adds a --disable-xfa flag while we're at it.
Change-Id: I8d8ac95f6474459cadba9a60572fbb342e984646
Reviewed-on: https://pdfium-review.googlesource.com/31090
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/ijs_runtime.h')
-rw-r--r-- | fxjs/ijs_runtime.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fxjs/ijs_runtime.h b/fxjs/ijs_runtime.h index b97c65ef90..cde31c6e52 100644 --- a/fxjs/ijs_runtime.h +++ b/fxjs/ijs_runtime.h @@ -16,18 +16,22 @@ #include "fxjs/fxjse.h" #endif // PDF_ENABLE_XFA +class CJS_Runtime; class CPDFSDK_FormFillEnvironment; class IJS_EventContext; -// Owns the FJXS objects needed to actually execute JS. +// Owns the FJXS objects needed to actually execute JS, if possible. This +// virtual interface is backed by either an actual JS runtime, or a stub, +// when JS is not present. class IJS_Runtime { public: static void Initialize(unsigned int slot, void* isolate); static void Destroy(); static std::unique_ptr<IJS_Runtime> Create( CPDFSDK_FormFillEnvironment* pFormFillEnv); - virtual ~IJS_Runtime() {} + virtual ~IJS_Runtime(); + virtual CJS_Runtime* AsCJSRuntime() = 0; virtual IJS_EventContext* NewEventContext() = 0; virtual void ReleaseEventContext(IJS_EventContext* pContext) = 0; virtual CPDFSDK_FormFillEnvironment* GetFormFillEnv() const = 0; |