Add constants for form field types.

BUG=pdfium:1049

Change-Id: I16f90720f6779ba026ed61fea0f96aec263112e4
Reviewed-on: https://pdfium-review.googlesource.com/c/51233
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/constants/form_fields.h b/constants/form_fields.h
index 248991b..5b7c169 100644
--- a/constants/form_fields.h
+++ b/constants/form_fields.h
@@ -21,6 +21,12 @@
 constexpr char kDV[] = "DV";
 constexpr char kAA[] = "AA";
 
+// FT values from PDF 1.7 spec, table 8.69.
+constexpr char kBtn[] = "Btn";
+constexpr char kTx[] = "Tx";
+constexpr char kCh[] = "Ch";
+constexpr char kSig[] = "Sig";
+
 }  // namespace form_fields
 }  // namespace pdfium
 
diff --git a/core/fpdfapi/parser/cpdf_crypto_handler.cpp b/core/fpdfapi/parser/cpdf_crypto_handler.cpp
index a87211f..335a57b 100644
--- a/core/fpdfapi/parser/cpdf_crypto_handler.cpp
+++ b/core/fpdfapi/parser/cpdf_crypto_handler.cpp
@@ -28,7 +28,6 @@
 
 constexpr char kContentsKey[] = "Contents";
 constexpr char kTypeKey[] = "Type";
-constexpr char kSignTypeValue[] = "Sig";
 
 }  // namespace
 
@@ -40,7 +39,7 @@
   const CPDF_Object* type_obj = dictionary->GetDirectObjectFor(kTypeKey);
   if (!type_obj)
     type_obj = dictionary->GetDirectObjectFor(pdfium::form_fields::kFT);
-  return type_obj && type_obj->GetString() == kSignTypeValue;
+  return type_obj && type_obj->GetString() == pdfium::form_fields::kSig;
 }
 
 void CPDF_CryptoHandler::CryptBlock(bool bEncrypt,
diff --git a/core/fpdfdoc/cpdf_annotlist.cpp b/core/fpdfdoc/cpdf_annotlist.cpp
index f249ab8..836d5d4 100644
--- a/core/fpdfdoc/cpdf_annotlist.cpp
+++ b/core/fpdfdoc/cpdf_annotlist.cpp
@@ -134,7 +134,7 @@
     return;
 
   ByteString field_type = pFieldTypeObj->GetString();
-  if (field_type == "Tx") {
+  if (field_type == pdfium::form_fields::kTx) {
     CPVT_GenerateAP::GenerateFormAP(pDoc, pAnnotDict,
                                     CPVT_GenerateAP::kTextField);
     return;
@@ -143,7 +143,7 @@
   CPDF_Object* pFieldFlagsObj =
       FPDF_GetFieldAttr(pAnnotDict, pdfium::form_fields::kFf);
   uint32_t flags = pFieldFlagsObj ? pFieldFlagsObj->GetInteger() : 0;
-  if (field_type == "Ch") {
+  if (field_type == pdfium::form_fields::kCh) {
     auto type = (flags & pdfium::form_flags::kChoiceCombo)
                     ? CPVT_GenerateAP::kComboBox
                     : CPVT_GenerateAP::kListBox;
@@ -151,7 +151,7 @@
     return;
   }
 
-  if (field_type != "Btn")
+  if (field_type != pdfium::form_fields::kBtn)
     return;
   if (flags & pdfium::form_flags::kButtonPushbutton)
     return;
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index 15b9066..ba15e1e 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -131,7 +131,7 @@
     m_bNoExport = true;
   }
 
-  if (type_name == "Btn") {
+  if (type_name == pdfium::form_fields::kBtn) {
     if (flags & 0x8000) {
       m_Type = kRadioButton;
       if (flags & 0x4000)
@@ -143,7 +143,7 @@
     } else {
       m_Type = kCheckBox;
     }
-  } else if (type_name == "Tx") {
+  } else if (type_name == pdfium::form_fields::kTx) {
     if (flags & 0x100000) {
       m_Type = kFile;
     } else if (flags & 0x2000000) {
@@ -160,7 +160,7 @@
         m_Flags |= kFormTextComb;
     }
     LoadDA();
-  } else if (type_name == "Ch") {
+  } else if (type_name == pdfium::form_fields::kCh) {
     if (flags & 0x20000) {
       m_Type = kComboBox;
       if (flags & 0x40000)
@@ -171,7 +171,7 @@
         m_Flags |= kFormListMultiSelect;
     }
     LoadDA();
-  } else if (type_name == "Sig") {
+  } else if (type_name == pdfium::form_fields::kSig) {
     m_Type = kSign;
   }
 }
diff --git a/fpdfsdk/cpdfsdk_helpers.cpp b/fpdfsdk/cpdfsdk_helpers.cpp
index 6715c99..18a2c3a 100644
--- a/fpdfsdk/cpdfsdk_helpers.cpp
+++ b/fpdfsdk/cpdfsdk_helpers.cpp
@@ -392,7 +392,7 @@
     case CPDF_Annot::Subtype::WIDGET: {
       const CPDF_Dictionary* pAnnotDict = pAnnot->GetAnnotDict();
       ByteString cbString = pAnnotDict->GetStringFor(pdfium::form_fields::kFT);
-      if (cbString == "Sig")
+      if (cbString == pdfium::form_fields::kSig)
         RaiseUnSupportError(FPDF_UNSP_ANNOT_SIG);
       break;
     }