Add --disable-xfa flag to test_runner.py

test_runner.py then passes a flag of the same name on each run of
pdfium_test.

Bug: pdfium:1412
Change-Id: I5b192cd390025752fee37b614dea46cc7062fbaa
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/63250
Commit-Queue: Daniel Hosseinian <dhoss@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/testing/tools/suppressor.py b/testing/tools/suppressor.py
index a2e39a1..70eef99 100755
--- a/testing/tools/suppressor.py
+++ b/testing/tools/suppressor.py
@@ -11,10 +11,11 @@
 
 class Suppressor:
 
-  def __init__(self, finder, feature_string, js_disabled):
+  def __init__(self, finder, feature_string, js_disabled, xfa_disabled):
     feature_vector = feature_string.strip().split(",")
     self.has_v8 = not js_disabled and "V8" in feature_vector
-    self.has_xfa = not js_disabled and "XFA" in feature_vector
+    self.has_xfa = (not js_disabled and not xfa_disabled and
+                    "XFA" in feature_vector)
     self.suppression_set = self._LoadSuppressedSet('SUPPRESSIONS', finder)
     self.image_suppression_set = self._LoadSuppressedSet(
         'SUPPRESSIONS_IMAGE_DIFF', finder)
diff --git a/testing/tools/test_runner.py b/testing/tools/test_runner.py
index 3a055ba..d3640d6 100644
--- a/testing/tools/test_runner.py
+++ b/testing/tools/test_runner.py
@@ -161,6 +161,9 @@
       if self.options.disable_javascript:
         cmd_to_run.append('--disable-javascript')
 
+      if self.options.disable_xfa:
+        cmd_to_run.append('--disable-xfa')
+
       cmd_to_run.append(pdf_path)
       subprocess.check_call(cmd_to_run, stdout=outfile)
 
@@ -206,6 +209,9 @@
     if self.options.disable_javascript:
       cmd_to_run.append('--disable-javascript')
 
+    if self.options.disable_xfa:
+      cmd_to_run.append('--disable-xfa')
+
     if self.options.reverse_byte_order:
       cmd_to_run.append('--reverse-byte-order')
 
@@ -267,6 +273,12 @@
         help='Prevents JavaScript from executing in PDF files.')
 
     parser.add_option(
+        '--disable-xfa',
+        action="store_true",
+        dest="disable_xfa",
+        help='Prevents processing XFA forms.')
+
+    parser.add_option(
         '--gold_properties',
         default='',
         dest="gold_properties",
@@ -346,7 +358,8 @@
     self.feature_string = subprocess.check_output(
         [self.pdfium_test_path, '--show-config'])
     self.test_suppressor = suppressor.Suppressor(
-        finder, self.feature_string, self.options.disable_javascript)
+        finder, self.feature_string, self.options.disable_javascript,
+        self.options.disable_xfa)
     self.image_differ = pngdiffer.PNGDiffer(finder,
                                             self.options.reverse_byte_order)
     error_message = self.image_differ.CheckMissingTools(