#ifndef PluginViewBase_h
#define PluginViewBase_h
#include "AudioHardwareListener.h"
#include "BridgeJSC.h"
#include "PlatformLayer.h"
#include "ScrollTypes.h"
#include "Widget.h"
#include <wtf/text/WTFString.h>
namespace JSC {
class ExecState;
class JSGlobalObject;
class JSObject;
}
namespace WebCore {
class Scrollbar;
class PluginViewBase : public Widget {
public:
virtual PlatformLayer* platformLayer() const { return 0; }
#if PLATFORM(IOS)
virtual bool willProvidePluginLayer() const { return false; }
virtual void attachPluginLayer() { }
virtual void detachPluginLayer() { }
#endif
virtual JSC::JSObject* scriptObject(JSC::JSGlobalObject*) { return 0; }
virtual void storageBlockingStateChanged() { }
virtual void privateBrowsingStateChanged(bool) { }
virtual bool getFormValue(String&) { return false; }
virtual bool scroll(ScrollDirection, ScrollGranularity) { return false; }
virtual Scrollbar* horizontalScrollbar() { return 0; }
virtual Scrollbar* verticalScrollbar() { return 0; }
virtual bool wantsWheelEvents() { return false; }
virtual bool supportsKeyboardFocus() const { return false; }
virtual bool canProcessDrag() const { return false; }
virtual bool shouldAlwaysAutoStart() const { return false; }
virtual void beginSnapshottingRunningPlugin() { }
virtual bool shouldAllowNavigationFromDrags() const { return false; }
virtual bool isPluginViewBase() const { return true; }
virtual bool shouldNotAddLayer() const { return false; }
virtual AudioHardwareActivityType audioHardwareActivity() const { return AudioHardwareActivityType::Unknown; }
virtual void setJavaScriptPaused(bool) { }
virtual PassRefPtr<JSC::Bindings::Instance> bindingInstance() { return nullptr; }
protected:
explicit PluginViewBase(PlatformWidget widget = 0) : Widget(widget) { }
};
}
SPECIALIZE_TYPE_TRAITS_WIDGET(PluginViewBase, isPluginViewBase())
#endif // PluginViewBase_h