diff options
author | miletus@chromium.org <miletus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-23 20:42:50 +0000 |
---|---|---|
committer | miletus@chromium.org <miletus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-23 20:42:50 +0000 |
commit | 98a04479ee51a879e6ab8e7e07e3544d33f62969 (patch) | |
tree | c0aa429a22c0067dc4ccc3ed9af1ed0f04e12d70 /content/browser/renderer_host | |
parent | 2c95d104fe9af1364ddd7361d3919cd2568a0134 (diff) | |
download | chromium_src-98a04479ee51a879e6ab8e7e07e3544d33f62969.zip chromium_src-98a04479ee51a879e6ab8e7e07e3544d33f62969.tar.gz chromium_src-98a04479ee51a879e6ab8e7e07e3544d33f62969.tar.bz2 |
Remove LatencyInfo merge from software rendering path
BUG=246034
TEST=unittests pass.
Review URL: https://codereview.chromium.org/111483003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242404 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host')
12 files changed, 47 insertions, 35 deletions
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc index c8afbd6..21a5a5d 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc @@ -515,7 +515,7 @@ void RenderWidgetHostViewAndroid::DidUpdateBackingStore( const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) { + const std::vector<ui::LatencyInfo>& latency_info) { NOTIMPLEMENTED(); } diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h index 42b455a6..9a05567 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h @@ -109,7 +109,7 @@ class RenderWidgetHostViewAndroid const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) OVERRIDE; + const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE; virtual void RenderProcessGone(base::TerminationStatus status, int error_code) OVERRIDE; virtual void Destroy() OVERRIDE; 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 7350c24..0c14ea8 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc @@ -940,11 +940,12 @@ void RenderWidgetHostViewAura::DidUpdateBackingStore( const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) { + const std::vector<ui::LatencyInfo>& latency_info) { if (accelerated_compositing_state_changed_) UpdateExternalTexture(); - software_latency_info_.MergeWith(latency_info); + for (size_t i = 0; i < latency_info.size(); i++) + software_latency_info_.push_back(latency_info[i]); // Use the state of the RenderWidgetHost and not the window as the two may // differ. In particular if the window is hidden but the renderer isn't and we @@ -2538,9 +2539,10 @@ void RenderWidgetHostViewAura::OnPaint(gfx::Canvas* canvas) { paint_observer_->OnPaintComplete(); ui::Compositor* compositor = GetCompositor(); if (compositor) { - compositor->SetLatencyInfo(software_latency_info_); - software_latency_info_.Clear(); + for (size_t i = 0; i < software_latency_info_.size(); i++) + compositor->SetLatencyInfo(software_latency_info_[i]); } + software_latency_info_.clear(); } else { // For non-opaque windows, we don't draw anything, since we depend on the // canvas coming from the compositor to already be initialized as diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h index 5328237..ab8fcf1 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h @@ -189,7 +189,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) OVERRIDE; + const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE; virtual void RenderProcessGone(base::TerminationStatus status, int error_code) OVERRIDE; virtual void Destroy() OVERRIDE; @@ -773,7 +773,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura TouchEditingClient* touch_editing_client_; - ui::LatencyInfo software_latency_info_; + std::vector<ui::LatencyInfo> software_latency_info_; struct ReleasedFrameInfo { ReleasedFrameInfo(uint32 output_id, unsigned software_frame_id) diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.cc b/content/browser/renderer_host/render_widget_host_view_gtk.cc index e50bd04..7d74ac2 100644 --- a/content/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/content/browser/renderer_host/render_widget_host_view_gtk.cc @@ -851,9 +851,10 @@ void RenderWidgetHostViewGtk::DidUpdateBackingStore( const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) { + const std::vector<ui::LatencyInfo>& latency_info) { TRACE_EVENT0("ui::gtk", "RenderWidgetHostViewGtk::DidUpdateBackingStore"); - software_latency_info_.MergeWith(latency_info); + for (size_t i = 0; i < latency_info.size(); i++) + software_latency_info_.push_back(latency_info[i]); if (host_->is_hidden()) return; @@ -1215,10 +1216,13 @@ void RenderWidgetHostViewGtk::Paint(const gfx::Rect& damage_rect) { // recorded. web_contents_switch_paint_time_ = base::TimeTicks(); } - software_latency_info_.AddLatencyNumber( - ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); - render_widget_host->FrameSwapped(software_latency_info_); - software_latency_info_.Clear(); + + for (size_t i = 0; i < software_latency_info_.size(); i++) { + software_latency_info_[i].AddLatencyNumber( + ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); + render_widget_host->FrameSwapped(software_latency_info_[i]); + } + software_latency_info_.clear(); } else { if (window) gdk_window_clear(window); diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.h b/content/browser/renderer_host/render_widget_host_view_gtk.h index e01181a..e799034 100644 --- a/content/browser/renderer_host/render_widget_host_view_gtk.h +++ b/content/browser/renderer_host/render_widget_host_view_gtk.h @@ -88,7 +88,7 @@ class CONTENT_EXPORT RenderWidgetHostViewGtk const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) OVERRIDE; + const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE; virtual void RenderProcessGone(base::TerminationStatus status, int error_code) OVERRIDE; virtual void Destroy() OVERRIDE; @@ -332,7 +332,7 @@ class CONTENT_EXPORT RenderWidgetHostViewGtk ui::GtkSignalRegistrar signals_; - ui::LatencyInfo software_latency_info_; + std::vector<ui::LatencyInfo> software_latency_info_; }; } // namespace content diff --git a/content/browser/renderer_host/render_widget_host_view_guest.cc b/content/browser/renderer_host/render_widget_host_view_guest.cc index e061c76..df15796 100644 --- a/content/browser/renderer_host/render_widget_host_view_guest.cc +++ b/content/browser/renderer_host/render_widget_host_view_guest.cc @@ -340,7 +340,7 @@ void RenderWidgetHostViewGuest::DidUpdateBackingStore( const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) { + const std::vector<ui::LatencyInfo>& latency_info) { NOTREACHED(); } diff --git a/content/browser/renderer_host/render_widget_host_view_guest.h b/content/browser/renderer_host/render_widget_host_view_guest.h index 1e9bf47..785bd5a 100644 --- a/content/browser/renderer_host/render_widget_host_view_guest.h +++ b/content/browser/renderer_host/render_widget_host_view_guest.h @@ -93,7 +93,7 @@ class CONTENT_EXPORT RenderWidgetHostViewGuest const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) OVERRIDE; + const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE; virtual void RenderProcessGone(base::TerminationStatus status, int error_code) OVERRIDE; virtual void Destroy() OVERRIDE; diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h index 11d2f2d..40fb5ed 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h @@ -260,7 +260,7 @@ class RenderWidgetHostViewMac : public RenderWidgetHostViewBase, const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) OVERRIDE; + const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE; virtual void RenderProcessGone(base::TerminationStatus status, int error_code) OVERRIDE; virtual void Destroy() OVERRIDE; @@ -440,7 +440,7 @@ class RenderWidgetHostViewMac : public RenderWidgetHostViewBase, // Whether to use the CoreAnimation path to draw content. bool use_core_animation_; - ui::LatencyInfo software_latency_info_; + std::vector<ui::LatencyInfo> software_latency_info_; NSWindow* pepper_fullscreen_window() const { return pepper_fullscreen_window_; diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index 4793965..1ad50b3 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -927,10 +927,11 @@ void RenderWidgetHostViewMac::DidUpdateBackingStore( const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) { + const std::vector<ui::LatencyInfo>& latency_info) { GotSoftwareFrame(); - software_latency_info_.MergeWith(latency_info); + for (size_t i = 0; i < latency_info.size(); i++) + software_latency_info_.push_back(latency_info[i]); if (render_widget_host_->is_hidden()) return; @@ -1692,7 +1693,7 @@ void RenderWidgetHostViewMac::OnSwapCompositorFrame( software_frame_manager_->GetCurrentFrameOutputSurfaceId(), render_widget_host_->GetProcess()->GetID(), ack); - software_latency_info_.MergeWith(frame->metadata.latency_info); + software_latency_info_.push_back(frame->metadata.latency_info); software_frame_manager_->SwapToNewFrameComplete( !render_widget_host_->is_hidden()); @@ -1951,10 +1952,12 @@ gfx::Rect RenderWidgetHostViewMac::GetScaledOpenGLPixelRect( } void RenderWidgetHostViewMac::SendSoftwareLatencyInfoToHost() { - software_latency_info_.AddLatencyNumber( - ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); - render_widget_host_->FrameSwapped(software_latency_info_); - software_latency_info_.Clear(); + for (size_t i = 0; i < software_latency_info_.size(); i++) { + software_latency_info_[i].AddLatencyNumber( + ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); + render_widget_host_->FrameSwapped(software_latency_info_[i]); + } + software_latency_info_.clear(); } } // namespace content diff --git a/content/browser/renderer_host/render_widget_host_view_win.cc b/content/browser/renderer_host/render_widget_host_view_win.cc index 8238a82..7639af2 100644 --- a/content/browser/renderer_host/render_widget_host_view_win.cc +++ b/content/browser/renderer_host/render_widget_host_view_win.cc @@ -760,9 +760,10 @@ void RenderWidgetHostViewWin::DidUpdateBackingStore( const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) { + const std::vector<ui::LatencyInfo>& latency_info) { TRACE_EVENT0("content", "RenderWidgetHostViewWin::DidUpdateBackingStore"); - software_latency_info_.MergeWith(latency_info); + for (size_t i = 0; i < latency_info.size(); i++) + software_latency_info_.push_back(latency_info[i]); if (render_widget_host_->is_hidden()) return; @@ -1412,10 +1413,12 @@ void RenderWidgetHostViewWin::OnPaint(HDC unused_dc) { web_contents_switch_paint_time_ = TimeTicks(); } - software_latency_info_.AddLatencyNumber( - ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); - render_widget_host_->FrameSwapped(software_latency_info_); - software_latency_info_.Clear(); + for (size_t i = 0; i < software_latency_info_.size(); i++) { + software_latency_info_[i].AddLatencyNumber( + ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); + render_widget_host_->FrameSwapped(software_latency_info_[i]); + } + software_latency_info_.clear(); } else { DrawBackground(paint_dc.m_ps.rcPaint, &paint_dc); if (whiteout_start_time_.is_null()) diff --git a/content/browser/renderer_host/render_widget_host_view_win.h b/content/browser/renderer_host/render_widget_host_view_win.h index b9a87bf..4e8717a 100644 --- a/content/browser/renderer_host/render_widget_host_view_win.h +++ b/content/browser/renderer_host/render_widget_host_view_win.h @@ -194,7 +194,7 @@ class RenderWidgetHostViewWin const gfx::Rect& scroll_rect, const gfx::Vector2d& scroll_delta, const std::vector<gfx::Rect>& copy_rects, - const ui::LatencyInfo& latency_info) OVERRIDE; + const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE; virtual void RenderProcessGone(base::TerminationStatus status, int error_code) OVERRIDE; virtual bool CanSubscribeFrame() const OVERRIDE; @@ -606,7 +606,7 @@ class RenderWidgetHostViewWin // The OS-provided default IAccessible instance for our hwnd. base::win::ScopedComPtr<IAccessible> window_iaccessible_; - ui::LatencyInfo software_latency_info_; + std::vector<ui::LatencyInfo> software_latency_info_; DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewWin); }; |