| OLD | NEW | 
|   1 // Copyright 2014 PDFium Authors. All rights reserved. |   1 // Copyright 2014 PDFium Authors. All rights reserved. | 
|   2 // Use of this source code is governed by a BSD-style license that can be |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |   5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
|   6  |   6  | 
|   7 #ifndef FPDFSDK_JAVASCRIPT_CJS_RUNTIME_H_ |   7 #ifndef FPDFSDK_JAVASCRIPT_CJS_RUNTIME_H_ | 
|   8 #define FPDFSDK_JAVASCRIPT_CJS_RUNTIME_H_ |   8 #define FPDFSDK_JAVASCRIPT_CJS_RUNTIME_H_ | 
|   9  |   9  | 
|  10 #include <map> |  10 #include <map> | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
|  26    public: |  26    public: | 
|  27     virtual void OnDestroyed() = 0; |  27     virtual void OnDestroyed() = 0; | 
|  28  |  28  | 
|  29    protected: |  29    protected: | 
|  30     virtual ~Observer() {} |  30     virtual ~Observer() {} | 
|  31   }; |  31   }; | 
|  32  |  32  | 
|  33   using FieldEvent = std::pair<CFX_WideString, JS_EVENT_T>; |  33   using FieldEvent = std::pair<CFX_WideString, JS_EVENT_T>; | 
|  34  |  34  | 
|  35   static CJS_Runtime* FromContext(const IJS_Context* cc); |  35   static CJS_Runtime* FromContext(const IJS_Context* cc); | 
 |  36   static CJS_Runtime* CurrentRuntimeFromIsolate(v8::Isolate* pIsolate); | 
|  36  |  37  | 
|  37   explicit CJS_Runtime(CPDFDoc_Environment* pApp); |  38   explicit CJS_Runtime(CPDFDoc_Environment* pApp); | 
|  38   ~CJS_Runtime() override; |  39   ~CJS_Runtime() override; | 
|  39  |  40  | 
|  40   // IJS_Runtime |  41   // IJS_Runtime | 
|  41   IJS_Context* NewContext() override; |  42   IJS_Context* NewContext() override; | 
|  42   void ReleaseContext(IJS_Context* pContext) override; |  43   void ReleaseContext(IJS_Context* pContext) override; | 
|  43   IJS_Context* GetCurrentContext() override; |  44   IJS_Context* GetCurrentContext() override; | 
|  44   void SetReaderDocument(CPDFSDK_Document* pReaderDoc) override; |  45   void SetReaderDocument(CPDFSDK_Document* pReaderDoc) override; | 
|  45   CPDFSDK_Document* GetReaderDocument() override; |  46   CPDFSDK_Document* GetReaderDocument() override; | 
|  46   int Execute(const CFX_WideString& script, CFX_WideString* info) override; |  47   int ExecuteScript(const CFX_WideString& script, | 
 |  48                     CFX_WideString* info) override; | 
|  47  |  49  | 
|  48   CPDFDoc_Environment* GetReaderApp() const { return m_pApp; } |  50   CPDFDoc_Environment* GetReaderApp() const { return m_pApp; } | 
|  49  |  51  | 
|  50   // Returns true if the event isn't already found in the set. |  52   // Returns true if the event isn't already found in the set. | 
|  51   bool AddEventToSet(const FieldEvent& event); |  53   bool AddEventToSet(const FieldEvent& event); | 
|  52   void RemoveEventFromSet(const FieldEvent& event); |  54   void RemoveEventFromSet(const FieldEvent& event); | 
|  53  |  55  | 
|  54   void BeginBlock() { m_bBlocking = TRUE; } |  56   void BeginBlock() { m_bBlocking = TRUE; } | 
|  55   void EndBlock() { m_bBlocking = FALSE; } |  57   void EndBlock() { m_bBlocking = FALSE; } | 
|  56   FX_BOOL IsBlocking() const { return m_bBlocking; } |  58   FX_BOOL IsBlocking() const { return m_bBlocking; } | 
|  57  |  59  | 
|  58   v8::Isolate* GetIsolate() const { return m_isolate; } |  | 
|  59   v8::Local<v8::Context> NewJSContext(); |  | 
|  60  |  | 
|  61   void SetConstArray(const CFX_WideString& name, v8::Local<v8::Array> array); |  | 
|  62   v8::Local<v8::Array> GetConstArray(const CFX_WideString& name); |  | 
|  63  |  | 
|  64 #ifdef PDF_ENABLE_XFA |  60 #ifdef PDF_ENABLE_XFA | 
|  65   FX_BOOL GetValueByName(const CFX_ByteStringC& utf8Name, |  61   FX_BOOL GetValueByName(const CFX_ByteStringC& utf8Name, | 
|  66                          CFXJSE_Value* pValue) override; |  62                          CFXJSE_Value* pValue) override; | 
|  67   FX_BOOL SetValueByName(const CFX_ByteStringC& utf8Name, |  63   FX_BOOL SetValueByName(const CFX_ByteStringC& utf8Name, | 
|  68                          CFXJSE_Value* pValue) override; |  64                          CFXJSE_Value* pValue) override; | 
|  69 #endif  // PDF_ENABLE_XFA |  65 #endif  // PDF_ENABLE_XFA | 
|  70  |  66  | 
|  71   void AddObserver(Observer* observer); |  67   void AddObserver(Observer* observer); | 
|  72   void RemoveObserver(Observer* observer); |  68   void RemoveObserver(Observer* observer); | 
|  73  |  69  | 
|  74  private: |  70  private: | 
|  75   void DefineJSObjects(); |  71   void DefineJSObjects(); | 
|  76  |  72  | 
|  77   std::vector<std::unique_ptr<CJS_Context>> m_ContextArray; |  73   std::vector<std::unique_ptr<CJS_Context>> m_ContextArray; | 
|  78   CPDFDoc_Environment* const m_pApp; |  74   CPDFDoc_Environment* const m_pApp; | 
|  79   CPDFSDK_Document* m_pDocument; |  75   CPDFSDK_Document* m_pDocument; | 
|  80   bool m_bBlocking; |  76   bool m_bBlocking; | 
|  81   bool m_isolateManaged; |  77   bool m_isolateManaged; | 
|  82   std::set<FieldEvent> m_FieldEventSet; |  78   std::set<FieldEvent> m_FieldEventSet; | 
|  83   std::set<Observer*> m_observers; |  79   std::set<Observer*> m_observers; | 
|  84 }; |  80 }; | 
|  85  |  81  | 
|  86 #endif  // FPDFSDK_JAVASCRIPT_CJS_RUNTIME_H_ |  82 #endif  // FPDFSDK_JAVASCRIPT_CJS_RUNTIME_H_ | 
| OLD | NEW |