blob: 58989b6cc68c4565a33db062398f50102c342b32 [file] [log] [blame]
// Copyright 2018 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 "content/renderer/render_frame_metadata_observer_impl.h"
namespace content {
RenderFrameMetadataObserverImpl::RenderFrameMetadataObserverImpl(
mojom::RenderFrameMetadataObserverRequest request,
mojom::RenderFrameMetadataObserverClientPtrInfo client_info)
: request_(std::move(request)),
client_info_(std::move(client_info)),
render_frame_metadata_observer_binding_(this) {}
RenderFrameMetadataObserverImpl::~RenderFrameMetadataObserverImpl() {}
void RenderFrameMetadataObserverImpl::BindToCurrentThread() {
DCHECK(request_.is_pending());
render_frame_metadata_observer_binding_.Bind(std::move(request_));
render_frame_metadata_observer_client_.Bind(std::move(client_info_));
}
void RenderFrameMetadataObserverImpl::OnRenderFrameSubmission(
const cc::RenderFrameMetadata& metadata) {
bool metadata_changed = last_render_frame_metadata_ != metadata;
last_render_frame_metadata_ = metadata;
if (!render_frame_metadata_observer_client_)
return;
if (report_all_frame_submissions_for_testing_enabled_)
render_frame_metadata_observer_client_->OnFrameSubmissionForTesting();
if (metadata_changed) {
render_frame_metadata_observer_client_->OnRenderFrameMetadataChanged(
metadata);
}
}
void RenderFrameMetadataObserverImpl::ReportAllFrameSubmissionsForTesting(
bool enabled) {
report_all_frame_submissions_for_testing_enabled_ = enabled;
}
} // namespace content