InjectedBundleNodeHandle.h [plain text]
#pragma once
#include "APIObject.h"
#include "ImageOptions.h"
#include <JavaScriptCore/JSBase.h>
#include <WebCore/ActiveDOMObject.h>
#include <wtf/Forward.h>
#include <wtf/Optional.h>
#include <wtf/RefPtr.h>
namespace WebCore {
class IntRect;
class Node;
enum class AutoFillButtonType : uint8_t;
}
namespace WebKit {
class InjectedBundleRangeHandle;
class InjectedBundleScriptWorld;
class WebFrame;
class WebImage;
class InjectedBundleNodeHandle : public API::ObjectImpl<API::Object::Type::BundleNodeHandle>, public WebCore::ActiveDOMObject {
public:
static RefPtr<InjectedBundleNodeHandle> getOrCreate(JSContextRef, JSObjectRef);
static RefPtr<InjectedBundleNodeHandle> getOrCreate(WebCore::Node*);
static Ref<InjectedBundleNodeHandle> getOrCreate(WebCore::Node&);
virtual ~InjectedBundleNodeHandle();
WebCore::Node* coreNode();
RefPtr<InjectedBundleNodeHandle> document();
WebCore::IntRect elementBounds();
WebCore::IntRect renderRect(bool*);
RefPtr<WebImage> renderedImage(SnapshotOptions, bool shouldExcludeOverflow, const Optional<float>& bitmapWidth = WTF::nullopt);
RefPtr<InjectedBundleRangeHandle> visibleRange();
void setHTMLInputElementValueForUser(const String&);
void setHTMLInputElementSpellcheckEnabled(bool);
bool isHTMLInputElementAutoFilled() const;
bool isHTMLInputElementAutoFilledAndViewable() const;
void setHTMLInputElementAutoFilled(bool);
void setHTMLInputElementAutoFilledAndViewable(bool);
bool isHTMLInputElementAutoFillButtonEnabled() const;
void setHTMLInputElementAutoFillButtonEnabled(WebCore::AutoFillButtonType);
WebCore::AutoFillButtonType htmlInputElementAutoFillButtonType() const;
WebCore::AutoFillButtonType htmlInputElementLastAutoFillButtonType() const;
bool isAutoFillAvailable() const;
void setAutoFillAvailable(bool);
WebCore::IntRect htmlInputElementAutoFillButtonBounds();
bool htmlInputElementLastChangeWasUserEdit();
bool htmlTextAreaElementLastChangeWasUserEdit();
bool isTextField() const;
bool isSelectElement() const;
RefPtr<InjectedBundleNodeHandle> htmlTableCellElementCellAbove();
RefPtr<WebFrame> documentFrame();
RefPtr<WebFrame> htmlFrameElementContentFrame();
RefPtr<WebFrame> htmlIFrameElementContentFrame();
private:
static Ref<InjectedBundleNodeHandle> create(WebCore::Node&);
InjectedBundleNodeHandle(WebCore::Node&);
void stop() final;
const char* activeDOMObjectName() const final;
RefPtr<WebCore::Node> m_node;
};
}