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

Side by Side Diff: content/renderer/npapi/webplugin_delegate_proxy.cc

Issue 1432443004: Remove SkDevice and SkBaseDevice outside skia/ext/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pass SkPixmap by pointer to MakeBitmapOpaque Created 5 years, 1 month 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/renderer/npapi/webplugin_delegate_proxy.h" 5 #include "content/renderer/npapi/webplugin_delegate_proxy.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 return; 564 return;
565 } 565 }
566 566
567 plugin_rect_ = window_rect; 567 plugin_rect_ = window_rect;
568 clip_rect_ = clip_rect; 568 clip_rect_ = clip_rect;
569 569
570 bool bitmaps_changed = false; 570 bool bitmaps_changed = false;
571 571
572 if (uses_shared_bitmaps_) { 572 if (uses_shared_bitmaps_) {
573 if (!front_buffer_canvas() || 573 if (!front_buffer_canvas() ||
574 (window_rect.width() != front_buffer_canvas()->getDevice()->width() || 574 (window_rect.width() !=
575 window_rect.height() != front_buffer_canvas()->getDevice()->height())) 575 front_buffer_canvas()->getBaseLayerSize().width() ||
576 window_rect.height() !=
577 front_buffer_canvas()->getBaseLayerSize().height()))
576 { 578 {
577 bitmaps_changed = true; 579 bitmaps_changed = true;
578 580
579 // Create a shared memory section that the plugin paints into 581 // Create a shared memory section that the plugin paints into
580 // asynchronously. 582 // asynchronously.
581 ResetWindowlessBitmaps(); 583 ResetWindowlessBitmaps();
582 if (!window_rect.IsEmpty()) { 584 if (!window_rect.IsEmpty()) {
583 if (!CreateSharedBitmap(&transport_stores_[0].bitmap, 585 if (!CreateSharedBitmap(&transport_stores_[0].bitmap,
584 &transport_stores_[0].canvas) || 586 &transport_stores_[0].canvas) ||
585 !CreateSharedBitmap(&transport_stores_[1].bitmap, 587 !CreateSharedBitmap(&transport_stores_[1].bitmap,
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 if (!transport_store_painted_.Contains(offset_rect)) { 684 if (!transport_store_painted_.Contains(offset_rect)) {
683 Send(new PluginMsg_Paint(instance_id_, offset_rect)); 685 Send(new PluginMsg_Paint(instance_id_, offset_rect));
684 // Since the plugin is not blocked on the renderer in this context, there is 686 // Since the plugin is not blocked on the renderer in this context, there is
685 // a chance that it will begin repainting the back-buffer before we complete 687 // a chance that it will begin repainting the back-buffer before we complete
686 // capturing the data. Buffer flipping would increase that risk because 688 // capturing the data. Buffer flipping would increase that risk because
687 // geometry update is asynchronous, so we don't want to use buffer flipping 689 // geometry update is asynchronous, so we don't want to use buffer flipping
688 // here. 690 // here.
689 UpdateFrontBuffer(offset_rect, false); 691 UpdateFrontBuffer(offset_rect, false);
690 } 692 }
691 693
692 const SkBitmap& bitmap = 694 const SkBitmap bitmap = skia::ReadPixels(front_buffer_canvas());
693 front_buffer_canvas()->getDevice()->accessBitmap(false);
694 SkPaint paint; 695 SkPaint paint;
695 paint.setXfermodeMode( 696 paint.setXfermodeMode(
696 transparent_ ? SkXfermode::kSrcATop_Mode : SkXfermode::kSrc_Mode); 697 transparent_ ? SkXfermode::kSrcATop_Mode : SkXfermode::kSrc_Mode);
697 SkRect src_rect = gfx::RectToSkRect(offset_rect); 698 SkRect src_rect = gfx::RectToSkRect(offset_rect);
698 canvas->drawBitmapRect(bitmap, 699 canvas->drawBitmapRect(bitmap,
699 src_rect, 700 src_rect,
700 gfx::RectToSkRect(rect), 701 gfx::RectToSkRect(rect),
701 &paint); 702 &paint);
702 703
703 if (invalidate_pending_) { 704 if (invalidate_pending_) {
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 1228
1228 plugin_->URLRedirectResponse(allow, resource_id); 1229 plugin_->URLRedirectResponse(allow, resource_id);
1229 } 1230 }
1230 1231
1231 void WebPluginDelegateProxy::OnCheckIfRunInsecureContent(const GURL& url, 1232 void WebPluginDelegateProxy::OnCheckIfRunInsecureContent(const GURL& url,
1232 bool* result) { 1233 bool* result) {
1233 *result = plugin_->CheckIfRunInsecureContent(url); 1234 *result = plugin_->CheckIfRunInsecureContent(url);
1234 } 1235 }
1235 1236
1236 } // namespace content 1237 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/android/synchronous_compositor_output_surface.cc ('k') | printing/metafile_skia_wrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698