| Index: chrome/browser/prerender/prerender_tab_helper.cc
|
| diff --git a/chrome/browser/prerender/prerender_tab_helper.cc b/chrome/browser/prerender/prerender_tab_helper.cc
|
| index 8c611a4c1e00f40a267bda4ffe63cb5752e109c9..97d1c641ec5f494169b217867a12dfcdfa8e6002 100644
|
| --- a/chrome/browser/prerender/prerender_tab_helper.cc
|
| +++ b/chrome/browser/prerender/prerender_tab_helper.cc
|
| @@ -12,6 +12,7 @@
|
| #include "chrome/browser/prerender/prerender_manager.h"
|
| #include "chrome/browser/prerender/prerender_manager_factory.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "components/password_manager/content/browser/content_password_manager_driver.h"
|
| #include "components/password_manager/core/browser/password_manager.h"
|
| #include "content/public/browser/navigation_details.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| @@ -43,32 +44,12 @@ void ReportTabHelperURLSeenToLocalPredictor(
|
|
|
| } // namespace
|
|
|
| -// static
|
| -void PrerenderTabHelper::CreateForWebContentsWithPasswordManager(
|
| - content::WebContents* web_contents,
|
| - password_manager::PasswordManager* password_manager) {
|
| - if (!FromWebContents(web_contents)) {
|
| - web_contents->SetUserData(UserDataKey(),
|
| - new PrerenderTabHelper(web_contents,
|
| - password_manager));
|
| - }
|
| -}
|
| -
|
| -PrerenderTabHelper::PrerenderTabHelper(
|
| - content::WebContents* web_contents,
|
| - password_manager::PasswordManager* password_manager)
|
| +PrerenderTabHelper::PrerenderTabHelper(content::WebContents* web_contents)
|
| : content::WebContentsObserver(web_contents),
|
| origin_(ORIGIN_NONE),
|
| next_load_is_control_prerender_(false),
|
| next_load_origin_(ORIGIN_NONE),
|
| weak_factory_(this) {
|
| - if (password_manager) {
|
| - // May be NULL in testing.
|
| - password_manager->AddSubmissionCallback(
|
| - base::Bind(&PrerenderTabHelper::PasswordSubmitted,
|
| - weak_factory_.GetWeakPtr()));
|
| - }
|
| -
|
| // Determine if this is a prerender.
|
| PrerenderManager* prerender_manager = MaybeGetPrerenderManager();
|
| if (prerender_manager &&
|
| @@ -77,11 +58,26 @@ PrerenderTabHelper::PrerenderTabHelper(
|
| } else {
|
| navigation_type_ = NAVIGATION_TYPE_NORMAL;
|
| }
|
| +
|
| + if (web_contents->GetMainFrame())
|
| + RenderFrameCreated(web_contents->GetMainFrame());
|
| }
|
|
|
| PrerenderTabHelper::~PrerenderTabHelper() {
|
| }
|
|
|
| +void PrerenderTabHelper::RenderFrameCreated(
|
| + content::RenderFrameHost* render_frame_host) {
|
| + password_manager::ContentPasswordManagerDriver* driver =
|
| + password_manager::ContentPasswordManagerDriver::GetForRenderFrameHost(
|
| + render_frame_host);
|
| + // May be NULL in testing.
|
| + if (!driver)
|
| + return;
|
| + driver->GetPasswordManager()->AddSubmissionCallback(base::Bind(
|
| + &PrerenderTabHelper::PasswordSubmitted, weak_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| void PrerenderTabHelper::DidGetRedirectForResourceRequest(
|
| content::RenderViewHost* render_view_host,
|
| const content::ResourceRedirectDetails& details) {
|
|
|