void webkit_dom_html_embed_element_set_width(WebKitDOMHTMLEmbedElement* self, glong value) { WebCore::JSMainThreadNullState state; g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); WebCore::HTMLEmbedElement* item = WebKit::core(self); item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); }
glong webkit_dom_html_embed_element_get_width(WebKitDOMHTMLEmbedElement* self) { WebCore::JSMainThreadNullState state; g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); WebCore::HTMLEmbedElement* item = WebKit::core(self); glong result = item->getIntegralAttribute(WebCore::HTMLNames::widthAttr); return result; }
gchar* webkit_dom_html_embed_element_get_type_attr(WebKitDOMHTMLEmbedElement* self) { WebCore::JSMainThreadNullState state; g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); WebCore::HTMLEmbedElement* item = WebKit::core(self); gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); return result; }
gchar* webkit_dom_html_embed_element_get_src(WebKitDOMHTMLEmbedElement* self) { WebCore::JSMainThreadNullState state; g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); WebCore::HTMLEmbedElement* item = WebKit::core(self); gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr)); return result; }
void webkit_dom_html_embed_element_set_type_attr(WebKitDOMHTMLEmbedElement* self, const gchar* value) { WebCore::JSMainThreadNullState state; g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); g_return_if_fail(value); WebCore::HTMLEmbedElement* item = WebKit::core(self); WTF::String convertedValue = WTF::String::fromUTF8(value); item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); }
// active_element_change_cb is called when the active element is changed, and // updates bookkeeping and the main process. static void active_element_change_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data) { Exten *exten = user_data; WebKitDOMDocument *document; if(WEBKIT_DOM_IS_DOCUMENT(target)) { document = WEBKIT_DOM_DOCUMENT(target); } else { // target is a window. g_object_get(target, "document", &document, NULL); } WebKitDOMElement *active = webkit_dom_document_get_active_element(document); if(active == NULL || active == exten->active) { return; } if(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(active)) { // The iframe document handles this, unless it isn't registered yet. // In this case, register it and call recursively. WebKitDOMDocument *doc = webkit_dom_html_iframe_element_get_content_document( WEBKIT_DOM_HTML_IFRAME_ELEMENT(active)); if(!g_hash_table_contains(exten->registered_documents, doc)) { frame_document_loaded(doc, exten); active_element_change_cb( WEBKIT_DOM_EVENT_TARGET(doc), NULL, exten); } return; } exten->active = active; exten->scroll_target = get_scroll_target(active); // Check whether the currently active element is an input element. // If this has changed, signal DBus. // // Input elements: // // WebKitDOMHTMLAppletElement // WebKitDOMHTMLEmbedElement // WebKitDOMHTMLInputElement // WebKitDOMHTMLTextAreaElement gboolean input_focus = ( WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(active) || WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(active) || WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(active) || WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(active)); if(input_focus != exten->last_input_focus) { exten->last_input_focus = input_focus; input_focus_changed( exten->page_id, input_focus, exten); } }
// adblock_before_load_cb is triggered when static void adblock_before_load_cb(WebKitDOMEventTarget *doc, WebKitDOMEvent *event, gpointer user_data) { WebKitDOMEventTarget *target = webkit_dom_event_get_target(event); guint64 flags = 0; gchar *uri = NULL; if(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(target)) { WebKitDOMHTMLLinkElement *e = WEBKIT_DOM_HTML_LINK_ELEMENT(target); gboolean isCSS = 0; isCSS |= g_strcmp0( webkit_dom_html_link_element_get_rel(e), "stylesheet") == 0; isCSS |= g_strcmp0( webkit_dom_html_link_element_get_type_attr(e), "text/css") == 0; if(!isCSS) { return; } uri = webkit_dom_html_link_element_get_href(e); flags |= ADBLOCK_STYLE_SHEET; } else if(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(target)) { WebKitDOMHTMLObjectElement *e = WEBKIT_DOM_HTML_OBJECT_ELEMENT(target); uri = webkit_dom_html_object_element_get_data(e); flags |= ADBLOCK_OBJECT; } else if(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(target)) { WebKitDOMHTMLEmbedElement *e = WEBKIT_DOM_HTML_EMBED_ELEMENT(target); uri = webkit_dom_html_embed_element_get_src(e); flags |= ADBLOCK_OBJECT; } else if(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(target)) { WebKitDOMHTMLImageElement *e = WEBKIT_DOM_HTML_IMAGE_ELEMENT(target); uri = webkit_dom_html_image_element_get_src(e); flags |= ADBLOCK_IMAGE; } else if(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(target)) { WebKitDOMHTMLScriptElement *e = WEBKIT_DOM_HTML_SCRIPT_ELEMENT(target); uri = webkit_dom_html_script_element_get_src(e); flags |= ADBLOCK_SCRIPT; } else if(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(target)) { WebKitDOMHTMLIFrameElement *e = WEBKIT_DOM_HTML_IFRAME_ELEMENT(target); uri = webkit_dom_html_iframe_element_get_src(e); flags |= ADBLOCK_SUBDOCUMENT; if(uri_is_blocked(uri, flags, user_data)) { webkit_dom_event_prevent_default(event); } else { frame_document_loaded( webkit_dom_html_iframe_element_get_content_document(e), user_data); } g_free(uri); return; } if(uri == NULL) { return; } if(uri_is_blocked(uri, flags, user_data)) { webkit_dom_event_prevent_default(event); } g_free(uri); }