#ifndef CHROME_RENDERER_PLUGINS_PDF_PLUGIN_PLACEHOLDER_H_
#define CHROME_RENDERER_PLUGINS_PDF_PLUGIN_PLACEHOLDER_H_
#include "components/plugins/renderer/plugin_placeholder.h"
#include "gin/public/wrappable_pointer_tags.h"
#include "v8/include/cppgc/persistent.h"
class PDFPluginPlaceholder final : public gin::Wrappable<PDFPluginPlaceholder>,
public plugins::PluginPlaceholderBase {
public:
static constexpr gin::WrapperInfo kWrapperInfo = {{gin::kEmbedderNativeGin},
gin::kPDFPluginPlaceholder};
static PDFPluginPlaceholder* CreatePDFPlaceholder(
content::RenderFrame* render_frame,
const blink::WebPluginParams& params);
PDFPluginPlaceholder(content::RenderFrame* render_frame,
const blink::WebPluginParams& params);
~PDFPluginPlaceholder() final;
private:
const gin::WrapperInfo* wrapper_info() const override;
v8::Local<v8::Value> GetV8Handle(v8::Isolate* isolate) final;
gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
v8::Isolate* isolate) final;
void OpenPDFCallback();
void OnDestruct() override;
cppgc::Persistent<PDFPluginPlaceholder> self_;
};
#endif