| Index: content/browser/transition_browsertest.cc
|
| diff --git a/content/browser/transition_browsertest.cc b/content/browser/transition_browsertest.cc
|
| deleted file mode 100644
|
| index 6b2eba35006494a85935d3edf65677295698cbec..0000000000000000000000000000000000000000
|
| --- a/content/browser/transition_browsertest.cc
|
| +++ /dev/null
|
| @@ -1,191 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/command_line.h"
|
| -#include "content/browser/loader/cross_site_resource_handler.h"
|
| -#include "content/browser/loader/resource_dispatcher_host_impl.h"
|
| -#include "content/browser/loader/resource_request_info_impl.h"
|
| -#include "content/browser/transition_request_manager.h"
|
| -#include "content/browser/web_contents/web_contents_impl.h"
|
| -#include "content/public/browser/web_contents_observer.h"
|
| -#include "content/public/common/content_switches.h"
|
| -#include "content/public/test/browser_test_utils.h"
|
| -#include "content/public/test/content_browser_test.h"
|
| -#include "content/public/test/content_browser_test_utils.h"
|
| -#include "content/public/test/test_utils.h"
|
| -#include "content/shell/browser/shell.h"
|
| -#include "content/shell/browser/shell_resource_dispatcher_host_delegate.h"
|
| -#include "net/test/embedded_test_server/embedded_test_server.h"
|
| -#include "net/url_request/url_request.h"
|
| -
|
| -namespace content {
|
| -
|
| -class TransitionBrowserTest : public ContentBrowserTest {
|
| - public:
|
| - TransitionBrowserTest() {}
|
| -
|
| - void SetUpCommandLine(base::CommandLine* command_line) override {
|
| - command_line->AppendSwitch(
|
| - switches::kEnableExperimentalWebPlatformFeatures);
|
| - }
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(TransitionBrowserTest);
|
| -};
|
| -
|
| -class TransitionBrowserTestObserver
|
| - : public WebContentsObserver,
|
| - public ShellResourceDispatcherHostDelegate {
|
| - public:
|
| - TransitionBrowserTestObserver(WebContents* web_contents)
|
| - : WebContentsObserver(web_contents),
|
| - request_(NULL),
|
| - did_defer_response_(false),
|
| - is_transition_request_(false),
|
| - did_clear_data_(false) {
|
| - }
|
| -
|
| - void RequestBeginning(net::URLRequest* request,
|
| - ResourceContext* resource_context,
|
| - AppCacheService* appcache_service,
|
| - ResourceType resource_type,
|
| - ScopedVector<ResourceThrottle>* throttles) override {
|
| - CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - ShellResourceDispatcherHostDelegate::RequestBeginning(request,
|
| - resource_context,
|
| - appcache_service,
|
| - resource_type,
|
| - throttles);
|
| - request_ = request;
|
| -
|
| - ResourceRequestInfoImpl* info =
|
| - ResourceRequestInfoImpl::ForRequest(request_);
|
| -
|
| - if (is_transition_request_) {
|
| - TransitionRequestManager::GetInstance(
|
| - )->AddPendingTransitionRequestDataForTesting(
|
| - info->GetChildID(), info->GetRenderFrameID());
|
| - }
|
| - }
|
| -
|
| - void OnResponseStarted(net::URLRequest* request,
|
| - ResourceContext* resource_context,
|
| - ResourceResponse* response,
|
| - IPC::Sender* sender) override {
|
| - ResourceRequestInfoImpl* info =
|
| - ResourceRequestInfoImpl::ForRequest(request_);
|
| -
|
| - did_defer_response_ = info->cross_site_handler()->did_defer_for_testing();
|
| - }
|
| -
|
| - void RequestComplete(net::URLRequest* url_request) override {
|
| - if (is_transition_request_) {
|
| - ResourceRequestInfoImpl* info =
|
| - ResourceRequestInfoImpl::ForRequest(request_);
|
| - TransitionLayerData transition_data;
|
| - did_clear_data_ = !TransitionRequestManager::GetInstance(
|
| - )->GetPendingTransitionRequest(info->GetChildID(),
|
| - info->GetRenderFrameID(),
|
| - request_->url(),
|
| - &transition_data);
|
| - }
|
| - }
|
| -
|
| - void set_pending_transition_request(bool is_transition_request) {
|
| - is_transition_request_ = is_transition_request;
|
| - }
|
| -
|
| - bool did_defer_response() const { return did_defer_response_; }
|
| - bool did_clear_data() const { return did_clear_data_; }
|
| -
|
| - private:
|
| - net::URLRequest* request_;
|
| - bool did_defer_response_;
|
| - bool is_transition_request_;
|
| - bool did_clear_data_;
|
| -};
|
| -
|
| -// This tests that normal navigations don't defer at first response.
|
| -IN_PROC_BROWSER_TEST_F(TransitionBrowserTest,
|
| - NormalNavigationNotDeferred) {
|
| - // This test shouldn't run in --site-per-process mode, where normal
|
| - // navigations are also deferred.
|
| - if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kSitePerProcess))
|
| - return;
|
| -
|
| - ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
|
| - scoped_ptr<TransitionBrowserTestObserver> observer(
|
| - new TransitionBrowserTestObserver(shell()->web_contents()));
|
| -
|
| - ResourceDispatcherHost::Get()->SetDelegate(observer.get());
|
| -
|
| - NavigateToURL(shell(), embedded_test_server()->GetURL("/title1.html"));
|
| -
|
| - EXPECT_FALSE(observer->did_defer_response());
|
| -}
|
| -
|
| -// This tests that when a navigation transition is detected, the response is
|
| -// deferred.
|
| -IN_PROC_BROWSER_TEST_F(TransitionBrowserTest,
|
| - TransitionNavigationIsDeferred) {
|
| - ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
|
| - scoped_ptr<TransitionBrowserTestObserver> observer(
|
| - new TransitionBrowserTestObserver(shell()->web_contents()));
|
| -
|
| - ResourceDispatcherHost::Get()->SetDelegate(observer.get());
|
| - observer->set_pending_transition_request(true);
|
| -
|
| - NavigateToURL(shell(), embedded_test_server()->GetURL("/title1.html"));
|
| -
|
| - EXPECT_TRUE(observer->did_defer_response());
|
| -}
|
| -
|
| -// This tests that the renderer is reused between the outgoing and transition.
|
| -IN_PROC_BROWSER_TEST_F(TransitionBrowserTest,
|
| - TransitionNavigationSharesRenderer) {
|
| - ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
|
| -
|
| - NavigateToURL(shell(), embedded_test_server()->GetURL("/title1.html"));
|
| -
|
| - int outgoing_process_id =
|
| - shell()->web_contents()->GetRenderProcessHost()->GetID();
|
| -
|
| - WebContents::CreateParams create_params(
|
| - shell()->web_contents()->GetBrowserContext(),
|
| - shell()->web_contents()->GetSiteInstance());
|
| - scoped_ptr<WebContents> transition_web_contents(
|
| - WebContents::Create(create_params));
|
| -
|
| - GURL about_blank(url::kAboutBlankURL);
|
| - NavigationController::LoadURLParams params(about_blank);
|
| - transition_web_contents->GetController().LoadURLWithParams(params);
|
| - transition_web_contents->Focus();
|
| -
|
| - WaitForLoadStop(transition_web_contents.get());
|
| -
|
| - int transition_process_id =
|
| - transition_web_contents->GetRenderProcessHost()->GetID();
|
| -
|
| - EXPECT_EQ(outgoing_process_id, transition_process_id);
|
| -}
|
| -
|
| -// This tests that the transition data is cleared after the transition.
|
| -IN_PROC_BROWSER_TEST_F(TransitionBrowserTest,
|
| - TransitionNavigationDataIsCleared) {
|
| - ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
|
| - scoped_ptr<TransitionBrowserTestObserver> observer(
|
| - new TransitionBrowserTestObserver(shell()->web_contents()));
|
| -
|
| - ResourceDispatcherHost::Get()->SetDelegate(observer.get());
|
| - observer->set_pending_transition_request(true);
|
| -
|
| - NavigateToURL(shell(), embedded_test_server()->GetURL("/title1.html"));
|
| - WaitForLoadStop(shell()->web_contents());
|
| -
|
| - EXPECT_TRUE(observer->did_clear_data());
|
| -}
|
| -
|
| -} // namespace content
|
|
|