Chromium Code Reviews| 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..9251b2fad450f5477f455e956c05a014958ee57e 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,21 @@ 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::DestructionObserver |
|
Tom Sepez
2015/10/04 22:39:37
nit: It's just ::Observe, no???
Lei Zhang
2015/10/04 23:01:28
Done, forgot to rename.
|
| + 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 FX_DWORD m_dwTimeOut; |
| + CJS_Runtime* const m_pRuntime; |
| + const CFX_WideString m_swJScript; |
| + const int m_nType; // 0:Interval; 1:TimeOut |
|
Tom Sepez
2015/10/04 22:39:37
nit: struct probably packs tighter if the type and
Lei Zhang
2015/10/04 23:01:28
Done.
And this should be an enum, but that's anot
|
| + |
| + CPDFDoc_Environment* const m_pApp; |
| }; |
| #endif // FPDFSDK_INCLUDE_JAVASCRIPT_JS_OBJECT_H_ |