2 * This file is part of the WebKit open source project.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
21 #include "WebKitDOMHTMLInputElement.h"
23 #include <WebCore/CSSImportRule.h>
24 #include "DOMObjectCache.h"
25 #include <WebCore/DOMException.h>
26 #include <WebCore/Document.h>
27 #include "GObjectEventListener.h"
28 #include <WebCore/HTMLNames.h>
29 #include <WebCore/JSMainThreadExecState.h>
30 #include "WebKitDOMEventPrivate.h"
31 #include "WebKitDOMEventTarget.h"
32 #include "WebKitDOMFileListPrivate.h"
33 #include "WebKitDOMHTMLElementPrivate.h"
34 #include "WebKitDOMHTMLFormElementPrivate.h"
35 #include "WebKitDOMHTMLInputElementPrivate.h"
36 #include "WebKitDOMNodeListPrivate.h"
37 #include "WebKitDOMNodePrivate.h"
38 #include "WebKitDOMPrivate.h"
39 #include "ConvertToUTF8String.h"
40 #include <wtf/GetPtr.h>
41 #include <wtf/RefPtr.h>
45 WebKitDOMHTMLInputElement* kit(WebCore::HTMLInputElement* obj)
47 return WEBKIT_DOM_HTML_INPUT_ELEMENT(kit(static_cast<WebCore::Node*>(obj)));
50 WebCore::HTMLInputElement* core(WebKitDOMHTMLInputElement* request)
52 return request ? static_cast<WebCore::HTMLInputElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0;
55 WebKitDOMHTMLInputElement* wrapHTMLInputElement(WebCore::HTMLInputElement* coreObject)
58 return WEBKIT_DOM_HTML_INPUT_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT, "core-object", coreObject, nullptr));
63 static gboolean webkit_dom_html_input_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)
65 WebCore::Event* coreEvent = WebKit::core(event);
68 WebCore::HTMLInputElement* coreTarget = static_cast<WebCore::HTMLInputElement*>(WEBKIT_DOM_OBJECT(target)->coreObject);
70 auto result = coreTarget->dispatchEventForBindings(*coreEvent);
71 if (result.hasException()) {
72 auto description = WebCore::DOMException::description(result.releaseException().code());
73 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), description.legacyCode, description.name);
76 return result.releaseReturnValue();
79 static gboolean webkit_dom_html_input_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture)
81 WebCore::HTMLInputElement* coreTarget = static_cast<WebCore::HTMLInputElement*>(WEBKIT_DOM_OBJECT(target)->coreObject);
82 return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture);
85 static gboolean webkit_dom_html_input_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture)
87 WebCore::HTMLInputElement* coreTarget = static_cast<WebCore::HTMLInputElement*>(WEBKIT_DOM_OBJECT(target)->coreObject);
88 return WebKit::GObjectEventListener::removeEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture);
91 static void webkit_dom_event_target_init(WebKitDOMEventTargetIface* iface)
93 iface->dispatch_event = webkit_dom_html_input_element_dispatch_event;
94 iface->add_event_listener = webkit_dom_html_input_element_add_event_listener;
95 iface->remove_event_listener = webkit_dom_html_input_element_remove_event_listener;
98 G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLInputElement, webkit_dom_html_input_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init))
105 PROP_DEFAULT_CHECKED,
128 static void webkit_dom_html_input_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec)
130 WebKitDOMHTMLInputElement* self = WEBKIT_DOM_HTML_INPUT_ELEMENT(object);
132 switch (propertyId) {
134 webkit_dom_html_input_element_set_accept(self, g_value_get_string(value));
137 webkit_dom_html_input_element_set_alt(self, g_value_get_string(value));
140 webkit_dom_html_input_element_set_autofocus(self, g_value_get_boolean(value));
142 case PROP_DEFAULT_CHECKED:
143 webkit_dom_html_input_element_set_default_checked(self, g_value_get_boolean(value));
146 webkit_dom_html_input_element_set_checked(self, g_value_get_boolean(value));
149 webkit_dom_html_input_element_set_disabled(self, g_value_get_boolean(value));
152 webkit_dom_html_input_element_set_height(self, g_value_get_ulong(value));
154 case PROP_INDETERMINATE:
155 webkit_dom_html_input_element_set_indeterminate(self, g_value_get_boolean(value));
157 case PROP_MAX_LENGTH:
158 webkit_dom_html_input_element_set_max_length(self, g_value_get_long(value), nullptr);
161 webkit_dom_html_input_element_set_multiple(self, g_value_get_boolean(value));
164 webkit_dom_html_input_element_set_name(self, g_value_get_string(value));
167 webkit_dom_html_input_element_set_read_only(self, g_value_get_boolean(value));
170 webkit_dom_html_input_element_set_size(self, g_value_get_ulong(value), nullptr);
173 webkit_dom_html_input_element_set_src(self, g_value_get_string(value));
176 webkit_dom_html_input_element_set_input_type(self, g_value_get_string(value));
178 case PROP_DEFAULT_VALUE:
179 webkit_dom_html_input_element_set_default_value(self, g_value_get_string(value));
182 webkit_dom_html_input_element_set_value(self, g_value_get_string(value));
185 webkit_dom_html_input_element_set_width(self, g_value_get_ulong(value));
188 webkit_dom_html_input_element_set_align(self, g_value_get_string(value));
191 webkit_dom_html_input_element_set_use_map(self, g_value_get_string(value));
194 webkit_dom_html_input_element_set_capture_type(self, g_value_get_string(value));
197 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
202 static void webkit_dom_html_input_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec)
204 WebKitDOMHTMLInputElement* self = WEBKIT_DOM_HTML_INPUT_ELEMENT(object);
206 switch (propertyId) {
208 g_value_take_string(value, webkit_dom_html_input_element_get_accept(self));
211 g_value_take_string(value, webkit_dom_html_input_element_get_alt(self));
214 g_value_set_boolean(value, webkit_dom_html_input_element_get_autofocus(self));
216 case PROP_DEFAULT_CHECKED:
217 g_value_set_boolean(value, webkit_dom_html_input_element_get_default_checked(self));
220 g_value_set_boolean(value, webkit_dom_html_input_element_get_checked(self));
223 g_value_set_boolean(value, webkit_dom_html_input_element_get_disabled(self));
226 g_value_set_object(value, webkit_dom_html_input_element_get_form(self));
229 g_value_set_object(value, webkit_dom_html_input_element_get_files(self));
232 g_value_set_ulong(value, webkit_dom_html_input_element_get_height(self));
234 case PROP_INDETERMINATE:
235 g_value_set_boolean(value, webkit_dom_html_input_element_get_indeterminate(self));
237 case PROP_MAX_LENGTH:
238 g_value_set_long(value, webkit_dom_html_input_element_get_max_length(self));
241 g_value_set_boolean(value, webkit_dom_html_input_element_get_multiple(self));
244 g_value_take_string(value, webkit_dom_html_input_element_get_name(self));
247 g_value_set_boolean(value, webkit_dom_html_input_element_get_read_only(self));
250 g_value_set_ulong(value, webkit_dom_html_input_element_get_size(self));
253 g_value_take_string(value, webkit_dom_html_input_element_get_src(self));
256 g_value_take_string(value, webkit_dom_html_input_element_get_input_type(self));
258 case PROP_DEFAULT_VALUE:
259 g_value_take_string(value, webkit_dom_html_input_element_get_default_value(self));
262 g_value_take_string(value, webkit_dom_html_input_element_get_value(self));
265 g_value_set_ulong(value, webkit_dom_html_input_element_get_width(self));
267 case PROP_WILL_VALIDATE:
268 g_value_set_boolean(value, webkit_dom_html_input_element_get_will_validate(self));
271 g_value_take_string(value, webkit_dom_html_input_element_get_align(self));
274 g_value_take_string(value, webkit_dom_html_input_element_get_use_map(self));
277 g_value_take_string(value, webkit_dom_html_input_element_get_capture_type(self));
280 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
285 static void webkit_dom_html_input_element_class_init(WebKitDOMHTMLInputElementClass* requestClass)
287 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
288 gobjectClass->set_property = webkit_dom_html_input_element_set_property;
289 gobjectClass->get_property = webkit_dom_html_input_element_get_property;
291 g_object_class_install_property(
296 "HTMLInputElement:accept",
297 "read-write gchar* HTMLInputElement:accept",
299 WEBKIT_PARAM_READWRITE));
301 g_object_class_install_property(
306 "HTMLInputElement:alt",
307 "read-write gchar* HTMLInputElement:alt",
309 WEBKIT_PARAM_READWRITE));
311 g_object_class_install_property(
314 g_param_spec_boolean(
316 "HTMLInputElement:autofocus",
317 "read-write gboolean HTMLInputElement:autofocus",
319 WEBKIT_PARAM_READWRITE));
321 g_object_class_install_property(
323 PROP_DEFAULT_CHECKED,
324 g_param_spec_boolean(
326 "HTMLInputElement:default-checked",
327 "read-write gboolean HTMLInputElement:default-checked",
329 WEBKIT_PARAM_READWRITE));
331 g_object_class_install_property(
334 g_param_spec_boolean(
336 "HTMLInputElement:checked",
337 "read-write gboolean HTMLInputElement:checked",
339 WEBKIT_PARAM_READWRITE));
341 g_object_class_install_property(
344 g_param_spec_boolean(
346 "HTMLInputElement:disabled",
347 "read-write gboolean HTMLInputElement:disabled",
349 WEBKIT_PARAM_READWRITE));
351 g_object_class_install_property(
356 "HTMLInputElement:form",
357 "read-only WebKitDOMHTMLFormElement* HTMLInputElement:form",
358 WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT,
359 WEBKIT_PARAM_READABLE));
361 g_object_class_install_property(
366 "HTMLInputElement:files",
367 "read-only WebKitDOMFileList* HTMLInputElement:files",
368 WEBKIT_DOM_TYPE_FILE_LIST,
369 WEBKIT_PARAM_READABLE));
371 g_object_class_install_property(
376 "HTMLInputElement:height",
377 "read-write gulong HTMLInputElement:height",
379 WEBKIT_PARAM_READWRITE));
381 g_object_class_install_property(
384 g_param_spec_boolean(
386 "HTMLInputElement:indeterminate",
387 "read-write gboolean HTMLInputElement:indeterminate",
389 WEBKIT_PARAM_READWRITE));
391 g_object_class_install_property(
396 "HTMLInputElement:max-length",
397 "read-write glong HTMLInputElement:max-length",
398 G_MINLONG, G_MAXLONG, 0,
399 WEBKIT_PARAM_READWRITE));
401 g_object_class_install_property(
404 g_param_spec_boolean(
406 "HTMLInputElement:multiple",
407 "read-write gboolean HTMLInputElement:multiple",
409 WEBKIT_PARAM_READWRITE));
411 g_object_class_install_property(
416 "HTMLInputElement:name",
417 "read-write gchar* HTMLInputElement:name",
419 WEBKIT_PARAM_READWRITE));
421 g_object_class_install_property(
424 g_param_spec_boolean(
426 "HTMLInputElement:read-only",
427 "read-write gboolean HTMLInputElement:read-only",
429 WEBKIT_PARAM_READWRITE));
431 g_object_class_install_property(
436 "HTMLInputElement:size",
437 "read-write gulong HTMLInputElement:size",
439 WEBKIT_PARAM_READWRITE));
441 g_object_class_install_property(
446 "HTMLInputElement:src",
447 "read-write gchar* HTMLInputElement:src",
449 WEBKIT_PARAM_READWRITE));
451 g_object_class_install_property(
456 "HTMLInputElement:type",
457 "read-write gchar* HTMLInputElement:type",
459 WEBKIT_PARAM_READWRITE));
461 g_object_class_install_property(
466 "HTMLInputElement:default-value",
467 "read-write gchar* HTMLInputElement:default-value",
469 WEBKIT_PARAM_READWRITE));
471 g_object_class_install_property(
476 "HTMLInputElement:value",
477 "read-write gchar* HTMLInputElement:value",
479 WEBKIT_PARAM_READWRITE));
481 g_object_class_install_property(
486 "HTMLInputElement:width",
487 "read-write gulong HTMLInputElement:width",
489 WEBKIT_PARAM_READWRITE));
491 g_object_class_install_property(
494 g_param_spec_boolean(
496 "HTMLInputElement:will-validate",
497 "read-only gboolean HTMLInputElement:will-validate",
499 WEBKIT_PARAM_READABLE));
501 g_object_class_install_property(
506 "HTMLInputElement:align",
507 "read-write gchar* HTMLInputElement:align",
509 WEBKIT_PARAM_READWRITE));
511 g_object_class_install_property(
516 "HTMLInputElement:use-map",
517 "read-write gchar* HTMLInputElement:use-map",
519 WEBKIT_PARAM_READWRITE));
521 g_object_class_install_property(
526 "HTMLInputElement:capture",
527 "read-write gchar* HTMLInputElement:capture",
529 WEBKIT_PARAM_READWRITE));
533 static void webkit_dom_html_input_element_init(WebKitDOMHTMLInputElement* request)
535 UNUSED_PARAM(request);
538 void webkit_dom_html_input_element_select(WebKitDOMHTMLInputElement* self)
540 WebCore::JSMainThreadNullState state;
541 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
542 WebCore::HTMLInputElement* item = WebKit::core(self);
546 gchar* webkit_dom_html_input_element_get_accept(WebKitDOMHTMLInputElement* self)
548 WebCore::JSMainThreadNullState state;
549 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
550 WebCore::HTMLInputElement* item = WebKit::core(self);
551 gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::acceptAttr));
555 void webkit_dom_html_input_element_set_accept(WebKitDOMHTMLInputElement* self, const gchar* value)
557 WebCore::JSMainThreadNullState state;
558 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
559 g_return_if_fail(value);
560 WebCore::HTMLInputElement* item = WebKit::core(self);
561 WTF::String convertedValue = WTF::String::fromUTF8(value);
562 item->setAttributeWithoutSynchronization(WebCore::HTMLNames::acceptAttr, convertedValue);
565 gchar* webkit_dom_html_input_element_get_alt(WebKitDOMHTMLInputElement* self)
567 WebCore::JSMainThreadNullState state;
568 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
569 WebCore::HTMLInputElement* item = WebKit::core(self);
570 gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::altAttr));
574 void webkit_dom_html_input_element_set_alt(WebKitDOMHTMLInputElement* self, const gchar* value)
576 WebCore::JSMainThreadNullState state;
577 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
578 g_return_if_fail(value);
579 WebCore::HTMLInputElement* item = WebKit::core(self);
580 WTF::String convertedValue = WTF::String::fromUTF8(value);
581 item->setAttributeWithoutSynchronization(WebCore::HTMLNames::altAttr, convertedValue);
584 gboolean webkit_dom_html_input_element_get_autofocus(WebKitDOMHTMLInputElement* self)
586 WebCore::JSMainThreadNullState state;
587 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
588 WebCore::HTMLInputElement* item = WebKit::core(self);
589 gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::autofocusAttr);
593 void webkit_dom_html_input_element_set_autofocus(WebKitDOMHTMLInputElement* self, gboolean value)
595 WebCore::JSMainThreadNullState state;
596 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
597 WebCore::HTMLInputElement* item = WebKit::core(self);
598 item->setBooleanAttribute(WebCore::HTMLNames::autofocusAttr, value);
601 gboolean webkit_dom_html_input_element_get_default_checked(WebKitDOMHTMLInputElement* self)
603 WebCore::JSMainThreadNullState state;
604 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
605 WebCore::HTMLInputElement* item = WebKit::core(self);
606 gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::checkedAttr);
610 void webkit_dom_html_input_element_set_default_checked(WebKitDOMHTMLInputElement* self, gboolean value)
612 WebCore::JSMainThreadNullState state;
613 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
614 WebCore::HTMLInputElement* item = WebKit::core(self);
615 item->setBooleanAttribute(WebCore::HTMLNames::checkedAttr, value);
618 gboolean webkit_dom_html_input_element_get_checked(WebKitDOMHTMLInputElement* self)
620 WebCore::JSMainThreadNullState state;
621 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
622 WebCore::HTMLInputElement* item = WebKit::core(self);
623 gboolean result = item->checked();
627 void webkit_dom_html_input_element_set_checked(WebKitDOMHTMLInputElement* self, gboolean value)
629 WebCore::JSMainThreadNullState state;
630 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
631 WebCore::HTMLInputElement* item = WebKit::core(self);
632 item->setChecked(value);
635 gboolean webkit_dom_html_input_element_get_disabled(WebKitDOMHTMLInputElement* self)
637 WebCore::JSMainThreadNullState state;
638 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
639 WebCore::HTMLInputElement* item = WebKit::core(self);
640 gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr);
644 void webkit_dom_html_input_element_set_disabled(WebKitDOMHTMLInputElement* self, gboolean value)
646 WebCore::JSMainThreadNullState state;
647 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
648 WebCore::HTMLInputElement* item = WebKit::core(self);
649 item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value);
652 WebKitDOMHTMLFormElement* webkit_dom_html_input_element_get_form(WebKitDOMHTMLInputElement* self)
654 WebCore::JSMainThreadNullState state;
655 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
656 WebCore::HTMLInputElement* item = WebKit::core(self);
657 RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form());
658 return WebKit::kit(gobjectResult.get());
661 WebKitDOMFileList* webkit_dom_html_input_element_get_files(WebKitDOMHTMLInputElement* self)
663 WebCore::JSMainThreadNullState state;
664 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
665 WebCore::HTMLInputElement* item = WebKit::core(self);
666 RefPtr<WebCore::FileList> gobjectResult = WTF::getPtr(item->files());
667 return WebKit::kit(gobjectResult.get());
670 void webkit_dom_html_input_element_set_files(WebKitDOMHTMLInputElement* self, WebKitDOMFileList* value)
672 WebCore::JSMainThreadNullState state;
673 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
674 g_return_if_fail(WEBKIT_DOM_IS_FILE_LIST(value));
675 WebCore::HTMLInputElement* item = WebKit::core(self);
676 WebCore::FileList* convertedValue = WebKit::core(value);
677 item->setFiles(convertedValue);
680 gulong webkit_dom_html_input_element_get_height(WebKitDOMHTMLInputElement* self)
682 WebCore::JSMainThreadNullState state;
683 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
684 WebCore::HTMLInputElement* item = WebKit::core(self);
685 gulong result = item->height();
689 void webkit_dom_html_input_element_set_height(WebKitDOMHTMLInputElement* self, gulong value)
691 WebCore::JSMainThreadNullState state;
692 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
693 WebCore::HTMLInputElement* item = WebKit::core(self);
694 item->setHeight(value);
697 gboolean webkit_dom_html_input_element_get_indeterminate(WebKitDOMHTMLInputElement* self)
699 WebCore::JSMainThreadNullState state;
700 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
701 WebCore::HTMLInputElement* item = WebKit::core(self);
702 gboolean result = item->indeterminate();
706 void webkit_dom_html_input_element_set_indeterminate(WebKitDOMHTMLInputElement* self, gboolean value)
708 WebCore::JSMainThreadNullState state;
709 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
710 WebCore::HTMLInputElement* item = WebKit::core(self);
711 item->setIndeterminate(value);
714 glong webkit_dom_html_input_element_get_max_length(WebKitDOMHTMLInputElement* self)
716 WebCore::JSMainThreadNullState state;
717 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
718 WebCore::HTMLInputElement* item = WebKit::core(self);
719 glong result = item->maxLength();
723 void webkit_dom_html_input_element_set_max_length(WebKitDOMHTMLInputElement* self, glong value, GError** error)
725 WebCore::JSMainThreadNullState state;
726 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
727 g_return_if_fail(!error || !*error);
728 WebCore::HTMLInputElement* item = WebKit::core(self);
729 auto result = item->setMaxLength(value);
730 if (result.hasException()) {
731 auto description = WebCore::DOMException::description(result.releaseException().code());
732 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), description.legacyCode, description.name);
736 gboolean webkit_dom_html_input_element_get_multiple(WebKitDOMHTMLInputElement* self)
738 WebCore::JSMainThreadNullState state;
739 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
740 WebCore::HTMLInputElement* item = WebKit::core(self);
741 gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::multipleAttr);
745 void webkit_dom_html_input_element_set_multiple(WebKitDOMHTMLInputElement* self, gboolean value)
747 WebCore::JSMainThreadNullState state;
748 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
749 WebCore::HTMLInputElement* item = WebKit::core(self);
750 item->setBooleanAttribute(WebCore::HTMLNames::multipleAttr, value);
753 gchar* webkit_dom_html_input_element_get_name(WebKitDOMHTMLInputElement* self)
755 WebCore::JSMainThreadNullState state;
756 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
757 WebCore::HTMLInputElement* item = WebKit::core(self);
758 gchar* result = convertToUTF8String(item->getNameAttribute());
762 void webkit_dom_html_input_element_set_name(WebKitDOMHTMLInputElement* self, const gchar* value)
764 WebCore::JSMainThreadNullState state;
765 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
766 g_return_if_fail(value);
767 WebCore::HTMLInputElement* item = WebKit::core(self);
768 WTF::String convertedValue = WTF::String::fromUTF8(value);
769 item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue);
772 gboolean webkit_dom_html_input_element_get_read_only(WebKitDOMHTMLInputElement* self)
774 WebCore::JSMainThreadNullState state;
775 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
776 WebCore::HTMLInputElement* item = WebKit::core(self);
777 gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::readonlyAttr);
781 void webkit_dom_html_input_element_set_read_only(WebKitDOMHTMLInputElement* self, gboolean value)
783 WebCore::JSMainThreadNullState state;
784 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
785 WebCore::HTMLInputElement* item = WebKit::core(self);
786 item->setBooleanAttribute(WebCore::HTMLNames::readonlyAttr, value);
789 gulong webkit_dom_html_input_element_get_size(WebKitDOMHTMLInputElement* self)
791 WebCore::JSMainThreadNullState state;
792 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
793 WebCore::HTMLInputElement* item = WebKit::core(self);
794 gulong result = item->size();
798 void webkit_dom_html_input_element_set_size(WebKitDOMHTMLInputElement* self, gulong value, GError** error)
800 WebCore::JSMainThreadNullState state;
801 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
802 g_return_if_fail(!error || !*error);
803 WebCore::HTMLInputElement* item = WebKit::core(self);
804 auto result = item->setSize(value);
805 if (result.hasException()) {
806 auto description = WebCore::DOMException::description(result.releaseException().code());
807 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), description.legacyCode, description.name);
811 gchar* webkit_dom_html_input_element_get_src(WebKitDOMHTMLInputElement* self)
813 WebCore::JSMainThreadNullState state;
814 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
815 WebCore::HTMLInputElement* item = WebKit::core(self);
816 gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr));
820 void webkit_dom_html_input_element_set_src(WebKitDOMHTMLInputElement* self, const gchar* value)
822 WebCore::JSMainThreadNullState state;
823 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
824 g_return_if_fail(value);
825 WebCore::HTMLInputElement* item = WebKit::core(self);
826 WTF::String convertedValue = WTF::String::fromUTF8(value);
827 item->setAttributeWithoutSynchronization(WebCore::HTMLNames::srcAttr, convertedValue);
830 gchar* webkit_dom_html_input_element_get_input_type(WebKitDOMHTMLInputElement* self)
832 WebCore::JSMainThreadNullState state;
833 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
834 WebCore::HTMLInputElement* item = WebKit::core(self);
835 gchar* result = convertToUTF8String(item->type());
839 void webkit_dom_html_input_element_set_input_type(WebKitDOMHTMLInputElement* self, const gchar* value)
841 WebCore::JSMainThreadNullState state;
842 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
843 g_return_if_fail(value);
844 WebCore::HTMLInputElement* item = WebKit::core(self);
845 WTF::String convertedValue = WTF::String::fromUTF8(value);
846 item->setType(convertedValue);
849 gchar* webkit_dom_html_input_element_get_default_value(WebKitDOMHTMLInputElement* self)
851 WebCore::JSMainThreadNullState state;
852 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
853 WebCore::HTMLInputElement* item = WebKit::core(self);
854 gchar* result = convertToUTF8String(item->defaultValue());
858 void webkit_dom_html_input_element_set_default_value(WebKitDOMHTMLInputElement* self, const gchar* value)
860 WebCore::JSMainThreadNullState state;
861 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
862 g_return_if_fail(value);
863 WebCore::HTMLInputElement* item = WebKit::core(self);
864 WTF::String convertedValue = WTF::String::fromUTF8(value);
865 item->setDefaultValue(convertedValue);
868 gchar* webkit_dom_html_input_element_get_value(WebKitDOMHTMLInputElement* self)
870 WebCore::JSMainThreadNullState state;
871 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
872 WebCore::HTMLInputElement* item = WebKit::core(self);
873 gchar* result = convertToUTF8String(item->value());
877 void webkit_dom_html_input_element_set_value(WebKitDOMHTMLInputElement* self, const gchar* value)
879 WebCore::JSMainThreadNullState state;
880 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
881 g_return_if_fail(value);
882 WebCore::HTMLInputElement* item = WebKit::core(self);
883 WTF::String convertedValue = WTF::String::fromUTF8(value);
884 item->setValue(convertedValue);
887 gulong webkit_dom_html_input_element_get_width(WebKitDOMHTMLInputElement* self)
889 WebCore::JSMainThreadNullState state;
890 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
891 WebCore::HTMLInputElement* item = WebKit::core(self);
892 gulong result = item->width();
896 void webkit_dom_html_input_element_set_width(WebKitDOMHTMLInputElement* self, gulong value)
898 WebCore::JSMainThreadNullState state;
899 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
900 WebCore::HTMLInputElement* item = WebKit::core(self);
901 item->setWidth(value);
904 gboolean webkit_dom_html_input_element_get_will_validate(WebKitDOMHTMLInputElement* self)
906 WebCore::JSMainThreadNullState state;
907 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
908 WebCore::HTMLInputElement* item = WebKit::core(self);
909 gboolean result = item->willValidate();
913 gchar* webkit_dom_html_input_element_get_align(WebKitDOMHTMLInputElement* self)
915 WebCore::JSMainThreadNullState state;
916 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
917 WebCore::HTMLInputElement* item = WebKit::core(self);
918 gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr));
922 void webkit_dom_html_input_element_set_align(WebKitDOMHTMLInputElement* self, const gchar* value)
924 WebCore::JSMainThreadNullState state;
925 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
926 g_return_if_fail(value);
927 WebCore::HTMLInputElement* item = WebKit::core(self);
928 WTF::String convertedValue = WTF::String::fromUTF8(value);
929 item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue);
932 gchar* webkit_dom_html_input_element_get_use_map(WebKitDOMHTMLInputElement* self)
934 WebCore::JSMainThreadNullState state;
935 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
936 WebCore::HTMLInputElement* item = WebKit::core(self);
937 gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr));
941 void webkit_dom_html_input_element_set_use_map(WebKitDOMHTMLInputElement* self, const gchar* value)
943 WebCore::JSMainThreadNullState state;
944 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
945 g_return_if_fail(value);
946 WebCore::HTMLInputElement* item = WebKit::core(self);
947 WTF::String convertedValue = WTF::String::fromUTF8(value);
948 item->setAttributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr, convertedValue);
951 gchar* webkit_dom_html_input_element_get_capture_type(WebKitDOMHTMLInputElement* self)
953 #if ENABLE(MEDIA_CAPTURE)
954 WebCore::JSMainThreadNullState state;
955 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0);
956 WebCore::HTMLInputElement* item = WebKit::core(self);
957 gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::captureAttr));
961 WEBKIT_WARN_FEATURE_NOT_PRESENT("Media Capture")
963 #endif /* ENABLE(MEDIA_CAPTURE) */
966 void webkit_dom_html_input_element_set_capture_type(WebKitDOMHTMLInputElement* self, const gchar* value)
968 #if ENABLE(MEDIA_CAPTURE)
969 WebCore::JSMainThreadNullState state;
970 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
971 g_return_if_fail(value);
972 WebCore::HTMLInputElement* item = WebKit::core(self);
973 WTF::String convertedValue = WTF::String::fromUTF8(value);
974 item->setAttributeWithoutSynchronization(WebCore::HTMLNames::captureAttr, convertedValue);
978 WEBKIT_WARN_FEATURE_NOT_PRESENT("Media Capture")
979 #endif /* ENABLE(MEDIA_CAPTURE) */
982 gboolean webkit_dom_html_input_element_is_edited(WebKitDOMHTMLInputElement* input)
984 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(input), FALSE);
986 return WebKit::core(input)->lastChangeWasUserEdit();
989 gboolean webkit_dom_html_input_element_get_auto_filled(WebKitDOMHTMLInputElement* self)
991 g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE);
993 return WebKit::core(self)->isAutoFilled();
996 void webkit_dom_html_input_element_set_auto_filled(WebKitDOMHTMLInputElement* self, gboolean value)
998 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
1000 WebKit::core(self)->setAutoFilled(value);
1003 void webkit_dom_html_input_element_set_editing_value(WebKitDOMHTMLInputElement* self, const gchar* value)
1005 g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self));
1006 g_return_if_fail(value);
1008 WebKit::core(self)->setEditingValue(WTF::String::fromUTF8(value));