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

Side by Side Diff: chrome/browser/prerender/prerender_tab_helper.cc

Issue 19705013: [password autofill] Remove references to PasswordForm from RenderViewImpl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Callback Created 7 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/prerender/prerender_tab_helper.h" 5 #include "chrome/browser/prerender/prerender_tab_helper.h"
6 6
7 #include "base/bind.h"
7 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
8 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
9 #include "base/time/time.h" 10 #include "base/time/time.h"
10 #include "chrome/browser/predictors/logged_in_predictor_table.h" 11 #include "chrome/browser/predictors/logged_in_predictor_table.h"
11 #include "chrome/browser/prerender/prerender_histograms.h" 12 #include "chrome/browser/prerender/prerender_histograms.h"
12 #include "chrome/browser/prerender/prerender_local_predictor.h" 13 #include "chrome/browser/prerender/prerender_local_predictor.h"
13 #include "chrome/browser/prerender/prerender_manager.h" 14 #include "chrome/browser/prerender/prerender_manager.h"
14 #include "chrome/browser/prerender/prerender_manager_factory.h" 15 #include "chrome/browser/prerender/prerender_manager_factory.h"
15 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
16 #include "content/public/browser/browser_thread.h" 17 #include "content/public/browser/browser_thread.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 // Bitmap of what the last swapped in prerendered tab looked like at swapin, 144 // Bitmap of what the last swapped in prerendered tab looked like at swapin,
144 // and the WebContents that it was swapped into. 145 // and the WebContents that it was swapped into.
145 scoped_ptr<SkBitmap> bitmap_; 146 scoped_ptr<SkBitmap> bitmap_;
146 WebContents* bitmap_web_contents_; 147 WebContents* bitmap_web_contents_;
147 148
148 base::WeakPtrFactory<PixelStats> weak_factory_; 149 base::WeakPtrFactory<PixelStats> weak_factory_;
149 150
150 PrerenderTabHelper* tab_helper_; 151 PrerenderTabHelper* tab_helper_;
151 }; 152 };
152 153
153 PrerenderTabHelper::PrerenderTabHelper(content::WebContents* web_contents) 154 // static
155 void PrerenderTabHelper::CreateForWebContentsWithPasswordManager(
156 content::WebContents* web_contents,
157 PasswordManager* password_manager) {
158 if (!FromWebContents(web_contents)) {
159 web_contents->SetUserData(UserDataKey(),
160 new PrerenderTabHelper(web_contents,
161 password_manager));
162 }
163 }
164
165 PrerenderTabHelper::PrerenderTabHelper(content::WebContents* web_contents,
166 PasswordManager* password_manager)
154 : content::WebContentsObserver(web_contents), 167 : content::WebContentsObserver(web_contents),
168 password_callback_(base::Bind(&PrerenderTabHelper::PasswordSubmitted,
169 base::Unretained(this))),
Ilya Sherman 2013/07/27 01:09:48 Why is base::Unretained() safe here?
Garrett Casto 2013/08/03 00:38:42 Deletion of the PasswordManager and this object ha
Ilya Sherman 2013/08/06 09:34:11 So, while you might be right, this strikes me as r
155 weak_factory_(this) { 170 weak_factory_(this) {
171 DCHECK(password_manager);
Ilya Sherman 2013/07/27 01:09:48 nit: This seems redundant with the immediate use o
Garrett Casto 2013/08/03 00:38:42 I just wanted to give a slightly better error mess
172 password_manager->AddSubmissionCallback(password_callback_);
156 } 173 }
157 174
158 PrerenderTabHelper::~PrerenderTabHelper() { 175 PrerenderTabHelper::~PrerenderTabHelper() {
159 } 176 }
160 177
161 void PrerenderTabHelper::ProvisionalChangeToMainFrameUrl( 178 void PrerenderTabHelper::ProvisionalChangeToMainFrameUrl(
162 const GURL& url, 179 const GURL& url,
163 content::RenderViewHost* render_view_host) { 180 content::RenderViewHost* render_view_host) {
164 url_ = url; 181 url_ = url;
165 RecordEvent(EVENT_MAINFRAME_CHANGE); 182 RecordEvent(EVENT_MAINFRAME_CHANGE);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 bool is_error_page, 253 bool is_error_page,
237 bool is_iframe_srcdoc, 254 bool is_iframe_srcdoc,
238 content::RenderViewHost* render_view_host) { 255 content::RenderViewHost* render_view_host) {
239 if (is_main_frame) { 256 if (is_main_frame) {
240 // Record the beginning of a new PPLT navigation. 257 // Record the beginning of a new PPLT navigation.
241 pplt_load_start_ = base::TimeTicks::Now(); 258 pplt_load_start_ = base::TimeTicks::Now();
242 actual_load_start_ = base::TimeTicks(); 259 actual_load_start_ = base::TimeTicks();
243 } 260 }
244 } 261 }
245 262
246 void PrerenderTabHelper::DidNavigateAnyFrame( 263 void PrerenderTabHelper::PasswordSubmitted(const content::PasswordForm& form) {
247 const content::LoadCommittedDetails& details,
248 const content::FrameNavigateParams& params) {
249 PrerenderManager* prerender_manager = MaybeGetPrerenderManager(); 264 PrerenderManager* prerender_manager = MaybeGetPrerenderManager();
250 if (params.password_form.origin.is_valid() && prerender_manager) { 265 if (prerender_manager) {
251 prerender_manager->RecordLikelyLoginOnURL(params.url); 266 prerender_manager->RecordLikelyLoginOnURL(form.origin);
252 RecordEvent(EVENT_LOGIN_ACTION_ADDED); 267 RecordEvent(EVENT_LOGIN_ACTION_ADDED);
253 } 268 }
254 } 269 }
255 270
256 PrerenderManager* PrerenderTabHelper::MaybeGetPrerenderManager() const { 271 PrerenderManager* PrerenderTabHelper::MaybeGetPrerenderManager() const {
257 return PrerenderManagerFactory::GetForProfile( 272 return PrerenderManagerFactory::GetForProfile(
258 Profile::FromBrowserContext(web_contents()->GetBrowserContext())); 273 Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
259 } 274 }
260 275
261 bool PrerenderTabHelper::IsPrerendering() { 276 bool PrerenderTabHelper::IsPrerendering() {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 334
320 void PrerenderTabHelper::RecordEventIfLoggedInURLResult( 335 void PrerenderTabHelper::RecordEventIfLoggedInURLResult(
321 PrerenderTabHelper::Event event, 336 PrerenderTabHelper::Event event,
322 scoped_ptr<bool> is_present, 337 scoped_ptr<bool> is_present,
323 scoped_ptr<bool> lookup_succeeded) { 338 scoped_ptr<bool> lookup_succeeded) {
324 if (*lookup_succeeded && *is_present) 339 if (*lookup_succeeded && *is_present)
325 RecordEvent(event); 340 RecordEvent(event);
326 } 341 }
327 342
328 } // namespace prerender 343 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698