From f766ad219f66543654520f6a1955836f519e26d1 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Mon, 14 Mar 2016 13:51:24 -0400 Subject: Move fpdfsdk/src up to fpdfsdk/. This CL moves the files in fpdfsdk/src/ up one level to fpdfsdk/ and fixes up the include paths, include guards and build files. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1799773002 . --- fpdfsdk/javascript/global.h | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 fpdfsdk/javascript/global.h (limited to 'fpdfsdk/javascript/global.h') diff --git a/fpdfsdk/javascript/global.h b/fpdfsdk/javascript/global.h new file mode 100644 index 0000000000..335b540271 --- /dev/null +++ b/fpdfsdk/javascript/global.h @@ -0,0 +1,92 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef FPDFSDK_JAVASCRIPT_GLOBAL_H_ +#define FPDFSDK_JAVASCRIPT_GLOBAL_H_ + +#include +#include + +#include "fpdfsdk/javascript/JS_Define.h" + +class CJS_GlobalData; +class CJS_GlobalVariableArray; +class CJS_KeyValue; + +struct JSGlobalData { + JSGlobalData() { + nType = 0; + dData = 0; + bData = FALSE; + sData = ""; + bPersistent = FALSE; + bDeleted = FALSE; + } + + ~JSGlobalData() { pData.Reset(); } + int nType; // 0:int 1:bool 2:string 3:obj + double dData; + bool bData; + CFX_ByteString sData; + v8::Global pData; + bool bPersistent; + bool bDeleted; +}; + +class JSGlobalAlternate : public CJS_EmbedObj { + public: + JSGlobalAlternate(CJS_Object* pJSObject); + ~JSGlobalAlternate() override; + + FX_BOOL setPersistent(IJS_Context* cc, + const std::vector& params, + CJS_Value& vRet, + CFX_WideString& sError); + FX_BOOL QueryProperty(const FX_WCHAR* propname); + FX_BOOL DoProperty(IJS_Context* cc, + const FX_WCHAR* propname, + CJS_PropValue& vp, + CFX_WideString& sError); + FX_BOOL DelProperty(IJS_Context* cc, + const FX_WCHAR* propname, + CFX_WideString& sError); + void Initial(CPDFDoc_Environment* pApp); + + private: + void UpdateGlobalPersistentVariables(); + void CommitGlobalPersisitentVariables(IJS_Context* cc); + void DestroyGlobalPersisitentVariables(); + FX_BOOL SetGlobalVariables(const FX_CHAR* propname, + int nType, + double dData, + bool bData, + const CFX_ByteString& sData, + v8::Local pData, + bool bDefaultPersistent); + void ObjectToArray(IJS_Context* cc, + v8::Local pObj, + CJS_GlobalVariableArray& array); + void PutObjectProperty(v8::Local obj, CJS_KeyValue* pData); + + std::map m_mapGlobal; + CFX_WideString m_sFilePath; + CJS_GlobalData* m_pGlobalData; + CPDFDoc_Environment* m_pApp; +}; + +class CJS_Global : public CJS_Object { + public: + explicit CJS_Global(v8::Local pObject) : CJS_Object(pObject) {} + ~CJS_Global() override {} + + // CJS_Object + void InitInstance(IJS_Runtime* pIRuntime) override; + + DECLARE_SPECIAL_JS_CLASS(); + JS_SPECIAL_STATIC_METHOD(setPersistent, JSGlobalAlternate, global); +}; + +#endif // FPDFSDK_JAVASCRIPT_GLOBAL_H_ -- cgit v1.2.3