summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2015-08-06 19:10:34 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-07 02:11:18 +0000
commit95f74135de282631e09bc3c535fccd14189027b5 (patch)
tree7d42771f3d6eaebbe0a697541415485809edecc5
parente143dde024d13c5548c3f323519cebfe7ab4f51e (diff)
downloadchromium_src-95f74135de282631e09bc3c535fccd14189027b5.zip
chromium_src-95f74135de282631e09bc3c535fccd14189027b5.tar.gz
chromium_src-95f74135de282631e09bc3c535fccd14189027b5.tar.bz2
Remove SoftwareFrameData
We never transmit software frames over IPC anymore, so this is unnecessary. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1265243004 Cr-Commit-Position: refs/heads/master@{#342265}
-rw-r--r--android_webview/browser/hardware_renderer.cc1
-rw-r--r--cc/BUILD.gn2
-rw-r--r--cc/cc.gyp2
-rw-r--r--cc/output/compositor_frame.cc1
-rw-r--r--cc/output/compositor_frame.h2
-rw-r--r--cc/output/compositor_frame_ack.cc3
-rw-r--r--cc/output/compositor_frame_ack.h1
-rw-r--r--cc/output/software_frame_data.cc13
-rw-r--r--cc/output/software_frame_data.h28
-rw-r--r--cc/output/software_output_device.cc12
-rw-r--r--cc/output/software_output_device.h10
-rw-r--r--cc/output/software_renderer.cc8
-rw-r--r--cc/output/software_renderer.h2
-rw-r--r--cc/surfaces/display_unittest.cc34
-rw-r--r--cc/test/fake_output_surface.cc3
-rw-r--r--cc/trees/layer_tree_host_impl_unittest.cc4
-rw-r--r--content/browser/android/in_process/synchronous_compositor_output_surface.cc2
-rw-r--r--content/browser/compositor/software_output_device_mac.h2
-rw-r--r--content/browser/compositor/software_output_device_mac.mm4
-rw-r--r--content/browser/compositor/software_output_device_ozone.cc4
-rw-r--r--content/browser/compositor/software_output_device_ozone.h2
-rw-r--r--content/browser/compositor/software_output_device_ozone_unittest.cc1
-rw-r--r--content/browser/compositor/software_output_device_win.cc5
-rw-r--r--content/browser/compositor/software_output_device_win.h2
-rw-r--r--content/browser/compositor/software_output_device_x11.cc5
-rw-r--r--content/browser/compositor/software_output_device_x11.h2
-rw-r--r--content/browser/renderer_host/render_widget_host_impl.cc2
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura.cc20
-rw-r--r--content/common/cc_messages.cc58
-rw-r--r--content/common/cc_messages.h8
-rw-r--r--content/common/cc_messages_unittest.cc66
-rw-r--r--content/common/view_messages.h1
-rw-r--r--content/renderer/gpu/compositor_output_surface.cc14
-rw-r--r--content/renderer/gpu/compositor_output_surface.h4
-rw-r--r--tools/ipc_fuzzer/fuzzer/fuzzer.cc2
35 files changed, 51 insertions, 279 deletions
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc
index 8323ca4..36a4f1f 100644
--- a/android_webview/browser/hardware_renderer.cc
+++ b/android_webview/browser/hardware_renderer.cc
@@ -84,7 +84,6 @@ void HardwareRenderer::CommitFrame() {
scoped_ptr<cc::CompositorFrame> frame = child_frame_->frame.Pass();
DCHECK(frame.get());
DCHECK(!frame->gl_frame_data);
- DCHECK(!frame->software_frame_data);
// On Android we put our browser layers in physical pixels and set our
// browser CC device_scale_factor to 1, so suppress the transform between
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 3b40959..1f3e4ee 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -271,8 +271,6 @@ component("cc") {
"output/renderer_settings.h",
"output/shader.cc",
"output/shader.h",
- "output/software_frame_data.cc",
- "output/software_frame_data.h",
"output/software_output_device.cc",
"output/software_output_device.h",
"output/software_renderer.cc",
diff --git a/cc/cc.gyp b/cc/cc.gyp
index f74ff6a..44c35d7 100644
--- a/cc/cc.gyp
+++ b/cc/cc.gyp
@@ -328,8 +328,6 @@
'output/renderer_settings.h',
'output/shader.cc',
'output/shader.h',
- 'output/software_frame_data.cc',
- 'output/software_frame_data.h',
'output/software_output_device.cc',
'output/software_output_device.h',
'output/software_renderer.cc',
diff --git a/cc/output/compositor_frame.cc b/cc/output/compositor_frame.cc
index e6d713d..e612b28 100644
--- a/cc/output/compositor_frame.cc
+++ b/cc/output/compositor_frame.cc
@@ -13,7 +13,6 @@ CompositorFrame::~CompositorFrame() {}
void CompositorFrame::AssignTo(CompositorFrame* target) {
target->delegated_frame_data = delegated_frame_data.Pass();
target->gl_frame_data = gl_frame_data.Pass();
- target->software_frame_data = software_frame_data.Pass();
target->metadata = metadata;
}
diff --git a/cc/output/compositor_frame.h b/cc/output/compositor_frame.h
index e5c8a33..1cdd230 100644
--- a/cc/output/compositor_frame.h
+++ b/cc/output/compositor_frame.h
@@ -10,7 +10,6 @@
#include "cc/output/compositor_frame_metadata.h"
#include "cc/output/delegated_frame_data.h"
#include "cc/output/gl_frame_data.h"
-#include "cc/output/software_frame_data.h"
namespace cc {
@@ -22,7 +21,6 @@ class CC_EXPORT CompositorFrame {
CompositorFrameMetadata metadata;
scoped_ptr<DelegatedFrameData> delegated_frame_data;
scoped_ptr<GLFrameData> gl_frame_data;
- scoped_ptr<SoftwareFrameData> software_frame_data;
void AssignTo(CompositorFrame* target);
diff --git a/cc/output/compositor_frame_ack.cc b/cc/output/compositor_frame_ack.cc
index feb0bac..a411b42 100644
--- a/cc/output/compositor_frame_ack.cc
+++ b/cc/output/compositor_frame_ack.cc
@@ -6,8 +6,7 @@
namespace cc {
-CompositorFrameAck::CompositorFrameAck()
- : last_software_frame_id(0) {}
+CompositorFrameAck::CompositorFrameAck() {}
CompositorFrameAck::~CompositorFrameAck() {}
diff --git a/cc/output/compositor_frame_ack.h b/cc/output/compositor_frame_ack.h
index 943a206..aa48fa1 100644
--- a/cc/output/compositor_frame_ack.h
+++ b/cc/output/compositor_frame_ack.h
@@ -19,7 +19,6 @@ class CC_EXPORT CompositorFrameAck {
ReturnedResourceArray resources;
scoped_ptr<GLFrameData> gl_frame_data;
- unsigned last_software_frame_id;
private:
DISALLOW_COPY_AND_ASSIGN(CompositorFrameAck);
diff --git a/cc/output/software_frame_data.cc b/cc/output/software_frame_data.cc
deleted file mode 100644
index 7fc380e..0000000
--- a/cc/output/software_frame_data.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "cc/output/software_frame_data.h"
-
-namespace cc {
-
-SoftwareFrameData::SoftwareFrameData() : id(0) {}
-
-SoftwareFrameData::~SoftwareFrameData() {}
-
-} // namespace cc
diff --git a/cc/output/software_frame_data.h b/cc/output/software_frame_data.h
deleted file mode 100644
index 9cb74ef..0000000
--- a/cc/output/software_frame_data.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CC_OUTPUT_SOFTWARE_FRAME_DATA_H_
-#define CC_OUTPUT_SOFTWARE_FRAME_DATA_H_
-
-#include "cc/base/cc_export.h"
-#include "cc/resources/shared_bitmap.h"
-#include "ui/gfx/geometry/rect.h"
-#include "ui/gfx/geometry/size.h"
-
-namespace cc {
-
-class CC_EXPORT SoftwareFrameData {
- public:
- SoftwareFrameData();
- ~SoftwareFrameData();
-
- unsigned id;
- gfx::Size size;
- gfx::Rect damage_rect;
- SharedBitmapId bitmap_id;
-};
-
-} // namespace cc
-
-#endif // CC_OUTPUT_SOFTWARE_FRAME_DATA_H_
diff --git a/cc/output/software_output_device.cc b/cc/output/software_output_device.cc
index 954c7b9..0712938 100644
--- a/cc/output/software_output_device.cc
+++ b/cc/output/software_output_device.cc
@@ -5,7 +5,6 @@
#include "cc/output/software_output_device.h"
#include "base/logging.h"
-#include "cc/output/software_frame_data.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "ui/gfx/vsync_provider.h"
@@ -35,16 +34,7 @@ SkCanvas* SoftwareOutputDevice::BeginPaint(const gfx::Rect& damage_rect) {
return surface_ ? surface_->getCanvas() : nullptr;
}
-void SoftwareOutputDevice::EndPaint(SoftwareFrameData* frame_data) {
- DCHECK(frame_data);
- frame_data->id = 0;
- frame_data->size = viewport_pixel_size_;
- frame_data->damage_rect = damage_rect_;
-}
-
-void SoftwareOutputDevice::ReclaimSoftwareFrame(unsigned id) {
- NOTIMPLEMENTED();
-}
+void SoftwareOutputDevice::EndPaint() {}
gfx::VSyncProvider* SoftwareOutputDevice::GetVSyncProvider() {
return vsync_provider_.get();
diff --git a/cc/output/software_output_device.h b/cc/output/software_output_device.h
index 45ce831..127c70a 100644
--- a/cc/output/software_output_device.h
+++ b/cc/output/software_output_device.h
@@ -23,8 +23,6 @@ class VSyncProvider;
namespace cc {
-class SoftwareFrameData;
-
// This is a "tear-off" class providing software drawing support to
// OutputSurface, such as to a platform-provided window framebuffer.
class CC_EXPORT SoftwareOutputDevice {
@@ -46,7 +44,7 @@ class CC_EXPORT SoftwareOutputDevice {
// Called on FinishDrawingFrame. The compositor will no longer mutate the the
// SkCanvas instance returned by |BeginPaint| and should discard any reference
// that it holds to it.
- virtual void EndPaint(SoftwareFrameData* frame_data);
+ virtual void EndPaint();
// Discard the backing buffer in the surface provided by this instance.
virtual void DiscardBackbuffer() {}
@@ -54,12 +52,6 @@ class CC_EXPORT SoftwareOutputDevice {
// Ensures that there is a backing buffer available on this instance.
virtual void EnsureBackbuffer() {}
- // TODO(skaslev) Remove this after UberCompositor lands.
- // Called in response to receiving a SwapBuffersAck. At this point, software
- // frame identified by id can be reused or discarded as it is no longer being
- // displayed.
- virtual void ReclaimSoftwareFrame(unsigned id);
-
// VSyncProvider used to update the timer used to schedule draws with the
// hardware vsync. Return NULL if a provider doesn't exist.
virtual gfx::VSyncProvider* GetVSyncProvider();
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
index 69f0986..000d83a7 100644
--- a/cc/output/software_renderer.cc
+++ b/cc/output/software_renderer.cc
@@ -113,22 +113,16 @@ void SoftwareRenderer::FinishDrawingFrame(DrawingFrame* frame) {
current_canvas_ = NULL;
root_canvas_ = NULL;
- current_frame_data_.reset(new SoftwareFrameData);
- output_device_->EndPaint(current_frame_data_.get());
+ output_device_->EndPaint();
}
void SoftwareRenderer::SwapBuffers(const CompositorFrameMetadata& metadata) {
TRACE_EVENT0("cc,benchmark", "SoftwareRenderer::SwapBuffers");
CompositorFrame compositor_frame;
compositor_frame.metadata = metadata;
- compositor_frame.software_frame_data = current_frame_data_.Pass();
output_surface_->SwapBuffers(&compositor_frame);
}
-void SoftwareRenderer::ReceiveSwapBuffersAck(const CompositorFrameAck& ack) {
- output_device_->ReclaimSoftwareFrame(ack.last_software_frame_id);
-}
-
bool SoftwareRenderer::FlippedFramebuffer(const DrawingFrame* frame) const {
return false;
}
diff --git a/cc/output/software_renderer.h b/cc/output/software_renderer.h
index c309042..3fc163d 100644
--- a/cc/output/software_renderer.h
+++ b/cc/output/software_renderer.h
@@ -37,7 +37,6 @@ class CC_EXPORT SoftwareRenderer : public DirectRenderer {
const RendererCapabilitiesImpl& Capabilities() const override;
void Finish() override;
void SwapBuffers(const CompositorFrameMetadata& metadata) override;
- void ReceiveSwapBuffersAck(const CompositorFrameAck& ack) override;
void DiscardBackbuffer() override;
void EnsureBackbuffer() override;
@@ -105,7 +104,6 @@ class CC_EXPORT SoftwareRenderer : public DirectRenderer {
scoped_ptr<ResourceProvider::ScopedWriteLockSoftware>
current_framebuffer_lock_;
skia::RefPtr<SkCanvas> current_framebuffer_canvas_;
- scoped_ptr<SoftwareFrameData> current_frame_data_;
DISALLOW_COPY_AND_ASSIGN(SoftwareRenderer);
};
diff --git a/cc/surfaces/display_unittest.cc b/cc/surfaces/display_unittest.cc
index 74dfa93..b7b50c3 100644
--- a/cc/surfaces/display_unittest.cc
+++ b/cc/surfaces/display_unittest.cc
@@ -31,10 +31,19 @@ class EmptySurfaceFactoryClient : public SurfaceFactoryClient {
void ReturnResources(const ReturnedResourceArray& resources) override {}
};
+class TestSoftwareOutputDevice : public SoftwareOutputDevice {
+ public:
+ TestSoftwareOutputDevice() {}
+
+ gfx::Rect damage_rect() const { return damage_rect_; }
+ gfx::Size viewport_pixel_size() const { return viewport_pixel_size_; }
+};
+
class DisplayTest : public testing::Test {
public:
DisplayTest()
: factory_(&manager_, &empty_client_),
+ software_output_device_(nullptr),
task_runner_(new base::NullTaskRunner) {}
protected:
@@ -43,8 +52,10 @@ class DisplayTest : public testing::Test {
output_surface_ = FakeOutputSurface::Create3d(
TestContextProvider::Create(context.Pass()));
} else {
- output_surface_ = FakeOutputSurface::CreateSoftware(
- make_scoped_ptr(new SoftwareOutputDevice));
+ scoped_ptr<TestSoftwareOutputDevice> output_device(
+ new TestSoftwareOutputDevice);
+ software_output_device_ = output_device.get();
+ output_surface_ = FakeOutputSurface::CreateSoftware(output_device.Pass());
}
shared_bitmap_manager_.reset(new TestSharedBitmapManager);
output_surface_ptr_ = output_surface_.get();
@@ -64,6 +75,7 @@ class DisplayTest : public testing::Test {
SurfaceManager manager_;
EmptySurfaceFactoryClient empty_client_;
SurfaceFactory factory_;
+ TestSoftwareOutputDevice* software_output_device_;
scoped_ptr<FakeOutputSurface> output_surface_;
FakeOutputSurface* output_surface_ptr_;
FakeBeginFrameSource fake_begin_frame_source_;
@@ -173,12 +185,9 @@ TEST_F(DisplayTest, DisplayDamaged) {
display.DrawAndSwap();
EXPECT_TRUE(scheduler.swapped);
EXPECT_EQ(1u, output_surface_ptr_->num_sent_frames());
- SoftwareFrameData* software_data =
- output_surface_ptr_->last_sent_frame().software_frame_data.get();
- ASSERT_NE(nullptr, software_data);
- EXPECT_EQ(gfx::Size(100, 100).ToString(), software_data->size.ToString());
- EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(),
- software_data->damage_rect.ToString());
+ EXPECT_EQ(gfx::Size(100, 100),
+ software_output_device_->viewport_pixel_size());
+ EXPECT_EQ(gfx::Rect(0, 0, 100, 100), software_output_device_->damage_rect());
{
// Only damaged portion should be swapped.
@@ -198,12 +207,9 @@ TEST_F(DisplayTest, DisplayDamaged) {
display.DrawAndSwap();
EXPECT_TRUE(scheduler.swapped);
EXPECT_EQ(2u, output_surface_ptr_->num_sent_frames());
- software_data =
- output_surface_ptr_->last_sent_frame().software_frame_data.get();
- ASSERT_NE(nullptr, software_data);
- EXPECT_EQ(gfx::Size(100, 100).ToString(), software_data->size.ToString());
- EXPECT_EQ(gfx::Rect(10, 10, 1, 1).ToString(),
- software_data->damage_rect.ToString());
+ EXPECT_EQ(gfx::Size(100, 100),
+ software_output_device_->viewport_pixel_size());
+ EXPECT_EQ(gfx::Rect(10, 10, 1, 1), software_output_device_->damage_rect());
}
{
diff --git a/cc/test/fake_output_surface.cc b/cc/test/fake_output_surface.cc
index 0279421..dbb1d9d 100644
--- a/cc/test/fake_output_surface.cc
+++ b/cc/test/fake_output_surface.cc
@@ -75,8 +75,7 @@ FakeOutputSurface::FakeOutputSurface(
FakeOutputSurface::~FakeOutputSurface() {}
void FakeOutputSurface::SwapBuffers(CompositorFrame* frame) {
- if (frame->software_frame_data || frame->delegated_frame_data ||
- !context_provider()) {
+ if (frame->delegated_frame_data || !context_provider()) {
frame->AssignTo(&last_sent_frame_);
if (last_sent_frame_.delegated_frame_data) {
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 3c39a2a..b8dbc1e 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -6035,9 +6035,9 @@ class CountingSoftwareDevice : public SoftwareOutputDevice {
++frames_began_;
return SoftwareOutputDevice::BeginPaint(damage_rect);
}
- void EndPaint(SoftwareFrameData* frame_data) override {
+ void EndPaint() override {
+ SoftwareOutputDevice::EndPaint();
++frames_ended_;
- SoftwareOutputDevice::EndPaint(frame_data);
}
int frames_began_, frames_ended_;
diff --git a/content/browser/android/in_process/synchronous_compositor_output_surface.cc b/content/browser/android/in_process/synchronous_compositor_output_surface.cc
index 23de34a..85c7bcb 100644
--- a/content/browser/android/in_process/synchronous_compositor_output_surface.cc
+++ b/content/browser/android/in_process/synchronous_compositor_output_surface.cc
@@ -51,7 +51,7 @@ class SynchronousCompositorOutputSurface::SoftwareDevice
<< "Mutliple calls to BeginPaint per frame";
return surface_->current_sw_canvas_;
}
- void EndPaint(cc::SoftwareFrameData* frame_data) override {}
+ void EndPaint() override {}
private:
SynchronousCompositorOutputSurface* surface_;
diff --git a/content/browser/compositor/software_output_device_mac.h b/content/browser/compositor/software_output_device_mac.h
index 4721c61..5b6ac86 100644
--- a/content/browser/compositor/software_output_device_mac.h
+++ b/content/browser/compositor/software_output_device_mac.h
@@ -22,7 +22,7 @@ class SoftwareOutputDeviceMac : public cc::SoftwareOutputDevice {
explicit SoftwareOutputDeviceMac(ui::Compositor* compositor);
~SoftwareOutputDeviceMac() override;
- void EndPaint(cc::SoftwareFrameData* frame_data) override;
+ void EndPaint() override;
private:
ui::Compositor* compositor_;
diff --git a/content/browser/compositor/software_output_device_mac.mm b/content/browser/compositor/software_output_device_mac.mm
index 70ca4b4..5dacbae 100644
--- a/content/browser/compositor/software_output_device_mac.mm
+++ b/content/browser/compositor/software_output_device_mac.mm
@@ -18,8 +18,8 @@ SoftwareOutputDeviceMac::SoftwareOutputDeviceMac(ui::Compositor* compositor)
SoftwareOutputDeviceMac::~SoftwareOutputDeviceMac() {
}
-void SoftwareOutputDeviceMac::EndPaint(cc::SoftwareFrameData* frame_data) {
- SoftwareOutputDevice::EndPaint(frame_data);
+void SoftwareOutputDeviceMac::EndPaint() {
+ SoftwareOutputDevice::EndPaint();
ui::AcceleratedWidgetMacGotSoftwareFrame(
compositor_->widget(), scale_factor_, surface_->getCanvas());
}
diff --git a/content/browser/compositor/software_output_device_ozone.cc b/content/browser/compositor/software_output_device_ozone.cc
index 0d1edd0..0476ccb 100644
--- a/content/browser/compositor/software_output_device_ozone.cc
+++ b/content/browser/compositor/software_output_device_ozone.cc
@@ -50,8 +50,8 @@ SkCanvas* SoftwareOutputDeviceOzone::BeginPaint(const gfx::Rect& damage_rect) {
return SoftwareOutputDevice::BeginPaint(damage_rect);
}
-void SoftwareOutputDeviceOzone::EndPaint(cc::SoftwareFrameData* frame_data) {
- SoftwareOutputDevice::EndPaint(frame_data);
+void SoftwareOutputDeviceOzone::EndPaint() {
+ SoftwareOutputDevice::EndPaint();
surface_ozone_->PresentCanvas(damage_rect_);
}
diff --git a/content/browser/compositor/software_output_device_ozone.h b/content/browser/compositor/software_output_device_ozone.h
index ed0120d..3a7684d 100644
--- a/content/browser/compositor/software_output_device_ozone.h
+++ b/content/browser/compositor/software_output_device_ozone.h
@@ -28,7 +28,7 @@ class CONTENT_EXPORT SoftwareOutputDeviceOzone
void Resize(const gfx::Size& viewport_pixel_size,
float scale_factor) override;
SkCanvas* BeginPaint(const gfx::Rect& damage_rect) override;
- void EndPaint(cc::SoftwareFrameData* frame_data) override;
+ void EndPaint() override;
private:
ui::Compositor* compositor_;
diff --git a/content/browser/compositor/software_output_device_ozone_unittest.cc b/content/browser/compositor/software_output_device_ozone_unittest.cc
index 19d5c56..935fafa 100644
--- a/content/browser/compositor/software_output_device_ozone_unittest.cc
+++ b/content/browser/compositor/software_output_device_ozone_unittest.cc
@@ -5,7 +5,6 @@
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/thread_task_runner_handle.h"
-#include "cc/output/software_frame_data.h"
#include "content/browser/compositor/software_output_device_ozone.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkDevice.h"
diff --git a/content/browser/compositor/software_output_device_win.cc b/content/browser/compositor/software_output_device_win.cc
index 35d14b1..098da82 100644
--- a/content/browser/compositor/software_output_device_win.cc
+++ b/content/browser/compositor/software_output_device_win.cc
@@ -125,14 +125,13 @@ SkCanvas* SoftwareOutputDeviceWin::BeginPaint(const gfx::Rect& damage_rect) {
return contents_.get();
}
-void SoftwareOutputDeviceWin::EndPaint(cc::SoftwareFrameData* frame_data) {
+void SoftwareOutputDeviceWin::EndPaint() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(contents_);
- DCHECK(frame_data);
DCHECK(in_paint_);
in_paint_ = false;
- SoftwareOutputDevice::EndPaint(frame_data);
+ SoftwareOutputDevice::EndPaint();
gfx::Rect rect = damage_rect_;
rect.Intersect(gfx::Rect(viewport_pixel_size_));
diff --git a/content/browser/compositor/software_output_device_win.h b/content/browser/compositor/software_output_device_win.h
index 8b7fc16..3f444ae 100644
--- a/content/browser/compositor/software_output_device_win.h
+++ b/content/browser/compositor/software_output_device_win.h
@@ -52,7 +52,7 @@ class SoftwareOutputDeviceWin : public cc::SoftwareOutputDevice {
void Resize(const gfx::Size& viewport_pixel_size,
float scale_factor) override;
SkCanvas* BeginPaint(const gfx::Rect& damage_rect) override;
- void EndPaint(cc::SoftwareFrameData* frame_data) override;
+ void EndPaint() override;
gfx::Size viewport_pixel_size() const { return viewport_pixel_size_; }
void ReleaseContents();
diff --git a/content/browser/compositor/software_output_device_x11.cc b/content/browser/compositor/software_output_device_x11.cc
index fe7eb90..f071978 100644
--- a/content/browser/compositor/software_output_device_x11.cc
+++ b/content/browser/compositor/software_output_device_x11.cc
@@ -36,11 +36,10 @@ SoftwareOutputDeviceX11::~SoftwareOutputDeviceX11() {
XFreeGC(display_, gc_);
}
-void SoftwareOutputDeviceX11::EndPaint(cc::SoftwareFrameData* frame_data) {
+void SoftwareOutputDeviceX11::EndPaint() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK(frame_data);
- SoftwareOutputDevice::EndPaint(frame_data);
+ SoftwareOutputDevice::EndPaint();
if (!surface_)
return;
diff --git a/content/browser/compositor/software_output_device_x11.h b/content/browser/compositor/software_output_device_x11.h
index 88c80a3..c6d87a3 100644
--- a/content/browser/compositor/software_output_device_x11.h
+++ b/content/browser/compositor/software_output_device_x11.h
@@ -22,7 +22,7 @@ class SoftwareOutputDeviceX11 : public cc::SoftwareOutputDevice {
~SoftwareOutputDeviceX11() override;
- void EndPaint(cc::SoftwareFrameData* frame_data) override;
+ void EndPaint() override;
private:
ui::Compositor* compositor_;
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 3307857..6755601 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -1453,8 +1453,6 @@ bool RenderWidgetHostImpl::OnSwapCompositorFrame(
cc::TransferableResource::ReturnResources(
frame->delegated_frame_data->resource_list,
&ack.resources);
- } else if (frame->software_frame_data) {
- ack.last_software_frame_id = frame->software_frame_data->id;
}
SendSwapCompositorFrameAck(routing_id_, output_surface_id,
process_->GetID(), ack);
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 5a880b6..36cb81c 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -1158,22 +1158,12 @@ void RenderWidgetHostViewAura::OnSwapCompositorFrame(
TRACE_EVENT0("content", "RenderWidgetHostViewAura::OnSwapCompositorFrame");
last_scroll_offset_ = frame->metadata.root_scroll_offset;
- if (frame->delegated_frame_data) {
- delegated_frame_host_->SwapDelegatedFrame(
- output_surface_id,
- frame->delegated_frame_data.Pass(),
- frame->metadata.device_scale_factor,
- frame->metadata.latency_info,
- &frame->metadata.satisfies_sequences);
+ if (!frame->delegated_frame_data)
return;
- }
-
- if (frame->software_frame_data) {
- DLOG(ERROR) << "Unable to use software frame in aura";
- bad_message::ReceivedBadMessage(host_->GetProcess(),
- bad_message::RWHVA_SHARED_MEMORY);
- return;
- }
+ delegated_frame_host_->SwapDelegatedFrame(
+ output_surface_id, frame->delegated_frame_data.Pass(),
+ frame->metadata.device_scale_factor, frame->metadata.latency_info,
+ &frame->metadata.satisfies_sequences);
}
void RenderWidgetHostViewAura::DidStopFlinging() {
diff --git a/content/common/cc_messages.cc b/content/common/cc_messages.cc
index 1c1b5e0..f05a253 100644
--- a/content/common/cc_messages.cc
+++ b/content/common/cc_messages.cc
@@ -569,7 +569,6 @@ namespace {
NO_FRAME,
DELEGATED_FRAME,
GL_FRAME,
- SOFTWARE_FRAME,
};
}
@@ -578,16 +577,11 @@ void ParamTraits<cc::CompositorFrame>::Write(Message* m,
WriteParam(m, p.metadata);
if (p.delegated_frame_data) {
DCHECK(!p.gl_frame_data);
- DCHECK(!p.software_frame_data);
WriteParam(m, static_cast<int>(DELEGATED_FRAME));
WriteParam(m, *p.delegated_frame_data);
} else if (p.gl_frame_data) {
- DCHECK(!p.software_frame_data);
WriteParam(m, static_cast<int>(GL_FRAME));
WriteParam(m, *p.gl_frame_data);
- } else if (p.software_frame_data) {
- WriteParam(m, static_cast<int>(SOFTWARE_FRAME));
- WriteParam(m, *p.software_frame_data);
} else {
WriteParam(m, static_cast<int>(NO_FRAME));
}
@@ -614,11 +608,6 @@ bool ParamTraits<cc::CompositorFrame>::Read(const Message* m,
if (!ReadParam(m, iter, p->gl_frame_data.get()))
return false;
break;
- case SOFTWARE_FRAME:
- p->software_frame_data.reset(new cc::SoftwareFrameData());
- if (!ReadParam(m, iter, p->software_frame_data.get()))
- return false;
- break;
case NO_FRAME:
break;
default:
@@ -636,15 +625,12 @@ void ParamTraits<cc::CompositorFrame>::Log(const param_type& p,
LogParam(*p.delegated_frame_data, l);
else if (p.gl_frame_data)
LogParam(*p.gl_frame_data, l);
- else if (p.software_frame_data)
- LogParam(*p.software_frame_data, l);
l->append(")");
}
void ParamTraits<cc::CompositorFrameAck>::Write(Message* m,
const param_type& p) {
WriteParam(m, p.resources);
- WriteParam(m, p.last_software_frame_id);
if (p.gl_frame_data) {
WriteParam(m, static_cast<int>(GL_FRAME));
WriteParam(m, *p.gl_frame_data);
@@ -659,9 +645,6 @@ bool ParamTraits<cc::CompositorFrameAck>::Read(const Message* m,
if (!ReadParam(m, iter, &p->resources))
return false;
- if (!ReadParam(m, iter, &p->last_software_frame_id))
- return false;
-
int compositor_frame_type;
if (!ReadParam(m, iter, &compositor_frame_type))
return false;
@@ -685,8 +668,6 @@ void ParamTraits<cc::CompositorFrameAck>::Log(const param_type& p,
l->append("CompositorFrameAck(");
LogParam(p.resources, l);
l->append(", ");
- LogParam(p.last_software_frame_id, l);
- l->append(", ");
if (p.gl_frame_data)
LogParam(*p.gl_frame_data, l);
l->append(")");
@@ -774,45 +755,6 @@ void ParamTraits<cc::DelegatedFrameData>::Log(const param_type& p,
l->append("])");
}
-void ParamTraits<cc::SoftwareFrameData>::Write(Message* m,
- const param_type& p) {
- DCHECK(cc::SharedBitmap::VerifySizeInBytes(p.size));
-
- m->Reserve(sizeof(cc::SoftwareFrameData));
- WriteParam(m, p.id);
- WriteParam(m, p.size);
- WriteParam(m, p.damage_rect);
- WriteParam(m, p.bitmap_id);
-}
-
-bool ParamTraits<cc::SoftwareFrameData>::Read(const Message* m,
- base::PickleIterator* iter,
- param_type* p) {
- if (!ReadParam(m, iter, &p->id))
- return false;
- if (!ReadParam(m, iter, &p->size) ||
- !cc::SharedBitmap::VerifySizeInBytes(p->size))
- return false;
- if (!ReadParam(m, iter, &p->damage_rect))
- return false;
- if (!ReadParam(m, iter, &p->bitmap_id))
- return false;
- return true;
-}
-
-void ParamTraits<cc::SoftwareFrameData>::Log(const param_type& p,
- std::string* l) {
- l->append("SoftwareFrameData(");
- LogParam(p.id, l);
- l->append(", ");
- LogParam(p.size, l);
- l->append(", ");
- LogParam(p.damage_rect, l);
- l->append(", ");
- LogParam(p.bitmap_id, l);
- l->append(")");
-}
-
void ParamTraits<cc::DrawQuad::Resources>::Write(Message* m,
const param_type& p) {
DCHECK_LE(p.count, cc::DrawQuad::Resources::kMaxResourceIdCount);
diff --git a/content/common/cc_messages.h b/content/common/cc_messages.h
index fcf72fe..1692311 100644
--- a/content/common/cc_messages.h
+++ b/content/common/cc_messages.h
@@ -110,14 +110,6 @@ struct CONTENT_EXPORT ParamTraits<cc::DelegatedFrameData> {
};
template <>
-struct CONTENT_EXPORT ParamTraits<cc::SoftwareFrameData> {
- typedef cc::SoftwareFrameData param_type;
- static void Write(Message* m, const param_type& p);
- static bool Read(const Message* m, base::PickleIterator* iter, param_type* p);
- static void Log(const param_type& p, std::string* l);
-};
-
-template <>
struct CONTENT_EXPORT ParamTraits<cc::DrawQuad::Resources> {
typedef cc::DrawQuad::Resources param_type;
static void Write(Message* m, const param_type& p);
diff --git a/content/common/cc_messages_unittest.cc b/content/common/cc_messages_unittest.cc
index ffe737f..5d4ccab 100644
--- a/content/common/cc_messages_unittest.cc
+++ b/content/common/cc_messages_unittest.cc
@@ -32,7 +32,6 @@ using cc::RenderPassDrawQuad;
using cc::ResourceId;
using cc::ResourceProvider;
using cc::SharedQuadState;
-using cc::SoftwareFrameData;
using cc::SolidColorDrawQuad;
using cc::SurfaceDrawQuad;
using cc::TextureDrawQuad;
@@ -676,70 +675,5 @@ TEST_F(CCMessagesTest, Resources) {
Compare(arbitrary_resource2, frame_out.resource_list[1]);
}
-TEST_F(CCMessagesTest, SoftwareFrameData) {
- cc::SoftwareFrameData frame_in;
- frame_in.id = 3;
- frame_in.size = gfx::Size(40, 20);
- frame_in.damage_rect = gfx::Rect(5, 18, 31, 44);
- frame_in.bitmap_id = cc::SharedBitmap::GenerateId();
-
- // Write the frame.
- IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
- IPC::ParamTraits<cc::SoftwareFrameData>::Write(&msg, frame_in);
-
- // Read the frame.
- cc::SoftwareFrameData frame_out;
- base::PickleIterator iter(msg);
- EXPECT_TRUE(
- IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out));
- EXPECT_EQ(frame_in.id, frame_out.id);
- EXPECT_EQ(frame_in.size.ToString(), frame_out.size.ToString());
- EXPECT_EQ(frame_in.damage_rect.ToString(), frame_out.damage_rect.ToString());
- EXPECT_EQ(frame_in.bitmap_id, frame_out.bitmap_id);
-}
-
-TEST_F(CCMessagesTest, SoftwareFrameDataMaxInt) {
- SoftwareFrameData frame_in;
- frame_in.id = 3;
- frame_in.size = gfx::Size(40, 20);
- frame_in.damage_rect = gfx::Rect(5, 18, 31, 44);
- frame_in.bitmap_id = cc::SharedBitmap::GenerateId();
-
- // Write the SoftwareFrameData by hand, make sure it works.
- {
- IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
- IPC::WriteParam(&msg, frame_in.id);
- IPC::WriteParam(&msg, frame_in.size);
- IPC::WriteParam(&msg, frame_in.damage_rect);
- IPC::WriteParam(&msg, frame_in.bitmap_id);
- SoftwareFrameData frame_out;
- base::PickleIterator iter(msg);
- EXPECT_TRUE(
- IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out));
- }
-
- // The size of the frame may overflow when multiplied together.
- int max = std::numeric_limits<int>::max();
- frame_in.size = gfx::Size(max, max);
-
- // If size_t is larger than int, then int*int*4 can always fit in size_t.
- bool expect_read = sizeof(size_t) >= sizeof(int) * 2;
-
- // Write the SoftwareFrameData with the MaxInt size, if it causes overflow it
- // should fail.
- {
- IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
- IPC::WriteParam(&msg, frame_in.id);
- IPC::WriteParam(&msg, frame_in.size);
- IPC::WriteParam(&msg, frame_in.damage_rect);
- IPC::WriteParam(&msg, frame_in.bitmap_id);
- SoftwareFrameData frame_out;
- base::PickleIterator iter(msg);
- EXPECT_EQ(
- expect_read,
- IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out));
- }
-}
-
} // namespace
} // namespace content
diff --git a/content/common/view_messages.h b/content/common/view_messages.h
index 0982bf2..3cfb1f2 100644
--- a/content/common/view_messages.h
+++ b/content/common/view_messages.h
@@ -11,6 +11,7 @@
#include "cc/output/begin_frame_args.h"
#include "cc/output/compositor_frame.h"
#include "cc/output/compositor_frame_ack.h"
+#include "cc/resources/shared_bitmap.h"
#include "content/common/content_export.h"
#include "content/common/content_param_traits.h"
#include "content/common/date_time_suggestion.h"
diff --git a/content/renderer/gpu/compositor_output_surface.cc b/content/renderer/gpu/compositor_output_surface.cc
index d1ad1cc2..c3298d0 100644
--- a/content/renderer/gpu/compositor_output_surface.cc
+++ b/content/renderer/gpu/compositor_output_surface.cc
@@ -96,8 +96,7 @@ bool CompositorOutputSurface::BindToClient(
void CompositorOutputSurface::ShortcutSwapAck(
uint32 output_surface_id,
- scoped_ptr<cc::GLFrameData> gl_frame_data,
- scoped_ptr<cc::SoftwareFrameData> software_frame_data) {
+ scoped_ptr<cc::GLFrameData> gl_frame_data) {
if (!layout_test_previous_frame_ack_) {
layout_test_previous_frame_ack_.reset(new cc::CompositorFrameAck);
layout_test_previous_frame_ack_->gl_frame_data.reset(new cc::GLFrameData);
@@ -106,8 +105,6 @@ void CompositorOutputSurface::ShortcutSwapAck(
OnSwapAck(output_surface_id, *layout_test_previous_frame_ack_);
layout_test_previous_frame_ack_->gl_frame_data = gl_frame_data.Pass();
- layout_test_previous_frame_ack_->last_software_frame_id =
- software_frame_data ? software_frame_data->id : 0;
}
void CompositorOutputSurface::SwapBuffers(cc::CompositorFrame* frame) {
@@ -124,12 +121,9 @@ void CompositorOutputSurface::SwapBuffers(cc::CompositorFrame* frame) {
// block needs to be removed.
DCHECK(!frame->delegated_frame_data);
- base::Closure closure =
- base::Bind(&CompositorOutputSurface::ShortcutSwapAck,
- weak_ptrs_.GetWeakPtr(),
- output_surface_id_,
- base::Passed(&frame->gl_frame_data),
- base::Passed(&frame->software_frame_data));
+ base::Closure closure = base::Bind(
+ &CompositorOutputSurface::ShortcutSwapAck, weak_ptrs_.GetWeakPtr(),
+ output_surface_id_, base::Passed(&frame->gl_frame_data));
if (context_provider()) {
gpu::gles2::GLES2Interface* context = context_provider()->ContextGL();
diff --git a/content/renderer/gpu/compositor_output_surface.h b/content/renderer/gpu/compositor_output_surface.h
index f3b05b6..fa91b75 100644
--- a/content/renderer/gpu/compositor_output_surface.h
+++ b/content/renderer/gpu/compositor_output_surface.h
@@ -26,7 +26,6 @@ namespace cc {
class CompositorFrame;
class CompositorFrameAck;
class GLFrameData;
-class SoftwareFrameData;
}
namespace content {
@@ -60,8 +59,7 @@ class CompositorOutputSurface
protected:
void ShortcutSwapAck(uint32 output_surface_id,
- scoped_ptr<cc::GLFrameData> gl_frame_data,
- scoped_ptr<cc::SoftwareFrameData> software_frame_data);
+ scoped_ptr<cc::GLFrameData> gl_frame_data);
virtual void OnSwapAck(uint32 output_surface_id,
const cc::CompositorFrameAck& ack);
virtual void OnReclaimResources(uint32 output_surface_id,
diff --git a/tools/ipc_fuzzer/fuzzer/fuzzer.cc b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
index 2802dd6..0ff09ef 100644
--- a/tools/ipc_fuzzer/fuzzer/fuzzer.cc
+++ b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
@@ -703,8 +703,6 @@ struct FuzzTraits<cc::CompositorFrameAck> {
static bool Fuzz(cc::CompositorFrameAck* p, Fuzzer* fuzzer) {
if (!FuzzParam(&p->resources, fuzzer))
return false;
- if (!FuzzParam(&p->last_software_frame_id, fuzzer))
- return false;
if (!p->gl_frame_data)
p->gl_frame_data.reset(new cc::GLFrameData);