static void webkit_dom_html_embed_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) { WebKitDOMHTMLEmbedElement* self = WEBKIT_DOM_HTML_EMBED_ELEMENT(object); switch (propertyId) { case PROP_ALIGN: g_value_take_string(value, webkit_dom_html_embed_element_get_align(self)); break; case PROP_HEIGHT: g_value_set_long(value, webkit_dom_html_embed_element_get_height(self)); break; case PROP_NAME: g_value_take_string(value, webkit_dom_html_embed_element_get_name(self)); break; case PROP_SRC: g_value_take_string(value, webkit_dom_html_embed_element_get_src(self)); break; case PROP_TYPE: g_value_take_string(value, webkit_dom_html_embed_element_get_type_attr(self)); break; case PROP_WIDTH: g_value_set_long(value, webkit_dom_html_embed_element_get_width(self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); break; } }
// 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); }