(Reland) Discard compositor frames from unloaded web content
This is a reland of https://codereview.chromium.org/2707243005/ with a
small change to fix an uninitialized memory error that fails on MSAN
bots.
BUG=672847
[email protected], [email protected]
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_site_isolation
Review-Url: https://codereview.chromium.org/2731283003
Cr-Commit-Position: refs/heads/master@{#454954}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index f5f43f0..6a4442fa 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -378,6 +378,7 @@
focused_pepper_plugin_(nullptr),
time_to_first_active_paint_recorded_(true),
was_shown_time_(base::TimeTicks::Now()),
+ current_content_source_id_(0),
weak_ptr_factory_(this) {
DCHECK_NE(routing_id_, MSG_ROUTING_NONE);
if (!swapped_out)
@@ -1286,6 +1287,7 @@
compositor_->setViewportSize(physical_backing_size_);
OnDeviceScaleFactorChanged();
compositor_->SetDeviceColorSpace(screen_info_.icc_profile.GetColorSpace());
+ compositor_->SetContentSourceId(current_content_source_id_);
// For background pages and certain tests, we don't want to trigger
// CompositorFrameSink creation.
if (compositor_never_visible_ || !RenderThreadImpl::current())
@@ -2300,6 +2302,15 @@
possible_drag_event_info_));
}
+uint32_t RenderWidget::GetContentSourceId() {
+ return current_content_source_id_;
+}
+
+void RenderWidget::IncrementContentSourceId() {
+ if (compositor_)
+ compositor_->SetContentSourceId(++current_content_source_id_);
+}
+
blink::WebWidget* RenderWidget::GetWebWidget() const {
return webwidget_internal_;
}