Title: [99208] trunk/Source/WebKit/chromium
Revision
99208
Author
[email protected]
Date
2011-11-03 10:06:59 -0700 (Thu, 03 Nov 2011)

Log Message

[Chromium] Refactor WebFrameImpl::createFrameView() to use Frame:createView
https://bugs.webkit.org/show_bug.cgi?id=70507

Reviewed by Darin Fisher.

No change in functionality except for fixed layout mode. Fixed layout mode has
not been fully upstreamed yet, so no new tests yet:
https://bugs.webkit.org/show_bug.cgi?id=70562 will address this.

This patch also fixes https://bugs.webkit.org/show_bug.cgi?id=70555
It was decided that fixed layout mode might need to be disabled for some content,
and so this change enables the embedder to decide whether to enable fixed layout on
navigation.

* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::createFrameView):

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (99207 => 99208)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-11-03 17:06:51 UTC (rev 99207)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-11-03 17:06:59 UTC (rev 99208)
@@ -1,3 +1,22 @@
+2011-11-03  Fady Samuel  <[email protected]>
+
+        [Chromium] Refactor WebFrameImpl::createFrameView() to use Frame:createView
+        https://bugs.webkit.org/show_bug.cgi?id=70507
+
+        Reviewed by Darin Fisher.
+
+        No change in functionality except for fixed layout mode. Fixed layout mode has
+        not been fully upstreamed yet, so no new tests yet:
+        https://bugs.webkit.org/show_bug.cgi?id=70562 will address this.
+
+        This patch also fixes https://bugs.webkit.org/show_bug.cgi?id=70555
+        It was decided that fixed layout mode might need to be disabled for some content,
+        and so this change enables the embedder to decide whether to enable fixed layout on
+        navigation.
+
+        * src/WebFrameImpl.cpp:
+        (WebKit::WebFrameImpl::createFrameView):
+
 2011-10-28  Hans Wennborg  <[email protected]>
 
         IndexedDB: Recycle cursor objects when calling continue()

Modified: trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp (99207 => 99208)


--- trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp	2011-11-03 17:06:51 UTC (rev 99207)
+++ trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp	2011-11-03 17:06:59 UTC (rev 99208)
@@ -2060,54 +2060,12 @@
 {
     ASSERT(m_frame); // If m_frame doesn't exist, we probably didn't init properly.
 
-    Page* page = m_frame->page();
-    ASSERT(page);
-    ASSERT(page->mainFrame());
-
-    bool isMainFrame = m_frame == page->mainFrame();
-    bool useFixedLayout = false;
-    IntSize fixedLayoutSize;
-    if (isMainFrame && m_frame->view()) {
-        m_frame->view()->setParentVisible(false);
-        // Save the fixed layout information before destroying the
-        // existing FrameView of this frame.
-        useFixedLayout = m_frame->view()->useFixedLayout();
-        fixedLayoutSize = m_frame->view()->fixedLayoutSize();
-    }
-
-    m_frame->setView(0);
-
     WebViewImpl* webView = viewImpl();
+    m_frame->createView(webView->size(), Color::white, webView->isTransparent(),  webView->fixedLayoutSize(), webView->isFixedLayoutModeEnabled());
 
-    RefPtr<FrameView> view;
-    if (isMainFrame)
-        view = FrameView::create(m_frame, webView->size());
-    else
-        view = FrameView::create(m_frame);
-
-    m_frame->setView(view);
-
-    if (webView->isTransparent())
-        view->setTransparent(true);
-
-    // FIXME: The Mac code has a comment about this possibly being unnecessary.
-    // See installInFrame in WebCoreFrameBridge.mm
-    if (m_frame->ownerRenderer())
-        m_frame->ownerRenderer()->setWidget(view.get());
-
-    if (HTMLFrameOwnerElement* owner = m_frame->ownerElement())
-        view->setCanHaveScrollbars(owner->scrollingMode() != ScrollbarAlwaysOff);
-
-    if (isMainFrame)
-        view->setParentVisible(true);
-
 #if ENABLE(GESTURE_RECOGNIZER)
     webView->resetGestureRecognizer();
 #endif
-
-    // Restore the saved fixed layout information.
-    view->setUseFixedLayout(useFixedLayout);
-    view->setFixedLayoutSize(fixedLayoutSize);
 }
 
 WebFrameImpl* WebFrameImpl::fromFrame(Frame* frame)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to