Changeset 170524 in webkit


Ignore:
Timestamp:
Jun 27, 2014 12:27:28 AM (10 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Expose getter and setter functions for attributes named type
https://bugs.webkit.org/show_bug.cgi?id=134300

Reviewed by Martin Robinson.

We skip those because the getter conflicts with the get_type()
function of all GObjects. We should use a different name for them. As
a general rule we use the last word of the class name, something like:

webkit_dom_blob_get_type() -> webkit_dom_blob_get_blob_type()
webkit_dom_event_get_type() -> webkit_dom_event_get_event_type()

It's consistent with other existing DOM methods like
webkit_dom_xpath_result_get_result_type() or webkit_dom_css_value_get_css_value_type().
This patch also adds some exceptions for particular cases.

  • bindings/gobject/webkitdom.symbols: Add new public symbols.
  • bindings/scripts/CodeGeneratorGObject.pm:

(GetFunctionSigName): Helper function to return the function name
that takes into account all exceptions when generating getters and
setters of attributes named type. Otherwise the name is returned unmodified.
(GenerateFunction): Use GetFunctionSigName().
(GenerateFunctions): Do not skip functions for type attributes.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r170523 r170524  
     12014-06-26  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Expose getter and setter functions for attributes named type
     4        https://bugs.webkit.org/show_bug.cgi?id=134300
     5
     6        Reviewed by Martin Robinson.
     7
     8        We skip those because the getter conflicts with the get_type()
     9        function of all GObjects. We should use a different name for them. As
     10        a general rule we use the last word of the class name, something like:
     11
     12          webkit_dom_blob_get_type() -> webkit_dom_blob_get_blob_type()
     13          webkit_dom_event_get_type() -> webkit_dom_event_get_event_type()
     14
     15        It's consistent with other existing DOM methods like
     16        webkit_dom_xpath_result_get_result_type() or webkit_dom_css_value_get_css_value_type().
     17        This patch also adds some exceptions for particular cases.
     18
     19        * bindings/gobject/webkitdom.symbols: Add new public symbols.
     20        * bindings/scripts/CodeGeneratorGObject.pm:
     21        (GetFunctionSigName): Helper function to return the function name
     22        that takes into account all exceptions when generating getters and
     23        setters of attributes named type. Otherwise the name is returned unmodified.
     24        (GenerateFunction): Use GetFunctionSigName().
     25        (GenerateFunctions): Do not skip functions for type attributes.
     26
    1272014-06-27  Sungmann Cho  <sungmann.cho@navercorp.com>
    228
  • trunk/Source/WebCore/bindings/gobject/webkitdom.symbols

    r170475 r170524  
    240240WebKitDOMText* webkit_dom_text_replace_whole_text(WebKitDOMText*, const gchar*, GError**)
    241241GType webkit_dom_html_anchor_element_get_type(void)
     242gchar* webkit_dom_html_anchor_element_get_type_attr(WebKitDOMHTMLAnchorElement*)
     243void webkit_dom_html_anchor_element_set_type_attr(WebKitDOMHTMLAnchorElement*, const gchar*)
    242244gchar* webkit_dom_html_anchor_element_get_name(WebKitDOMHTMLAnchorElement*)
    243245void webkit_dom_html_anchor_element_set_name(WebKitDOMHTMLAnchorElement*, const gchar*)
     
    345347void webkit_dom_html_body_element_set_v_link(WebKitDOMHTMLBodyElement*, const gchar*)
    346348GType webkit_dom_html_button_element_get_type(void)
     349gchar* webkit_dom_html_button_element_get_button_type(WebKitDOMHTMLButtonElement*)
     350void webkit_dom_html_button_element_set_button_type(WebKitDOMHTMLButtonElement*, const gchar*)
    347351gboolean webkit_dom_html_button_element_get_autofocus(WebKitDOMHTMLButtonElement*)
    348352gboolean webkit_dom_html_button_element_get_disabled(WebKitDOMHTMLButtonElement*)
     
    423427void webkit_dom_html_element_set_title(WebKitDOMHTMLElement*, const gchar*)
    424428GType webkit_dom_html_embed_element_get_type(void)
     429gchar* webkit_dom_html_embed_element_get_type_attr(WebKitDOMHTMLEmbedElement*)
     430void webkit_dom_html_embed_element_set_type_attr(WebKitDOMHTMLEmbedElement*, const gchar*)
    425431gchar* webkit_dom_html_embed_element_get_align(WebKitDOMHTMLEmbedElement*)
    426432glong webkit_dom_html_embed_element_get_height(WebKitDOMHTMLEmbedElement*)
     
    561567void webkit_dom_html_image_element_set_width(WebKitDOMHTMLImageElement*, glong)
    562568GType webkit_dom_html_input_element_get_type(void)
     569gchar* webkit_dom_html_input_element_get_input_type(WebKitDOMHTMLInputElement*)
     570void webkit_dom_html_input_element_set_input_type(WebKitDOMHTMLInputElement*, const gchar*)
    563571gchar* webkit_dom_html_input_element_get_accept(WebKitDOMHTMLInputElement*)
    564572gchar* webkit_dom_html_input_element_get_align(WebKitDOMHTMLInputElement*)
     
    605613gboolean webkit_dom_html_input_element_is_edited(WebKitDOMHTMLInputElement*)
    606614GType webkit_dom_html_li_element_get_type(void)
     615gchar* webkit_dom_html_li_element_get_type_attr(WebKitDOMHTMLLIElement*)
     616void webkit_dom_html_li_element_set_type_attr(WebKitDOMHTMLLIElement*, const gchar*)
    607617glong webkit_dom_html_li_element_get_value(WebKitDOMHTMLLIElement*)
    608618void webkit_dom_html_li_element_set_value(WebKitDOMHTMLLIElement*, glong)
     
    616626void webkit_dom_html_legend_element_set_align(WebKitDOMHTMLLegendElement*, const gchar*)
    617627GType webkit_dom_html_link_element_get_type(void)
     628gchar* webkit_dom_html_link_element_get_type_attr(WebKitDOMHTMLLinkElement*)
     629void webkit_dom_html_link_element_set_type_attr(WebKitDOMHTMLLinkElement*, const gchar*)
    618630gchar* webkit_dom_html_link_element_get_charset(WebKitDOMHTMLLinkElement*)
    619631gboolean webkit_dom_html_link_element_get_disabled(WebKitDOMHTMLLinkElement*)
     
    658670void webkit_dom_html_mod_element_set_date_time(WebKitDOMHTMLModElement*, const gchar*)
    659671GType webkit_dom_html_o_list_element_get_type(void)
     672gchar* webkit_dom_html_o_list_element_get_type_attr(WebKitDOMHTMLOListElement*)
     673void webkit_dom_html_o_list_element_set_type_attr(WebKitDOMHTMLOListElement*, const gchar*)
    660674gboolean webkit_dom_html_o_list_element_get_compact(WebKitDOMHTMLOListElement*)
    661675glong webkit_dom_html_o_list_element_get_start(WebKitDOMHTMLOListElement*)
     
    663677void webkit_dom_html_o_list_element_set_start(WebKitDOMHTMLOListElement*, glong)
    664678GType webkit_dom_html_object_element_get_type(void)
     679gchar* webkit_dom_html_object_element_get_type_attr(WebKitDOMHTMLObjectElement*)
     680void webkit_dom_html_object_element_set_type_attr(WebKitDOMHTMLObjectElement*, const gchar*)
    665681gchar* webkit_dom_html_object_element_get_align(WebKitDOMHTMLObjectElement*)
    666682gchar* webkit_dom_html_object_element_get_archive(WebKitDOMHTMLObjectElement*)
     
    723739void webkit_dom_html_paragraph_element_set_align(WebKitDOMHTMLParagraphElement*, const gchar*)
    724740GType webkit_dom_html_param_element_get_type(void)
     741gchar* webkit_dom_html_param_element_get_type_attr(WebKitDOMHTMLParamElement*)
     742void webkit_dom_html_param_element_set_type_attr(WebKitDOMHTMLParamElement*, const gchar*)
    725743gchar* webkit_dom_html_param_element_get_name(WebKitDOMHTMLParamElement*)
    726744gchar* webkit_dom_html_param_element_get_value_type(WebKitDOMHTMLParamElement*)
     
    738756void webkit_dom_html_quote_element_set_cite(WebKitDOMHTMLQuoteElement*, const gchar*)
    739757GType webkit_dom_html_script_element_get_type(void)
     758gchar* webkit_dom_html_script_element_get_type_attr(WebKitDOMHTMLScriptElement*)
     759void webkit_dom_html_script_element_set_type_attr(WebKitDOMHTMLScriptElement*, const gchar*)
    740760gchar* webkit_dom_html_script_element_get_charset(WebKitDOMHTMLScriptElement*)
    741761gboolean webkit_dom_html_script_element_get_defer(WebKitDOMHTMLScriptElement*)
     
    750770void webkit_dom_html_script_element_set_text(WebKitDOMHTMLScriptElement*, const gchar*)
    751771GType webkit_dom_html_select_element_get_type(void)
     772gchar* webkit_dom_html_select_element_get_select_type(WebKitDOMHTMLSelectElement*)
    752773void webkit_dom_html_select_element_add(WebKitDOMHTMLSelectElement*, WebKitDOMHTMLElement*, WebKitDOMHTMLElement*, GError**)
    753774gboolean webkit_dom_html_select_element_get_autofocus(WebKitDOMHTMLSelectElement*)
     
    774795void webkit_dom_html_select_element_set_value(WebKitDOMHTMLSelectElement*, const gchar*)
    775796GType webkit_dom_html_style_element_get_type(void)
     797gchar* webkit_dom_html_style_element_get_type_attr(WebKitDOMHTMLStyleElement*)
     798void webkit_dom_html_style_element_set_type_attr(WebKitDOMHTMLStyleElement*, const gchar*)
    776799gboolean webkit_dom_html_style_element_get_disabled(WebKitDOMHTMLStyleElement*)
    777800gchar* webkit_dom_html_style_element_get_media(WebKitDOMHTMLStyleElement*)
     
    887910void webkit_dom_html_table_section_element_set_v_align(WebKitDOMHTMLTableSectionElement*, const gchar*)
    888911GType webkit_dom_html_text_area_element_get_type(void)
     912gchar* webkit_dom_html_text_area_element_get_area_type(WebKitDOMHTMLTextAreaElement*)
    889913gboolean webkit_dom_html_text_area_element_get_autofocus(WebKitDOMHTMLTextAreaElement*)
    890914glong webkit_dom_html_text_area_element_get_cols(WebKitDOMHTMLTextAreaElement*)
     
    916940void webkit_dom_html_title_element_set_text(WebKitDOMHTMLTitleElement*, const gchar*)
    917941GType webkit_dom_html_u_list_element_get_type(void)
     942gchar* webkit_dom_html_u_list_element_get_type_attr(WebKitDOMHTMLUListElement*)
     943void webkit_dom_html_u_list_element_set_type_attr(WebKitDOMHTMLUListElement*, const gchar*)
    918944gboolean webkit_dom_html_u_list_element_get_compact(WebKitDOMHTMLUListElement*)
    919945void webkit_dom_html_u_list_element_set_compact(WebKitDOMHTMLUListElement*, gboolean)
     
    922948WebKitDOMStyleSheet* webkit_dom_style_sheet_list_item(WebKitDOMStyleSheetList*, gulong)
    923949GType webkit_dom_css_rule_get_type(void)
     950WEBKIT_DOM_CSS_RULE_UNKNOWN_RULE
     951WEBKIT_DOM_CSS_RULE_STYLE_RULE
     952WEBKIT_DOM_CSS_RULE_CHARSET_RULE
     953WEBKIT_DOM_CSS_RULE_IMPORT_RULE
     954WEBKIT_DOM_CSS_RULE_MEDIA_RULE
     955WEBKIT_DOM_CSS_RULE_FONT_FACE_RULE
     956WEBKIT_DOM_CSS_RULE_PAGE_RULE
     957gushort webkit_dom_css_rule_get_rule_type(WebKitDOMCSSRule*)
    924958gchar* webkit_dom_css_rule_get_css_text(WebKitDOMCSSRule*)
    925959WebKitDOMCSSRule* webkit_dom_css_rule_get_parent_rule(WebKitDOMCSSRule*)
     
    942976void webkit_dom_css_style_declaration_set_property(WebKitDOMCSSStyleDeclaration*, const gchar*, const gchar*, const gchar*, GError**)
    943977GType webkit_dom_style_sheet_get_type(void)
     978gchar* webkit_dom_style_sheet_get_content_type(WebKitDOMStyleSheet*)
    944979gboolean webkit_dom_style_sheet_get_disabled(WebKitDOMStyleSheet*)
    945980gchar* webkit_dom_style_sheet_get_href(WebKitDOMStyleSheet*)
     
    9701005WEBKIT_DOM_EVENT_AT_TARGET
    9711006WEBKIT_DOM_EVENT_BUBBLING_PHASE
     1007WEBKIT_DOM_EVENT_MOUSEDOWN
     1008WEBKIT_DOM_EVENT_MOUSEUP
     1009WEBKIT_DOM_EVENT_MOUSEOVER
     1010WEBKIT_DOM_EVENT_MOUSEOUT
     1011WEBKIT_DOM_EVENT_MOUSEMOVE
     1012WEBKIT_DOM_EVENT_MOUSEDRAG
     1013WEBKIT_DOM_EVENT_CLICK
     1014WEBKIT_DOM_EVENT_DBLCLICK
     1015WEBKIT_DOM_EVENT_KEYDOWN
     1016WEBKIT_DOM_EVENT_KEYUP
     1017WEBKIT_DOM_EVENT_KEYPRESS
     1018WEBKIT_DOM_EVENT_DRAGDROP
     1019WEBKIT_DOM_EVENT_FOCUS
     1020WEBKIT_DOM_EVENT_BLUR
     1021WEBKIT_DOM_EVENT_SELECT
     1022WEBKIT_DOM_EVENT_CHANGE
     1023gchar* webkit_dom_event_get_event_type(WebKitDOMEvent*)
    9721024gboolean webkit_dom_event_get_bubbles(WebKitDOMEvent*)
    9731025gboolean webkit_dom_event_get_cancelable(WebKitDOMEvent*)
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm

    r170475 r170524  
    969969}
    970970
     971sub GetFunctionSignatureName {
     972    my ($interfaceName, $function) = @_;
     973
     974    my $signatureName = decamelize($function->signature->name);
     975
     976    return $signatureName if $signatureName ne "type";
     977
     978    # For HTML type attribute use type_attr.
     979    # Example: webkit_dom_html_link_element_get_type_attr()
     980    my $contentAttributeName = $codeGenerator->ContentAttributeName(\%implIncludes, $interfaceName, $function);
     981    if ($contentAttributeName) {
     982        return "type_attr" if $contentAttributeName eq "WebCore::HTMLNames::typeAttr";
     983    }
     984
     985    # For methods returning a MIME type use content_type.
     986    # Examples: webkit_dom_style_sheet_get_content_type(), webkit_dom_dom_mime_type_get_content_type()
     987    if ($interfaceName eq "StyleSheet" || $interfaceName eq "DOMMimeType") {
     988        return "content_type";
     989    }
     990
     991    # For HTMLFieldSet use field_set_type.
     992    # Example: webkit_dom_html_field_set_element_get_field_set_type()
     993    if ($interfaceName eq "HTMLFieldSet") {
     994        return "field_set_type";
     995    }
     996
     997    # For any other cases use the last word of the interface name.
     998    # Examples: webkit_dom_blob_get_blob_type(), webkit_dom_event_get_event_type()
     999    my @nameTokens = split('_', decamelize($interfaceName));
     1000    my $name = $nameTokens[-1];
     1001
     1002    # If the last word is element and there are more words, use the previous one.
     1003    # Example: webkit_dom_html_button_element_get_button_type()
     1004    if (scalar(@nameTokens) > 1 && $name eq "element") {
     1005        $name = $nameTokens[-2];
     1006    }
     1007
     1008    return "${name}_type";
     1009}
     1010
    9711011sub GenerateFunction {
    9721012    my ($object, $interfaceName, $function, $prefix, $parentNode) = @_;
     
    9791019
    9801020    my $functionSigType = $prefix eq "set_" ? "void" : $function->signature->type;
    981     my $functionName = "webkit_dom_" . $decamelize . "_" . $prefix . decamelize($function->signature->name);
     1021    my $functionSigName = GetFunctionSignatureName($interfaceName, $function);
     1022    my $functionName = "webkit_dom_" . $decamelize . "_" . $prefix . $functionSigName;
    9821023    my $returnType = GetGlibTypeName($functionSigType);
    9831024    my $returnValueIsGDOMType = IsGDOMClassType($functionSigType);
     
    13341375        }
    13351376
    1336         if ($attribute->signature->name eq "type") {
    1337             # This will conflict with the get_type() function we define to return a GType
    1338             # according to GObject conventions.  Skip this for now.
    1339             next TOP;
    1340         }
    1341            
    13421377        my $attrNameUpper = $codeGenerator->WK_ucfirst($attribute->signature->name);
    13431378        my $getname = "get${attrNameUpper}";
Note: See TracChangeset for help on using the changeset viewer.