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

Unified Diff: chrome/browser/password_manager/credential_manager_browsertest.cc

Issue 2447143002: Stop prerendering of a site if it uses the Credential Manager API. (Closed)
Patch Set: forgot Created 4 years, 2 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
Index: chrome/browser/password_manager/credential_manager_browsertest.cc
diff --git a/chrome/browser/password_manager/credential_manager_browsertest.cc b/chrome/browser/password_manager/credential_manager_browsertest.cc
index e0cd9cc5a921ab7a26b2fc0f0a164c94edd35513..ee13ef4a46c84ee58aa3f064c6a292f8469c20a0 100644
--- a/chrome/browser/password_manager/credential_manager_browsertest.cc
+++ b/chrome/browser/password_manager/credential_manager_browsertest.cc
@@ -6,9 +6,11 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/password_manager/password_manager_test_base.h"
#include "chrome/browser/password_manager/password_store_factory.h"
+#include "chrome/browser/prerender/prerender_test_utils.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
+#include "chrome/test/base/ui_test_utils.h"
#include "components/password_manager/core/browser/password_bubble_experiment.h"
#include "components/password_manager/core/browser/password_store_consumer.h"
#include "components/password_manager/core/browser/test_password_store.h"
@@ -17,6 +19,7 @@
namespace {
+using prerender::test_utils::TestPrerender;
// A helper class that synchronously waits until the password store handles a
// GetLogins() request.
class PasswordStoreResultsObserver
@@ -255,4 +258,27 @@ IN_PROC_BROWSER_TEST_F(CredentialManagerBrowserTest, UpdateViaAPIAndAutofill) {
EXPECT_EQ(signin_form, stored[signin_form.signon_realm][0]);
}
+class CredentialManagerPrerenderTest
+ : public prerender::test_utils::PrerenderInProcessBrowserTest {
+ private:
+ std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURLImpl(
pasko 2016/10/26 12:37:00 in a concurrent change I am removing PrerenderTest
vasilii 2016/10/27 09:02:09 Done.
+ const GURL& prerender_url,
+ const std::vector<prerender::FinalStatus>& expected_final_status_queue,
+ int expected_number_of_loads) override {
+ return NavigateWithPrerenders(prerender_url, expected_final_status_queue,
+ expected_number_of_loads);
+ }
+};
+
+IN_PROC_BROWSER_TEST_F(CredentialManagerPrerenderTest,
+ AutosigninInPrerenderer) {
+ std::unique_ptr<TestPrerender> prerender = prerender_contents_factory()->
+ ExpectPrerenderContents(prerender::FINAL_STATUS_CREDENTIAL_MANAGER_API);
+ GURL test_page = embedded_test_server()->GetURL(
+ "/password/prerender_autosignin.html");
+ ui_test_utils::NavigateToURL(current_browser(), test_page);
+ prerender->WaitForCreate();
pasko 2016/10/26 12:37:00 can just WaitForStop() without WaitForCreate()
vasilii 2016/10/27 09:02:09 Done.
+ prerender->WaitForStop();
pasko 2016/10/26 12:37:00 Do we also want to make sure that a request to pas
vasilii 2016/10/27 09:02:09 Done.
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698