Change the type of CIDSystemInfo.{Registry,Ordering} to String

According to PDF Reference 1.7, 5.6.2 CIDSystemInfo Dictionaries, these
values are of type String, not Name.

Bug: pdfium:1224

Change-Id: Ib26a93e268b7e2806be7f1935d4a46e8afc6a6a9
Reviewed-on: https://pdfium-review.googlesource.com/c/48351
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/AUTHORS b/AUTHORS
index cf72391..f3dfa6a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -44,6 +44,7 @@
 Sam Clegg <sbc@chromium.org>
 Thomas Sepez <tsepez@chromium.org>
 Wang Qing <wangqing-hf@loongson.cn>
+Zhuo Qingliang <zhuo@hexoasis.com>
 
 Collabora Ltd. <*@collabora.co.uk>
 DocsCorp Pty Ltd. <*@docscorp.com>
diff --git a/fpdfsdk/fpdf_edit_embeddertest.cpp b/fpdfsdk/fpdf_edit_embeddertest.cpp
index 24a6234..5b8251b 100644
--- a/fpdfsdk/fpdf_edit_embeddertest.cpp
+++ b/fpdfsdk/fpdf_edit_embeddertest.cpp
@@ -2244,15 +2244,13 @@
   const CPDF_Dictionary* cidinfo_dict =
       cidfont_dict->GetDictFor("CIDSystemInfo");
   ASSERT_TRUE(cidinfo_dict);
-  // TODO(https://crbug.com/pdfium/1224): These two dictionary values should be
-  // strings, not names.
   const CPDF_Object* registry = cidinfo_dict->GetObjectFor("Registry");
   ASSERT_TRUE(registry);
-  EXPECT_EQ(CPDF_Object::kName, registry->GetType());
+  EXPECT_EQ(CPDF_Object::kString, registry->GetType());
   EXPECT_EQ("Adobe", registry->GetString());
   const CPDF_Object* ordering = cidinfo_dict->GetObjectFor("Ordering");
   ASSERT_TRUE(ordering);
-  EXPECT_EQ(CPDF_Object::kName, ordering->GetType());
+  EXPECT_EQ(CPDF_Object::kString, ordering->GetType());
   EXPECT_EQ("Identity", ordering->GetString());
   EXPECT_EQ(0, cidinfo_dict->GetNumberFor("Supplement"));
   CheckFontDescriptor(cidfont_dict, FPDF_FONT_TYPE1, false, false, span);
diff --git a/fpdfsdk/fpdf_edittext.cpp b/fpdfsdk/fpdf_edittext.cpp
index bcab5eb..361c117 100644
--- a/fpdfsdk/fpdf_edittext.cpp
+++ b/fpdfsdk/fpdf_edittext.cpp
@@ -22,6 +22,7 @@
 #include "core/fpdfapi/parser/cpdf_number.h"
 #include "core/fpdfapi/parser/cpdf_reference.h"
 #include "core/fpdfapi/parser/cpdf_stream.h"
+#include "core/fpdfapi/parser/cpdf_string.h"
 #include "core/fpdftext/cpdf_textpage.h"
 #include "core/fxcrt/fx_extension.h"
 #include "core/fxge/cfx_fontmgr.h"
@@ -329,8 +330,8 @@
   // TODO(npm): Maybe use FT_Get_CID_Registry_Ordering_Supplement to get the
   // CIDSystemInfo
   CPDF_Dictionary* pCIDSystemInfo = pDoc->NewIndirect<CPDF_Dictionary>();
-  pCIDSystemInfo->SetNewFor<CPDF_Name>("Registry", "Adobe");
-  pCIDSystemInfo->SetNewFor<CPDF_Name>("Ordering", "Identity");
+  pCIDSystemInfo->SetNewFor<CPDF_String>("Registry", "Adobe", false);
+  pCIDSystemInfo->SetNewFor<CPDF_String>("Ordering", "Identity", false);
   pCIDSystemInfo->SetNewFor<CPDF_Number>("Supplement", 0);
   pCIDFont->SetFor("CIDSystemInfo", pCIDSystemInfo->MakeReference(pDoc));