Changeset 102809 in webkit
- Timestamp:
- Dec 14, 2011 12:00:22 PM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r102804 r102809 1 2011-12-14 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> 2 3 [Qt] [WK2] Move QWebPreferences out of QtWebPageProxy 4 https://bugs.webkit.org/show_bug.cgi?id=74525 5 6 Reviewed by Luiz Agostini. 7 8 This patch also uses internal WebKit API to set the Accelerate Compositing 9 directly instead of going thru QWebPreferencesPrivate. The previous approach was 10 always causing the QWebPreferences to be created making the "lazy initialization" 11 useless. 12 13 * UIProcess/API/qt/qquickwebview.cpp: 14 (QQuickWebViewPrivate::QQuickWebViewPrivate): 15 (QQuickWebViewPrivate::initialize): 16 (QQuickWebViewPrivate::navigatorQtObjectEnabled): 17 (QQuickWebViewPrivate::setNavigatorQtObjectEnabled): 18 (QQuickWebViewExperimental::postMessage): 19 (QQuickWebView::preferences): 20 * UIProcess/API/qt/qquickwebview_p_p.h: 21 * UIProcess/API/qt/qwebpreferences.cpp: 22 (QWebPreferencesPrivate::createPreferences): 23 (QWebPreferencesPrivate::testAttribute): 24 (QWebPreferencesPrivate::setAttribute): 25 (QWebPreferences::navigatorQtObjectEnabled): 26 (QWebPreferences::setNavigatorQtObjectEnabled): 27 (QWebPreferencesPrivate::preferencesRef): 28 * UIProcess/API/qt/qwebpreferences_p_p.h: 29 * UIProcess/qt/QtWebPageProxy.cpp: 30 (QtWebPageProxy::QtWebPageProxy): 31 * UIProcess/qt/QtWebPageProxy.h: 32 1 33 2011-12-14 Carlos Garcia Campos <cgarcia@igalia.com> 2 34 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
r102779 r102809 39 39 #include "qwebnavigationhistory_p.h" 40 40 #include "qwebnavigationhistory_p_p.h" 41 #include "qwebpreferences_p.h" 41 42 #include "qwebpreferences_p_p.h" 42 43 … … 56 57 , isTransitioningToNewPage(false) 57 58 , pageIsSuspended(false) 59 , m_navigatorQtObjectEnabled(false) 58 60 { 59 61 viewport->setFlags(QQuickItem::ItemClipsChildrenToShape); … … 83 85 // Any page setting should preferrable be set before creating the page, so set them here: 84 86 setUseTraditionalDesktopBehaviour(false); 85 QWebPreferencesPrivate::get(pageProxy->preferences())->setAttribute(QWebPreferencesPrivate::AcceleratedCompositingEnabled,true);87 webPageProxy()->pageGroup()->preferences()->setAcceleratedCompositingEnabled(true); 86 88 87 89 pageClient.initialize(q_ptr, pageProxy.data(), pageViewPrivate->eventHandler.data(), &undoController); … … 471 473 } 472 474 475 bool QQuickWebViewPrivate::navigatorQtObjectEnabled() const 476 { 477 return m_navigatorQtObjectEnabled; 478 } 479 480 void QQuickWebViewPrivate::setNavigatorQtObjectEnabled(bool enabled) 481 { 482 ASSERT(enabled != m_navigatorQtObjectEnabled); 483 // FIXME: Currently we have to keep this information in both processes and the setting is asynchronous. 484 m_navigatorQtObjectEnabled = enabled; 485 context->setNavigatorQtObjectEnabled(webPageProxy(), enabled); 486 } 487 473 488 // FIXME: Remove this once QtWebPageProxy is removed. 474 489 WebKit::WebPageProxy* QQuickWebViewPrivate::webPageProxy() const … … 546 561 { 547 562 Q_D(QQuickWebView); 548 d-> pageProxy->postMessageToNavigatorQtObject(message);563 d->context->postMessageToNavigatorQtObject(d->webPageProxy(), message); 549 564 } 550 565 … … 741 756 QWebPreferences* QQuickWebView::preferences() const 742 757 { 743 Q_D(const QQuickWebView); 744 return d->pageProxy->preferences(); 758 QQuickWebViewPrivate* d = const_cast<QQuickWebViewPrivate*>(d_ptr.data()); 759 if (!d->preferences) 760 d->preferences = adoptPtr(QWebPreferencesPrivate::createPreferences(d)); 761 return d->preferences.get(); 745 762 } 746 763 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
r102779 r102809 98 98 void setViewInAttachedProperties(QObject*); 99 99 100 bool navigatorQtObjectEnabled() const; 101 void setNavigatorQtObjectEnabled(bool); 102 100 103 WebKit::WebPageProxy* webPageProxy() const; 101 104 … … 145 148 QtWebUndoController undoController; 146 149 OwnPtr<QWebNavigationHistory> navigationHistory; 150 OwnPtr<QWebPreferences> preferences; 147 151 148 152 QScopedPointer<QtWebPageLoadClient> pageLoadClient; … … 163 167 WebCore::ViewportArguments viewportArguments; 164 168 OwnPtr<PostTransitionState> postTransitionState; 169 QFileDialog* fileDialog; 170 WKOpenPanelResultListenerRef openPanelResultListener; 171 165 172 bool isTransitioningToNewPage; 166 173 bool pageIsSuspended; 167 174 168 175 bool useTraditionalDesktopBehaviour; 169 QFileDialog* fileDialog; 170 WKOpenPanelResultListenerRef openPanelResultListener; 176 bool m_navigatorQtObjectEnabled; 171 177 }; 172 178 -
trunk/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp
r100602 r102809 21 21 #include "qwebpreferences_p.h" 22 22 23 #include "QtWebPageProxy.h"24 23 #include "WKPageGroup.h" 25 24 #include "WKPreferences.h" … … 27 26 #include "WKRetainPtr.h" 28 27 #include "WKStringQt.h" 28 #include "qquickwebview_p_p.h" 29 29 #include "qwebpreferences_p_p.h" 30 30 31 QWebPreferences* QWebPreferencesPrivate::createPreferences(Q tWebPageProxy* qtWebPageProxy)31 QWebPreferences* QWebPreferencesPrivate::createPreferences(QQuickWebViewPrivate* webViewPrivate) 32 32 { 33 33 QWebPreferences* prefs = new QWebPreferences; 34 prefs->d-> qtWebPageProxy = qtWebPageProxy;34 prefs->d->webViewPrivate = webViewPrivate; 35 35 return prefs; 36 36 } … … 55 55 case DnsPrefetchEnabled: 56 56 return WKPreferencesGetDNSPrefetchingEnabled(preferencesRef()); 57 case AcceleratedCompositingEnabled:58 return WKPreferencesGetAcceleratedCompositingEnabled(preferencesRef());59 57 default: 60 58 ASSERT_NOT_REACHED(); … … 89 87 case DnsPrefetchEnabled: 90 88 WKPreferencesSetDNSPrefetchingEnabled(preferencesRef(), enable); 91 break;92 case AcceleratedCompositingEnabled:93 WKPreferencesSetAcceleratedCompositingEnabled(preferencesRef(), enable);94 89 break; 95 90 default: … … 288 283 bool QWebPreferences::navigatorQtObjectEnabled() const 289 284 { 290 return d-> qtWebPageProxy->navigatorQtObjectEnabled();285 return d->webViewPrivate->navigatorQtObjectEnabled(); 291 286 } 292 287 … … 295 290 if (enable == navigatorQtObjectEnabled()) 296 291 return; 297 d-> qtWebPageProxy->setNavigatorQtObjectEnabled(enable);292 d->webViewPrivate->setNavigatorQtObjectEnabled(enable); 298 293 emit navigatorQtObjectEnabledChanged(); 299 294 } … … 400 395 WKPreferencesRef QWebPreferencesPrivate::preferencesRef() const 401 396 { 402 WKPageGroupRef pageGroupRef = WKPageGetPageGroup(qtWebPageProxy->pageRef());397 WKPageGroupRef pageGroupRef = toAPI(webViewPrivate->webPageProxy()->pageGroup()); 403 398 return WKPageGroupGetPreferences(pageGroupRef); 404 399 } -
trunk/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h
r100602 r102809 23 23 #include "WKPreferences.h" 24 24 25 class Q tWebPageProxy;25 class QQuickWebViewPrivate; 26 26 27 27 class QWebPreferencesPrivate { … … 37 37 FrameFlatteningEnabled, 38 38 PrivateBrowsingEnabled, 39 AcceleratedCompositingEnabled,40 39 DnsPrefetchEnabled 41 40 }; … … 56 55 }; 57 56 58 static QWebPreferences* createPreferences(Q tWebPageProxy*);57 static QWebPreferences* createPreferences(QQuickWebViewPrivate*); 59 58 60 59 void setAttribute(WebAttribute attr, bool enable); … … 69 68 WKPreferencesRef preferencesRef() const; 70 69 71 Q tWebPageProxy* qtWebPageProxy;70 QQuickWebViewPrivate* webViewPrivate; 72 71 73 72 static QWebPreferencesPrivate* get(QWebPreferences*); -
trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp
r102779 r102809 25 25 #include "qquickwebview_p.h" 26 26 #include "qquickwebview_p_p.h" 27 #include "qwebpreferences_p.h"28 #include "qwebpreferences_p_p.h"29 27 30 28 #include "QtPageClient.h" … … 42 40 : m_qmlWebView(qmlWebView) 43 41 , m_context(context) 44 , m_navigatorQtObjectEnabled(false)45 42 { 46 43 m_webPageProxy = m_context->createWebPage(pageClient, toImpl(pageGroupRef)); … … 94 91 } 95 92 96 QWebPreferences* QtWebPageProxy::preferences() const97 {98 if (!m_preferences)99 m_preferences = adoptPtr(QWebPreferencesPrivate::createPreferences(const_cast<QtWebPageProxy*>(this)));100 return m_preferences.get();101 }102 103 93 void QtWebPageProxy::setCustomUserAgent(const QString& userAgent) 104 94 { … … 110 100 { 111 101 return WKStringCopyQString(WKPageCopyCustomUserAgent(pageRef())); 112 }113 114 void QtWebPageProxy::setNavigatorQtObjectEnabled(bool enabled)115 {116 ASSERT(enabled != m_navigatorQtObjectEnabled);117 // FIXME: Currently we have to keep this information in both processes and the setting is asynchronous.118 m_navigatorQtObjectEnabled = enabled;119 m_context->setNavigatorQtObjectEnabled(m_webPageProxy.get(), enabled);120 }121 122 void QtWebPageProxy::postMessageToNavigatorQtObject(const QString& message)123 {124 m_context->postMessageToNavigatorQtObject(m_webPageProxy.get(), message);125 102 } 126 103 -
trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h
r102779 r102809 30 30 class QtPageClient; 31 31 class QQuickWebView; 32 class QWebPreferences;33 32 34 33 namespace WebKit { … … 48 47 WKPageRef pageRef() const; 49 48 50 QWebPreferences* preferences() const;51 52 49 void setCustomUserAgent(const QString&); 53 50 QString customUserAgent() const; 54 55 void setNavigatorQtObjectEnabled(bool);56 bool navigatorQtObjectEnabled() const { return m_navigatorQtObjectEnabled; }57 58 void postMessageToNavigatorQtObject(const QString&);59 51 60 52 qreal textZoomFactor() const; … … 84 76 RefPtr<QtWebContext> m_context; 85 77 86 mutable OwnPtr<QWebPreferences> m_preferences;87 88 bool m_navigatorQtObjectEnabled;89 90 78 QSharedPointer<QMenu> activeMenu; 91 79 };
Note: See TracChangeset
for help on using the changeset viewer.