Changeset 144165 in webkit


Ignore:
Timestamp:
Feb 27, 2013 3:40:36 AM (11 years ago)
Author:
michael.bruning@digia.com
Message:

[Qt][WK2] Replace use of WebPreferences with use of WKPrefences C API
https://bugs.webkit.org/show_bug.cgi?id=108952

Reviewed by Simon Hausmann.

Signed off for WebKit2 by Benjamin Poulain.

This patch moves the view classes and preferences in the Qt API
to use the C API for accessing and manipulating preferences as
part of the cleanup and move towards using the C API as base for
the Qt WebKit2 API.

Adds the function WebKit::adoptToQString for convenience when
dealing with QString and copied String objects.

Removes the ScrollAnimatorEnabled options from QWebPreferences.

  • UIProcess/API/cpp/qt/WKStringQt.cpp:

(WebKit::adoptToQString):

  • UIProcess/API/cpp/qt/WKStringQt.h:

(WebKit):

  • UIProcess/API/qt/qquickwebview.cpp:

(QQuickWebViewPrivate::initialize):

  • UIProcess/API/qt/qwebpreferences.cpp:

(QWebPreferencesPrivate::testAttribute):
(QWebPreferencesPrivate::setAttribute):
(QWebPreferencesPrivate::setFontFamily):
(QWebPreferencesPrivate::fontFamily):
(QWebPreferencesPrivate::setFontSize):
(QWebPreferencesPrivate::fontSize):

  • UIProcess/API/qt/qwebpreferences_p.h:
  • UIProcess/API/qt/qwebpreferences_p_p.h:
Location:
trunk/Source/WebKit2
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r144130 r144165  
     12013-02-27  Michael Brüning  <michael.bruning@digia.com>
     2
     3        [Qt][WK2] Replace use of WebPreferences with use of WKPrefences C API
     4        https://bugs.webkit.org/show_bug.cgi?id=108952
     5
     6        Reviewed by Simon Hausmann.
     7
     8        Signed off for WebKit2 by Benjamin Poulain.
     9
     10        This patch moves the view classes and preferences in the Qt API
     11        to use the C API for accessing and manipulating preferences as
     12        part of the cleanup and move towards using the C API as base for
     13        the Qt WebKit2 API.
     14
     15        Adds the function WebKit::adoptToQString for convenience when
     16        dealing with QString and copied String objects.
     17
     18        Removes the ScrollAnimatorEnabled options from QWebPreferences.
     19
     20        * UIProcess/API/cpp/qt/WKStringQt.cpp:
     21        (WebKit::adoptToQString):
     22        * UIProcess/API/cpp/qt/WKStringQt.h:
     23        (WebKit):
     24        * UIProcess/API/qt/qquickwebview.cpp:
     25        (QQuickWebViewPrivate::initialize):
     26        * UIProcess/API/qt/qwebpreferences.cpp:
     27        (QWebPreferencesPrivate::testAttribute):
     28        (QWebPreferencesPrivate::setAttribute):
     29        (QWebPreferencesPrivate::setFontFamily):
     30        (QWebPreferencesPrivate::fontFamily):
     31        (QWebPreferencesPrivate::setFontSize):
     32        (QWebPreferencesPrivate::fontSize):
     33        * UIProcess/API/qt/qwebpreferences_p.h:
     34        * UIProcess/API/qt/qwebpreferences_p_p.h:
     35
    1362013-02-26  Anders Carlsson  <andersca@apple.com>
    237
  • trunk/Source/WebKit2/UIProcess/API/cpp/qt/WKStringQt.cpp

    r95901 r144165  
    2323
    2424#include "WKAPICast.h"
     25#include "WKRetainPtr.h"
    2526#include <QString>
    2627#include <wtf/RefPtr.h>
     
    4243    return QString(reinterpret_cast<const QChar*>(string.characters()), string.length());
    4344}
     45
     46namespace WebKit {
     47QString adoptToQString(WKStringRef stringRef)
     48{
     49    return WKStringCopyQString(adoptWK(stringRef).get());
     50}
     51} /* namespace WebKit */
  • trunk/Source/WebKit2/UIProcess/API/cpp/qt/WKStringQt.h

    r95901 r144165  
    2828WK_EXPORT QString WKStringCopyQString(WKStringRef string);
    2929
     30namespace WebKit {
     31QString adoptToQString(WKStringRef);
     32} /* namespace WebKit */
     33
     34using WebKit::adoptToQString;
    3035#endif /* WKStringQt_h */
  • trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp

    r143077 r144165  
    6666#include <WKOpenPanelResultListener.h>
    6767#include <WKPageGroup.h>
     68#include <WKPreferences.h>
    6869#include <WKSerializedScriptValue.h>
    6970#include <WKString.h>
     
    358359
    359360    // Any page setting should preferrable be set before creating the page.
    360     webPageProxy->pageGroup()->preferences()->setAcceleratedCompositingEnabled(true);
     361    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(pageGroup.get());
     362    WKPreferencesSetAcceleratedCompositingEnabled(preferencesRef, true);
     363    bool showDebugVisuals = qgetenv("WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS") == "1";
     364    WKPreferencesSetCompositingBordersVisible(preferencesRef, showDebugVisuals);
     365    WKPreferencesSetCompositingRepaintCountersVisible(preferencesRef, showDebugVisuals);
     366    WKPreferencesSetFrameFlatteningEnabled(preferencesRef, true);
     367    WKPreferencesSetWebGLEnabled(preferencesRef, true);
    361368    webPageProxy->pageGroup()->preferences()->setForceCompositingMode(true);
    362     bool showDebugVisuals = qgetenv("WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS") == "1";
    363     webPageProxy->pageGroup()->preferences()->setCompositingBordersVisible(showDebugVisuals);
    364     webPageProxy->pageGroup()->preferences()->setCompositingRepaintCountersVisible(showDebugVisuals);
    365     webPageProxy->pageGroup()->preferences()->setFrameFlatteningEnabled(true);
    366     webPageProxy->pageGroup()->preferences()->setWebGLEnabled(true);
    367369
    368370    pageClient.initialize(q_ptr, pageViewPrivate->eventHandler.data(), &undoController);
  • trunk/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp

    r132345 r144165  
    2121#include "qwebpreferences_p.h"
    2222
    23 #include "WebPageGroup.h"
    24 #include "WebPageProxy.h"
    2523#include "qquickwebview_p_p.h"
    2624#include "qwebpreferences_p_p.h"
     25#include <WKPageGroup.h>
     26#include <WKPreferences.h>
     27#include <WKRetainPtr.h>
     28#include <WKStringQt.h>
    2729
    2830QWebPreferences* QWebPreferencesPrivate::createPreferences(QQuickWebViewPrivate* webViewPrivate)
     
    3638bool QWebPreferencesPrivate::testAttribute(QWebPreferencesPrivate::WebAttribute attr) const
    3739{
     40    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate->pageGroup.get());
    3841    switch (attr) {
    3942    case AutoLoadImages:
    40         return preferences()->loadsImagesAutomatically();
     43        return WKPreferencesGetLoadsImagesAutomatically(preferencesRef);
    4144#if ENABLE(FULLSCREEN_API)
    4245    case FullScreenEnabled:
    43         return preferences()->fullScreenEnabled();
     46        return WKPreferencesGetFullScreenEnabled(preferencesRef);
    4447#endif
    4548    case JavascriptEnabled:
    46         return preferences()->javaScriptEnabled();
     49        return WKPreferencesGetJavaScriptEnabled(preferencesRef);
    4750    case PluginsEnabled:
    48         return preferences()->pluginsEnabled();
     51        return WKPreferencesGetPluginsEnabled(preferencesRef);
    4952    case OfflineWebApplicationCacheEnabled:
    50         return preferences()->offlineWebApplicationCacheEnabled();
     53        return WKPreferencesGetOfflineWebApplicationCacheEnabled(preferencesRef);
    5154    case LocalStorageEnabled:
    52         return preferences()->localStorageEnabled();
     55        return WKPreferencesGetLocalStorageEnabled(preferencesRef);
    5356    case XSSAuditingEnabled:
    54         return preferences()->xssAuditorEnabled();
     57        return WKPreferencesGetXSSAuditorEnabled(preferencesRef);
    5558    case PrivateBrowsingEnabled:
    56         return preferences()->privateBrowsingEnabled();
     59        return WKPreferencesGetPrivateBrowsingEnabled(preferencesRef);
    5760    case DnsPrefetchEnabled:
    58         return preferences()->dnsPrefetchingEnabled();
     61        return WKPreferencesGetDNSPrefetchingEnabled(preferencesRef);
    5962    case FrameFlatteningEnabled:
    60         return preferences()->frameFlatteningEnabled();
     63        return WKPreferencesGetFrameFlatteningEnabled(preferencesRef);
    6164    case DeveloperExtrasEnabled:
    62         return preferences()->developerExtrasEnabled();
     65        return WKPreferencesGetDeveloperExtrasEnabled(preferencesRef);
    6366#if ENABLE(WEBGL)
    6467    case WebGLEnabled:
    65         return preferences()->webGLEnabled();
     68        return WKPreferencesGetWebGLEnabled(preferencesRef);
    6669#if ENABLE(CSS_SHADERS)
    6770    case CSSCustomFilterEnabled:
    68         return preferences()->cssCustomFilterEnabled();
     71        return WKPreferencesGetCSSCustomFilterEnabled(preferencesRef);
    6972#endif
    7073#endif
    7174#if ENABLE(WEB_AUDIO)
    7275    case WebAudioEnabled:
    73         return preferences()->webAudioEnabled();
    74 #endif
    75 #if ENABLE(SMOOTH_SCROLLING)
    76     case ScrollAnimatorEnabled:
    77         return preferences()->scrollAnimatorEnabled();
     76        return WKPreferencesGetWebAudioEnabled(preferencesRef);
    7877#endif
    7978    case CaretBrowsingEnabled:
    80         return preferences()->caretBrowsingEnabled();
     79        return WKPreferencesGetCaretBrowsingEnabled(preferencesRef);
    8180    case NotificationsEnabled:
    82         return preferences()->notificationsEnabled();
     81        return WKPreferencesGetNotificationsEnabled(preferencesRef);
    8382    default:
    8483        ASSERT_NOT_REACHED();
     
    8988void QWebPreferencesPrivate::setAttribute(QWebPreferencesPrivate::WebAttribute attr, bool enable)
    9089{
     90    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate->pageGroup.get());
    9191    switch (attr) {
    9292    case AutoLoadImages:
    93         preferences()->setLoadsImagesAutomatically(enable);
     93        WKPreferencesSetLoadsImagesAutomatically(preferencesRef, enable);
    9494        break;
    9595#if ENABLE(FULLSCREEN_API)
    9696    case FullScreenEnabled:
    97         preferences()->setFullScreenEnabled(enable);
     97        WKPreferencesSetFullScreenEnabled(preferencesRef, enable);
    9898        break;
    9999#endif
    100100    case JavascriptEnabled:
    101         preferences()->setJavaScriptEnabled(enable);
     101        WKPreferencesSetJavaScriptEnabled(preferencesRef, enable);
    102102        break;
    103103    case PluginsEnabled:
    104         preferences()->setPluginsEnabled(enable);
     104        WKPreferencesSetPluginsEnabled(preferencesRef, enable);
    105105        break;
    106106    case OfflineWebApplicationCacheEnabled:
    107         preferences()->setOfflineWebApplicationCacheEnabled(enable);
     107        WKPreferencesSetOfflineWebApplicationCacheEnabled(preferencesRef, enable);
    108108        break;
    109109    case LocalStorageEnabled:
    110         preferences()->setLocalStorageEnabled(enable);
     110        WKPreferencesSetLocalStorageEnabled(preferencesRef, enable);
    111111        break;
    112112    case XSSAuditingEnabled:
    113         preferences()->setXSSAuditorEnabled(enable);
     113        WKPreferencesSetXSSAuditorEnabled(preferencesRef, enable);
    114114        break;
    115115    case PrivateBrowsingEnabled:
    116         preferences()->setPrivateBrowsingEnabled(enable);
     116        WKPreferencesSetPrivateBrowsingEnabled(preferencesRef, enable);
    117117        break;
    118118    case DnsPrefetchEnabled:
    119         preferences()->setDNSPrefetchingEnabled(enable);
     119        WKPreferencesSetDNSPrefetchingEnabled(preferencesRef, enable);
    120120        break;
    121121    case FrameFlatteningEnabled:
    122         preferences()->setFrameFlatteningEnabled(enable);
     122        WKPreferencesSetFrameFlatteningEnabled(preferencesRef, enable);
    123123    case DeveloperExtrasEnabled:
    124         preferences()->setDeveloperExtrasEnabled(enable);
     124        WKPreferencesSetDeveloperExtrasEnabled(preferencesRef, enable);
    125125        break;
    126126#if ENABLE(WEBGL)
    127127    case WebGLEnabled:
    128         preferences()->setWebGLEnabled(enable);
     128        WKPreferencesSetWebGLEnabled(preferencesRef, enable);
    129129        break;
    130130#if ENABLE(CSS_SHADERS)
    131131    case CSSCustomFilterEnabled:
    132         preferences()->setCSSCustomFilterEnabled(enable);
     132        WKPreferencesSetCSSCustomFilterEnabled(preferencesRef, enable);
    133133        break;
    134134#endif
     
    136136#if ENABLE(WEB_AUDIO)
    137137    case WebAudioEnabled:
    138         preferences()->setWebAudioEnabled(enable);
    139         break;
    140 #endif
    141 #if ENABLE(SMOOTH_SCROLLING)
    142     case ScrollAnimatorEnabled:
    143         preferences()->setScrollAnimatorEnabled(enable);
     138        WKPreferencesSetWebAudioEnabled(preferencesRef, enable);
    144139        break;
    145140#endif
    146141    case CaretBrowsingEnabled:
    147142        // FIXME: Caret browsing doesn't make much sense in touch mode.
    148         preferences()->setCaretBrowsingEnabled(enable);
     143        WKPreferencesSetCaretBrowsingEnabled(preferencesRef, enable);
    149144        break;
    150145    case NotificationsEnabled:
    151         preferences()->setNotificationsEnabled(enable);
     146        WKPreferencesSetNotificationsEnabled(preferencesRef, enable);
    152147        break;
    153148    default:
     
    182177void QWebPreferencesPrivate::setFontFamily(QWebPreferencesPrivate::FontFamily which, const QString& family)
    183178{
     179    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate->pageGroup.get());
     180    WKRetainPtr<WKStringRef> familyRef = adoptWK(WKStringCreateWithQString(family));
    184181    switch (which) {
    185182    case StandardFont:
    186         preferences()->setStandardFontFamily(family);
     183        WKPreferencesSetStandardFontFamily(preferencesRef, familyRef.get());
    187184        break;
    188185    case FixedFont:
    189         preferences()->setFixedFontFamily(family);
     186        WKPreferencesSetFixedFontFamily(preferencesRef, familyRef.get());
    190187        break;
    191188    case SerifFont:
    192         preferences()->setSerifFontFamily(family);
     189        WKPreferencesSetSerifFontFamily(preferencesRef, familyRef.get());
    193190        break;
    194191    case SansSerifFont:
    195         preferences()->setSansSerifFontFamily(family);
     192        WKPreferencesSetSansSerifFontFamily(preferencesRef, familyRef.get());
    196193        break;
    197194    case CursiveFont:
    198         preferences()->setCursiveFontFamily(family);
     195        WKPreferencesSetCursiveFontFamily(preferencesRef, familyRef.get());
    199196        break;
    200197    case FantasyFont:
    201         preferences()->setFantasyFontFamily(family);
     198        WKPreferencesSetFantasyFontFamily(preferencesRef, familyRef.get());
    202199        break;
    203200    default:
     
    208205QString QWebPreferencesPrivate::fontFamily(QWebPreferencesPrivate::FontFamily which) const
    209206{
     207    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate->pageGroup.get());
    210208    switch (which) {
    211209    case StandardFont:
    212         return preferences()->standardFontFamily();
     210        return adoptToQString(WKPreferencesCopyStandardFontFamily(preferencesRef));
    213211    case FixedFont:
    214         return preferences()->fixedFontFamily();
     212        return adoptToQString(WKPreferencesCopyFixedFontFamily(preferencesRef));
    215213    case SerifFont:
    216         return preferences()->serifFontFamily();
     214        return adoptToQString(WKPreferencesCopySerifFontFamily(preferencesRef));
    217215    case SansSerifFont:
    218         return preferences()->sansSerifFontFamily();
     216        return adoptToQString(WKPreferencesCopySansSerifFontFamily(preferencesRef));
    219217    case CursiveFont:
    220         return preferences()->cursiveFontFamily();
     218        return adoptToQString(WKPreferencesCopyCursiveFontFamily(preferencesRef));
    221219    case FantasyFont:
    222         return preferences()->fantasyFontFamily();
     220        return adoptToQString(WKPreferencesCopyFantasyFontFamily(preferencesRef));
    223221    default:
    224222        return QString();
     
    227225
    228226void QWebPreferencesPrivate::setFontSize(QWebPreferencesPrivate::FontSizeType type, unsigned size)
    229 {
     227{   
     228    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate->pageGroup.get());
    230229    switch (type) {
    231230    case MinimumFontSize:
    232         preferences()->setMinimumFontSize(size);
     231        WKPreferencesSetMinimumFontSize(preferencesRef, static_cast<uint32_t>(size));
    233232        break;
    234233    case DefaultFontSize:
    235         preferences()->setDefaultFontSize(size);
     234        WKPreferencesSetDefaultFontSize(preferencesRef, static_cast<uint32_t>(size));
    236235        break;
    237236    case DefaultFixedFontSize:
    238         preferences()->setDefaultFixedFontSize(size);
     237        WKPreferencesSetDefaultFixedFontSize(preferencesRef, static_cast<uint32_t>(size));
    239238        break;
    240239    default:
     
    245244unsigned QWebPreferencesPrivate::fontSize(QWebPreferencesPrivate::FontSizeType type) const
    246245{
     246    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate->pageGroup.get());
    247247    switch (type) {
    248248    case MinimumFontSize:
    249         return preferences()->minimumFontSize();
     249        return static_cast<unsigned>(WKPreferencesGetMinimumFontSize(preferencesRef));
    250250    case DefaultFontSize:
    251         return preferences()->defaultFontSize();
     251        return static_cast<unsigned>(WKPreferencesGetDefaultFontSize(preferencesRef));
    252252    case DefaultFixedFontSize:
    253         return preferences()->defaultFixedFontSize();
     253        return static_cast<unsigned>(WKPreferencesGetDefaultFixedFontSize(preferencesRef));
    254254    default:
    255255        ASSERT_NOT_REACHED();
     
    547547}
    548548
    549 bool QWebPreferences::scrollAnimatorEnabled() const
    550 {
    551 #if ENABLE(SMOOTH_SCROLLING)
    552     return d->testAttribute(QWebPreferencesPrivate::ScrollAnimatorEnabled);
    553 #else
    554     return false;
    555 #endif
    556 }
    557 
    558 void QWebPreferences::setScrollAnimatorEnabled(bool enable)
    559 {
    560 #if ENABLE(SMOOTH_SCROLLING)
    561     d->setAttribute(QWebPreferencesPrivate::ScrollAnimatorEnabled, enable);
    562     emit scrollAnimatorEnabledChanged();
    563 #else
    564     UNUSED_PARAM(enable);
    565 #endif
    566 }
    567 
    568549bool QWebPreferences::caretBrowsingEnabled() const
    569550{
     
    588569}
    589570
    590 WebKit::WebPreferences* QWebPreferencesPrivate::preferences() const
    591 {
    592     return webViewPrivate->webPageProxy->pageGroup()->preferences();
    593 }
    594 
    595571QWebPreferencesPrivate* QWebPreferencesPrivate::get(QWebPreferences* preferences)
    596572{
  • trunk/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h

    r132345 r144165  
    4646    Q_PROPERTY(bool webGLEnabled READ webGLEnabled WRITE setWebGLEnabled NOTIFY webGLEnabledChanged FINAL)
    4747    Q_PROPERTY(bool webAudioEnabled READ webAudioEnabled WRITE setWebAudioEnabled NOTIFY webAudioEnabledChanged FINAL)
    48     Q_PROPERTY(bool scrollAnimatorEnabled READ scrollAnimatorEnabled WRITE setScrollAnimatorEnabled NOTIFY scrollAnimatorEnabledChanged FINAL)
    4948    Q_PROPERTY(bool caretBrowsingEnabled READ caretBrowsingEnabled WRITE setCaretBrowsingEnabled NOTIFY caretBrowsingEnabledChanged FINAL)
    5049    Q_PROPERTY(bool notificationsEnabled READ notificationsEnabled WRITE setNotificationsEnabled NOTIFY notificationsEnabledChanged FINAL)
     
    103102    void setWebAudioEnabled(bool enable);
    104103
    105     bool scrollAnimatorEnabled() const;
    106     void setScrollAnimatorEnabled(bool enable);
    107 
    108104    bool caretBrowsingEnabled() const;
    109105    void setCaretBrowsingEnabled(bool enable);
     
    154150    void webGLEnabledChanged();
    155151    void webAudioEnabledChanged();
    156     void scrollAnimatorEnabledChanged();
    157152    void caretBrowsingEnabledChanged();
    158153    void notificationsEnabledChanged();
  • trunk/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h

    r132345 r144165  
    2121#define qwebpreferences_p_p_h
    2222
    23 #include "WebPreferences.h"
    24 
    2523class QQuickWebViewPrivate;
    2624
     
    4341        CSSCustomFilterEnabled,
    4442        WebAudioEnabled,
    45         ScrollAnimatorEnabled,
    4643        CaretBrowsingEnabled,
    4744        NotificationsEnabled
     
    7572    unsigned fontSize(FontSizeType type) const;
    7673
    77     WebKit::WebPreferences* preferences() const;
    78 
    7974    QQuickWebViewPrivate* webViewPrivate;
    8075
Note: See TracChangeset for help on using the changeset viewer.