Chromium Code Reviews| Index: pdf/out_of_process_instance.cc |
| diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc |
| index 2f80e2eb358aa55fb9277caf2796ffed3159fc9d..3431f6a811849a88e2cae3abc377973f1619761f 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); |
| @@ -385,7 +382,7 @@ bool OutOfProcessInstance::Init(uint32_t argc, |
| if (IsPrintPreview()) |
| return true; |
| - LoadUrl(stream_url); |
| + LoadUrl(stream_url, false /* is_print_preview */); |
|
raymes
2017/04/26 02:44:19
I just had advice from thakis@ that /*is_print_pre
Lei Zhang
2017/05/04 17:39:28
Done.
|
| url_ = original_url; |
| pp::PDF::SetCrashData(GetPluginInstance(), original_url, top_level_url); |
| return engine_->New(original_url, headers); |
| @@ -536,9 +533,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_, false /* is_print_preview */); |
| 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 */); |
| @@ -719,7 +716,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); |
| @@ -785,7 +782,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); |
| @@ -959,7 +956,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(); |
| @@ -1127,7 +1124,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); |
| @@ -1199,7 +1196,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); |
| } |
| @@ -1216,7 +1213,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) |
| @@ -1256,7 +1253,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); |
| } |
| @@ -1365,15 +1362,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; |
| @@ -1473,7 +1470,7 @@ void OutOfProcessInstance::DocumentLoadProgress(uint32_t available, |
| } |
| void OutOfProcessInstance::FormTextFieldFocusChange(bool in_focus) { |
| - if (!text_input_.get()) |
| + if (!text_input_) |
| return; |
| pp::VarDictionary message; |
| @@ -1517,27 +1514,20 @@ 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); |
| - *loader = CreateURLLoaderInternal(); |
| - pp::CompletionCallback callback = loader_factory_.NewCallback(method); |
| - int rv = loader->Open(request, callback); |
| + pp::URLLoader& loader = |
| + is_print_preview ? embed_preview_loader_ : embed_loader_; |
|
raymes
2017/04/26 02:44:19
This is a bit subtle to me. Maybe it's just becaus
Lei Zhang
2017/05/04 17:39:28
Back to pointers.
|
| + loader = CreateURLLoaderInternal(); |
| + 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); |
| } |
| @@ -1601,7 +1591,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_ || |
| @@ -1610,7 +1600,7 @@ void OutOfProcessInstance::LoadAvailablePreviewPage() { |
| } |
| preview_document_load_state_ = LOAD_STATE_LOADING; |
| - LoadPreviewUrl(url); |
| + LoadUrl(url, true /* is_print_preview */); |
| } |
| void OutOfProcessInstance::UserMetricsRecordAction(const std::string& action) { |