Add new kConstants for form controls

-- Update references to ISO32000-1:2008

Change-Id: Ifd36f762ee953f68221be1c69c03c367d30d404c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/97079
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/constants/form_fields.cpp b/constants/form_fields.cpp
index 7409e8d..89c28ff 100644
--- a/constants/form_fields.cpp
+++ b/constants/form_fields.cpp
@@ -7,7 +7,7 @@
 namespace pdfium {
 namespace form_fields {
 
-// PDF 1.7 spec, table 8.69.
+// ISO 32000-1:2008 table 220.
 // Entries common to all field dictionaries.
 const char kFT[] = "FT";
 const char kParent[] = "Parent";
@@ -20,11 +20,19 @@
 const char kDV[] = "DV";
 const char kAA[] = "AA";
 
-// FT values from PDF 1.7 spec, table 8.69.
+// ISO 32000-1:2008 table 220.
+// Values for FT keyword.
 const char kBtn[] = "Btn";
 const char kTx[] = "Tx";
 const char kCh[] = "Ch";
 const char kSig[] = "Sig";
 
+// ISO 32000-1:2008 table 222.
+// Entries common to fields containing variable text.
+const char kDA[] = "DA";
+const char kQ[] = "Q";
+const char kDS[] = "DS";
+const char kRV[] = "RV";
+
 }  // namespace form_fields
 }  // namespace pdfium
diff --git a/constants/form_fields.h b/constants/form_fields.h
index cd2b0fa..e12f4a0 100644
--- a/constants/form_fields.h
+++ b/constants/form_fields.h
@@ -24,6 +24,11 @@
 extern const char kCh[];
 extern const char kSig[];
 
+extern const char kDA[];
+extern const char kQ[];
+extern const char kDS[];
+extern const char kRV[];
+
 }  // namespace form_fields
 }  // namespace pdfium
 
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp
index d514ee3..cb8cb11 100644
--- a/core/fpdfdoc/cpdf_formcontrol.cpp
+++ b/core/fpdfdoc/cpdf_formcontrol.cpp
@@ -9,6 +9,7 @@
 #include <iterator>
 #include <utility>
 
+#include "constants/form_fields.h"
 #include "core/fpdfapi/font/cpdf_font.h"
 #include "core/fpdfapi/page/cpdf_docpagedata.h"
 #include "core/fpdfapi/parser/cpdf_array.h"
@@ -182,11 +183,12 @@
 }
 
 CPDF_DefaultAppearance CPDF_FormControl::GetDefaultAppearance() const {
-  if (m_pWidgetDict->KeyExist("DA"))
-    return CPDF_DefaultAppearance(m_pWidgetDict->GetStringFor("DA"));
-
-  const CPDF_Object* pObj =
-      CPDF_FormField::GetFieldAttr(m_pField->GetDict(), "DA");
+  if (m_pWidgetDict->KeyExist(pdfium::form_fields::kDA)) {
+    return CPDF_DefaultAppearance(
+        m_pWidgetDict->GetStringFor(pdfium::form_fields::kDA));
+  }
+  const CPDF_Object* pObj = CPDF_FormField::GetFieldAttr(
+      m_pField->GetDict(), pdfium::form_fields::kDA);
   if (!pObj)
     return m_pForm->GetDefaultAppearance();
 
@@ -246,11 +248,11 @@
 }
 
 int CPDF_FormControl::GetControlAlignment() const {
-  if (m_pWidgetDict->KeyExist("Q"))
-    return m_pWidgetDict->GetIntegerFor("Q", 0);
+  if (m_pWidgetDict->KeyExist(pdfium::form_fields::kQ))
+    return m_pWidgetDict->GetIntegerFor(pdfium::form_fields::kQ, 0);
 
-  const CPDF_Object* pObj =
-      CPDF_FormField::GetFieldAttr(m_pField->GetDict(), "Q");
+  const CPDF_Object* pObj = CPDF_FormField::GetFieldAttr(
+      m_pField->GetDict(), pdfium::form_fields::kQ);
   if (pObj)
     return pObj->GetInteger();
 
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index a55c7fd..428728b 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -192,7 +192,7 @@
           csValue = pV->GetUnicodeText();
       }
 
-      bool bHasRV = !!GetFieldAttr(m_pDict.Get(), "RV");
+      bool bHasRV = !!GetFieldAttr(m_pDict.Get(), pdfium::form_fields::kRV);
       if (!bHasRV && (csDValue == csValue))
         return false;
 
@@ -210,11 +210,11 @@
 
           m_pDict->SetFor(pdfium::form_fields::kV, std::move(pClone));
           if (bHasRV) {
-            m_pDict->SetFor("RV", pDV->Clone());
+            m_pDict->SetFor(pdfium::form_fields::kRV, pDV->Clone());
           }
         } else {
           m_pDict->RemoveFor(pdfium::form_fields::kV);
-          m_pDict->RemoveFor("RV");
+          m_pDict->RemoveFor(pdfium::form_fields::kRV);
         }
       }
       NotifyAfterValueChange();
@@ -355,7 +355,8 @@
       int iIndex = FindOption(csValue);
       if (iIndex < 0) {
         if (m_Type == kRichText && !bDefault) {
-          m_pDict->SetFor("RV", m_pDict->GetObjectFor(key)->Clone());
+          m_pDict->SetFor(pdfium::form_fields::kRV,
+                          m_pDict->GetObjectFor(key)->Clone());
         }
         m_pDict->RemoveFor("I");
       } else {