Always reset CFFL_InteractiveFormFiller::m_bNotifying.

Several methods were already using fxcrt::AutoRestorer<> to reset
this value. This CL makes the same technique apply to all of them.

In the process, a few redundant clears are removed.

Change-Id: Ia467895da4575d97910002bc1b85bc5fa5bcab32
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/85112
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
index 972f757..d14e60c 100644
--- a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
+++ b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
@@ -103,17 +103,18 @@
   if (!m_bNotifying) {
     CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
     if (pWidget->GetAAction(CPDF_AAction::kCursorEnter).GetDict()) {
-      m_bNotifying = true;
-
       uint32_t nValueAge = pWidget->GetValueAge();
       pWidget->ClearAppModified();
       DCHECK(pPageView);
+      {
+        AutoRestorer<bool> restorer(&m_bNotifying);
+        m_bNotifying = true;
 
-      CFFL_FieldAction fa;
-      fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-      fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-      pWidget->OnAAction(CPDF_AAction::kCursorEnter, &fa, pPageView);
-      m_bNotifying = false;
+        CFFL_FieldAction fa;
+        fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+        fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+        pWidget->OnAAction(CPDF_AAction::kCursorEnter, &fa, pPageView);
+      }
       if (!pAnnot->HasObservable())
         return;
 
@@ -136,17 +137,18 @@
   if (!m_bNotifying) {
     CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
     if (pWidget->GetAAction(CPDF_AAction::kCursorExit).GetDict()) {
-      m_bNotifying = true;
-
       uint32_t nValueAge = pWidget->GetValueAge();
       pWidget->ClearAppModified();
       DCHECK(pPageView);
+      {
+        AutoRestorer<bool> restorer(&m_bNotifying);
+        m_bNotifying = true;
 
-      CFFL_FieldAction fa;
-      fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-      fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-      pWidget->OnAAction(CPDF_AAction::kCursorExit, &fa, pPageView);
-      m_bNotifying = false;
+        CFFL_FieldAction fa;
+        fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+        fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+        pWidget->OnAAction(CPDF_AAction::kCursorExit, &fa, pPageView);
+      }
       if (!pAnnot->HasObservable())
         return;
 
@@ -172,17 +174,18 @@
     CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
     if (Annot_HitTest(pAnnot->Get(), point) &&
         pWidget->GetAAction(CPDF_AAction::kButtonDown).GetDict()) {
-      m_bNotifying = true;
-
       uint32_t nValueAge = pWidget->GetValueAge();
       pWidget->ClearAppModified();
       DCHECK(pPageView);
+      {
+        AutoRestorer<bool> restorer(&m_bNotifying);
+        m_bNotifying = true;
 
-      CFFL_FieldAction fa;
-      fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlags);
-      fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlags);
-      pWidget->OnAAction(CPDF_AAction::kButtonDown, &fa, pPageView);
-      m_bNotifying = false;
+        CFFL_FieldAction fa;
+        fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlags);
+        fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlags);
+        pWidget->OnAAction(CPDF_AAction::kButtonDown, &fa, pPageView);
+      }
       if (!pAnnot->HasObservable())
         return true;
 
@@ -250,17 +253,18 @@
   if (!pWidget->GetAAction(CPDF_AAction::kButtonUp).GetDict())
     return false;
 
-  m_bNotifying = true;
-
   uint32_t nAge = pWidget->GetAppearanceAge();
   uint32_t nValueAge = pWidget->GetValueAge();
   DCHECK(pPageView);
+  {
+    AutoRestorer<bool> restorer(&m_bNotifying);
+    m_bNotifying = true;
 
-  CFFL_FieldAction fa;
-  fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-  fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-  pWidget->OnAAction(CPDF_AAction::kButtonUp, &fa, pPageView);
-  m_bNotifying = false;
+    CFFL_FieldAction fa;
+    fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+    fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+    pWidget->OnAAction(CPDF_AAction::kButtonUp, &fa, pPageView);
+  }
   if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
@@ -378,8 +382,6 @@
   if (!m_bNotifying) {
     CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
     if (pWidget->GetAAction(CPDF_AAction::kGetFocus).GetDict()) {
-      m_bNotifying = true;
-
       uint32_t nValueAge = pWidget->GetValueAge();
       pWidget->ClearAppModified();
 
@@ -389,13 +391,16 @@
 
       CPDFSDK_PageView* pPageView = (*pAnnot)->GetPageView();
       DCHECK(pPageView);
+      {
+        AutoRestorer<bool> restorer(&m_bNotifying);
+        m_bNotifying = true;
 
-      CFFL_FieldAction fa;
-      fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-      fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-      pFormField->GetActionData(pPageView, CPDF_AAction::kGetFocus, fa);
-      pWidget->OnAAction(CPDF_AAction::kGetFocus, &fa, pPageView);
-      m_bNotifying = false;
+        CFFL_FieldAction fa;
+        fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+        fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+        pFormField->GetActionData(pPageView, CPDF_AAction::kGetFocus, fa);
+        pWidget->OnAAction(CPDF_AAction::kGetFocus, &fa, pPageView);
+      }
       if (!pAnnot->HasObservable())
         return false;
 
@@ -435,18 +440,20 @@
   if (!pWidget->GetAAction(CPDF_AAction::kLoseFocus).GetDict())
     return true;
 
-  m_bNotifying = true;
   pWidget->ClearAppModified();
 
   CPDFSDK_PageView* pPageView = pWidget->GetPageView();
   DCHECK(pPageView);
+  {
+    AutoRestorer<bool> restorer(&m_bNotifying);
+    m_bNotifying = true;
 
-  CFFL_FieldAction fa;
-  fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-  fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-  pFormField->GetActionData(pPageView, CPDF_AAction::kLoseFocus, fa);
-  pWidget->OnAAction(CPDF_AAction::kLoseFocus, &fa, pPageView);
-  m_bNotifying = false;
+    CFFL_FieldAction fa;
+    fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+    fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+    pFormField->GetActionData(pPageView, CPDF_AAction::kLoseFocus, fa);
+    pWidget->OnAAction(CPDF_AAction::kLoseFocus, &fa, pPageView);
+  }
   return pAnnot->HasObservable();
 }
 
@@ -646,9 +653,11 @@
     return true;
 
   DCHECK(pPageView);
-  m_bNotifying = true;
   pWidget->ClearAppModified();
 
+  AutoRestorer<bool> restorer(&m_bNotifying);
+  m_bNotifying = true;
+
   CFFL_FieldAction fa;
   fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
   fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
@@ -660,10 +669,10 @@
   pFormField->GetActionData(pPageView, CPDF_AAction::kKeyStroke, fa);
   pFormField->SavePWLWindowState(pPageView);
   pWidget->OnAAction(CPDF_AAction::kKeyStroke, &fa, pPageView);
+
   if (!pAnnot->HasObservable())
     return true;
 
-  m_bNotifying = false;
   return fa.bRC;
 }
 
@@ -678,9 +687,11 @@
     return true;
 
   DCHECK(pPageView);
-  m_bNotifying = true;
   pWidget->ClearAppModified();
 
+  AutoRestorer<bool> restorer(&m_bNotifying);
+  m_bNotifying = true;
+
   CFFL_FieldAction fa;
   fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
   fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
@@ -691,10 +702,10 @@
   pFormField->GetActionData(pPageView, CPDF_AAction::kValidate, fa);
   pFormField->SavePWLWindowState(pPageView);
   pWidget->OnAAction(CPDF_AAction::kValidate, &fa, pPageView);
+
   if (!pAnnot->HasObservable())
     return true;
 
-  m_bNotifying = false;
   return fa.bRC;
 }
 
@@ -704,7 +715,6 @@
     return;
 
   m_pCallbackIface->OnCalculate(pAnnot);
-  m_bNotifying = false;
 }
 
 void CFFL_InteractiveFormFiller::OnFormat(ObservedPtr<CPDFSDK_Annot>* pAnnot) {
@@ -712,7 +722,6 @@
     return;
 
   m_pCallbackIface->OnFormat(pAnnot);
-  m_bNotifying = false;
 }
 
 #ifdef PDF_ENABLE_XFA
@@ -726,16 +735,18 @@
   if (!pWidget->HasXFAAAction(PDFSDK_XFA_Click))
     return false;
 
-  m_bNotifying = true;
   uint32_t nAge = pWidget->GetAppearanceAge();
   uint32_t nValueAge = pWidget->GetValueAge();
+  {
+    AutoRestorer<bool> restorer(&m_bNotifying);
+    m_bNotifying = true;
 
-  CFFL_FieldAction fa;
-  fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-  fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+    CFFL_FieldAction fa;
+    fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+    fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
 
-  pWidget->OnXFAAAction(PDFSDK_XFA_Click, &fa, pPageView);
-  m_bNotifying = false;
+    pWidget->OnXFAAAction(PDFSDK_XFA_Click, &fa, pPageView);
+  }
   if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
@@ -757,16 +768,17 @@
   if (!pWidget->HasXFAAAction(PDFSDK_XFA_Full))
     return false;
 
-  m_bNotifying = true;
   uint32_t nAge = pWidget->GetAppearanceAge();
   uint32_t nValueAge = pWidget->GetValueAge();
+  {
+    AutoRestorer<bool> restorer(&m_bNotifying);
+    m_bNotifying = true;
 
-  CFFL_FieldAction fa;
-  fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-  fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-
-  pWidget->OnXFAAAction(PDFSDK_XFA_Full, &fa, pPageView);
-  m_bNotifying = false;
+    CFFL_FieldAction fa;
+    fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+    fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+    pWidget->OnXFAAAction(PDFSDK_XFA_Full, &fa, pPageView);
+  }
   if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
@@ -788,16 +800,17 @@
   if (!pWidget->HasXFAAAction(PDFSDK_XFA_PreOpen))
     return false;
 
-  m_bNotifying = true;
   uint32_t nAge = pWidget->GetAppearanceAge();
   uint32_t nValueAge = pWidget->GetValueAge();
+  {
+    AutoRestorer<bool> restorer(&m_bNotifying);
+    m_bNotifying = true;
 
-  CFFL_FieldAction fa;
-  fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-  fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-
-  pWidget->OnXFAAAction(PDFSDK_XFA_PreOpen, &fa, pPageView);
-  m_bNotifying = false;
+    CFFL_FieldAction fa;
+    fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+    fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+    pWidget->OnXFAAAction(PDFSDK_XFA_PreOpen, &fa, pPageView);
+  }
   if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
@@ -819,16 +832,17 @@
   if (!pWidget->HasXFAAAction(PDFSDK_XFA_PostOpen))
     return false;
 
-  m_bNotifying = true;
   uint32_t nAge = pWidget->GetAppearanceAge();
   uint32_t nValueAge = pWidget->GetValueAge();
+  {
+    AutoRestorer<bool> restorer(&m_bNotifying);
+    m_bNotifying = true;
 
-  CFFL_FieldAction fa;
-  fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
-  fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
-
-  pWidget->OnXFAAAction(PDFSDK_XFA_PostOpen, &fa, pPageView);
-  m_bNotifying = false;
+    CFFL_FieldAction fa;
+    fa.bModifier = CPWL_Wnd::IsCTRLKeyDown(nFlag);
+    fa.bShift = CPWL_Wnd::IsSHIFTKeyDown(nFlag);
+    pWidget->OnXFAAAction(PDFSDK_XFA_PostOpen, &fa, pPageView);
+  }
   if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;