blob: 6c5628c57549be647968f09c2ca1b37862def573 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/save_to_drive/save_to_drive_utils.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/pdf/pdf_viewer_stream_manager.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
#include "pdf/pdf_features.h"
namespace save_to_drive {
base::WeakPtr<extensions::StreamContainer> GetStreamWeakPtr(
content::RenderFrameHost* render_frame_host) {
if (!chrome_pdf::features::IsOopifPdfEnabled()) {
auto* guest_view = extensions::MimeHandlerViewGuest::FromRenderFrameHost(
render_frame_host);
return guest_view ? guest_view->GetStreamWeakPtr() : nullptr;
}
if (!render_frame_host) {
return nullptr;
}
content::RenderFrameHost* embedder_host = render_frame_host->GetParent();
auto* manager =
pdf::PdfViewerStreamManager::FromRenderFrameHost(embedder_host);
return manager ? manager->GetStreamContainer(embedder_host) : nullptr;
}
} // namespace save_to_drive