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_ |