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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 628333003: Remove implicit conversions from scoped_refptr to T* in content/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 (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/browser/renderer_host/render_widget_host_view_android.h" 5 #include "content/browser/renderer_host/render_widget_host_view_android.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include "base/android/build_info.h" 9 #include "base/android/build_info.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 float device_scale_factor = display.device_scale_factor(); 411 float device_scale_factor = display.device_scale_factor();
412 DCHECK_GT(device_scale_factor, 0); 412 DCHECK_GT(device_scale_factor, 0);
413 gfx::Size dst_size( 413 gfx::Size dst_size(
414 gfx::ToCeiledSize(gfx::ScaleSize(bounds, scale / device_scale_factor))); 414 gfx::ToCeiledSize(gfx::ScaleSize(bounds, scale / device_scale_factor)));
415 CopyFromCompositingSurface( 415 CopyFromCompositingSurface(
416 src_subrect, dst_size, result_callback, color_type); 416 src_subrect, dst_size, result_callback, color_type);
417 } 417 }
418 418
419 scoped_refptr<cc::DelegatedRendererLayer> 419 scoped_refptr<cc::DelegatedRendererLayer>
420 RenderWidgetHostViewAndroid::CreateDelegatedLayerForFrameProvider() const { 420 RenderWidgetHostViewAndroid::CreateDelegatedLayerForFrameProvider() const {
421 DCHECK(frame_provider_); 421 DCHECK(frame_provider_.get());
422 422
423 scoped_refptr<cc::DelegatedRendererLayer> delegated_layer = 423 scoped_refptr<cc::DelegatedRendererLayer> delegated_layer =
424 cc::DelegatedRendererLayer::Create(frame_provider_); 424 cc::DelegatedRendererLayer::Create(frame_provider_);
425 delegated_layer->SetBounds(content_size_in_layer_); 425 delegated_layer->SetBounds(content_size_in_layer_);
426 delegated_layer->SetIsDrawable(true); 426 delegated_layer->SetIsDrawable(true);
427 delegated_layer->SetContentsOpaque(true); 427 delegated_layer->SetContentsOpaque(true);
428 428
429 return delegated_layer; 429 return delegated_layer;
430 } 430 }
431 431
432 bool RenderWidgetHostViewAndroid::HasValidFrame() const { 432 bool RenderWidgetHostViewAndroid::HasValidFrame() const {
433 if (!content_view_core_) 433 if (!content_view_core_)
434 return false; 434 return false;
435 if (!layer_) 435 if (!layer_.get())
436 return false; 436 return false;
437 437
438 if (texture_size_in_layer_.IsEmpty()) 438 if (texture_size_in_layer_.IsEmpty())
439 return false; 439 return false;
440 // This tell us whether a valid frame has arrived or not. 440 // This tell us whether a valid frame has arrived or not.
441 if (!frame_evictor_->HasFrame()) 441 if (!frame_evictor_->HasFrame())
442 return false; 442 return false;
443 443
444 return true; 444 return true;
445 } 445 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 497
498 bool RenderWidgetHostViewAndroid::IsSurfaceAvailableForCopy() const { 498 bool RenderWidgetHostViewAndroid::IsSurfaceAvailableForCopy() const {
499 return HasValidFrame(); 499 return HasValidFrame();
500 } 500 }
501 501
502 void RenderWidgetHostViewAndroid::Show() { 502 void RenderWidgetHostViewAndroid::Show() {
503 if (is_showing_) 503 if (is_showing_)
504 return; 504 return;
505 505
506 is_showing_ = true; 506 is_showing_ = true;
507 if (layer_) 507 if (layer_.get())
508 layer_->SetHideLayerAndSubtree(false); 508 layer_->SetHideLayerAndSubtree(false);
509 509
510 frame_evictor_->SetVisible(true); 510 frame_evictor_->SetVisible(true);
511 WasShown(); 511 WasShown();
512 } 512 }
513 513
514 void RenderWidgetHostViewAndroid::Hide() { 514 void RenderWidgetHostViewAndroid::Hide() {
515 if (!is_showing_) 515 if (!is_showing_)
516 return; 516 return;
517 517
518 is_showing_ = false; 518 is_showing_ = false;
519 if (layer_ && locks_on_frame_count_ == 0) 519 if (layer_.get() && locks_on_frame_count_ == 0)
520 layer_->SetHideLayerAndSubtree(true); 520 layer_->SetHideLayerAndSubtree(true);
521 521
522 frame_evictor_->SetVisible(false); 522 frame_evictor_->SetVisible(false);
523 // We don't know if we will ever get a frame if we are hiding the renderer, so 523 // We don't know if we will ever get a frame if we are hiding the renderer, so
524 // we need to cancel all requests 524 // we need to cancel all requests
525 AbortPendingReadbackRequests(); 525 AbortPendingReadbackRequests();
526 WasHidden(); 526 WasHidden();
527 } 527 }
528 528
529 bool RenderWidgetHostViewAndroid::IsShowing() { 529 bool RenderWidgetHostViewAndroid::IsShowing() {
(...skipping 19 matching lines...) Expand all
549 frame_evictor_->UnlockFrame(); 549 frame_evictor_->UnlockFrame();
550 locks_on_frame_count_--; 550 locks_on_frame_count_--;
551 551
552 if (locks_on_frame_count_ == 0) { 552 if (locks_on_frame_count_ == 0) {
553 if (last_frame_info_) { 553 if (last_frame_info_) {
554 InternalSwapCompositorFrame(last_frame_info_->output_surface_id, 554 InternalSwapCompositorFrame(last_frame_info_->output_surface_id,
555 last_frame_info_->frame.Pass()); 555 last_frame_info_->frame.Pass());
556 last_frame_info_.reset(); 556 last_frame_info_.reset();
557 } 557 }
558 558
559 if (!is_showing_ && layer_) 559 if (!is_showing_ && layer_.get())
560 layer_->SetHideLayerAndSubtree(true); 560 layer_->SetHideLayerAndSubtree(true);
561 } 561 }
562 } 562 }
563 563
564 void RenderWidgetHostViewAndroid::SetTextSurroundingSelectionCallback( 564 void RenderWidgetHostViewAndroid::SetTextSurroundingSelectionCallback(
565 const TextSurroundingSelectionCallback& callback) { 565 const TextSurroundingSelectionCallback& callback) {
566 // Only one outstanding request is allowed at any given time. 566 // Only one outstanding request is allowed at any given time.
567 DCHECK(!callback.is_null()); 567 DCHECK(!callback.is_null());
568 text_surrounding_selection_callback_ = callback; 568 text_surrounding_selection_callback_ = callback;
569 } 569 }
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 return; 848 return;
849 } 849 }
850 850
851 scoped_ptr<cc::CopyOutputRequest> request; 851 scoped_ptr<cc::CopyOutputRequest> request;
852 scoped_refptr<cc::Layer> readback_layer; 852 scoped_refptr<cc::Layer> readback_layer;
853 DCHECK(content_view_core_); 853 DCHECK(content_view_core_);
854 DCHECK(content_view_core_->GetWindowAndroid()); 854 DCHECK(content_view_core_->GetWindowAndroid());
855 ui::WindowAndroidCompositor* compositor = 855 ui::WindowAndroidCompositor* compositor =
856 content_view_core_->GetWindowAndroid()->GetCompositor(); 856 content_view_core_->GetWindowAndroid()->GetCompositor();
857 DCHECK(compositor); 857 DCHECK(compositor);
858 DCHECK(frame_provider_); 858 DCHECK(frame_provider_.get());
859 scoped_refptr<cc::DelegatedRendererLayer> delegated_layer = 859 scoped_refptr<cc::DelegatedRendererLayer> delegated_layer =
860 CreateDelegatedLayerForFrameProvider(); 860 CreateDelegatedLayerForFrameProvider();
861 delegated_layer->SetHideLayerAndSubtree(true); 861 delegated_layer->SetHideLayerAndSubtree(true);
862 compositor->AttachLayerForReadback(delegated_layer); 862 compositor->AttachLayerForReadback(delegated_layer);
863 863
864 readback_layer = delegated_layer; 864 readback_layer = delegated_layer;
865 request = cc::CopyOutputRequest::CreateRequest( 865 request = cc::CopyOutputRequest::CreateRequest(
866 base::Bind(&RenderWidgetHostViewAndroid:: 866 base::Bind(&RenderWidgetHostViewAndroid::
867 PrepareTextureCopyOutputResultForDelegatedReadback, 867 PrepareTextureCopyOutputResultForDelegatedReadback,
868 dst_size_in_pixel, 868 dst_size_in_pixel,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 if (resource_collection_.get()) 907 if (resource_collection_.get())
908 resource_collection_->TakeUnusedResourcesForChildCompositor(&ack.resources); 908 resource_collection_->TakeUnusedResourcesForChildCompositor(&ack.resources);
909 RenderWidgetHostImpl::SendSwapCompositorFrameAck(host_->GetRoutingID(), 909 RenderWidgetHostImpl::SendSwapCompositorFrameAck(host_->GetRoutingID(),
910 output_surface_id, 910 output_surface_id,
911 host_->GetProcess()->GetID(), 911 host_->GetProcess()->GetID(),
912 ack); 912 ack);
913 } 913 }
914 914
915 void RenderWidgetHostViewAndroid::SendReturnedDelegatedResources( 915 void RenderWidgetHostViewAndroid::SendReturnedDelegatedResources(
916 uint32 output_surface_id) { 916 uint32 output_surface_id) {
917 DCHECK(resource_collection_); 917 DCHECK(resource_collection_.get());
918 918
919 cc::CompositorFrameAck ack; 919 cc::CompositorFrameAck ack;
920 resource_collection_->TakeUnusedResourcesForChildCompositor(&ack.resources); 920 resource_collection_->TakeUnusedResourcesForChildCompositor(&ack.resources);
921 DCHECK(!ack.resources.empty()); 921 DCHECK(!ack.resources.empty());
922 922
923 RenderWidgetHostImpl::SendReclaimCompositorResources( 923 RenderWidgetHostImpl::SendReclaimCompositorResources(
924 host_->GetRoutingID(), 924 host_->GetRoutingID(),
925 output_surface_id, 925 output_surface_id,
926 host_->GetProcess()->GetID(), 926 host_->GetProcess()->GetID(),
927 ack); 927 ack);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 // http://crbug.com/384134 or http://crbug.com/310763 969 // http://crbug.com/384134 or http://crbug.com/310763
970 frame_data->device_scale_factor = 1.0f; 970 frame_data->device_scale_factor = 1.0f;
971 971
972 if (!has_content) { 972 if (!has_content) {
973 DestroyDelegatedContent(); 973 DestroyDelegatedContent();
974 } else { 974 } else {
975 if (!resource_collection_.get()) { 975 if (!resource_collection_.get()) {
976 resource_collection_ = new cc::DelegatedFrameResourceCollection; 976 resource_collection_ = new cc::DelegatedFrameResourceCollection;
977 resource_collection_->SetClient(this); 977 resource_collection_->SetClient(this);
978 } 978 }
979 if (!frame_provider_ || 979 if (!frame_provider_.get() ||
980 texture_size_in_layer_ != frame_provider_->frame_size()) { 980 texture_size_in_layer_ != frame_provider_->frame_size()) {
981 RemoveLayers(); 981 RemoveLayers();
982 frame_provider_ = new cc::DelegatedFrameProvider( 982 frame_provider_ = new cc::DelegatedFrameProvider(
983 resource_collection_.get(), frame_data.Pass()); 983 resource_collection_.get(), frame_data.Pass());
984 layer_ = cc::DelegatedRendererLayer::Create(frame_provider_); 984 layer_ = cc::DelegatedRendererLayer::Create(frame_provider_);
985 AttachLayers(); 985 AttachLayers();
986 } else { 986 } else {
987 frame_provider_->SetFrameData(frame_data.Pass()); 987 frame_provider_->SetFrameData(frame_data.Pass());
988 } 988 }
989 } 989 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1029 LOG(ERROR) << "Non-delegated renderer path no longer supported"; 1029 LOG(ERROR) << "Non-delegated renderer path no longer supported";
1030 return; 1030 return;
1031 } 1031 }
1032 1032
1033 if (locks_on_frame_count_ > 0) { 1033 if (locks_on_frame_count_ > 0) {
1034 DCHECK(HasValidFrame()); 1034 DCHECK(HasValidFrame());
1035 RetainFrame(output_surface_id, frame.Pass()); 1035 RetainFrame(output_surface_id, frame.Pass());
1036 return; 1036 return;
1037 } 1037 }
1038 1038
1039 if (layer_ && layer_->layer_tree_host()) { 1039 if (layer_.get() && layer_->layer_tree_host()) {
1040 for (size_t i = 0; i < frame->metadata.latency_info.size(); i++) { 1040 for (size_t i = 0; i < frame->metadata.latency_info.size(); i++) {
1041 scoped_ptr<cc::SwapPromise> swap_promise( 1041 scoped_ptr<cc::SwapPromise> swap_promise(
1042 new cc::LatencyInfoSwapPromise(frame->metadata.latency_info[i])); 1042 new cc::LatencyInfoSwapPromise(frame->metadata.latency_info[i]));
1043 layer_->layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); 1043 layer_->layer_tree_host()->QueueSwapPromise(swap_promise.Pass());
1044 } 1044 }
1045 } 1045 }
1046 1046
1047 DCHECK(!frame->delegated_frame_data->render_pass_list.empty()); 1047 DCHECK(!frame->delegated_frame_data->render_pass_list.empty());
1048 1048
1049 cc::RenderPass* root_pass = 1049 cc::RenderPass* root_pass =
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1113 // Unblock the compositor. 1113 // Unblock the compositor.
1114 BrowserThread::PostTask( 1114 BrowserThread::PostTask(
1115 BrowserThread::UI, FROM_HERE, 1115 BrowserThread::UI, FROM_HERE,
1116 base::Bind(&RenderViewDevToolsAgentHost::SynchronousSwapCompositorFrame, 1116 base::Bind(&RenderViewDevToolsAgentHost::SynchronousSwapCompositorFrame,
1117 static_cast<RenderViewDevToolsAgentHost*>(dtah.get()), 1117 static_cast<RenderViewDevToolsAgentHost*>(dtah.get()),
1118 frame_metadata)); 1118 frame_metadata));
1119 } 1119 }
1120 } 1120 }
1121 1121
1122 void RenderWidgetHostViewAndroid::SetOverlayVideoMode(bool enabled) { 1122 void RenderWidgetHostViewAndroid::SetOverlayVideoMode(bool enabled) {
1123 if (layer_) 1123 if (layer_.get())
1124 layer_->SetContentsOpaque(!enabled); 1124 layer_->SetContentsOpaque(!enabled);
1125 } 1125 }
1126 1126
1127 bool RenderWidgetHostViewAndroid::SupportsAnimation() const { 1127 bool RenderWidgetHostViewAndroid::SupportsAnimation() const {
1128 // The synchronous (WebView) compositor does not have a proper browser 1128 // The synchronous (WebView) compositor does not have a proper browser
1129 // compositor with which to drive animations. 1129 // compositor with which to drive animations.
1130 return !using_synchronous_compositor_; 1130 return !using_synchronous_compositor_;
1131 } 1131 }
1132 1132
1133 void RenderWidgetHostViewAndroid::SetNeedsAnimate() { 1133 void RenderWidgetHostViewAndroid::SetNeedsAnimate() {
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1504 selection_controller_->OnSelectionBoundsChanged(insertion_bound, 1504 selection_controller_->OnSelectionBoundsChanged(insertion_bound,
1505 insertion_bound); 1505 insertion_bound);
1506 } 1506 }
1507 1507
1508 SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const { 1508 SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const {
1509 return cached_background_color_; 1509 return cached_background_color_;
1510 } 1510 }
1511 1511
1512 void RenderWidgetHostViewAndroid::DidOverscroll( 1512 void RenderWidgetHostViewAndroid::DidOverscroll(
1513 const DidOverscrollParams& params) { 1513 const DidOverscrollParams& params) {
1514 if (!content_view_core_ || !layer_ || !is_showing_) 1514 if (!content_view_core_ || !layer_.get() || !is_showing_)
1515 return; 1515 return;
1516 1516
1517 const float device_scale_factor = content_view_core_->GetDpiScale(); 1517 const float device_scale_factor = content_view_core_->GetDpiScale();
1518 1518
1519 if (overscroll_effect_ && 1519 if (overscroll_effect_ &&
1520 overscroll_effect_->OnOverscrolled( 1520 overscroll_effect_->OnOverscrolled(
1521 content_view_core_->GetLayer(), 1521 content_view_core_->GetLayer(),
1522 base::TimeTicks::Now(), 1522 base::TimeTicks::Now(),
1523 gfx::ScaleVector2d(params.accumulated_overscroll, 1523 gfx::ScaleVector2d(params.accumulated_overscroll,
1524 device_scale_factor), 1524 device_scale_factor),
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 results->orientationAngle = display.RotationAsDegree(); 1772 results->orientationAngle = display.RotationAsDegree();
1773 results->orientationType = 1773 results->orientationType =
1774 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display); 1774 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display);
1775 gfx::DeviceDisplayInfo info; 1775 gfx::DeviceDisplayInfo info;
1776 results->depth = info.GetBitsPerPixel(); 1776 results->depth = info.GetBitsPerPixel();
1777 results->depthPerComponent = info.GetBitsPerComponent(); 1777 results->depthPerComponent = info.GetBitsPerComponent();
1778 results->isMonochrome = (results->depthPerComponent == 0); 1778 results->isMonochrome = (results->depthPerComponent == 0);
1779 } 1779 }
1780 1780
1781 } // namespace content 1781 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.cc ('k') | content/browser/web_contents/web_contents_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698