Commit a718130e authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Split parts of PDFiumEngine into PDFiumFormFiller.

Change-Id: I6cf1b34580fcd29954d15c729c4f290117d9bdeb
Reviewed-on: https://chromium-review.googlesource.com/1039064
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: default avatardsinclair <dsinclair@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555883}
parent 05c9ce48
...@@ -84,6 +84,8 @@ if (enable_pdf) { ...@@ -84,6 +84,8 @@ if (enable_pdf) {
"pdfium/pdfium_engine.h", "pdfium/pdfium_engine.h",
"pdfium/pdfium_engine_exports.cc", "pdfium/pdfium_engine_exports.cc",
"pdfium/pdfium_engine_exports.h", "pdfium/pdfium_engine_exports.h",
"pdfium/pdfium_form_filler.cc",
"pdfium/pdfium_form_filler.h",
"pdfium/pdfium_mem_buffer_file_read.cc", "pdfium/pdfium_mem_buffer_file_read.cc",
"pdfium/pdfium_mem_buffer_file_read.h", "pdfium/pdfium_mem_buffer_file_read.h",
"pdfium/pdfium_mem_buffer_file_write.cc", "pdfium/pdfium_mem_buffer_file_write.cc",
......
This diff is collapsed.
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "pdf/document_loader.h" #include "pdf/document_loader.h"
#include "pdf/pdf_engine.h" #include "pdf/pdf_engine.h"
#include "pdf/pdfium/pdfium_form_filler.h"
#include "pdf/pdfium/pdfium_page.h" #include "pdf/pdfium/pdfium_page.h"
#include "pdf/pdfium/pdfium_range.h" #include "pdf/pdfium/pdfium_range.h"
#include "ppapi/cpp/completion_callback.h" #include "ppapi/cpp/completion_callback.h"
...@@ -39,8 +40,6 @@ class ShadowMatrix; ...@@ -39,8 +40,6 @@ class ShadowMatrix;
class PDFiumEngine : public PDFEngine, class PDFiumEngine : public PDFEngine,
public DocumentLoader::Client, public DocumentLoader::Client,
public FPDF_FORMFILLINFO,
public IPDF_JSPLATFORM,
public IFSDK_PAUSE { public IFSDK_PAUSE {
public: public:
explicit PDFiumEngine(PDFEngine::Client* client); explicit PDFiumEngine(PDFEngine::Client* client);
...@@ -192,6 +191,7 @@ class PDFiumEngine : public PDFEngine, ...@@ -192,6 +191,7 @@ class PDFiumEngine : public PDFEngine,
DISALLOW_COPY_AND_ASSIGN(MouseDownState); DISALLOW_COPY_AND_ASSIGN(MouseDownState);
}; };
friend class PDFiumFormFiller;
friend class SelectionChangeInvalidator; friend class SelectionChangeInvalidator;
struct FileAvail : public FX_FILEAVAIL { struct FileAvail : public FX_FILEAVAIL {
...@@ -506,151 +506,6 @@ class PDFiumEngine : public PDFEngine, ...@@ -506,151 +506,6 @@ class PDFiumEngine : public PDFEngine,
// Set if the document has any local edits. // Set if the document has any local edits.
void SetEditMode(bool edit_mode); void SetEditMode(bool edit_mode);
// FPDF_FORMFILLINFO callbacks.
static void Form_Invalidate(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
double left,
double top,
double right,
double bottom);
static void Form_OutputSelectedRect(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
double left,
double top,
double right,
double bottom);
static void Form_SetCursor(FPDF_FORMFILLINFO* param, int cursor_type);
static int Form_SetTimer(FPDF_FORMFILLINFO* param,
int elapse,
TimerCallback timer_func);
static void Form_KillTimer(FPDF_FORMFILLINFO* param, int timer_id);
static FPDF_SYSTEMTIME Form_GetLocalTime(FPDF_FORMFILLINFO* param);
static void Form_OnChange(FPDF_FORMFILLINFO* param);
static FPDF_PAGE Form_GetPage(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document,
int page_index);
static FPDF_PAGE Form_GetCurrentPage(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document);
static int Form_GetRotation(FPDF_FORMFILLINFO* param, FPDF_PAGE page);
static void Form_ExecuteNamedAction(FPDF_FORMFILLINFO* param,
FPDF_BYTESTRING named_action);
static void Form_SetTextFieldFocus(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING value,
FPDF_DWORD valueLen,
FPDF_BOOL is_focus);
static void Form_DoURIAction(FPDF_FORMFILLINFO* param, FPDF_BYTESTRING uri);
static void Form_DoGoToAction(FPDF_FORMFILLINFO* param,
int page_index,
int zoom_mode,
float* position_array,
int size_of_array);
// IPDF_JSPLATFORM callbacks.
static int Form_Alert(IPDF_JSPLATFORM* param,
FPDF_WIDESTRING message,
FPDF_WIDESTRING title,
int type,
int icon);
static void Form_Beep(IPDF_JSPLATFORM* param, int type);
static int Form_Response(IPDF_JSPLATFORM* param,
FPDF_WIDESTRING question,
FPDF_WIDESTRING title,
FPDF_WIDESTRING default_response,
FPDF_WIDESTRING label,
FPDF_BOOL password,
void* response,
int length);
static int Form_GetFilePath(IPDF_JSPLATFORM* param,
void* file_path,
int length);
static void Form_Mail(IPDF_JSPLATFORM* param,
void* mail_data,
int length,
FPDF_BOOL ui,
FPDF_WIDESTRING to,
FPDF_WIDESTRING subject,
FPDF_WIDESTRING cc,
FPDF_WIDESTRING bcc,
FPDF_WIDESTRING message);
static void Form_Print(IPDF_JSPLATFORM* param,
FPDF_BOOL ui,
int start,
int end,
FPDF_BOOL silent,
FPDF_BOOL shrink_to_fit,
FPDF_BOOL print_as_image,
FPDF_BOOL reverse,
FPDF_BOOL annotations);
static void Form_SubmitForm(IPDF_JSPLATFORM* param,
void* form_data,
int length,
FPDF_WIDESTRING url);
static void Form_GotoPage(IPDF_JSPLATFORM* param, int page_number);
#if defined(PDF_ENABLE_XFA)
static void Form_EmailTo(FPDF_FORMFILLINFO* param,
FPDF_FILEHANDLER* file_handler,
FPDF_WIDESTRING to,
FPDF_WIDESTRING subject,
FPDF_WIDESTRING cc,
FPDF_WIDESTRING bcc,
FPDF_WIDESTRING message);
static void Form_DisplayCaret(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
FPDF_BOOL visible,
double left,
double top,
double right,
double bottom);
static void Form_SetCurrentPage(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document,
int page);
static int Form_GetCurrentPageIndex(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document);
static void Form_GetPageViewRect(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
double* left,
double* top,
double* right,
double* bottom);
static int Form_GetPlatform(FPDF_FORMFILLINFO* param,
void* platform,
int length);
static FPDF_BOOL Form_PopupMenu(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
FPDF_WIDGET widget,
int menu_flag,
float x,
float y);
static FPDF_BOOL Form_PostRequestURL(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING url,
FPDF_WIDESTRING data,
FPDF_WIDESTRING content_type,
FPDF_WIDESTRING encode,
FPDF_WIDESTRING header,
FPDF_BSTR* response);
static FPDF_BOOL Form_PutRequestURL(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING url,
FPDF_WIDESTRING data,
FPDF_WIDESTRING encode);
static void Form_UploadTo(FPDF_FORMFILLINFO* param,
FPDF_FILEHANDLER* file_handler,
int file_flag,
FPDF_WIDESTRING dest);
static FPDF_LPFILEHANDLER Form_DownloadFromURL(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING url);
static FPDF_FILEHANDLER* Form_OpenFile(FPDF_FORMFILLINFO* param,
int file_flag,
FPDF_WIDESTRING url,
const char* mode);
static void Form_GotoURL(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document,
FPDF_WIDESTRING url);
static int Form_GetLanguage(FPDF_FORMFILLINFO* param,
void* language,
int length);
#endif // defined(PDF_ENABLE_XFA)
// IFSDK_PAUSE callbacks // IFSDK_PAUSE callbacks
static FPDF_BOOL Pause_NeedToPauseNow(IFSDK_PAUSE* param); static FPDF_BOOL Pause_NeedToPauseNow(IFSDK_PAUSE* param);
...@@ -839,6 +694,8 @@ class PDFiumEngine : public PDFEngine, ...@@ -839,6 +694,8 @@ class PDFiumEngine : public PDFEngine,
bool edit_mode_; bool edit_mode_;
PDFiumFormFiller form_filler_;
DISALLOW_COPY_AND_ASSIGN(PDFiumEngine); DISALLOW_COPY_AND_ASSIGN(PDFiumEngine);
}; };
......
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef PDF_PDFIUM_PDFIUM_FORM_FILLER_H_
#define PDF_PDFIUM_PDFIUM_FORM_FILLER_H_
#include "base/macros.h"
#include "third_party/pdfium/public/fpdf_formfill.h"
namespace chrome_pdf {
class PDFiumEngine;
class PDFiumFormFiller : public FPDF_FORMFILLINFO, public IPDF_JSPLATFORM {
public:
explicit PDFiumFormFiller(PDFiumEngine* engine);
private:
// FPDF_FORMFILLINFO callbacks.
static void Form_Invalidate(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
double left,
double top,
double right,
double bottom);
static void Form_OutputSelectedRect(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
double left,
double top,
double right,
double bottom);
static void Form_SetCursor(FPDF_FORMFILLINFO* param, int cursor_type);
static int Form_SetTimer(FPDF_FORMFILLINFO* param,
int elapse,
TimerCallback timer_func);
static void Form_KillTimer(FPDF_FORMFILLINFO* param, int timer_id);
static FPDF_SYSTEMTIME Form_GetLocalTime(FPDF_FORMFILLINFO* param);
static void Form_OnChange(FPDF_FORMFILLINFO* param);
static FPDF_PAGE Form_GetPage(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document,
int page_index);
static FPDF_PAGE Form_GetCurrentPage(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document);
static int Form_GetRotation(FPDF_FORMFILLINFO* param, FPDF_PAGE page);
static void Form_ExecuteNamedAction(FPDF_FORMFILLINFO* param,
FPDF_BYTESTRING named_action);
static void Form_SetTextFieldFocus(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING value,
FPDF_DWORD valueLen,
FPDF_BOOL is_focus);
static void Form_DoURIAction(FPDF_FORMFILLINFO* param, FPDF_BYTESTRING uri);
static void Form_DoGoToAction(FPDF_FORMFILLINFO* param,
int page_index,
int zoom_mode,
float* position_array,
int size_of_array);
#if defined(PDF_ENABLE_XFA)
static void Form_EmailTo(FPDF_FORMFILLINFO* param,
FPDF_FILEHANDLER* file_handler,
FPDF_WIDESTRING to,
FPDF_WIDESTRING subject,
FPDF_WIDESTRING cc,
FPDF_WIDESTRING bcc,
FPDF_WIDESTRING message);
static void Form_DisplayCaret(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
FPDF_BOOL visible,
double left,
double top,
double right,
double bottom);
static void Form_SetCurrentPage(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document,
int page);
static int Form_GetCurrentPageIndex(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document);
static void Form_GetPageViewRect(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
double* left,
double* top,
double* right,
double* bottom);
static int Form_GetPlatform(FPDF_FORMFILLINFO* param,
void* platform,
int length);
static FPDF_BOOL Form_PopupMenu(FPDF_FORMFILLINFO* param,
FPDF_PAGE page,
FPDF_WIDGET widget,
int menu_flag,
float x,
float y);
static FPDF_BOOL Form_PostRequestURL(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING url,
FPDF_WIDESTRING data,
FPDF_WIDESTRING content_type,
FPDF_WIDESTRING encode,
FPDF_WIDESTRING header,
FPDF_BSTR* response);
static FPDF_BOOL Form_PutRequestURL(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING url,
FPDF_WIDESTRING data,
FPDF_WIDESTRING encode);
static void Form_UploadTo(FPDF_FORMFILLINFO* param,
FPDF_FILEHANDLER* file_handler,
int file_flag,
FPDF_WIDESTRING dest);
static FPDF_LPFILEHANDLER Form_DownloadFromURL(FPDF_FORMFILLINFO* param,
FPDF_WIDESTRING url);
static FPDF_FILEHANDLER* Form_OpenFile(FPDF_FORMFILLINFO* param,
int file_flag,
FPDF_WIDESTRING url,
const char* mode);
static void Form_GotoURL(FPDF_FORMFILLINFO* param,
FPDF_DOCUMENT document,
FPDF_WIDESTRING url);
static int Form_GetLanguage(FPDF_FORMFILLINFO* param,
void* language,
int length);
#endif // defined(PDF_ENABLE_XFA)
// IPDF_JSPLATFORM callbacks.
static int Form_Alert(IPDF_JSPLATFORM* param,
FPDF_WIDESTRING message,
FPDF_WIDESTRING title,
int type,
int icon);
static void Form_Beep(IPDF_JSPLATFORM* param, int type);
static int Form_Response(IPDF_JSPLATFORM* param,
FPDF_WIDESTRING question,
FPDF_WIDESTRING title,
FPDF_WIDESTRING default_response,
FPDF_WIDESTRING label,
FPDF_BOOL password,
void* response,
int length);
static int Form_GetFilePath(IPDF_JSPLATFORM* param,
void* file_path,
int length);
static void Form_Mail(IPDF_JSPLATFORM* param,
void* mail_data,
int length,
FPDF_BOOL ui,
FPDF_WIDESTRING to,
FPDF_WIDESTRING subject,
FPDF_WIDESTRING cc,
FPDF_WIDESTRING bcc,
FPDF_WIDESTRING message);
static void Form_Print(IPDF_JSPLATFORM* param,
FPDF_BOOL ui,
int start,
int end,
FPDF_BOOL silent,
FPDF_BOOL shrink_to_fit,
FPDF_BOOL print_as_image,
FPDF_BOOL reverse,
FPDF_BOOL annotations);
static void Form_SubmitForm(IPDF_JSPLATFORM* param,
void* form_data,
int length,
FPDF_WIDESTRING url);
static void Form_GotoPage(IPDF_JSPLATFORM* param, int page_number);
static PDFiumEngine* GetEngine(FPDF_FORMFILLINFO* info);
static PDFiumEngine* GetEngine(IPDF_JSPLATFORM* platform);
PDFiumEngine* const engine_;
DISALLOW_COPY_AND_ASSIGN(PDFiumFormFiller);
};
} // namespace chrome_pdf
#endif // PDF_PDFIUM_PDFIUM_FORM_FILLER_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment