OSDN Git Service

AI 144661: Fix #175030. Preserve the zoom factor during refresh. Remove the code...
authorGrace Kloba <>
Mon, 6 Apr 2009 17:47:25 +0000 (10:47 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Mon, 6 Apr 2009 17:47:25 +0000 (10:47 -0700)
  BUG=175030

Automated import of CL 144661

WebCore/loader/FrameLoader.cpp
WebKit/android/jni/WebViewCore.cpp

index 151ab37..edcdbf0 100644 (file)
@@ -3492,13 +3492,7 @@ void FrameLoader::continueLoadAfterWillSubmitForm(PolicyAction)
 void FrameLoader::didFirstLayout()
 {
     if (Page* page = m_frame->page())
-#ifdef ANDROID_HISTORY_CLIENT
-        // this should match the logic in FrameStateCommittedPage, so that we 
-        // can restore the scroll position and view state as early as possible
-        if ((isBackForwardLoadType(m_loadType) || m_loadType == FrameLoadTypeReload) && page->backForwardList())
-#else
         if (isBackForwardLoadType(m_loadType) && page->backForwardList())
-#endif
             restoreScrollPositionAndViewState();
 
     m_firstLayoutDone = true;
index 256c1f0..7a60447 100644 (file)
@@ -218,7 +218,7 @@ WebViewCore::WebViewCore(JNIEnv* env, jobject javaWebViewCore, WebCore::Frame* m
     m_javaGlue->m_jsConfirm = GetJMethod(env, clazz, "jsConfirm", "(Ljava/lang/String;Ljava/lang/String;)Z");
     m_javaGlue->m_jsPrompt = GetJMethod(env, clazz, "jsPrompt", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;");
     m_javaGlue->m_jsUnload = GetJMethod(env, clazz, "jsUnload", "(Ljava/lang/String;Ljava/lang/String;)Z");
-    m_javaGlue->m_didFirstLayout = GetJMethod(env, clazz, "didFirstLayout", "()V");
+    m_javaGlue->m_didFirstLayout = GetJMethod(env, clazz, "didFirstLayout", "(Z)V");
     m_javaGlue->m_sendMarkNodeInvalid = GetJMethod(env, clazz, "sendMarkNodeInvalid", "(I)V");
     m_javaGlue->m_sendNotifyFocusSet = GetJMethod(env, clazz, "sendNotifyFocusSet", "()V");
     m_javaGlue->m_sendNotifyProgressFinished = GetJMethod(env, clazz, "sendNotifyProgressFinished", "()V");
@@ -704,13 +704,17 @@ void WebViewCore::didFirstLayout()
     DEBUG_NAV_UI_LOGD("%s", __FUNCTION__);
     LOG_ASSERT(m_javaGlue->m_obj, "A Java widget was not associated with this view bridge!");
 
-    const WebCore::KURL& url = m_mainFrame->loader()->url();
+    WebCore::FrameLoader* loader = m_mainFrame->loader();
+    const WebCore::KURL& url = loader->url();
     if (url.isEmpty())
         return;
     LOGV("::WebCore:: didFirstLayout %s", url.string().ascii().data());
 
+    WebCore::FrameLoadType loadType = loader->loadType();
+
     JNIEnv* env = JSC::Bindings::getJNIEnv();
-    env->CallVoidMethod(m_javaGlue->object(env).get(), m_javaGlue->m_didFirstLayout);
+    env->CallVoidMethod(m_javaGlue->object(env).get(), m_javaGlue->m_didFirstLayout,
+            loadType == WebCore::FrameLoadTypeStandard);
     checkException(env);
 
     DBG_NAV_LOG("call updateFrameCache");