InjectedBundleNodeHandle.h [plain text]
#pragma once
#include "APIObject.h"
#include "ImageOptions.h"
#include <JavaScriptCore/JSBase.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:
static RefPtr<InjectedBundleNodeHandle> getOrCreate(JSContextRef, JSObjectRef);
static RefPtr<InjectedBundleNodeHandle> getOrCreate(WebCore::Node*);
static Ref<InjectedBundleNodeHandle> getOrCreate(WebCore::Node&);
virtual ~InjectedBundleNodeHandle();
WebCore::Node* coreNode();
Ref<InjectedBundleNodeHandle> document();
WebCore::IntRect elementBounds();
WebCore::IntRect renderRect(bool*);
RefPtr<WebImage> renderedImage(SnapshotOptions, bool shouldExcludeOverflow, const std::optional<float>& bitmapWidth = std::nullopt);
RefPtr<InjectedBundleRangeHandle> visibleRange();
void setHTMLInputElementValueForUser(const String&);
void setHTMLInputElementSpellcheckEnabled(bool);
bool isHTMLInputElementAutoFilled() const;
void setHTMLInputElementAutoFilled(bool);
bool isHTMLInputElementAutoFillButtonEnabled() const;
void setHTMLInputElementAutoFillButtonEnabled(WebCore::AutoFillButtonType);
WebCore::IntRect htmlInputElementAutoFillButtonBounds();
bool htmlInputElementLastChangeWasUserEdit();
bool htmlTextAreaElementLastChangeWasUserEdit();
bool isTextField() const;
RefPtr<InjectedBundleNodeHandle> htmlTableCellElementCellAbove();
RefPtr<WebFrame> documentFrame();
RefPtr<WebFrame> htmlFrameElementContentFrame();
RefPtr<WebFrame> htmlIFrameElementContentFrame();
private:
static Ref<InjectedBundleNodeHandle> create(WebCore::Node&);
InjectedBundleNodeHandle(WebCore::Node&);
Ref<WebCore::Node> m_node;
};
}