blob: 9b829f4d97818dbe7c7121de990c8466b3905109 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_PDF_BROWSER_FAKE_PDF_STREAM_DELEGATE_H_
#define COMPONENTS_PDF_BROWSER_FAKE_PDF_STREAM_DELEGATE_H_
#include <optional>
#include "components/pdf/browser/pdf_stream_delegate.h"
namespace pdf {
class FakePdfStreamDelegate : public PdfStreamDelegate {
public:
static constexpr char kDefaultStreamUrl[] =
"chrome-extension://id/stream-url";
static constexpr char kDefaultOriginalUrl[] = "https://example.test/fake.pdf";
FakePdfStreamDelegate();
FakePdfStreamDelegate(const FakePdfStreamDelegate&) = delete;
FakePdfStreamDelegate& operator=(const FakePdfStreamDelegate&) = delete;
~FakePdfStreamDelegate() override;
// `PdfStreamDelegate`:
std::optional<GURL> MapToOriginalUrl(
content::NavigationHandle& navigation_handle) override;
std::optional<StreamInfo> GetStreamInfo(
content::RenderFrameHost* embedder_frame) override;
void OnPdfEmbedderSandboxed(int frame_tree_node_id) override;
bool ShouldAllowPdfFrameNavigation(
content::NavigationHandle* navigation_handle) override;
void clear_stream_info() { stream_info_.reset(); }
void set_should_allow_pdf_frame_navigation(bool should_allow) {
should_allow_pdf_frame_navigation_ = should_allow;
}
private:
bool should_allow_pdf_frame_navigation_ = true;
std::optional<StreamInfo> stream_info_;
};
} // namespace pdf
#endif // COMPONENTS_PDF_BROWSER_FAKE_PDF_STREAM_DELEGATE_H_