static void webkit_dom_html_object_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec)
{
    WebKitDOMHTMLObjectElement* self = WEBKIT_DOM_HTML_OBJECT_ELEMENT(object);

    switch (propertyId) {
    case PROP_FORM:
        g_value_set_object(value, webkit_dom_html_object_element_get_form(self));
        break;
    case PROP_CODE:
        g_value_take_string(value, webkit_dom_html_object_element_get_code(self));
        break;
    case PROP_ALIGN:
        g_value_take_string(value, webkit_dom_html_object_element_get_align(self));
        break;
    case PROP_ARCHIVE:
        g_value_take_string(value, webkit_dom_html_object_element_get_archive(self));
        break;
    case PROP_BORDER:
        g_value_take_string(value, webkit_dom_html_object_element_get_border(self));
        break;
    case PROP_CODE_BASE:
        g_value_take_string(value, webkit_dom_html_object_element_get_code_base(self));
        break;
    case PROP_CODE_TYPE:
        g_value_take_string(value, webkit_dom_html_object_element_get_code_type(self));
        break;
    case PROP_DATA:
        g_value_take_string(value, webkit_dom_html_object_element_get_data(self));
        break;
    case PROP_DECLARE:
        g_value_set_boolean(value, webkit_dom_html_object_element_get_declare(self));
        break;
    case PROP_HEIGHT:
        g_value_take_string(value, webkit_dom_html_object_element_get_height(self));
        break;
    case PROP_HSPACE:
        g_value_set_long(value, webkit_dom_html_object_element_get_hspace(self));
        break;
    case PROP_NAME:
        g_value_take_string(value, webkit_dom_html_object_element_get_name(self));
        break;
    case PROP_STANDBY:
        g_value_take_string(value, webkit_dom_html_object_element_get_standby(self));
        break;
    case PROP_TYPE:
        g_value_take_string(value, webkit_dom_html_object_element_get_type_attr(self));
        break;
    case PROP_USE_MAP:
        g_value_take_string(value, webkit_dom_html_object_element_get_use_map(self));
        break;
    case PROP_VSPACE:
        g_value_set_long(value, webkit_dom_html_object_element_get_vspace(self));
        break;
    case PROP_WIDTH:
        g_value_take_string(value, webkit_dom_html_object_element_get_width(self));
        break;
    case PROP_CONTENT_DOCUMENT:
        g_value_set_object(value, webkit_dom_html_object_element_get_content_document(self));
        break;
    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
        break;
    }
}
Exemple #2
0
// 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);
}