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

Side by Side Diff: Source/core/rendering/compositing/CompositedLayerMapping.cpp

Issue 209473002: Partial revert of r169693 (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 return false; 129 return false;
130 130
131 // If there is no background, there is nothing to support. 131 // If there is no background, there is nothing to support.
132 if (!renderer->style()->hasBackground()) 132 if (!renderer->style()->hasBackground())
133 return true; 133 return true;
134 134
135 // Simple background that is contained within the contents rect. 135 // Simple background that is contained within the contents rect.
136 return contentsRect(renderer).contains(backgroundRect(renderer)); 136 return contentsRect(renderer).contains(backgroundRect(renderer));
137 } 137 }
138 138
139 static blink::WebLayer* platformLayerForPlugin(RenderObject* renderer)
140 {
141 if (!renderer->isEmbeddedObject())
142 return 0;
143 Widget* widget = toRenderEmbeddedObject(renderer)->widget();
144 if (!widget || !widget->isPluginView())
145 return 0;
146 return toPluginView(widget)->platformLayer();
147
148 }
149
139 static inline bool isAcceleratedContents(RenderObject* renderer) 150 static inline bool isAcceleratedContents(RenderObject* renderer)
140 { 151 {
141 return isAcceleratedCanvas(renderer) 152 return isAcceleratedCanvas(renderer)
142 || (renderer->isEmbeddedObject() && toRenderEmbeddedObject(renderer)->re quiresAcceleratedCompositing()) 153 || (renderer->isEmbeddedObject() && toRenderEmbeddedObject(renderer)->re quiresAcceleratedCompositing())
143 || renderer->isVideo(); 154 || renderer->isVideo();
144 } 155 }
145 156
146 // Get the scrolling coordinator in a way that works inside CompositedLayerMappi ng's destructor. 157 // Get the scrolling coordinator in a way that works inside CompositedLayerMappi ng's destructor.
147 static ScrollingCoordinator* scrollingCoordinatorFromLayer(RenderLayer& layer) 158 static ScrollingCoordinator* scrollingCoordinatorFromLayer(RenderLayer& layer)
148 { 159 {
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 } 534 }
524 } else { 535 } else {
525 m_graphicsLayer->setReplicatedByLayer(0); 536 m_graphicsLayer->setReplicatedByLayer(0);
526 } 537 }
527 538
528 updateBackgroundColor(); 539 updateBackgroundColor();
529 540
530 if (isDirectlyCompositedImage()) 541 if (isDirectlyCompositedImage())
531 updateImageContents(); 542 updateImageContents();
532 543
533 if (renderer->isEmbeddedObject() && toRenderEmbeddedObject(renderer)->requir esAcceleratedCompositing()) { 544 if (blink::WebLayer* layer = platformLayerForPlugin(renderer)) {
534 PluginView* pluginView = toPluginView(toRenderWidget(renderer)->widget() ); 545 m_graphicsLayer->setContentsToPlatformLayer(layer);
535 m_graphicsLayer->setContentsToPlatformLayer(pluginView->platformLayer()) ;
536 } else if (renderer->node() && renderer->node()->isFrameOwnerElement() && to HTMLFrameOwnerElement(renderer->node())->contentFrame()) { 546 } else if (renderer->node() && renderer->node()->isFrameOwnerElement() && to HTMLFrameOwnerElement(renderer->node())->contentFrame()) {
537 blink::WebLayer* layer = toHTMLFrameOwnerElement(renderer->node())->cont entFrame()->remotePlatformLayer(); 547 blink::WebLayer* layer = toHTMLFrameOwnerElement(renderer->node())->cont entFrame()->remotePlatformLayer();
538 if (layer) 548 if (layer)
539 m_graphicsLayer->setContentsToPlatformLayer(layer); 549 m_graphicsLayer->setContentsToPlatformLayer(layer);
540 } else if (renderer->isVideo()) { 550 } else if (renderer->isVideo()) {
541 HTMLMediaElement* mediaElement = toHTMLMediaElement(renderer->node()); 551 HTMLMediaElement* mediaElement = toHTMLMediaElement(renderer->node());
542 m_graphicsLayer->setContentsToPlatformLayer(mediaElement->platformLayer( )); 552 m_graphicsLayer->setContentsToPlatformLayer(mediaElement->platformLayer( ));
543 } else if (isAcceleratedCanvas(renderer)) { 553 } else if (isAcceleratedCanvas(renderer)) {
544 HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer->node()); 554 HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer->node());
545 if (CanvasRenderingContext* context = canvas->renderingContext()) 555 if (CanvasRenderingContext* context = canvas->renderingContext())
(...skipping 1607 matching lines...) Expand 10 before | Expand all | Expand 10 after
2153 } else if (graphicsLayer == m_scrollingContentsLayer.get()) { 2163 } else if (graphicsLayer == m_scrollingContentsLayer.get()) {
2154 name = "Scrolling Contents Layer"; 2164 name = "Scrolling Contents Layer";
2155 } else { 2165 } else {
2156 ASSERT_NOT_REACHED(); 2166 ASSERT_NOT_REACHED();
2157 } 2167 }
2158 2168
2159 return name; 2169 return name;
2160 } 2170 }
2161 2171
2162 } // namespace WebCore 2172 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698