Changeset 111399 in webkit


Ignore:
Timestamp:
Mar 20, 2012 8:38:40 AM (12 years ago)
Author:
Martin Robinson
Message:

[GTK] [WK2] Add javascript clipboard functionality settings to WebKit2 GTK+ API.
https://bugs.webkit.org/show_bug.cgi?id=80981

Patch by Antaryami Pandia <antaryami.pandia@motorola.com> on 2012-03-20
Reviewed by Martin Robinson.

Add WebSettings to enable/disable javascript clipboard functionality.

  • UIProcess/API/gtk/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_javascript_can_access_clipboard):
(webkit_settings_set_javascript_can_access_clipboard):

  • UIProcess/API/gtk/WebKitSettings.h:
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
  • UIProcess/API/gtk/tests/TestWebKitSettings.cpp:

(testWebKitSettings):

Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r111361 r111399  
     12012-03-20  Antaryami Pandia  <antaryami.pandia@motorola.com>
     2
     3        [GTK] [WK2] Add javascript clipboard functionality settings to WebKit2 GTK+ API.
     4        https://bugs.webkit.org/show_bug.cgi?id=80981
     5
     6        Reviewed by Martin Robinson.
     7
     8        Add WebSettings to enable/disable javascript clipboard functionality.
     9
     10        * UIProcess/API/gtk/WebKitSettings.cpp:
     11        (webKitSettingsSetProperty):
     12        (webKitSettingsGetProperty):
     13        (webkit_settings_class_init):
     14        (webkit_settings_get_javascript_can_access_clipboard):
     15        (webkit_settings_set_javascript_can_access_clipboard):
     16        * UIProcess/API/gtk/WebKitSettings.h:
     17        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
     18        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
     19        (testWebKitSettings):
     20
    1212012-03-19  Adam Barth  <abarth@webkit.org>
    222
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp

    r109229 r111399  
    106106    PROP_ENABLE_WEBAUDIO,
    107107    PROP_ENABLE_WEBGL,
    108     PROP_ZOOM_TEXT_ONLY
     108    PROP_ZOOM_TEXT_ONLY,
     109    PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD
    109110};
    110111
     
    216217        webkit_settings_set_zoom_text_only(settings, g_value_get_boolean(value));
    217218        break;
     219    case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD:
     220        webkit_settings_set_javascript_can_access_clipboard(settings, g_value_get_boolean(value));
     221        break;
    218222    default:
    219223        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
     
    328332    case PROP_ZOOM_TEXT_ONLY:
    329333        g_value_set_boolean(value, webkit_settings_get_zoom_text_only(settings));
     334        break;
     335    case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD:
     336        g_value_set_boolean(value, webkit_settings_get_javascript_can_access_clipboard(settings));
    330337        break;
    331338    default:
     
    841848                                                         readWriteConstructParamFlags));
    842849
     850    /**
     851     * WebKitSettings:javascript-can-access-clipboard:
     852     *
     853     * Whether JavaScript can access the clipboard. The default value is %FALSE. If
     854     * set to %TRUE, document.execCommand() allows cut, copy and paste commands.
     855     *
     856     */
     857    g_object_class_install_property(gObjectClass,
     858                                    PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD,
     859                                    g_param_spec_boolean("javascript-can-access-clipboard",
     860                                                         _("JavaScript can access clipboard"),
     861                                                         _("Whether JavaScript can access Clipboard"),
     862                                                         FALSE,
     863                                                         readWriteConstructParamFlags));
     864
    843865    g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
    844866}
     
    21342156}
    21352157
     2158/**
     2159 * webkit_settings_get_javascript_can_access_clipboard:
     2160 * @settings: a #WebKitSettings
     2161 *
     2162 * Get the #WebKitSettings:javascript-can-access-clipboard property.
     2163 *
     2164 * Returns: %TRUE If javascript-can-access-clipboard is enabled or %FALSE otherwise.
     2165 */
     2166gboolean webkit_settings_get_javascript_can_access_clipboard(WebKitSettings* settings)
     2167{
     2168    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
     2169
     2170    return WKPreferencesGetJavaScriptCanAccessClipboard(settings->priv->preferences.get())
     2171            && WKPreferencesGetDOMPasteAllowed(settings->priv->preferences.get());
     2172}
     2173
     2174/**
     2175 * webkit_settings_set_javascript_can_access_clipboard:
     2176 * @settings: a #WebKitSettings
     2177 * @enabled: Value to be set
     2178 *
     2179 * Set the #WebKitSettings:javascript-can-access-clipboard property.
     2180 */
     2181void webkit_settings_set_javascript_can_access_clipboard(WebKitSettings* settings, gboolean enabled)
     2182{
     2183    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     2184
     2185    WebKitSettingsPrivate* priv = settings->priv;
     2186    bool currentValue = WKPreferencesGetJavaScriptCanAccessClipboard(priv->preferences.get())
     2187            && WKPreferencesGetDOMPasteAllowed(priv->preferences.get());
     2188    if (currentValue == enabled)
     2189        return;
     2190
     2191    WKPreferencesSetJavaScriptCanAccessClipboard(priv->preferences.get(), enabled);
     2192    WKPreferencesSetDOMPasteAllowed(priv->preferences.get(), enabled);
     2193
     2194    g_object_notify(G_OBJECT(settings), "javascript-can-access-clipboard");
     2195}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h

    r109229 r111399  
    315315webkit_settings_get_zoom_text_only                             (WebKitSettings *settings);
    316316
     317WEBKIT_API gboolean
     318webkit_settings_get_javascript_can_access_clipboard            (WebKitSettings *settings);
     319
     320WEBKIT_API void
     321webkit_settings_set_javascript_can_access_clipboard            (WebKitSettings *settings,
     322                                                                gboolean        enabled);
     323
    317324G_END_DECLS
    318325
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt

    r110714 r111399  
    233233webkit_settings_get_zoom_text_only
    234234webkit_settings_set_zoom_text_only
     235webkit_settings_get_javascript_can_access_clipboard
     236webkit_settings_set_javascript_can_access_clipboard
    235237
    236238<SUBSECTION Standard>
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp

    r109229 r111399  
    205205    g_assert(webkit_settings_get_zoom_text_only(settings));
    206206
     207    // By default, JavaScript cannot access the clipboard.
     208    g_assert(!webkit_settings_get_javascript_can_access_clipboard(settings));
     209    webkit_settings_set_javascript_can_access_clipboard(settings, TRUE);
     210    g_assert(webkit_settings_get_javascript_can_access_clipboard(settings));
     211
    207212    g_object_unref(G_OBJECT(settings));
    208213}
Note: See TracChangeset for help on using the changeset viewer.