diff --git a/xfa/fxfa/cxfa_ffcheckbutton.cpp b/xfa/fxfa/cxfa_ffcheckbutton.cpp
index 96d7431..3fd1d88 100644
--- a/xfa/fxfa/cxfa_ffcheckbutton.cpp
+++ b/xfa/fxfa/cxfa_ffcheckbutton.cpp
@@ -115,7 +115,7 @@
 
   XFA_AttributeEnum iHorzAlign = XFA_AttributeEnum::Left;
   XFA_AttributeEnum iVertAlign = XFA_AttributeEnum::Top;
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (para) {
     iHorzAlign = para->GetHorizontalAlign();
     iVertAlign = para->GetVerticalAlign();
diff --git a/xfa/fxfa/cxfa_ffcombobox.cpp b/xfa/fxfa/cxfa_ffcombobox.cpp
index 9d65a64..5d0792b 100644
--- a/xfa/fxfa/cxfa_ffcombobox.cpp
+++ b/xfa/fxfa/cxfa_ffcombobox.cpp
@@ -143,7 +143,7 @@
 }
 
 uint32_t CXFA_FFComboBox::GetAlignment() {
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (!para)
     return 0;
 
diff --git a/xfa/fxfa/cxfa_ffdatetimeedit.cpp b/xfa/fxfa/cxfa_ffdatetimeedit.cpp
index aab7327..0188300 100644
--- a/xfa/fxfa/cxfa_ffdatetimeedit.cpp
+++ b/xfa/fxfa/cxfa_ffdatetimeedit.cpp
@@ -99,7 +99,7 @@
 }
 
 uint32_t CXFA_FFDateTimeEdit::GetAlignment() {
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (!para)
     return 0;
 
diff --git a/xfa/fxfa/cxfa_ffimage.cpp b/xfa/fxfa/cxfa_ffimage.cpp
index a2c21a1..4fb5f15 100644
--- a/xfa/fxfa/cxfa_ffimage.cpp
+++ b/xfa/fxfa/cxfa_ffimage.cpp
@@ -61,7 +61,7 @@
 
   XFA_AttributeEnum iHorzAlign = XFA_AttributeEnum::Left;
   XFA_AttributeEnum iVertAlign = XFA_AttributeEnum::Top;
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (para) {
     iHorzAlign = para->GetHorizontalAlign();
     iVertAlign = para->GetVerticalAlign();
diff --git a/xfa/fxfa/cxfa_ffimageedit.cpp b/xfa/fxfa/cxfa_ffimageedit.cpp
index 4784004..15d798c 100644
--- a/xfa/fxfa/cxfa_ffimageedit.cpp
+++ b/xfa/fxfa/cxfa_ffimageedit.cpp
@@ -75,7 +75,7 @@
   CFX_RectF rtImage = m_pNormalWidget->GetWidgetRect();
   XFA_AttributeEnum iHorzAlign = XFA_AttributeEnum::Left;
   XFA_AttributeEnum iVertAlign = XFA_AttributeEnum::Top;
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (para) {
     iHorzAlign = para->GetHorizontalAlign();
     iVertAlign = para->GetVerticalAlign();
diff --git a/xfa/fxfa/cxfa_fflistbox.cpp b/xfa/fxfa/cxfa_fflistbox.cpp
index 892f0a6..1a7b11b 100644
--- a/xfa/fxfa/cxfa_fflistbox.cpp
+++ b/xfa/fxfa/cxfa_fflistbox.cpp
@@ -105,7 +105,7 @@
 }
 
 uint32_t CXFA_FFListBox::GetAlignment() {
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (!para)
     return 0;
 
diff --git a/xfa/fxfa/cxfa_fftextedit.cpp b/xfa/fxfa/cxfa_fftextedit.cpp
index 706a9a8..3429d97 100644
--- a/xfa/fxfa/cxfa_fftextedit.cpp
+++ b/xfa/fxfa/cxfa_fftextedit.cpp
@@ -213,7 +213,7 @@
 }
 
 uint32_t CXFA_FFTextEdit::GetAlignment() {
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (!para)
     return 0;
 
diff --git a/xfa/fxfa/cxfa_fwltheme.cpp b/xfa/fxfa/cxfa_fwltheme.cpp
index cd55ca4..9209682 100644
--- a/xfa/fxfa/cxfa_fwltheme.cpp
+++ b/xfa/fxfa/cxfa_fwltheme.cpp
@@ -155,7 +155,7 @@
   CXFA_LayoutItem* pItem = pWidget;
   CXFA_WidgetAcc* pWidgetAcc = pWidget->GetNode()->GetWidgetAcc();
   rect = pWidgetAcc->GetUIMargin();
-  CXFA_Para* para = pWidgetAcc->GetNode()->GetPara();
+  CXFA_Para* para = pWidgetAcc->GetNode()->GetParaIfExists();
   if (para) {
     rect.left += para->GetMarginLeft();
     if (pWidgetAcc->IsMultiLine())
@@ -213,7 +213,7 @@
 CFX_SizeF CXFA_FWLTheme::GetSpaceAboveBelow(CFWL_ThemePart* pThemePart) const {
   CFX_SizeF sizeAboveBelow;
   if (CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget)) {
-    CXFA_Para* para = pWidget->GetNode()->GetPara();
+    CXFA_Para* para = pWidget->GetNode()->GetParaIfExists();
     if (para) {
       sizeAboveBelow.width = para->GetSpaceAbove();
       sizeAboveBelow.height = para->GetSpaceBelow();
diff --git a/xfa/fxfa/cxfa_textlayout.cpp b/xfa/fxfa/cxfa_textlayout.cpp
index 15ac909..d252a36 100644
--- a/xfa/fxfa/cxfa_textlayout.cpp
+++ b/xfa/fxfa/cxfa_textlayout.cpp
@@ -104,7 +104,7 @@
 }
 
 void CXFA_TextLayout::InitBreak(float fLineWidth) {
-  CXFA_Para* para = m_pTextProvider->GetPara();
+  CXFA_Para* para = m_pTextProvider->GetParaIfExists();
   float fStart = 0;
   float fStartPos = 0;
   if (para) {
@@ -652,7 +652,7 @@
                                bool bSavePieces) {
   InitBreak(textWidth);
 
-  CXFA_Para* para = m_pTextProvider->GetPara();
+  CXFA_Para* para = m_pTextProvider->GetParaIfExists();
   float fSpaceAbove = 0;
   if (para) {
     fSpaceAbove = para->GetSpaceAbove();
@@ -1100,7 +1100,7 @@
   if (dwStatus == CFX_BreakType::Paragraph) {
     m_pBreak->Reset();
     if (!pStyle && bEndBreak) {
-      CXFA_Para* para = m_pTextProvider->GetPara();
+      CXFA_Para* para = m_pTextProvider->GetParaIfExists();
       if (para) {
         float fStartPos = para->GetMarginLeft();
         float fIndent = para->GetTextIndent();
diff --git a/xfa/fxfa/cxfa_textparser.cpp b/xfa/fxfa/cxfa_textparser.cpp
index 0fd59a0..07ba896 100644
--- a/xfa/fxfa/cxfa_textparser.cpp
+++ b/xfa/fxfa/cxfa_textparser.cpp
@@ -92,7 +92,7 @@
 
 RetainPtr<CFX_CSSComputedStyle> CXFA_TextParser::CreateRootStyle(
     CXFA_TextProvider* pTextProvider) {
-  CXFA_Para* para = pTextProvider->GetPara();
+  CXFA_Para* para = pTextProvider->GetParaIfExists();
   auto pStyle = m_pSelector->CreateComputedStyle(nullptr);
   float fLineHeight = 0;
   float fFontSize = 10;
@@ -297,7 +297,7 @@
 
 XFA_AttributeEnum CXFA_TextParser::GetVAlign(
     CXFA_TextProvider* pTextProvider) const {
-  CXFA_Para* para = pTextProvider->GetPara();
+  CXFA_Para* para = pTextProvider->GetParaIfExists();
   return para ? para->GetVerticalAlign() : XFA_AttributeEnum::Top;
 }
 
@@ -476,7 +476,7 @@
   if (pStyle) {
     fLineHeight = pStyle->GetLineHeight();
   } else {
-    CXFA_Para* para = pTextProvider->GetPara();
+    CXFA_Para* para = pTextProvider->GetParaIfExists();
     if (para)
       fLineHeight = para->GetLineHeight();
   }
diff --git a/xfa/fxfa/cxfa_textprovider.cpp b/xfa/fxfa/cxfa_textprovider.cpp
index 6b4198e..33e301f 100644
--- a/xfa/fxfa/cxfa_textprovider.cpp
+++ b/xfa/fxfa/cxfa_textprovider.cpp
@@ -115,9 +115,9 @@
   return nullptr;
 }
 
-CXFA_Para* CXFA_TextProvider::GetPara() {
+CXFA_Para* CXFA_TextProvider::GetParaIfExists() {
   if (m_eType == XFA_TEXTPROVIDERTYPE_Text)
-    return m_pWidgetAcc->GetNode()->GetPara();
+    return m_pWidgetAcc->GetNode()->GetParaIfExists();
 
   CXFA_Caption* pNode = m_pWidgetAcc->GetNode()->GetChild<CXFA_Caption>(
       0, XFA_Element::Caption, false);
diff --git a/xfa/fxfa/cxfa_textprovider.h b/xfa/fxfa/cxfa_textprovider.h
index 423e99c..3431c9a 100644
--- a/xfa/fxfa/cxfa_textprovider.h
+++ b/xfa/fxfa/cxfa_textprovider.h
@@ -31,7 +31,7 @@
   ~CXFA_TextProvider() {}
 
   CXFA_Node* GetTextNode(bool& bRichText);
-  CXFA_Para* GetPara();
+  CXFA_Para* GetParaIfExists();
   CXFA_Font* GetFontIfExists();
   bool IsCheckButtonAndAutoWidth();
   bool GetEmbbedObj(bool bURI,
diff --git a/xfa/fxfa/cxfa_widgetacc.cpp b/xfa/fxfa/cxfa_widgetacc.cpp
index efcd320..2714711 100644
--- a/xfa/fxfa/cxfa_widgetacc.cpp
+++ b/xfa/fxfa/cxfa_widgetacc.cpp
@@ -579,7 +579,7 @@
     size.height += margin->GetTopInset() + margin->GetBottomInset();
   }
 
-  CXFA_Para* para = m_pNode->GetPara();
+  CXFA_Para* para = m_pNode->GetParaIfExists();
   if (para)
     size.width += para->GetMarginLeft() + para->GetTextIndent();
 
@@ -1040,7 +1040,7 @@
   if (fHeight > 0.1f && iBlockIndex == 0) {
     fStartOffset = fTopInset;
     fHeight -= (fTopInset + fBottomInset);
-    CXFA_Para* para = m_pNode->GetPara();
+    CXFA_Para* para = m_pNode->GetParaIfExists();
     if (para) {
       fSpaceAbove = para->GetSpaceAbove();
       float fSpaceBelow = para->GetSpaceBelow();
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 54b4661..093d83a 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -1562,7 +1562,7 @@
 
 float CXFA_Node::GetLineHeight() const {
   float fLineHeight = 0;
-  CXFA_Para* para = GetPara();
+  CXFA_Para* para = GetParaIfExists();
   if (para)
     fLineHeight = para->GetLineHeight();
 
@@ -1580,7 +1580,7 @@
   return JSObject()->GetProperty<CXFA_Margin>(0, XFA_Element::Margin);
 }
 
-CXFA_Para* CXFA_Node::GetPara() const {
+CXFA_Para* CXFA_Node::GetParaIfExists() const {
   return JSObject()->GetProperty<CXFA_Para>(0, XFA_Element::Para);
 }
 
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index 1dcaeec..ed3b21d 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -247,7 +247,7 @@
   float GetLineHeight() const;
 
   CXFA_Margin* GetMarginIfExists() const;
-  CXFA_Para* GetPara() const;
+  CXFA_Para* GetParaIfExists() const;
   CXFA_Calculate* GetCalculate() const;
   CXFA_Validate* GetValidate() const;
   CXFA_Validate* GetOrCreateValidate();
