Add ability to log click events reaching PDFium

Adds in logging statement to related API methods and a build flag to
control enabling the feature. This is meant to be used in conjunction
with Chromium.

A developer can enable this flag, load a test PDF, and then click on
elements to determine appropriate coordinates for an .evt file.

BUG=pdfium:1057

Change-Id: I956c39f545297872a61affdb621a412b3c407ff5
Reviewed-on: https://pdfium-review.googlesource.com/34010
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index d88c1d6..3422b81 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -30,6 +30,10 @@
     defines += [ "PDF_ENABLE_V8" ]
   }
 
+  if (pdf_enable_click_logging) {
+    defines += [ "PDF_ENABLE_CLICK_LOGGING" ]
+  }
+
   if (pdf_enable_xfa) {
     defines += [ "PDF_ENABLE_XFA" ]
     if (pdf_enable_xfa_bmp) {
diff --git a/fpdfsdk/fpdf_formfill.cpp b/fpdfsdk/fpdf_formfill.cpp
index 62d2c00..de2bf4d 100644
--- a/fpdfsdk/fpdf_formfill.cpp
+++ b/fpdfsdk/fpdf_formfill.cpp
@@ -362,6 +362,10 @@
   CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
   if (!pPageView)
     return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+  fprintf(stderr, "mousedown,left,%d,%d\n", static_cast<int>(round(page_x)),
+          static_cast<int>(round(page_y)));
+#endif  // PDF_ENABLE_CLICK_LOGGING
   return pPageView->OnLButtonDown(CFX_PointF(page_x, page_y), modifier);
 }
 
@@ -373,6 +377,10 @@
   CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
   if (!pPageView)
     return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+  fprintf(stderr, "mouseup,left,%d,%d\n", static_cast<int>(round(page_x)),
+          static_cast<int>(round(page_y)));
+#endif  // PDF_ENABLE_CLICK_LOGGING
   return pPageView->OnLButtonUp(CFX_PointF(page_x, page_y), modifier);
 }
 
@@ -385,6 +393,10 @@
   CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
   if (!pPageView)
     return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+  fprintf(stderr, "mousedown,right,%d,%d\n", static_cast<int>(round(page_x)),
+          static_cast<int>(round(page_y)));
+#endif  // PDF_ENABLE_CLICK_LOGGING
   return pPageView->OnRButtonDown(CFX_PointF(page_x, page_y), modifier);
 }
 
@@ -396,6 +408,10 @@
   CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
   if (!pPageView)
     return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+  fprintf(stderr, "mouseup,right,%d,%d\n", static_cast<int>(round(page_x)),
+          static_cast<int>(round(page_y)));
+#endif  // PDF_ENABLE_CLICK_LOGGING
   return pPageView->OnRButtonUp(CFX_PointF(page_x, page_y), modifier);
 }
 #endif  // PDF_ENABLE_XFA
diff --git a/pdfium.gni b/pdfium.gni
index 237d7c7..2b34cbc 100644
--- a/pdfium.gni
+++ b/pdfium.gni
@@ -15,6 +15,9 @@
   #    //build/config/freetype.
   pdf_bundle_freetype = pdf_bundle_freetype_override
 
+  # Generate logging messages for click events that reach PDFium
+  pdf_enable_click_logging = false
+
   # Build PDFium either with or without v8 support.
   pdf_enable_v8 = pdf_enable_v8_override