Use unowned ptr from CXFA_FFDocView to CXFA_FFDoc

There's an unique_ptr going in the other direction, so it must outlive this.

Change-Id: I28a77fbff67e6682360414e26c807d707602e140
Reviewed-on: https://pdfium-review.googlesource.com/5736
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index c1a8a67..d021740e 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -253,7 +253,7 @@
     }
   }
   if (bChanged) {
-    m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc);
+    m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc.Get());
   }
 }
 int32_t CXFA_FFDocView::ProcessWidgetEvent(CXFA_EventParam* pParam,
@@ -382,7 +382,8 @@
   if (SetFocus(pNewFocus)) {
     m_pFocusAcc = pWidgetAcc;
     if (m_iStatus == XFA_DOCVIEW_LAYOUTSTATUS_End)
-      m_pDoc->GetDocEnvironment()->SetFocusWidget(m_pDoc, m_pFocusWidget.Get());
+      m_pDoc->GetDocEnvironment()->SetFocusWidget(m_pDoc.Get(),
+                                                  m_pFocusWidget.Get());
   }
 }
 
@@ -663,7 +664,7 @@
 }
 
 int32_t CXFA_FFDocView::RunCalculateWidgets() {
-  if (!m_pDoc->GetDocEnvironment()->IsCalculationsEnabled(m_pDoc)) {
+  if (!m_pDoc->GetDocEnvironment()->IsCalculationsEnabled(m_pDoc.Get())) {
     return XFA_EVENTERROR_Disabled;
   }
   int32_t iCounts = pdfium::CollectionSize<int32_t>(m_CalculateAccs);
@@ -690,7 +691,7 @@
 }
 
 bool CXFA_FFDocView::InitValidate(CXFA_Node* pNode) {
-  if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc))
+  if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc.Get()))
     return false;
 
   ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate, false, true, nullptr);
@@ -699,7 +700,7 @@
 }
 
 bool CXFA_FFDocView::RunValidate() {
-  if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc))
+  if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc.Get()))
     return false;
 
   for (CXFA_WidgetAcc* pAcc : m_ValidateAccs) {
@@ -783,16 +784,17 @@
 }
 
 void CXFA_FFDocView::SetChangeMark() {
-  if (m_iStatus < XFA_DOCVIEW_LAYOUTSTATUS_End) {
+  if (m_iStatus < XFA_DOCVIEW_LAYOUTSTATUS_End)
     return;
-  }
-  m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc);
+
+  m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc.Get());
 }
+
 CXFA_Node* CXFA_FFDocView::GetRootSubform() {
   CXFA_Node* pFormPacketNode =
       ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form));
-  if (!pFormPacketNode) {
+  if (!pFormPacketNode)
     return nullptr;
-  }
+
   return pFormPacketNode->GetFirstChildByClass(XFA_Element::Subform);
 }
diff --git a/xfa/fxfa/cxfa_ffdocview.h b/xfa/fxfa/cxfa_ffdocview.h
index 83d077b..3164bcf 100644
--- a/xfa/fxfa/cxfa_ffdocview.h
+++ b/xfa/fxfa/cxfa_ffdocview.h
@@ -43,7 +43,7 @@
   explicit CXFA_FFDocView(CXFA_FFDoc* pDoc);
   ~CXFA_FFDocView();
 
-  CXFA_FFDoc* GetDoc() { return m_pDoc; }
+  CXFA_FFDoc* GetDoc() { return m_pDoc.Get(); }
   int32_t StartLayout(int32_t iStartPage = 0);
   int32_t DoLayout();
   void StopLayout();
@@ -116,7 +116,7 @@
   bool ResetSingleWidgetAccData(CXFA_WidgetAcc* pWidgetAcc);
   CXFA_Node* GetRootSubform();
 
-  CXFA_FFDoc* const m_pDoc;
+  CFX_UnownedPtr<CXFA_FFDoc> const m_pDoc;
   std::unique_ptr<CXFA_FFWidgetHandler> m_pWidgetHandler;
   CXFA_LayoutProcessor* m_pXFADocLayout;  // Not owned.
   CFX_UnownedPtr<CXFA_WidgetAcc> m_pFocusAcc;