| Index: pdf/out_of_process_instance.cc
|
| diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc
|
| index b3f71b304b1827d237cdf818625b22a6817dfcab..7d9c4830c09fcbc5a38c29b9fc28281fe8677808 100644
|
| --- a/pdf/out_of_process_instance.cc
|
| +++ b/pdf/out_of_process_instance.cc
|
| @@ -299,11 +299,8 @@ OutOfProcessInstance::OutOfProcessInstance(PP_Instance instance)
|
| top_toolbar_height_(0),
|
| accessibility_state_(ACCESSIBILITY_STATE_OFF),
|
| is_print_preview_(false) {
|
| - loader_factory_.Initialize(this);
|
| - timer_factory_.Initialize(this);
|
| - form_factory_.Initialize(this);
|
| - print_callback_factory_.Initialize(this);
|
| - engine_.reset(PDFEngine::Create(this));
|
| + callback_factory_.Initialize(this);
|
| + engine_ = PDFEngine::Create(this);
|
| pp::Module::Get()->AddPluginInterface(kPPPPdfInterface, &ppp_private);
|
| AddPerInstanceObject(kPPPPdfInterface, this);
|
|
|
| @@ -384,7 +381,7 @@ bool OutOfProcessInstance::Init(uint32_t argc,
|
| if (IsPrintPreview())
|
| return true;
|
|
|
| - LoadUrl(stream_url);
|
| + LoadUrl(stream_url, /*is_print_preview=*/false);
|
| url_ = original_url;
|
| pp::PDF::SetCrashData(GetPluginInstance(), original_url, top_level_url);
|
| return engine_->New(original_url, headers);
|
| @@ -535,9 +532,9 @@ void OutOfProcessInstance::HandleMessage(const pp::Var& message) {
|
| preview_pages_info_ = std::queue<PreviewPageInfo>();
|
| preview_document_load_state_ = LOAD_STATE_COMPLETE;
|
| document_load_state_ = LOAD_STATE_LOADING;
|
| - LoadUrl(url_);
|
| + LoadUrl(url_, /*is_print_preview=*/false);
|
| preview_engine_.reset();
|
| - engine_.reset(PDFEngine::Create(this));
|
| + engine_ = PDFEngine::Create(this);
|
| engine_->SetGrayscale(dict.Get(pp::Var(kJSPrintPreviewGrayscale)).AsBool());
|
| engine_->New(url_.c_str(), nullptr /* empty header */);
|
|
|
| @@ -718,7 +715,7 @@ void OutOfProcessInstance::LoadAccessibility() {
|
| SendAccessibilityViewportInfo();
|
|
|
| // Schedule loading the first page.
|
| - pp::CompletionCallback callback = timer_factory_.NewCallback(
|
| + pp::CompletionCallback callback = callback_factory_.NewCallback(
|
| &OutOfProcessInstance::SendNextAccessibilityPage);
|
| pp::Module::Get()->core()->CallOnMainThread(kAccessibilityPageDelayMs,
|
| callback, 0);
|
| @@ -784,7 +781,7 @@ void OutOfProcessInstance::SendNextAccessibilityPage(int32_t page_index) {
|
| text_runs.data(), chars.data());
|
|
|
| // Schedule loading the next page.
|
| - pp::CompletionCallback callback = timer_factory_.NewCallback(
|
| + pp::CompletionCallback callback = callback_factory_.NewCallback(
|
| &OutOfProcessInstance::SendNextAccessibilityPage);
|
| pp::Module::Get()->core()->CallOnMainThread(kAccessibilityPageDelayMs,
|
| callback, page_index + 1);
|
| @@ -958,7 +955,7 @@ void OutOfProcessInstance::DidOpen(int32_t result) {
|
| void OutOfProcessInstance::DidOpenPreview(int32_t result) {
|
| if (result == PP_OK) {
|
| preview_client_ = base::MakeUnique<PreviewModeClient>(this);
|
| - preview_engine_.reset(PDFEngine::Create(preview_client_.get()));
|
| + preview_engine_ = PDFEngine::Create(preview_client_.get());
|
| preview_engine_->HandleDocumentLoad(embed_preview_loader_);
|
| } else {
|
| NOTREACHED();
|
| @@ -1126,7 +1123,7 @@ void OutOfProcessInstance::NotifyNumberOfFindResultsChanged(int total,
|
| NumberOfFindResultsChanged(total, final_result);
|
| SetTickmarks(tickmarks_);
|
| recently_sent_find_update_ = true;
|
| - pp::CompletionCallback callback = timer_factory_.NewCallback(
|
| + pp::CompletionCallback callback = callback_factory_.NewCallback(
|
| &OutOfProcessInstance::ResetRecentlySentFindUpdate);
|
| pp::Module::Get()->core()->CallOnMainThread(kFindResultCooldownMs, callback,
|
| 0);
|
| @@ -1198,7 +1195,7 @@ void OutOfProcessInstance::Print() {
|
| }
|
|
|
| pp::CompletionCallback callback =
|
| - print_callback_factory_.NewCallback(&OutOfProcessInstance::OnPrint);
|
| + callback_factory_.NewCallback(&OutOfProcessInstance::OnPrint);
|
| pp::Module::Get()->core()->CallOnMainThread(0, callback);
|
| }
|
|
|
| @@ -1215,7 +1212,7 @@ void OutOfProcessInstance::SubmitForm(const std::string& url,
|
| request.AppendDataToBody(reinterpret_cast<const char*>(data), length);
|
|
|
| pp::CompletionCallback callback =
|
| - form_factory_.NewCallback(&OutOfProcessInstance::FormDidOpen);
|
| + callback_factory_.NewCallback(&OutOfProcessInstance::FormDidOpen);
|
| form_loader_ = CreateURLLoaderInternal();
|
| int rv = form_loader_.Open(request, callback);
|
| if (rv != PP_OK_COMPLETIONPENDING)
|
| @@ -1255,7 +1252,7 @@ pp::URLLoader OutOfProcessInstance::CreateURLLoader() {
|
|
|
| void OutOfProcessInstance::ScheduleCallback(int id, int delay_in_ms) {
|
| pp::CompletionCallback callback =
|
| - timer_factory_.NewCallback(&OutOfProcessInstance::OnClientTimerFired);
|
| + callback_factory_.NewCallback(&OutOfProcessInstance::OnClientTimerFired);
|
| pp::Module::Get()->core()->CallOnMainThread(delay_in_ms, callback, id);
|
| }
|
|
|
| @@ -1364,15 +1361,15 @@ void OutOfProcessInstance::PreviewDocumentLoadComplete() {
|
|
|
| preview_document_load_state_ = LOAD_STATE_COMPLETE;
|
|
|
| + const std::string& url = preview_pages_info_.front().first;
|
| int dest_page_index = preview_pages_info_.front().second;
|
| - int src_page_index =
|
| - ExtractPrintPreviewPageIndex(preview_pages_info_.front().first);
|
| - if (src_page_index > 0 && dest_page_index > -1 && preview_engine_.get())
|
| + int src_page_index = ExtractPrintPreviewPageIndex(url);
|
| + if (src_page_index > 0 && dest_page_index > -1 && preview_engine_)
|
| engine_->AppendPage(preview_engine_.get(), dest_page_index);
|
|
|
| preview_pages_info_.pop();
|
| // |print_preview_page_count_| is not updated yet. Do not load any
|
| - // other preview pages till we get this information.
|
| + // other preview pages until this information is available.
|
| if (print_preview_page_count_ == 0)
|
| return;
|
|
|
| @@ -1472,7 +1469,7 @@ void OutOfProcessInstance::DocumentLoadProgress(uint32_t available,
|
| }
|
|
|
| void OutOfProcessInstance::FormTextFieldFocusChange(bool in_focus) {
|
| - if (!text_input_.get())
|
| + if (!text_input_)
|
| return;
|
|
|
| pp::VarDictionary message;
|
| @@ -1516,26 +1513,19 @@ void OutOfProcessInstance::OnGeometryChanged(double old_zoom,
|
| SendAccessibilityViewportInfo();
|
| }
|
|
|
| -void OutOfProcessInstance::LoadUrl(const std::string& url) {
|
| - LoadUrlInternal(url, &embed_loader_, &OutOfProcessInstance::DidOpen);
|
| -}
|
| -
|
| -void OutOfProcessInstance::LoadPreviewUrl(const std::string& url) {
|
| - LoadUrlInternal(url, &embed_preview_loader_,
|
| - &OutOfProcessInstance::DidOpenPreview);
|
| -}
|
| -
|
| -void OutOfProcessInstance::LoadUrlInternal(
|
| - const std::string& url,
|
| - pp::URLLoader* loader,
|
| - void (OutOfProcessInstance::*method)(int32_t)) {
|
| +void OutOfProcessInstance::LoadUrl(const std::string& url,
|
| + bool is_print_preview) {
|
| pp::URLRequestInfo request(this);
|
| request.SetURL(url);
|
| request.SetMethod("GET");
|
| request.SetFollowRedirects(false);
|
|
|
| + pp::URLLoader* loader =
|
| + is_print_preview ? &embed_preview_loader_ : &embed_loader_;
|
| *loader = CreateURLLoaderInternal();
|
| - pp::CompletionCallback callback = loader_factory_.NewCallback(method);
|
| + pp::CompletionCallback callback = callback_factory_.NewCallback(
|
| + is_print_preview ? &OutOfProcessInstance::DidOpenPreview
|
| + : &OutOfProcessInstance::DidOpen);
|
| int rv = loader->Open(request, callback);
|
| if (rv != PP_OK_COMPLETIONPENDING)
|
| callback.Run(rv);
|
| @@ -1600,7 +1590,7 @@ void OutOfProcessInstance::LoadAvailablePreviewPage() {
|
| return;
|
| }
|
|
|
| - std::string url = preview_pages_info_.front().first;
|
| + const std::string& url = preview_pages_info_.front().first;
|
| int dst_page_index = preview_pages_info_.front().second;
|
| int src_page_index = ExtractPrintPreviewPageIndex(url);
|
| if (src_page_index < 1 || dst_page_index >= print_preview_page_count_ ||
|
| @@ -1609,7 +1599,7 @@ void OutOfProcessInstance::LoadAvailablePreviewPage() {
|
| }
|
|
|
| preview_document_load_state_ = LOAD_STATE_LOADING;
|
| - LoadPreviewUrl(url);
|
| + LoadUrl(url, /*is_print_preview=*/true);
|
| }
|
|
|
| void OutOfProcessInstance::UserMetricsRecordAction(const std::string& action) {
|
|
|