summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/WebCoreSupport
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2012-02-28 18:42:02 -0800
committerNicolas Roard <nicolasroard@google.com>2012-03-01 16:38:55 -0800
commit9a8423b643a8ce99e5642f2548600f9125382e89 (patch)
tree1121fb39001bead0e89edd593b40a16a0397d710 /Source/WebKit/android/WebCoreSupport
parentbd4ee4debb53cea094c09b198f7ba4e8307a2998 (diff)
downloadexternal_webkit-9a8423b643a8ce99e5642f2548600f9125382e89.zip
external_webkit-9a8423b643a8ce99e5642f2548600f9125382e89.tar.gz
external_webkit-9a8423b643a8ce99e5642f2548600f9125382e89.tar.bz2
Fix iframe, for reals!
Change-Id: I588aa5709e7a3c2ced9479c3cf9c1827bf6f7733
Diffstat (limited to 'Source/WebKit/android/WebCoreSupport')
-rw-r--r--Source/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp40
-rw-r--r--Source/WebKit/android/WebCoreSupport/PlatformBridge.cpp6
2 files changed, 17 insertions, 29 deletions
diff --git a/Source/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp b/Source/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp
index c573b4e..d7c21e3 100644
--- a/Source/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp
+++ b/Source/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp
@@ -946,10 +946,10 @@ void FrameLoaderClientAndroid::transitionToCommittedForNewPage() {
// Save the old WebFrameView's bounds and apply them to the new WebFrameView
WebFrameView* oldWebFrameView = static_cast<WebFrameView*> (m_frame->view()->platformWidget());
- IntRect bounds = oldWebFrameView->getBounds();
- IntRect visBounds = oldWebFrameView->getVisibleBounds();
- IntRect windowBounds = oldWebFrameView->getWindowBounds();
- WebCore::FrameView* oldFrameView = oldWebFrameView->view();
+ IntRect bounds;
+ if (oldWebFrameView)
+ bounds = oldWebFrameView->getBounds();
+ WebCore::FrameView* oldFrameView = m_frame->view();
const float oldZoomFactor = oldFrameView->frame()->textZoomFactor();
m_frame->createView(bounds.size(), oldFrameView->baseBackgroundColor(), oldFrameView->isTransparent(),
oldFrameView->fixedLayoutSize(), oldFrameView->useFixedLayout());
@@ -957,21 +957,19 @@ void FrameLoaderClientAndroid::transitionToCommittedForNewPage() {
m_frame->setTextZoomFactor(oldZoomFactor);
}
- // Create a new WebFrameView for the new FrameView
- WebFrameView* newFrameView = new WebFrameView(m_frame->view(), webViewCore);
-
-#if ENABLE(ANDROID_OVERFLOW_SCROLL)
-#else
- webViewCore->clearContent();
-#endif
-
- newFrameView->setLocation(bounds.x(), bounds.y());
- newFrameView->setSize(bounds.width(), bounds.height());
- newFrameView->setVisibleSize(visBounds.width(), visBounds.height());
- newFrameView->setWindowBounds(windowBounds.x(), windowBounds.y(), windowBounds.width(), windowBounds.height());
- // newFrameView attaches itself to FrameView which Retains the reference, so
- // call Release for newFrameView
- Release(newFrameView);
+ if (oldWebFrameView) {
+ IntRect visBounds = oldWebFrameView->getVisibleBounds();
+ IntRect windowBounds = oldWebFrameView->getWindowBounds();
+ // Create a new WebFrameView for the new FrameView
+ WebFrameView* newFrameView = new WebFrameView(m_frame->view(), webViewCore);
+ newFrameView->setLocation(bounds.x(), bounds.y());
+ newFrameView->setSize(bounds.width(), bounds.height());
+ newFrameView->setVisibleSize(visBounds.width(), visBounds.height());
+ newFrameView->setWindowBounds(windowBounds.x(), windowBounds.y(), windowBounds.width(), windowBounds.height());
+ // newFrameView attaches itself to FrameView which Retains the reference, so
+ // call Release for newFrameView
+ Release(newFrameView);
+ }
// WebFrameView Retains webViewCore, so call Release for webViewCore
Release(webViewCore);
@@ -1007,10 +1005,6 @@ WTF::PassRefPtr<WebCore::Frame> FrameLoaderClientAndroid::createFrame(const KURL
newFrame->tree()->setName(name);
// Create a new FrameView and WebFrameView for the child frame to draw into.
RefPtr<FrameView> frameView = FrameView::create(newFrame);
- WebFrameView* webFrameView = new WebFrameView(frameView.get(),
- WebViewCore::getWebViewCore(parent->view()));
- // frameView Retains webFrameView, so call Release for webFrameView
- Release(webFrameView);
// Attach the frameView to the newFrame.
newFrame->setView(frameView);
newFrame->init();
diff --git a/Source/WebKit/android/WebCoreSupport/PlatformBridge.cpp b/Source/WebKit/android/WebCoreSupport/PlatformBridge.cpp
index e536701..000cd5a 100644
--- a/Source/WebKit/android/WebCoreSupport/PlatformBridge.cpp
+++ b/Source/WebKit/android/WebCoreSupport/PlatformBridge.cpp
@@ -181,12 +181,6 @@ void PlatformBridge::setScrollPosition(ScrollView* scrollView, int x, int y) {
y = std::max(0, std::min(frameView->contentsHeight(), y));
if ((x != visibleContentRect.x()) || (y != visibleContentRect.y()))
webViewCore->scrollTo(x, y);
- } else {
- RenderView* renderer = frameView->frame()->contentRenderer();
- if (renderer) {
- RenderLayer* layer = renderer->layer();
- layer->scrollToOffset(x, y);
- }
}
}