Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Unified Diff: fpdfsdk/fpdfxfa/cpdfxfa_document.cpp

Issue 2414883006: Revert of Reland: Make the CPDFXFA_App non-global (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « fpdfsdk/fpdfxfa/cpdfxfa_document.h ('k') | fpdfsdk/javascript/cjs_runtime.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: fpdfsdk/fpdfxfa/cpdfxfa_document.cpp
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp
index 79d28c0637ffcd2480d653de491ec0b7e479c3f3..df0da31beb1d304f5dcce1712970e618c03479ef 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp
@@ -16,7 +16,6 @@
#include "fpdfsdk/fsdk_define.h"
#include "fpdfsdk/javascript/ijs_runtime.h"
#include "public/fpdf_formfill.h"
-#include "third_party/base/ptr_util.h"
#include "xfa/fxfa/cxfa_eventparam.h"
#include "xfa/fxfa/xfa_ffapp.h"
#include "xfa/fxfa/xfa_ffdoc.h"
@@ -29,23 +28,19 @@
extern int GetLastError();
#endif
-CPDFXFA_Document::CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc)
+CPDFXFA_Document::CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc,
+ CPDFXFA_App* pProvider)
: m_iDocType(DOCTYPE_PDF),
m_pPDFDoc(std::move(pPDFDoc)),
m_pFormFillEnv(nullptr),
m_pXFADocView(nullptr),
+ m_pApp(pProvider),
m_nLoadStatus(FXFA_LOADSTATUS_PRELOAD),
m_nPageCount(0),
m_DocEnv(this) {}
CPDFXFA_Document::~CPDFXFA_Document() {
m_nLoadStatus = FXFA_LOADSTATUS_CLOSING;
-
- // Must happen before we remove the form fill environment.
- if (m_pXFADoc) {
- if (CXFA_FFApp* pApp = GetApp()->GetXFAApp())
- CloseXFADoc(pApp->GetDocHandler());
- }
if (m_pFormFillEnv) {
m_pFormFillEnv->ClearAllFocusedAnnots();
@@ -55,21 +50,17 @@
m_pFormFillEnv = nullptr;
}
+ if (m_pXFADoc) {
+ CXFA_FFApp* pApp = m_pApp->GetXFAApp();
+ if (pApp) {
+ CXFA_FFDocHandler* pDocHandler = pApp->GetDocHandler();
+ if (pDocHandler)
+ CloseXFADoc(pDocHandler);
+ }
+ m_pXFADoc.reset();
+ }
+
m_nLoadStatus = FXFA_LOADSTATUS_CLOSED;
-}
-
-void CPDFXFA_Document::CloseXFADoc(CXFA_FFDocHandler* pDoc) {
- if (!pDoc)
- return;
- m_pXFADoc->CloseDoc();
- m_pXFADoc.reset();
- m_pXFADocView = nullptr;
-}
-
-CPDFXFA_App* CPDFXFA_Document::GetApp() {
- if (!m_pApp)
- m_pApp = pdfium::MakeUnique<CPDFXFA_App>();
- return m_pApp.get();
}
FX_BOOL CPDFXFA_Document::LoadXFADoc() {
@@ -80,7 +71,7 @@
m_XFAPageList.RemoveAll();
- CXFA_FFApp* pApp = GetApp()->GetXFAApp();
+ CXFA_FFApp* pApp = m_pApp->GetXFAApp();
if (!pApp)
return FALSE;
@@ -104,7 +95,7 @@
return FALSE;
}
m_pXFADoc->StopLoad();
- m_pXFADoc->GetXFADoc()->InitScriptContext(GetApp()->GetJSERuntime());
+ m_pXFADoc->GetXFADoc()->InitScriptContext(m_pApp->GetJSERuntime());
if (m_pXFADoc->GetDocType() == XFA_DOCTYPE_Dynamic)
m_iDocType = DOCTYPE_DYNAMIC_XFA;
« no previous file with comments | « fpdfsdk/fpdfxfa/cpdfxfa_document.h ('k') | fpdfsdk/javascript/cjs_runtime.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698