| 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 #include "xfa/fxfa/parser/xfa_script_imp.h" |    7 #include "xfa/fxfa/parser/xfa_script_imp.h" | 
|    8  |    8  | 
|    9 #include "core/fxcrt/include/fx_ext.h" |    9 #include "core/fxcrt/include/fx_ext.h" | 
|   10 #include "fxjse/include/cfxjse_arguments.h" |   10 #include "fxjse/include/cfxjse_arguments.h" | 
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  350     CFXJSE_Value* pOriginalValue, |  350     CFXJSE_Value* pOriginalValue, | 
|  351     const CFX_ByteStringC& szPropName, |  351     const CFX_ByteStringC& szPropName, | 
|  352     FX_BOOL bQueryIn) { |  352     FX_BOOL bQueryIn) { | 
|  353   CXFA_Object* pObject = ToObject(pOriginalValue, nullptr); |  353   CXFA_Object* pObject = ToObject(pOriginalValue, nullptr); | 
|  354   if (!pObject) |  354   if (!pObject) | 
|  355     return FXJSE_ClassPropType_None; |  355     return FXJSE_ClassPropType_None; | 
|  356  |  356  | 
|  357   CXFA_ScriptContext* lpScriptContext = |  357   CXFA_ScriptContext* lpScriptContext = | 
|  358       pObject->GetDocument()->GetScriptContext(); |  358       pObject->GetDocument()->GetScriptContext(); | 
|  359   pObject = lpScriptContext->GetVariablesThis(pObject); |  359   pObject = lpScriptContext->GetVariablesThis(pObject); | 
|  360   XFA_ELEMENT objElement = pObject->GetClassID(); |  360   XFA_Element objElement = pObject->GetClassID(); | 
|  361   CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |  361   CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 
|  362   if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { |  362   if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { | 
|  363     return FXJSE_ClassPropType_Method; |  363     return FXJSE_ClassPropType_Method; | 
|  364   } |  364   } | 
|  365   if (bQueryIn && |  365   if (bQueryIn && | 
|  366       !XFA_GetScriptAttributeByName(objElement, wsPropName.AsStringC())) { |  366       !XFA_GetScriptAttributeByName(objElement, wsPropName.AsStringC())) { | 
|  367     return FXJSE_ClassPropType_None; |  367     return FXJSE_ClassPropType_None; | 
|  368   } |  368   } | 
|  369   return FXJSE_ClassPropType_Property; |  369   return FXJSE_ClassPropType_Property; | 
|  370 } |  370 } | 
|  371 int32_t CXFA_ScriptContext::GlobalPropTypeGetter( |  371 int32_t CXFA_ScriptContext::GlobalPropTypeGetter( | 
|  372     CFXJSE_Value* pOriginalValue, |  372     CFXJSE_Value* pOriginalValue, | 
|  373     const CFX_ByteStringC& szPropName, |  373     const CFX_ByteStringC& szPropName, | 
|  374     FX_BOOL bQueryIn) { |  374     FX_BOOL bQueryIn) { | 
|  375   CXFA_Object* pObject = ToObject(pOriginalValue, nullptr); |  375   CXFA_Object* pObject = ToObject(pOriginalValue, nullptr); | 
|  376   if (!pObject) |  376   if (!pObject) | 
|  377     return FXJSE_ClassPropType_None; |  377     return FXJSE_ClassPropType_None; | 
|  378  |  378  | 
|  379   CXFA_ScriptContext* lpScriptContext = |  379   CXFA_ScriptContext* lpScriptContext = | 
|  380       pObject->GetDocument()->GetScriptContext(); |  380       pObject->GetDocument()->GetScriptContext(); | 
|  381   pObject = lpScriptContext->GetVariablesThis(pObject); |  381   pObject = lpScriptContext->GetVariablesThis(pObject); | 
|  382   XFA_ELEMENT objElement = pObject->GetClassID(); |  382   XFA_Element objElement = pObject->GetClassID(); | 
|  383   CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |  383   CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 
|  384   if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { |  384   if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { | 
|  385     return FXJSE_ClassPropType_Method; |  385     return FXJSE_ClassPropType_Method; | 
|  386   } |  386   } | 
|  387   return FXJSE_ClassPropType_Property; |  387   return FXJSE_ClassPropType_Property; | 
|  388 } |  388 } | 
|  389 void CXFA_ScriptContext::NormalMethodCall(CFXJSE_Value* pThis, |  389 void CXFA_ScriptContext::NormalMethodCall(CFXJSE_Value* pThis, | 
|  390                                           const CFX_ByteStringC& szFuncName, |  390                                           const CFX_ByteStringC& szFuncName, | 
|  391                                           CFXJSE_Arguments& args) { |  391                                           CFXJSE_Arguments& args) { | 
|  392   CXFA_Object* pObject = ToObject(pThis, nullptr); |  392   CXFA_Object* pObject = ToObject(pThis, nullptr); | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  436     return pObject; |  436     return pObject; | 
|  437  |  437  | 
|  438   CXFA_ThisProxy* pProxy = static_cast<CXFA_ThisProxy*>(pObject); |  438   CXFA_ThisProxy* pProxy = static_cast<CXFA_ThisProxy*>(pObject); | 
|  439   return bScriptNode ? pProxy->GetScriptNode() : pProxy->GetThisNode(); |  439   return bScriptNode ? pProxy->GetScriptNode() : pProxy->GetThisNode(); | 
|  440 } |  440 } | 
|  441  |  441  | 
|  442 FX_BOOL CXFA_ScriptContext::RunVariablesScript(CXFA_Node* pScriptNode) { |  442 FX_BOOL CXFA_ScriptContext::RunVariablesScript(CXFA_Node* pScriptNode) { | 
|  443   if (!pScriptNode) |  443   if (!pScriptNode) | 
|  444     return FALSE; |  444     return FALSE; | 
|  445  |  445  | 
|  446   if (pScriptNode->GetClassID() != XFA_ELEMENT_Script) |  446   if (pScriptNode->GetClassID() != XFA_Element::Script) | 
|  447     return TRUE; |  447     return TRUE; | 
|  448  |  448  | 
|  449   CXFA_Node* pParent = pScriptNode->GetNodeItem(XFA_NODEITEM_Parent); |  449   CXFA_Node* pParent = pScriptNode->GetNodeItem(XFA_NODEITEM_Parent); | 
|  450   if (!pParent || pParent->GetClassID() != XFA_ELEMENT_Variables) |  450   if (!pParent || pParent->GetClassID() != XFA_Element::Variables) | 
|  451     return FALSE; |  451     return FALSE; | 
|  452  |  452  | 
|  453   if (m_mapVariableToContext.GetValueAt(pScriptNode)) |  453   if (m_mapVariableToContext.GetValueAt(pScriptNode)) | 
|  454     return TRUE; |  454     return TRUE; | 
|  455  |  455  | 
|  456   CXFA_Node* pTextNode = pScriptNode->GetNodeItem(XFA_NODEITEM_FirstChild); |  456   CXFA_Node* pTextNode = pScriptNode->GetNodeItem(XFA_NODEITEM_FirstChild); | 
|  457   if (!pTextNode) |  457   if (!pTextNode) | 
|  458     return FALSE; |  458     return FALSE; | 
|  459  |  459  | 
|  460   CFX_WideStringC wsScript; |  460   CFX_WideStringC wsScript; | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
|  473       pVariablesContext->ExecuteScript(btScript.c_str(), hRetValue.get()); |  473       pVariablesContext->ExecuteScript(btScript.c_str(), hRetValue.get()); | 
|  474   m_pThisObject = pOriginalObject; |  474   m_pThisObject = pOriginalObject; | 
|  475   return bRet; |  475   return bRet; | 
|  476 } |  476 } | 
|  477  |  477  | 
|  478 FX_BOOL CXFA_ScriptContext::QueryVariableValue( |  478 FX_BOOL CXFA_ScriptContext::QueryVariableValue( | 
|  479     CXFA_Node* pScriptNode, |  479     CXFA_Node* pScriptNode, | 
|  480     const CFX_ByteStringC& szPropName, |  480     const CFX_ByteStringC& szPropName, | 
|  481     CFXJSE_Value* pValue, |  481     CFXJSE_Value* pValue, | 
|  482     FX_BOOL bGetter) { |  482     FX_BOOL bGetter) { | 
|  483   if (!pScriptNode || pScriptNode->GetClassID() != XFA_ELEMENT_Script) |  483   if (!pScriptNode || pScriptNode->GetClassID() != XFA_Element::Script) | 
|  484     return FALSE; |  484     return FALSE; | 
|  485  |  485  | 
|  486   CXFA_Node* variablesNode = pScriptNode->GetNodeItem(XFA_NODEITEM_Parent); |  486   CXFA_Node* variablesNode = pScriptNode->GetNodeItem(XFA_NODEITEM_Parent); | 
|  487   if (!variablesNode || variablesNode->GetClassID() != XFA_ELEMENT_Variables) |  487   if (!variablesNode || variablesNode->GetClassID() != XFA_Element::Variables) | 
|  488     return FALSE; |  488     return FALSE; | 
|  489  |  489  | 
|  490   void* lpVariables = m_mapVariableToContext.GetValueAt(pScriptNode); |  490   void* lpVariables = m_mapVariableToContext.GetValueAt(pScriptNode); | 
|  491   if (!lpVariables) |  491   if (!lpVariables) | 
|  492     return FALSE; |  492     return FALSE; | 
|  493  |  493  | 
|  494   FX_BOOL bRes = FALSE; |  494   FX_BOOL bRes = FALSE; | 
|  495   CFXJSE_Context* pVariableContext = static_cast<CFXJSE_Context*>(lpVariables); |  495   CFXJSE_Context* pVariableContext = static_cast<CFXJSE_Context*>(lpVariables); | 
|  496   std::unique_ptr<CFXJSE_Value> pObject = pVariableContext->GetGlobalObject(); |  496   std::unique_ptr<CFXJSE_Value> pObject = pVariableContext->GetGlobalObject(); | 
|  497   std::unique_ptr<CFXJSE_Value> hVariableValue(new CFXJSE_Value(m_pIsolate)); |  497   std::unique_ptr<CFXJSE_Value> hVariableValue(new CFXJSE_Value(m_pIsolate)); | 
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  736     return; |  736     return; | 
|  737   if (nodes.GetSize() > 0) |  737   if (nodes.GetSize() > 0) | 
|  738     m_pScriptNodeArray->Copy(nodes); |  738     m_pScriptNodeArray->Copy(nodes); | 
|  739 } |  739 } | 
|  740 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) { |  740 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) { | 
|  741   if (!m_pScriptNodeArray) |  741   if (!m_pScriptNodeArray) | 
|  742     return; |  742     return; | 
|  743   if (m_pScriptNodeArray->Find(pNode) == -1) |  743   if (m_pScriptNodeArray->Find(pNode) == -1) | 
|  744     m_pScriptNodeArray->Add(pNode); |  744     m_pScriptNodeArray->Add(pNode); | 
|  745 } |  745 } | 
| OLD | NEW |