summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-11 06:13:53 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-11 06:13:53 +0000
commitb774a889c9702468729ec2fbe6a4206e20181ef4 (patch)
tree3af7f35898af1ea6bdf439eecac32b3d09476cb6
parent227dbe34b4dfab240cd2a60cc3f5c02365b94b72 (diff)
downloadchromium_src-b774a889c9702468729ec2fbe6a4206e20181ef4.zip
chromium_src-b774a889c9702468729ec2fbe6a4206e20181ef4.tar.gz
chromium_src-b774a889c9702468729ec2fbe6a4206e20181ef4.tar.bz2
Revert 176271
> Make RenderWidget responsible for the composited view's lifetime > > Chromium side of https://bugs.webkit.org/show_bug.cgi?id=105071. > content::RenderWidget constructs a WebLayerTreeView when WebKit > asks it and then retains ownership. This has to be destroyed > before the WebWidget is closed since the WLTVClient is (currently) > a WebKit object. > > BUG=156175 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=175303 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=175827 > > Review URL: https://codereview.chromium.org/11575049 TBR=jamesr@chromium.org Review URL: https://codereview.chromium.org/11852009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176276 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/content_renderer.gypi1
-rw-r--r--content/renderer/render_view_impl.cc2
-rw-r--r--content/renderer/render_widget.cc65
-rw-r--r--content/renderer/render_widget.h9
-rw-r--r--webkit/compositor_bindings/web_layer_tree_view_impl.cc5
-rw-r--r--webkit/compositor_bindings/web_layer_tree_view_impl.h2
6 files changed, 9 insertions, 75 deletions
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi
index 11c6c20..83bfc59 100644
--- a/content/content_renderer.gypi
+++ b/content/content_renderer.gypi
@@ -16,7 +16,6 @@
'../ui/native_theme/native_theme.gyp:native_theme',
'../ui/surface/surface.gyp:surface',
'../v8/tools/gyp/v8.gyp:v8',
- '../webkit/compositor_bindings/compositor_bindings.gyp:webkit_compositor_bindings',
'../webkit/support/webkit_support.gyp:glue',
'../webkit/support/webkit_support.gyp:webkit_media',
'../webkit/support/webkit_support.gyp:webkit_gpu',
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 8fa6fec..d2b9103 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -5730,8 +5730,6 @@ void RenderViewImpl::OnClearFocusedNode() {
void RenderViewImpl::OnSetBackground(const SkBitmap& background) {
if (webview())
webview()->setIsTransparent(!background.empty());
- if (web_layer_tree_view_)
- web_layer_tree_view_->setHasTransparentBackground(!background.empty());
SetBackground(background);
}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index e8f94e2..f97d0fc 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -14,13 +14,9 @@
#include "base/stl_util.h"
#include "base/utf_string_conversions.h"
#include "build/build_config.h"
-#include "cc/layer_tree_host.h"
-#include "cc/thread.h"
-#include "cc/thread_impl.h"
#include "content/common/swapped_out_messages.h"
#include "content/common/view_messages.h"
#include "content/public/common/content_switches.h"
-#include "content/renderer/gpu/compositor_thread.h"
#include "content/renderer/render_process.h"
#include "content/renderer/render_thread_impl.h"
#include "content/renderer/renderer_webkitplatformsupport_impl.h"
@@ -247,11 +243,10 @@ void RenderWidget::CompleteInit() {
init_complete_ = true;
- if (webwidget_ && is_threaded_compositing_enabled_) {
- webwidget_->enterForceCompositingMode(true);
- }
- if (web_layer_tree_view_) {
- web_layer_tree_view_->setSurfaceReady();
+ if (webwidget_) {
+ webwidget_->setCompositorSurfaceReady();
+ if (is_threaded_compositing_enabled_)
+ webwidget_->enterForceCompositingMode(true);
}
DoDeferredUpdate();
@@ -670,16 +665,10 @@ void RenderWidget::OnHandleInputEvent(const WebKit::WebInputEvent* input_event,
input_event->type == WebInputEvent::MouseMove ||
input_event->type == WebInputEvent::MouseWheel ||
WebInputEvent::isTouchEventType(input_event->type);
-
- bool frame_pending = paint_aggregator_.HasPendingUpdate();
- if (is_accelerated_compositing_active_) {
- frame_pending = web_layer_tree_view_ &&
- web_layer_tree_view_->commitRequested();
- }
-
bool is_input_throttled =
throttle_input_events_ &&
- frame_pending;
+ ((webwidget_ ? webwidget_->isInputThrottled() : false) ||
+ paint_aggregator_.HasPendingUpdate());
if (event_type_gets_rate_limited && is_input_throttled && !is_hidden_) {
// We want to rate limit the input events in this case, so we'll wait for
@@ -917,12 +906,7 @@ void RenderWidget::AnimateIfNeeded() {
animation_timer_.Start(FROM_HERE, animationInterval, this,
&RenderWidget::AnimationCallback);
animation_update_pending_ = false;
- if (is_accelerated_compositing_active_ && web_layer_tree_view_) {
- web_layer_tree_view_->layer_tree_host()->updateAnimations(
- base::TimeTicks::Now());
- } else {
- webwidget_->animate(0.0);
- }
+ webwidget_->animate(0.0);
return;
}
TRACE_EVENT0("renderer", "EarlyOut_AnimatedTooRecently");
@@ -1309,33 +1293,6 @@ void RenderWidget::didDeactivateCompositor() {
webwidget_->enterForceCompositingMode(false);
}
-void RenderWidget::initializeLayerTreeView(
- WebKit::WebLayerTreeViewClient* client,
- const WebKit::WebLayer& root_layer,
- const WebKit::WebLayerTreeView::Settings& settings) {
- DCHECK(!web_layer_tree_view_);
- web_layer_tree_view_.reset(new WebKit::WebLayerTreeViewImpl(client));
-
- scoped_ptr<cc::Thread> impl_thread;
- CompositorThread* compositor_thread =
- RenderThreadImpl::current()->compositor_thread();
- if (compositor_thread)
- impl_thread = cc::ThreadImpl::createForDifferentThread(
- compositor_thread->message_loop()->message_loop_proxy());
- if (!web_layer_tree_view_->initialize(settings, impl_thread.Pass())) {
- web_layer_tree_view_.reset();
- return;
- }
- web_layer_tree_view_->setRootLayer(root_layer);
- if (init_complete_) {
- web_layer_tree_view_->setSurfaceReady();
- }
-}
-
-WebKit::WebLayerTreeView* RenderWidget::layerTreeView() {
- return web_layer_tree_view_.get();
-}
-
void RenderWidget::willBeginCompositorFrame() {
TRACE_EVENT0("gpu", "RenderWidget::willBeginCompositorFrame");
@@ -1486,8 +1443,6 @@ void RenderWidget::closeWidgetSoon() {
void RenderWidget::Close() {
if (webwidget_) {
- webwidget_->willCloseLayerTreeView();
- web_layer_tree_view_.reset();
webwidget_->close();
webwidget_ = NULL;
}
@@ -1702,8 +1657,7 @@ void RenderWidget::OnRepaint(const gfx::Size& size_to_paint) {
set_next_paint_is_repaint_ack();
if (is_accelerated_compositing_active_) {
- if (web_layer_tree_view_)
- web_layer_tree_view_->setNeedsRedraw();
+ webwidget_->setNeedsRedraw();
scheduleComposite();
} else {
gfx::Rect repaint_rect(size_to_paint.width(), size_to_paint.height());
@@ -2037,8 +1991,7 @@ void RenderWidget::CleanupWindowInPluginMoves(gfx::PluginWindowHandle window) {
void RenderWidget::GetRenderingStats(
WebKit::WebRenderingStatsImpl& stats) const {
- if (web_layer_tree_view_)
- web_layer_tree_view_->renderingStats(stats);
+ webwidget()->renderingStats(stats);
stats.rendering_stats.numAnimationFrames +=
software_stats_.numAnimationFrames;
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h
index c0cbd1e..02b03b1 100644
--- a/content/renderer/render_widget.h
+++ b/content/renderer/render_widget.h
@@ -32,7 +32,6 @@
#include "ui/gfx/rect.h"
#include "ui/gfx/vector2d.h"
#include "ui/surface/transport_dib.h"
-#include "webkit/compositor_bindings/web_layer_tree_view_impl.h"
#include "webkit/glue/webcursor.h"
struct ViewHostMsg_UpdateRect_Params;
@@ -122,11 +121,6 @@ class CONTENT_EXPORT RenderWidget
virtual void didAutoResize(const WebKit::WebSize& new_size);
virtual void didActivateCompositor(int input_handler_identifier);
virtual void didDeactivateCompositor();
- virtual void initializeLayerTreeView(
- WebKit::WebLayerTreeViewClient* client,
- const WebKit::WebLayer& root_layer,
- const WebKit::WebLayerTreeView::Settings& settings);
- virtual WebKit::WebLayerTreeView* layerTreeView();
virtual void didBecomeReadyForAdditionalInput();
virtual void didCommitAndDrawCompositorFrame();
virtual void didCompleteSwapBuffers();
@@ -456,9 +450,6 @@ class CONTENT_EXPORT RenderWidget
// We are responsible for destroying this object via its Close method.
WebKit::WebWidget* webwidget_;
- // This is lazily constructed and must not outlive webwidget_.
- scoped_ptr<WebKit::WebLayerTreeViewImpl> web_layer_tree_view_;
-
// Set to the ID of the view that initiated creating this view, if any. When
// the view was initiated by the browser (the common case), this will be
// MSG_ROUTING_NONE. This is used in determining ownership when opening
diff --git a/webkit/compositor_bindings/web_layer_tree_view_impl.cc b/webkit/compositor_bindings/web_layer_tree_view_impl.cc
index 44884c1c..e42a3c7 100644
--- a/webkit/compositor_bindings/web_layer_tree_view_impl.cc
+++ b/webkit/compositor_bindings/web_layer_tree_view_impl.cc
@@ -57,11 +57,6 @@ bool WebLayerTreeViewImpl::initialize(const WebLayerTreeView::Settings& webSetti
return true;
}
-cc::LayerTreeHost* WebLayerTreeViewImpl::layer_tree_host() const
-{
- return m_layerTreeHost.get();
-}
-
void WebLayerTreeViewImpl::setSurfaceReady()
{
m_layerTreeHost->setSurfaceReady();
diff --git a/webkit/compositor_bindings/web_layer_tree_view_impl.h b/webkit/compositor_bindings/web_layer_tree_view_impl.h
index c69ccbe..4817221 100644
--- a/webkit/compositor_bindings/web_layer_tree_view_impl.h
+++ b/webkit/compositor_bindings/web_layer_tree_view_impl.h
@@ -30,8 +30,6 @@ public:
WEBKIT_COMPOSITOR_BINDINGS_EXPORT bool initialize(
const Settings&, scoped_ptr<cc::Thread> implThread);
- WEBKIT_COMPOSITOR_BINDINGS_EXPORT cc::LayerTreeHost* layer_tree_host() const;
-
// WebLayerTreeView implementation.
virtual void setSurfaceReady() OVERRIDE;
virtual void setRootLayer(const WebLayer&) OVERRIDE;