diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-05-20 09:47:09 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-06-07 11:15:42 +0000 |
commit | 189d4fd8fad9e3c776873be51938cd31a42b6177 (patch) | |
tree | 6497caeff5e383937996768766ab3bb2081a40b2 /chromium/third_party/blink/renderer/core/testing/scoped_fake_ukm_recorder.h | |
parent | 8bc75099d364490b22f43a7ce366b366c08f4164 (diff) | |
download | qtwebengine-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.h | 42 |
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_ |