blob: 9d9043e900a0ce46d32b805f9f5bf6a67d88273c [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_PDF_PDF_EXTENSION_UTIL_H_
#define CHROME_BROWSER_PDF_PDF_EXTENSION_UTIL_H_
#include <string>
#include "base/values.h"
#include "build/chromeos_buildflags.h"
#include "pdf/buildflags.h"
#include "url/gurl.h"
#if !BUILDFLAG(ENABLE_PDF)
#error "PDF must be enabled"
#endif
namespace content {
class BrowserContext;
class RenderFrameHost;
}
namespace pdf_extension_util {
// Return the extensions manifest for PDF. The manifest is loaded from
// browser_resources.grd and certain fields are replaced based on what chrome
// flags are enabled.
std::string GetManifest();
// Represents the context within which the PDF Viewer runs.
enum class PdfViewerContext {
kPdfViewer,
kPrintPreview,
kAll,
};
// Adds all strings used by the PDF Viewer depending on the provided `context`.
void AddStrings(PdfViewerContext context, base::Value::Dict* dict);
// Adds additional data used by the PDF Viewer UI in `dict`, for example
// whether certain features are enabled/disabled.
void AddAdditionalData(content::BrowserContext* context,
base::Value::Dict* dict);
// For OOPIF PDF viewer only. Returns true if successfully sends a save event to
// the PDF viewer, or false otherwise. Only successful if the PDF plugin should
// handle the save event.
bool MaybeDispatchSaveEvent(content::RenderFrameHost* embedder_host);
// Dispatches an extension event to the PDF viewer containing an updated PDF URL
// that was intended to be navigated to so the viewer can update its viewport
// based on the fragment of that URL.
void DispatchShouldUpdateViewportEvent(content::RenderFrameHost* embedder_host,
const GURL& new_pdf_url);
} // namespace pdf_extension_util
#endif // CHROME_BROWSER_PDF_PDF_EXTENSION_UTIL_H_