FX_BOOL CPDFSDK_ActionHandler::ExecuteDocumentOpenAction( const CPDF_Action& action, CPDFSDK_Document* pDocument, CFX_PtrList& list) { CPDF_Dictionary* pDict = action.GetDict(); if (list.Find(pDict)) return FALSE; list.AddTail(pDict); CPDFDoc_Environment* pEnv = pDocument->GetEnv(); ASSERT(pEnv); if (action.GetType() == CPDF_Action::JavaScript) { if (pEnv->IsJSInitiated()) { CFX_WideString swJS = action.GetJavaScript(); if (!swJS.IsEmpty()) { RunDocumentOpenJavaScript(pDocument, L"", swJS); } } } else { DoAction_NoJs(action, pDocument); } for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { CPDF_Action subaction = action.GetSubAction(i); if (!ExecuteDocumentOpenAction(subaction, pDocument, list)) return FALSE; } return TRUE; }
bool CPDFSDK_ActionHandler::ExecuteDocumentOpenAction( const CPDF_Action& action, CPDFSDK_FormFillEnvironment* pFormFillEnv, std::set<CPDF_Dictionary*>* visited) { CPDF_Dictionary* pDict = action.GetDict(); if (pdfium::ContainsKey(*visited, pDict)) return false; visited->insert(pDict); ASSERT(pFormFillEnv); if (action.GetType() == CPDF_Action::JavaScript) { if (pFormFillEnv->IsJSInitiated()) { CFX_WideString swJS = action.GetJavaScript(); if (!swJS.IsEmpty()) { RunDocumentOpenJavaScript(pFormFillEnv, L"", swJS); } } } else { DoAction_NoJs(action, pFormFillEnv); } for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { CPDF_Action subaction = action.GetSubAction(i); if (!ExecuteDocumentOpenAction(subaction, pFormFillEnv, visited)) return false; } return true; }
FX_BOOL CPDFSDK_ActionHandler::ExecuteDocumentOpenAction(const CPDF_Action& action, CPDFSDK_Document* pDocument, /*CReader_DocView *pDocView,*/ CFX_PtrList& list) { ASSERT(pDocument != NULL); if (list.Find((CPDF_Dictionary*)action)) return FALSE; list.AddTail((CPDF_Dictionary*)action); CPDFDoc_Environment* pEnv = pDocument->GetEnv(); ASSERT(pEnv); if (action.GetType() == CPDF_Action::JavaScript) { if(pEnv->IsJSInitiated()) { CFX_WideString swJS = action.GetJavaScript(); if (!swJS.IsEmpty()) { RunDocumentOpenJavaScript(pDocument, L"", swJS); } } } else { DoAction_NoJs(action, pDocument/*, pDocView*/); } // if (!IsValidDocView(pDocument, pDocView)) // return FALSE; for (FX_INT32 i=0,sz=action.GetSubActionsCount(); i<sz; i++) { CPDF_Action subaction = action.GetSubAction(i); if (!ExecuteDocumentOpenAction(subaction, pDocument,/* pDocView,*/ list)) return FALSE; } return TRUE; }
FX_BOOL CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action, CPDFSDK_Document* pDocument) { CFX_PtrList list; return ExecuteDocumentOpenAction(action, pDocument, list); }
bool CPDFSDK_ActionHandler::DoAction_DocOpen( const CPDF_Action& action, CPDFSDK_FormFillEnvironment* pFormFillEnv) { std::set<CPDF_Dictionary*> visited; return ExecuteDocumentOpenAction(action, pFormFillEnv, &visited); }
//document open FX_BOOL CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action, CPDFSDK_Document* pDocument /*CReader_Document* pDocument, CReader_DocView *pDocView*/) { CFX_PtrList list; return ExecuteDocumentOpenAction(action, pDocument, /*pDocView, */list); }
FX_BOOL CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action, CPDFSDK_Document* pDocument) { std::set<CPDF_Dictionary*> visited; return ExecuteDocumentOpenAction(action, pDocument, &visited); }