Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: components/pdf_viewer/pdf_viewer.cc

Issue 1548203002: Convert Pass()→std::move() in //components/[n-z]* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix bad headers Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <utility>
7 8
8 #include "base/bind.h" 9 #include "base/bind.h"
9 #include "base/callback.h" 10 #include "base/callback.h"
10 #include "base/containers/hash_tables.h" 11 #include "base/containers/hash_tables.h"
11 #include "base/macros.h" 12 #include "base/macros.h"
12 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
13 #include "components/bitmap_uploader/bitmap_uploader.h" 14 #include "components/bitmap_uploader/bitmap_uploader.h"
14 #include "components/mus/common/types.h" 15 #include "components/mus/common/types.h"
15 #include "components/mus/public/cpp/input_event_handler.h" 16 #include "components/mus/public/cpp/input_event_handler.h"
16 #include "components/mus/public/cpp/scoped_window_ptr.h" 17 #include "components/mus/public/cpp/scoped_window_ptr.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 bitmap->resize(width * height * 4); 96 bitmap->resize(width * height * 4);
96 97
97 FPDF_BITMAP f_bitmap = FPDFBitmap_CreateEx(width, height, FPDFBitmap_BGRA, 98 FPDF_BITMAP f_bitmap = FPDFBitmap_CreateEx(width, height, FPDFBitmap_BGRA,
98 &(*bitmap)[0], width * 4); 99 &(*bitmap)[0], width * 4);
99 FPDFBitmap_FillRect(f_bitmap, 0, 0, width, height, 0xFFFFFFFF); 100 FPDFBitmap_FillRect(f_bitmap, 0, 0, width, height, 0xFFFFFFFF);
100 FPDF_RenderPageBitmap(f_bitmap, page, 0, 0, width, height, 0, 0); 101 FPDF_RenderPageBitmap(f_bitmap, page, 0, 0, width, height, 0, 0);
101 FPDFBitmap_Destroy(f_bitmap); 102 FPDFBitmap_Destroy(f_bitmap);
102 103
103 FPDF_ClosePage(page); 104 FPDF_ClosePage(page);
104 105
105 bitmap_uploader_->SetBitmap(width, height, bitmap.Pass(), 106 bitmap_uploader_->SetBitmap(width, height, std::move(bitmap),
106 bitmap_uploader::BitmapUploader::BGRA); 107 bitmap_uploader::BitmapUploader::BGRA);
107 } 108 }
108 109
109 // WindowTreeDelegate: 110 // WindowTreeDelegate:
110 void OnEmbed(mus::Window* root) override { 111 void OnEmbed(mus::Window* root) override {
111 DCHECK(!root_); 112 DCHECK(!root_);
112 root_ = root; 113 root_ = root;
113 root_->AddObserver(this); 114 root_->AddObserver(this);
114 root_->set_input_event_handler(this); 115 root_->set_input_event_handler(this);
115 bitmap_uploader_.reset(new bitmap_uploader::BitmapUploader(root_)); 116 bitmap_uploader_.reset(new bitmap_uploader::BitmapUploader(root_));
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 // web_view::mojom::FrameClient: 172 // web_view::mojom::FrameClient:
172 void OnConnect(web_view::mojom::FramePtr frame, 173 void OnConnect(web_view::mojom::FramePtr frame,
173 uint32_t change_id, 174 uint32_t change_id,
174 uint32_t view_id, 175 uint32_t view_id,
175 web_view::mojom::WindowConnectType view_connect_type, 176 web_view::mojom::WindowConnectType view_connect_type,
176 mojo::Array<web_view::mojom::FrameDataPtr> frame_data, 177 mojo::Array<web_view::mojom::FrameDataPtr> frame_data,
177 int64_t navigation_start_time_ticks, 178 int64_t navigation_start_time_ticks,
178 const OnConnectCallback& callback) override { 179 const OnConnectCallback& callback) override {
179 callback.Run(); 180 callback.Run();
180 181
181 frame_ = frame.Pass(); 182 frame_ = std::move(frame);
182 frame_->DidCommitProvisionalLoad(); 183 frame_->DidCommitProvisionalLoad();
183 } 184 }
184 void OnFrameAdded(uint32_t change_id, 185 void OnFrameAdded(uint32_t change_id,
185 web_view::mojom::FrameDataPtr frame_data) override {} 186 web_view::mojom::FrameDataPtr frame_data) override {}
186 void OnFrameRemoved(uint32_t change_id, uint32_t frame_id) override {} 187 void OnFrameRemoved(uint32_t change_id, uint32_t frame_id) override {}
187 void OnFrameClientPropertyChanged(uint32_t frame_id, 188 void OnFrameClientPropertyChanged(uint32_t frame_id,
188 const mojo::String& name, 189 const mojo::String& name,
189 mojo::Array<uint8_t> new_value) override {} 190 mojo::Array<uint8_t> new_value) override {}
190 void OnPostMessageEvent(uint32_t source_frame_id, 191 void OnPostMessageEvent(uint32_t source_frame_id,
191 uint32_t target_frame_id, 192 uint32_t target_frame_id,
(...skipping 18 matching lines...) Expand all
210 web_view::mojom::FindOptionsPtr options, 211 web_view::mojom::FindOptionsPtr options,
211 bool reset) override { 212 bool reset) override {
212 NOTIMPLEMENTED(); 213 NOTIMPLEMENTED();
213 } 214 }
214 void StopHighlightingFindResults() override {} 215 void StopHighlightingFindResults() override {}
215 216
216 // mojo::InterfaceFactory<web_view::mojom::FrameClient>: 217 // mojo::InterfaceFactory<web_view::mojom::FrameClient>:
217 void Create( 218 void Create(
218 mojo::ApplicationConnection* connection, 219 mojo::ApplicationConnection* connection,
219 mojo::InterfaceRequest<web_view::mojom::FrameClient> request) override { 220 mojo::InterfaceRequest<web_view::mojom::FrameClient> request) override {
220 frame_client_binding_.Bind(request.Pass()); 221 frame_client_binding_.Bind(std::move(request));
221 } 222 }
222 223
223 scoped_ptr<mojo::AppRefCount> app_ref_; 224 scoped_ptr<mojo::AppRefCount> app_ref_;
224 FPDF_DOCUMENT doc_; 225 FPDF_DOCUMENT doc_;
225 int current_page_; 226 int current_page_;
226 int page_count_; 227 int page_count_;
227 228
228 scoped_ptr<bitmap_uploader::BitmapUploader> bitmap_uploader_; 229 scoped_ptr<bitmap_uploader::BitmapUploader> bitmap_uploader_;
229 230
230 mojo::Shell* shell_; 231 mojo::Shell* shell_;
231 mus::Window* root_; 232 mus::Window* root_;
232 233
233 web_view::mojom::FramePtr frame_; 234 web_view::mojom::FramePtr frame_;
234 mojo::Binding<web_view::mojom::FrameClient> frame_client_binding_; 235 mojo::Binding<web_view::mojom::FrameClient> frame_client_binding_;
235 DeleteCallback delete_callback_; 236 DeleteCallback delete_callback_;
236 237
237 DISALLOW_COPY_AND_ASSIGN(PDFView); 238 DISALLOW_COPY_AND_ASSIGN(PDFView);
238 }; 239 };
239 240
240 // Responsible for managing all the views for displaying a PDF document. 241 // Responsible for managing all the views for displaying a PDF document.
241 class PDFViewerApplicationDelegate 242 class PDFViewerApplicationDelegate
242 : public mojo::ApplicationDelegate, 243 : public mojo::ApplicationDelegate,
243 public mojo::InterfaceFactory<mus::mojom::WindowTreeClient> { 244 public mojo::InterfaceFactory<mus::mojom::WindowTreeClient> {
244 public: 245 public:
245 PDFViewerApplicationDelegate( 246 PDFViewerApplicationDelegate(
246 mojo::InterfaceRequest<mojo::Application> request, 247 mojo::InterfaceRequest<mojo::Application> request,
247 mojo::URLResponsePtr response, 248 mojo::URLResponsePtr response,
248 const mojo::Callback<void()>& destruct_callback) 249 const mojo::Callback<void()>& destruct_callback)
249 : app_(this, 250 : app_(this,
250 request.Pass(), 251 std::move(request),
251 base::Bind(&PDFViewerApplicationDelegate::OnTerminate, 252 base::Bind(&PDFViewerApplicationDelegate::OnTerminate,
252 base::Unretained(this))), 253 base::Unretained(this))),
253 doc_(nullptr), 254 doc_(nullptr),
254 is_destroying_(false), 255 is_destroying_(false),
255 destruct_callback_(destruct_callback) { 256 destruct_callback_(destruct_callback) {
256 FetchPDF(response.Pass()); 257 FetchPDF(std::move(response));
257 } 258 }
258 259
259 ~PDFViewerApplicationDelegate() override { 260 ~PDFViewerApplicationDelegate() override {
260 is_destroying_ = true; 261 is_destroying_ = true;
261 if (doc_) 262 if (doc_)
262 FPDF_CloseDocument(doc_); 263 FPDF_CloseDocument(doc_);
263 while (!pdf_views_.empty()) 264 while (!pdf_views_.empty())
264 pdf_views_.front()->Close(); 265 pdf_views_.front()->Close();
265 destruct_callback_.Run(); 266 destruct_callback_.Run();
266 } 267 }
267 268
268 private: 269 private:
269 void FetchPDF(mojo::URLResponsePtr response) { 270 void FetchPDF(mojo::URLResponsePtr response) {
270 data_.clear(); 271 data_.clear();
271 mojo::common::BlockingCopyToString(response->body.Pass(), &data_); 272 mojo::common::BlockingCopyToString(std::move(response->body), &data_);
272 if (data_.length() >= static_cast<size_t>(std::numeric_limits<int>::max())) 273 if (data_.length() >= static_cast<size_t>(std::numeric_limits<int>::max()))
273 return; 274 return;
274 doc_ = FPDF_LoadMemDocument(data_.data(), static_cast<int>(data_.length()), 275 doc_ = FPDF_LoadMemDocument(data_.data(), static_cast<int>(data_.length()),
275 nullptr); 276 nullptr);
276 } 277 }
277 278
278 // Callback from the quit closure. We key off this rather than 279 // Callback from the quit closure. We key off this rather than
279 // ApplicationDelegate::Quit() as we don't want to shut down the messageloop 280 // ApplicationDelegate::Quit() as we don't want to shut down the messageloop
280 // when we quit (the messageloop is shared among multiple PDFViews). 281 // when we quit (the messageloop is shared among multiple PDFViews).
281 void OnTerminate() { delete this; } 282 void OnTerminate() { delete this; }
(...skipping 14 matching lines...) Expand all
296 // mojo::InterfaceFactory<mus::mojom::WindowTreeClient>: 297 // mojo::InterfaceFactory<mus::mojom::WindowTreeClient>:
297 void Create( 298 void Create(
298 mojo::ApplicationConnection* connection, 299 mojo::ApplicationConnection* connection,
299 mojo::InterfaceRequest<mus::mojom::WindowTreeClient> request) override { 300 mojo::InterfaceRequest<mus::mojom::WindowTreeClient> request) override {
300 PDFView* pdf_view = new PDFView( 301 PDFView* pdf_view = new PDFView(
301 &app_, connection, doc_, 302 &app_, connection, doc_,
302 base::Bind(&PDFViewerApplicationDelegate::OnPDFViewDestroyed, 303 base::Bind(&PDFViewerApplicationDelegate::OnPDFViewDestroyed,
303 base::Unretained(this))); 304 base::Unretained(this)));
304 pdf_views_.push_back(pdf_view); 305 pdf_views_.push_back(pdf_view);
305 mus::WindowTreeConnection::Create( 306 mus::WindowTreeConnection::Create(
306 pdf_view, request.Pass(), 307 pdf_view, std::move(request),
307 mus::WindowTreeConnection::CreateType::DONT_WAIT_FOR_EMBED); 308 mus::WindowTreeConnection::CreateType::DONT_WAIT_FOR_EMBED);
308 } 309 }
309 310
310 mojo::ApplicationImpl app_; 311 mojo::ApplicationImpl app_;
311 std::string data_; 312 std::string data_;
312 std::vector<PDFView*> pdf_views_; 313 std::vector<PDFView*> pdf_views_;
313 FPDF_DOCUMENT doc_; 314 FPDF_DOCUMENT doc_;
314 bool is_destroying_; 315 bool is_destroying_;
315 mojo::Callback<void()> destruct_callback_; 316 mojo::Callback<void()> destruct_callback_;
316 317
317 DISALLOW_COPY_AND_ASSIGN(PDFViewerApplicationDelegate); 318 DISALLOW_COPY_AND_ASSIGN(PDFViewerApplicationDelegate);
318 }; 319 };
319 320
320 class ContentHandlerImpl : public mojo::ContentHandler { 321 class ContentHandlerImpl : public mojo::ContentHandler {
321 public: 322 public:
322 ContentHandlerImpl(mojo::InterfaceRequest<ContentHandler> request) 323 ContentHandlerImpl(mojo::InterfaceRequest<ContentHandler> request)
323 : binding_(this, request.Pass()) {} 324 : binding_(this, std::move(request)) {}
324 ~ContentHandlerImpl() override {} 325 ~ContentHandlerImpl() override {}
325 326
326 private: 327 private:
327 // ContentHandler: 328 // ContentHandler:
328 void StartApplication( 329 void StartApplication(
329 mojo::InterfaceRequest<mojo::Application> request, 330 mojo::InterfaceRequest<mojo::Application> request,
330 mojo::URLResponsePtr response, 331 mojo::URLResponsePtr response,
331 const mojo::Callback<void()>& destruct_callback) override { 332 const mojo::Callback<void()>& destruct_callback) override {
332 new PDFViewerApplicationDelegate( 333 new PDFViewerApplicationDelegate(std::move(request), std::move(response),
333 request.Pass(), response.Pass(), destruct_callback); 334 destruct_callback);
334 } 335 }
335 336
336 mojo::StrongBinding<mojo::ContentHandler> binding_; 337 mojo::StrongBinding<mojo::ContentHandler> binding_;
337 338
338 DISALLOW_COPY_AND_ASSIGN(ContentHandlerImpl); 339 DISALLOW_COPY_AND_ASSIGN(ContentHandlerImpl);
339 }; 340 };
340 341
341 class PDFViewer : public mojo::ApplicationDelegate, 342 class PDFViewer : public mojo::ApplicationDelegate,
342 public mojo::InterfaceFactory<mojo::ContentHandler> { 343 public mojo::InterfaceFactory<mojo::ContentHandler> {
343 public: 344 public:
(...skipping 12 matching lines...) Expand all
356 357
357 bool ConfigureIncomingConnection( 358 bool ConfigureIncomingConnection(
358 mojo::ApplicationConnection* connection) override { 359 mojo::ApplicationConnection* connection) override {
359 connection->AddService(this); 360 connection->AddService(this);
360 return true; 361 return true;
361 } 362 }
362 363
363 // InterfaceFactory<ContentHandler>: 364 // InterfaceFactory<ContentHandler>:
364 void Create(mojo::ApplicationConnection* connection, 365 void Create(mojo::ApplicationConnection* connection,
365 mojo::InterfaceRequest<mojo::ContentHandler> request) override { 366 mojo::InterfaceRequest<mojo::ContentHandler> request) override {
366 new ContentHandlerImpl(request.Pass()); 367 new ContentHandlerImpl(std::move(request));
367 } 368 }
368 369
369 mojo::TracingImpl tracing_; 370 mojo::TracingImpl tracing_;
370 371
371 DISALLOW_COPY_AND_ASSIGN(PDFViewer); 372 DISALLOW_COPY_AND_ASSIGN(PDFViewer);
372 }; 373 };
373 } // namespace 374 } // namespace
374 } // namespace pdf_viewer 375 } // namespace pdf_viewer
375 376
376 MojoResult MojoMain(MojoHandle application_request) { 377 MojoResult MojoMain(MojoHandle application_request) {
377 mojo::ApplicationRunner runner(new pdf_viewer::PDFViewer()); 378 mojo::ApplicationRunner runner(new pdf_viewer::PDFViewer());
378 return runner.Run(application_request); 379 return runner.Run(application_request);
379 } 380 }
OLDNEW
« no previous file with comments | « components/pdf/browser/pdf_web_contents_helper.cc ('k') | components/policy/core/browser/browser_policy_connector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698