OSDN Git Service

am cb86952d: Fix #1896846. Move reset the meta data from canHandleRequest to transiti...
authorGrace Kloba <klobag@google.com>
Thu, 9 Jul 2009 19:50:10 +0000 (12:50 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Thu, 9 Jul 2009 19:50:10 +0000 (12:50 -0700)
Merge commit 'cb86952d254446a800421b5804f886f8d87cd875'

* commit 'cb86952d254446a800421b5804f886f8d87cd875':
  Fix #1896846. Move reset the meta data from canHandleRequest to transitionToCommittedForNewPage as canHandleRequest may not trigger to go to a new page. For example, if a link is to open in a new window, even canHandleRequest returns true, the current page doesn't switch to a new page. So we should not reset the meta data.

WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp

index 2bc8619..24d027a 100644 (file)
@@ -653,15 +653,7 @@ bool FrameLoaderClientAndroid::canHandleRequest(const ResourceRequest& request)
             m_frame->tree() && m_frame->tree()->parent())
         return true;
 
-    if (m_webFrame->canHandleRequest(request)) {
-#ifdef ANDROID_META_SUPPORT
-        // reset metadata settings for the top frame as they are not preserved cross page
-        if (!m_frame->tree()->parent() && m_frame->settings())
-            m_frame->settings()->resetMetadataSettings();
-#endif
-        return true;
-    }
-    return false;
+    return m_webFrame->canHandleRequest(request);
 }
 
 bool FrameLoaderClientAndroid::canShowMIMEType(const String& mimeType) const {
@@ -782,6 +774,13 @@ void FrameLoaderClientAndroid::transitionToCommittedFromCachedFrame(WebCore::Cac
 
 void FrameLoaderClientAndroid::transitionToCommittedForNewPage() {
     ASSERT(m_frame);
+
+#ifdef ANDROID_META_SUPPORT
+    // reset metadata settings for the main frame as they are not preserved cross page
+    if (m_frame == m_frame->page()->mainFrame() && m_frame->settings())
+        m_frame->settings()->resetMetadataSettings();
+#endif
+
     if (m_frame->settings() && !m_frame->settings()->usesPageCache()) {
         m_webFrame->transitionToCommitted(m_frame);
         return;