123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- // 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 ASH_CAPTURE_MODE_TEST_CAPTURE_MODE_DELEGATE_H_
- #define ASH_CAPTURE_MODE_TEST_CAPTURE_MODE_DELEGATE_H_
- #include <limits>
- #include <memory>
- #include "ash/public/cpp/capture_mode/capture_mode_delegate.h"
- #include "base/callback.h"
- #include "base/callback_forward.h"
- #include "base/files/file_path.h"
- #include "base/files/scoped_temp_dir.h"
- #include "components/viz/common/surfaces/frame_sink_id.h"
- #include "ui/gfx/geometry/size.h"
- #include "ui/gfx/image/image_skia.h"
- namespace recording {
- class RecordingServiceTestApi;
- } // namespace recording
- namespace ash {
- class FakeVideoSourceProvider;
- class TestCaptureModeDelegate : public CaptureModeDelegate {
- public:
- TestCaptureModeDelegate();
- TestCaptureModeDelegate(const TestCaptureModeDelegate&) = delete;
- TestCaptureModeDelegate& operator=(const TestCaptureModeDelegate&) = delete;
- ~TestCaptureModeDelegate() override;
- recording::RecordingServiceTestApi* recording_service() const {
- return recording_service_.get();
- }
- FakeVideoSourceProvider* video_source_provider() {
- return video_source_provider_.get();
- }
- void set_on_session_state_changed_callback(base::OnceClosure callback) {
- on_session_state_changed_callback_ = std::move(callback);
- }
- void set_on_recording_started_callback(base::OnceClosure callback) {
- on_recording_started_callback_ = std::move(callback);
- }
- void set_is_allowed_by_dlp(bool value) { is_allowed_by_dlp_ = value; }
- void set_is_allowed_by_policy(bool value) { is_allowed_by_policy_ = value; }
- void set_should_save_after_dlp_check(bool value) {
- should_save_after_dlp_check_ = value;
- }
- void set_is_camera_disabled_by_policy(bool value) {
- is_camera_disabled_by_policy_ = value;
- }
- void set_fake_drive_fs_free_bytes(int64_t bytes) {
- fake_drive_fs_free_bytes_ = bytes;
- }
- // Resets |is_allowed_by_policy_| and |is_allowed_by_dlp_| back to true.
- void ResetAllowancesToDefault();
- // Gets the current frame sink id being captured by the service.
- viz::FrameSinkId GetCurrentFrameSinkId() const;
- // Gets the current size of the frame sink being recorded in pixels.
- gfx::Size GetCurrentFrameSinkSizeInPixels() const;
- // Gets the current video size being captured by the service.
- gfx::Size GetCurrentVideoSize() const;
- // Gets the thumbnail image that will be used by the service to provide it to
- // the client.
- gfx::ImageSkia GetVideoThumbnail() const;
- // Requests a video frame from the video capturer and waits for it to be
- // delivered to the service.
- void RequestAndWaitForVideoFrame();
- // CaptureModeDelegate:
- base::FilePath GetUserDefaultDownloadsFolder() const override;
- void ShowScreenCaptureItemInFolder(const base::FilePath& file_path) override;
- void OpenScreenshotInImageEditor(const base::FilePath& file_path) override;
- bool Uses24HourFormat() const override;
- void CheckCaptureModeInitRestrictionByDlp(
- OnCaptureModeDlpRestrictionChecked callback) override;
- void CheckCaptureOperationRestrictionByDlp(
- const aura::Window* window,
- const gfx::Rect& bounds,
- OnCaptureModeDlpRestrictionChecked callback) override;
- bool IsCaptureAllowedByPolicy() const override;
- void StartObservingRestrictedContent(
- const aura::Window* window,
- const gfx::Rect& bounds,
- base::OnceClosure stop_callback) override;
- void StopObservingRestrictedContent(
- OnCaptureModeDlpRestrictionChecked callback) override;
- void OnCaptureImageAttempted(aura::Window const*, gfx::Rect const&) override;
- mojo::Remote<recording::mojom::RecordingService> LaunchRecordingService()
- override;
- void BindAudioStreamFactory(
- mojo::PendingReceiver<media::mojom::AudioStreamFactory> receiver)
- override;
- void OnSessionStateChanged(bool started) override;
- void OnServiceRemoteReset() override;
- bool GetDriveFsMountPointPath(base::FilePath* result) const override;
- base::FilePath GetAndroidFilesPath() const override;
- base::FilePath GetLinuxFilesPath() const override;
- std::unique_ptr<RecordingOverlayView> CreateRecordingOverlayView()
- const override;
- void ConnectToVideoSourceProvider(
- mojo::PendingReceiver<video_capture::mojom::VideoSourceProvider> receiver)
- override;
- void GetDriveFsFreeSpaceBytes(OnGotDriveFsFreeSpace callback) override;
- bool IsCameraDisabledByPolicy() const override;
- private:
- std::unique_ptr<recording::RecordingServiceTestApi> recording_service_;
- std::unique_ptr<FakeVideoSourceProvider> video_source_provider_;
- base::ScopedTempDir fake_downloads_dir_;
- base::OnceClosure on_session_state_changed_callback_;
- base::OnceClosure on_recording_started_callback_;
- bool is_allowed_by_dlp_ = true;
- bool is_allowed_by_policy_ = true;
- bool should_save_after_dlp_check_ = true;
- bool is_camera_disabled_by_policy_ = false;
- base::ScopedTempDir fake_drive_fs_mount_path_;
- base::ScopedTempDir fake_android_files_path_;
- base::ScopedTempDir fake_linux_files_path_;
- int64_t fake_drive_fs_free_bytes_ = std::numeric_limits<int64_t>::max();
- };
- } // namespace ash
- #endif // ASH_CAPTURE_MODE_TEST_CAPTURE_MODE_DELEGATE_H_
|