summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 15:28:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:54:51 +0000
commit2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch)
treeeb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc
parentb014812705fc80bff0a5c120dfcef88f349816dc (diff)
downloadqtwebengine-chromium-2a19c63448c84c1805fb1a585c3651318bb86ca7.tar.gz
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc b/chromium/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc
new file mode 100644
index 00000000000..437c346c9f7
--- /dev/null
+++ b/chromium/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc
@@ -0,0 +1,50 @@
+// 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 "third_party/blink/renderer/core/html/anchor_element_metrics_sender.h"
+
+#include "services/service_manager/public/cpp/interface_provider.h"
+#include "third_party/blink/renderer/core/dom/document.h"
+#include "third_party/blink/renderer/core/frame/local_frame.h"
+
+namespace blink {
+
+// static
+const char AnchorElementMetricsSender::kSupplementName[] =
+ "DocumentAnchorElementMetricsSender";
+
+AnchorElementMetricsSender::~AnchorElementMetricsSender() = default;
+
+AnchorElementMetricsSender* AnchorElementMetricsSender::From(
+ Document& document) {
+ // Only root document owns the AnchorElementMetricsSender.
+ DCHECK(!document.ParentDocument());
+
+ AnchorElementMetricsSender* sender =
+ Supplement<Document>::From<AnchorElementMetricsSender>(document);
+ if (!sender) {
+ sender = new AnchorElementMetricsSender(document);
+ ProvideTo(document, sender);
+ }
+ return sender;
+}
+
+void AnchorElementMetricsSender::SendClickedAnchorMetricsToBrowser(
+ mojom::blink::AnchorElementMetricsPtr metric) const {
+ metrics_host_->UpdateAnchorElementMetrics(std::move(metric));
+}
+
+void AnchorElementMetricsSender::Trace(blink::Visitor* visitor) {
+ Supplement<Document>::Trace(visitor);
+}
+
+AnchorElementMetricsSender::AnchorElementMetricsSender(Document& document)
+ : Supplement<Document>(document) {
+ DCHECK(!document.ParentDocument());
+
+ document.GetFrame()->LocalFrameRoot().GetInterfaceProvider().GetInterface(
+ mojo::MakeRequest(&metrics_host_));
+}
+
+} // namespace blink