summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-05-20 09:47:09 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-06-07 11:15:42 +0000
commit189d4fd8fad9e3c776873be51938cd31a42b6177 (patch)
tree6497caeff5e383937996768766ab3bb2081a40b2 /chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h
parent8bc75099d364490b22f43a7ce366b366c08f4164 (diff)
downloadqtwebengine-chromium-189d4fd8fad9e3c776873be51938cd31a42b6177.tar.gz
BASELINE: Update Chromium to 90.0.4430.221
Change-Id: Iff4d9d18d2fcf1a576f3b1f453010f744a232920 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h')
-rw-r--r--chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h b/chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h
new file mode 100644
index 00000000000..c7423756c41
--- /dev/null
+++ b/chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h
@@ -0,0 +1,42 @@
+// Copyright 2020 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 THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_SCOPED_FAKE_UKM_RECORDER_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_SCOPED_FAKE_UKM_RECORDER_H_
+
+#include "components/ukm/test_ukm_recorder.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+namespace blink {
+
+// Class used to mock the UKM recorder living in the browser process and being
+// served UKM events over Mojo. When instantiated, this class will register
+// itself as the Mojo interface for the UkmRecorderInterface in the
+// BrowserInterfaceBroker. It will then forward UKM logging events to a
+// TestUkmRecorder instance it owns and make it available for validation.
+// Consumers of this class should make sure to instantiate it before any other
+// instance takes a dependency on that mojo interface.
+class ScopedFakeUkmRecorder : public ukm::mojom::UkmRecorderInterface {
+ public:
+ explicit ScopedFakeUkmRecorder();
+ ~ScopedFakeUkmRecorder() override;
+
+ // ukm::mojom::UkmRecorderInterface:
+ void AddEntry(ukm::mojom::UkmEntryPtr entry) override;
+ void UpdateSourceURL(int64_t source_id, const std::string& url) override;
+
+ void ResetRecorder();
+
+ ukm::TestUkmRecorder* recorder() { return recorder_.get(); }
+
+ private:
+ void SetHandle(mojo::ScopedMessagePipeHandle handle);
+
+ std::unique_ptr<mojo::Receiver<ukm::mojom::UkmRecorderInterface>> receiver_;
+ std::unique_ptr<ukm::TestUkmRecorder> recorder_;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_SCOPED_FAKE_UKM_RECORDER_H_