summaryrefslogtreecommitdiff
path: root/fxjs/cjs_global.h
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-02-05 22:27:22 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-02-05 22:27:22 +0000
commitf743552fbdb17f974c9b1675af81210fe0ffcc50 (patch)
treed0eccefff3c758151428e18eb803e93d8864046a /fxjs/cjs_global.h
parent998fee395fc8a543968c7db3db9e3cf81dee57fc (diff)
downloadpdfium-f743552fbdb17f974c9b1675af81210fe0ffcc50.tar.xz
Fold CJS_EmbedObj classes into CJS_Object classes
This CL removes the CJS_EmbedObj class and various subclasses and folds the subclasses into their CJS_Object counterparts. Change-Id: If6b882a4995c0b1bf83ac783f5c27ba9216c2d5c Reviewed-on: https://pdfium-review.googlesource.com/25410 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/cjs_global.h')
-rw-r--r--fxjs/cjs_global.h53
1 files changed, 52 insertions, 1 deletions
diff --git a/fxjs/cjs_global.h b/fxjs/cjs_global.h
index 719f4b4044..ab905bcdd2 100644
--- a/fxjs/cjs_global.h
+++ b/fxjs/cjs_global.h
@@ -7,7 +7,14 @@
#ifndef FXJS_CJS_GLOBAL_H_
#define FXJS_CJS_GLOBAL_H_
+#include <map>
+#include <memory>
+#include <vector>
+
#include "fxjs/JS_Define.h"
+#include "fxjs/cjs_keyvalue.h"
+
+class CJS_GlobalData;
class CJS_Global : public CJS_Object {
public:
@@ -29,14 +36,58 @@ class CJS_Global : public CJS_Object {
const v8::FunctionCallbackInfo<v8::Value>& info);
explicit CJS_Global(v8::Local<v8::Object> pObject);
- ~CJS_Global() override = default;
+ ~CJS_Global() override;
// CJS_Object
void InitInstance(IJS_Runtime* pIRuntime) override;
+ CJS_Return DelProperty(CJS_Runtime* pRuntime, const wchar_t* propname);
+ void Initial(CPDFSDK_FormFillEnvironment* pFormFillEnv);
+
+ CJS_Return setPersistent(CJS_Runtime* pRuntime,
+ const std::vector<v8::Local<v8::Value>>& params);
+ CJS_Return QueryProperty(const wchar_t* propname);
+ CJS_Return GetProperty(CJS_Runtime* pRuntime, const wchar_t* propname);
+ CJS_Return SetProperty(CJS_Runtime* pRuntime,
+ const wchar_t* propname,
+ v8::Local<v8::Value> vp);
+
private:
+ struct JSGlobalData {
+ JSGlobalData();
+ ~JSGlobalData();
+
+ JS_GlobalDataType nType;
+ double dData;
+ bool bData;
+ ByteString sData;
+ v8::Global<v8::Object> pData;
+ bool bPersistent;
+ bool bDeleted;
+ };
+
static int ObjDefnID;
static const JSMethodSpec MethodSpecs[];
+
+ void UpdateGlobalPersistentVariables();
+ void CommitGlobalPersisitentVariables(CJS_Runtime* pRuntime);
+ void DestroyGlobalPersisitentVariables();
+ CJS_Return SetGlobalVariables(const ByteString& propname,
+ JS_GlobalDataType nType,
+ double dData,
+ bool bData,
+ const ByteString& sData,
+ v8::Local<v8::Object> pData,
+ bool bDefaultPersistent);
+ void ObjectToArray(CJS_Runtime* pRuntime,
+ v8::Local<v8::Object> pObj,
+ CJS_GlobalVariableArray& array);
+ void PutObjectProperty(v8::Local<v8::Object> obj, CJS_KeyValue* pData);
+
+ std::map<ByteString, std::unique_ptr<JSGlobalData>> m_MapGlobal;
+ WideString m_sFilePath;
+ CJS_GlobalData* m_pGlobalData;
+ CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv;
};
#endif // FXJS_CJS_GLOBAL_H_