Holger Hans Peter Freyther <holger.freyther@trolltech.com>
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Apr 2008 12:00:58 +0000 (12:00 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Apr 2008 12:00:58 +0000 (12:00 +0000)
* For the PageCache support we do not want to create a FrameView in the constructor
  of QWebFrame. In QWegPage::viewportSize() we currently call mainFrame() and that will
  create a QWebFrame if no mainFrame is present and this gets called when we try to
  create a FrameView...
* Keep a copy of the initial viewportSize around and use it if we do not have a Frame
  or FrameView.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@31565 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/qt/Api/qwebpage.cpp
WebKit/qt/Api/qwebpage_p.h
WebKit/qt/ChangeLog

index 9e508d4..0fcabfe 100644 (file)
@@ -112,6 +112,7 @@ QWebPagePrivate::QWebPagePrivate(QWebPage *qq)
     : q(qq)
     , view(0)
     , modified(false)
+    , viewportSize(QSize(0,0))
 {
     chromeClient = new ChromeClientQt(q);
     contextMenuClient = new ContextMenuClientQt();
@@ -1055,10 +1056,10 @@ void QWebPage::triggerAction(WebAction action, bool checked)
 
 QSize QWebPage::viewportSize() const
 {
-    QWebFrame *frame = mainFrame();
-    if (frame->d->frame && frame->d->frame->view())
-        return frame->d->frame->view()->frameGeometry().size();
-    return QSize(0, 0);
+    if (d->mainFrame && d->mainFrame->d->frame->view())
+        return d->mainFrame->d->frame->view()->frameGeometry().size();
+
+    return d->viewportSize;
 }
 
 /*!
@@ -1069,6 +1070,8 @@ QSize QWebPage::viewportSize() const
 */
 void QWebPage::setViewportSize(const QSize &size) const
 {
+    d->viewportSize = size;
+
     QWebFrame *frame = mainFrame();
     if (frame->d->frame && frame->d->frame->view()) {
         WebCore::FrameView* view = frame->d->frame->view();
index c460696..cc742e2 100644 (file)
@@ -149,6 +149,7 @@ public:
     QNetworkAccessManager *networkManager;
 #endif
 
+    QSize viewportSize;
     QWebHistory history;
     QWebPageContext currentContext;
     QWebSettings *settings;
index ec29457..8cafb6e 100644 (file)
@@ -2,6 +2,23 @@
 
         Reviewed by Simon.
 
+        * For the PageCache support we do not want to create a FrameView in the constructor
+        of QWebFrame. In QWegPage::viewportSize() we currently call mainFrame() and that will
+        create a QWebFrame if no mainFrame is present and this gets called when we try to
+        create a FrameView...
+        * Keep a copy of the initial viewportSize around and use it if we do not have a Frame
+        or FrameView.
+        
+
+        * Api/qwebpage.cpp:
+        (QWebPagePrivate::QWebPagePrivate):
+        (QWebPage::triggerAction):
+        * Api/qwebpage_p.h:
+
+2008-04-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
+
+        Reviewed by Simon.
+
         * Always return true in FrameLoaderClientQt::shouldGoToHistoryItem, like the windows port
 
         * WebCoreSupport/FrameLoaderClientQt.cpp: