Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(693)

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 1213913003: Don't revalidate all resources for FrameLoadTypeSame (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 5869 matching lines...) Expand 10 before | Expand all | Expand 10 after
5880 5880
5881 // A new WebFrame should have been created, but the child WebFrameClient sho uld be reused. 5881 // A new WebFrame should have been created, but the child WebFrameClient sho uld be reused.
5882 ASSERT_NE(childFrame, toWebLocalFrameImpl(mainFrame->firstChild())); 5882 ASSERT_NE(childFrame, toWebLocalFrameImpl(mainFrame->firstChild()));
5883 ASSERT_EQ(toWebLocalFrameImpl(mainFrame->firstChild())->client(), &childClie nt); 5883 ASSERT_EQ(toWebLocalFrameImpl(mainFrame->firstChild())->client(), &childClie nt);
5884 5884
5885 EXPECT_EQ(mainClient.childFrameCreationCount(), 2); 5885 EXPECT_EQ(mainClient.childFrameCreationCount(), 2);
5886 EXPECT_EQ(childClient.willSendRequestCallCount(), 2); 5886 EXPECT_EQ(childClient.willSendRequestCallCount(), 2);
5887 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::ReloadIgnoringCacheData) ; 5887 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::ReloadIgnoringCacheData) ;
5888 } 5888 }
5889 5889
5890 class TestSameDocumentWebFrameClient : public FrameTestHelpers::TestWebFrameClie nt {
5891 public:
5892 TestSameDocumentWebFrameClient()
5893 : m_frameLoadTypeSameSeen(false)
5894 {
5895 }
5896
5897 virtual void willSendRequest(WebLocalFrame* frame, unsigned, WebURLRequest&, const WebURLResponse&)
5898 {
5899 if (toWebLocalFrameImpl(frame)->frame()->loader().loadType() == FrameLoa dTypeSame)
5900 m_frameLoadTypeSameSeen = true;
5901 }
5902
5903 bool frameLoadTypeSameSeen() const { return m_frameLoadTypeSameSeen; }
5904
5905 private:
5906 bool m_frameLoadTypeSameSeen;
5907 };
5908
5909 TEST_P(ParameterizedWebFrameTest, NavigateToSame) 5890 TEST_P(ParameterizedWebFrameTest, NavigateToSame)
5910 { 5891 {
5911 registerMockedHttpURLLoad("navigate_to_same.html"); 5892 URLTestHelpers::registerMockedURLLoad(toKURL(m_baseURL + "navigate_to_same.h tml#"), WebString::fromUTF8("navigate_to_same.html"));
5912 TestSameDocumentWebFrameClient client; 5893 TestCachePolicyWebFrameClient client(nullptr);
5913 FrameTestHelpers::WebViewHelper webViewHelper(this); 5894 FrameTestHelpers::WebViewHelper webViewHelper(this);
5914 webViewHelper.initializeAndLoad(m_baseURL + "navigate_to_same.html", true, & client); 5895 webViewHelper.initializeAndLoad(m_baseURL + "navigate_to_same.html#", true, &client);
5915 EXPECT_FALSE(client.frameLoadTypeSameSeen()); 5896 EXPECT_EQ(1, client.willSendRequestCallCount());
5916 5897
5917 FrameLoadRequest frameRequest(0, ResourceRequest(toLocalFrame(webViewHelper. webViewImpl()->page()->mainFrame())->document()->url())); 5898 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "navigate_to_same.html#");
5918 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa d(frameRequest); 5899 EXPECT_EQ(2, client.willSendRequestCallCount());
5919 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF rame());
5920
5921 EXPECT_TRUE(client.frameLoadTypeSameSeen());
5922 } 5900 }
5923 5901
5924 class TestSameDocumentWithImageWebFrameClient : public FrameTestHelpers::TestWeb FrameClient { 5902 class TestSameDocumentWithImageWebFrameClient : public FrameTestHelpers::TestWeb FrameClient {
5925 public: 5903 public:
5926 TestSameDocumentWithImageWebFrameClient() 5904 TestSameDocumentWithImageWebFrameClient()
5927 : m_numOfImageRequests(0) 5905 : m_numOfImageRequests(0)
5928 { 5906 {
5929 } 5907 }
5930 5908
5931 virtual void willSendRequest(WebLocalFrame* frame, unsigned, WebURLRequest& request, const WebURLResponse&) 5909 virtual void willSendRequest(WebLocalFrame* frame, unsigned, WebURLRequest& request, const WebURLResponse&)
(...skipping 1923 matching lines...) Expand 10 before | Expand all | Expand 10 after
7855 7833
7856 TEST_F(WebFrameTest, MaxFramesDetach) 7834 TEST_F(WebFrameTest, MaxFramesDetach)
7857 { 7835 {
7858 registerMockedHttpURLLoad("max-frames-detach.html"); 7836 registerMockedHttpURLLoad("max-frames-detach.html");
7859 FrameTestHelpers::WebViewHelper webViewHelper; 7837 FrameTestHelpers::WebViewHelper webViewHelper;
7860 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "max- frames-detach.html", true); 7838 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "max- frames-detach.html", true);
7861 webViewImpl->mainFrameImpl()->collectGarbage(); 7839 webViewImpl->mainFrameImpl()->collectGarbage();
7862 } 7840 }
7863 7841
7864 } // namespace blink 7842 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698