#ifndef PluginDocument_h
#define PluginDocument_h
#include "HTMLDocument.h"
namespace WebCore {
class HTMLPlugInElement;
class Widget;
class PluginDocument FINAL : public HTMLDocument {
public:
static PassRefPtr<PluginDocument> create(Frame* frame, const KURL& url)
{
return adoptRef(new PluginDocument(frame, url));
}
void setPluginElement(PassRefPtr<HTMLPlugInElement>);
Widget* pluginWidget();
HTMLPlugInElement* pluginElement() { return m_pluginElement.get(); }
virtual void detach(const AttachContext& = AttachContext()) OVERRIDE;
void cancelManualPluginLoad();
bool shouldLoadPluginManually() { return m_shouldLoadPluginManually; }
private:
PluginDocument(Frame*, const KURL&);
virtual PassRefPtr<DocumentParser> createParser() OVERRIDE;
void setShouldLoadPluginManually(bool loadManually) { m_shouldLoadPluginManually = loadManually; }
bool m_shouldLoadPluginManually;
RefPtr<HTMLPlugInElement> m_pluginElement;
};
inline PluginDocument* toPluginDocument(Document* document)
{
ASSERT_WITH_SECURITY_IMPLICATION(!document || document->isPluginDocument());
return static_cast<PluginDocument*>(document);
}
inline const PluginDocument* toPluginDocument(const Document* document)
{
ASSERT_WITH_SECURITY_IMPLICATION(!document || document->isPluginDocument());
return static_cast<const PluginDocument*>(document);
}
void toPluginDocument(const PluginDocument*);
}
#endif // PluginDocument_h