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

Unified Diff: content/browser/transition_browsertest.cc

Issue 1144463003: Remove Navigation Transitions from Chromium (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed TransitionPageHelper. Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/renderer_host/render_widget_helper.cc ('k') | content/browser/transition_request_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « content/browser/renderer_host/render_widget_helper.cc ('k') | content/browser/transition_request_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698