| Index: fpdfsdk/include/javascript/JS_Object.h
|
| diff --git a/fpdfsdk/include/javascript/JS_Object.h b/fpdfsdk/include/javascript/JS_Object.h
|
| index c7f92ac61d4094f3158d75952b926753988cf731..337da7ba203fc3b499dd4c245a882a8dbd4a3adb 100644
|
| --- a/fpdfsdk/include/javascript/JS_Object.h
|
| +++ b/fpdfsdk/include/javascript/JS_Object.h
|
| @@ -15,11 +15,11 @@
|
| #include "../fsdk_mgr.h" // For CPDFDoc_Environment
|
| #include "../fx_systemhandler.h" // For IFX_SystemHandler
|
| #include "../jsapi/fxjs_v8.h"
|
| +#include "JS_Runtime.h"
|
|
|
| class CPDFSDK_PageView;
|
| class CJS_Context;
|
| class CJS_Object;
|
| -class CJS_Runtime;
|
| class CJS_Timer;
|
|
|
| class CJS_EmbedObj {
|
| @@ -28,8 +28,6 @@ class CJS_EmbedObj {
|
| virtual ~CJS_EmbedObj();
|
|
|
| virtual void TimerProc(CJS_Timer* pTimer) {}
|
| - CJS_Timer* BeginTimer(CPDFDoc_Environment* pApp, FX_UINT nElapse);
|
| - void EndTimer(CJS_Timer* pTimer);
|
|
|
| CJS_Object* GetJSObject() const { return m_pJSObject; }
|
|
|
| @@ -83,38 +81,22 @@ class CJS_Object {
|
| v8::Isolate* m_pIsolate;
|
| };
|
|
|
| -class CJS_Timer {
|
| +class CJS_Timer : public CJS_Runtime::Observer {
|
| public:
|
| - CJS_Timer(CJS_EmbedObj* pObj, CPDFDoc_Environment* pApp)
|
| - : m_nTimerID(0),
|
| - m_pEmbedObj(pObj),
|
| - m_bProcessing(FALSE),
|
| - m_dwStartTime(0),
|
| - m_dwTimeOut(0),
|
| - m_dwElapse(0),
|
| - m_pRuntime(NULL),
|
| - m_nType(0),
|
| - m_pApp(pApp) {}
|
| -
|
| - virtual ~CJS_Timer() { KillJSTimer(); }
|
| + CJS_Timer(CJS_EmbedObj* pObj,
|
| + CPDFDoc_Environment* pApp,
|
| + CJS_Runtime* pRuntime,
|
| + int nType,
|
| + const CFX_WideString& script,
|
| + FX_DWORD dwElapse,
|
| + FX_DWORD dwTimeOut);
|
| + ~CJS_Timer() override;
|
|
|
| - public:
|
| - FX_UINT SetJSTimer(FX_UINT nElapse);
|
| void KillJSTimer();
|
|
|
| - void SetType(int nType) { m_nType = nType; }
|
| int GetType() const { return m_nType; }
|
| -
|
| - void SetStartTime(FX_DWORD dwStartTime) { m_dwStartTime = dwStartTime; }
|
| - FX_DWORD GetStartTime() const { return m_dwStartTime; }
|
| -
|
| - void SetTimeOut(FX_DWORD dwTimeOut) { m_dwTimeOut = dwTimeOut; }
|
| FX_DWORD GetTimeOut() const { return m_dwTimeOut; }
|
| -
|
| - void SetRuntime(CJS_Runtime* pRuntime) { m_pRuntime = pRuntime; }
|
| - CJS_Runtime* GetRuntime() const { return m_pRuntime; }
|
| -
|
| - void SetJScript(const CFX_WideString& script) { m_swJScript = script; }
|
| + CJS_Runtime* GetRuntime() const { return m_bValid ? m_pRuntime : nullptr; }
|
| CFX_WideString GetJScript() const { return m_swJScript; }
|
|
|
| static void TimerProc(int idEvent);
|
| @@ -123,19 +105,20 @@ class CJS_Timer {
|
| using TimerMap = std::map<FX_UINT, CJS_Timer*>;
|
| static TimerMap* GetGlobalTimerMap();
|
|
|
| - FX_UINT m_nTimerID;
|
| - CJS_EmbedObj* m_pEmbedObj;
|
| - FX_BOOL m_bProcessing;
|
| + // CJS_Runtime::Observer
|
| + void OnDestroyed() override;
|
| +
|
| + FX_DWORD m_nTimerID;
|
| + CJS_EmbedObj* const m_pEmbedObj;
|
| + bool m_bProcessing;
|
| + bool m_bValid;
|
|
|
| // data
|
| - FX_DWORD m_dwStartTime;
|
| - FX_DWORD m_dwTimeOut;
|
| - FX_DWORD m_dwElapse;
|
| - CJS_Runtime* m_pRuntime;
|
| - CFX_WideString m_swJScript;
|
| - int m_nType; // 0:Interval; 1:TimeOut
|
| -
|
| - CPDFDoc_Environment* m_pApp;
|
| + const int m_nType; // 0:Interval; 1:TimeOut
|
| + const FX_DWORD m_dwTimeOut;
|
| + const CFX_WideString m_swJScript;
|
| + CJS_Runtime* const m_pRuntime;
|
| + CPDFDoc_Environment* const m_pApp;
|
| };
|
|
|
| #endif // FPDFSDK_INCLUDE_JAVASCRIPT_JS_OBJECT_H_
|
|
|