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

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: Created 7 years, 4 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"
11 #include "chrome/browser/password_manager/password_manager.h"
10 #include "chrome/browser/predictors/logged_in_predictor_table.h" 12 #include "chrome/browser/predictors/logged_in_predictor_table.h"
11 #include "chrome/browser/prerender/prerender_histograms.h" 13 #include "chrome/browser/prerender/prerender_histograms.h"
12 #include "chrome/browser/prerender/prerender_local_predictor.h" 14 #include "chrome/browser/prerender/prerender_local_predictor.h"
13 #include "chrome/browser/prerender/prerender_manager.h" 15 #include "chrome/browser/prerender/prerender_manager.h"
14 #include "chrome/browser/prerender/prerender_manager_factory.h" 16 #include "chrome/browser/prerender/prerender_manager_factory.h"
15 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
16 #include "content/public/browser/browser_thread.h" 18 #include "content/public/browser/browser_thread.h"
17 #include "content/public/browser/navigation_details.h" 19 #include "content/public/browser/navigation_details.h"
18 #include "content/public/browser/navigation_entry.h" 20 #include "content/public/browser/navigation_entry.h"
19 #include "content/public/browser/render_view_host.h" 21 #include "content/public/browser/render_view_host.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 // Bitmap of what the last swapped in prerendered tab looked like at swapin, 145 // Bitmap of what the last swapped in prerendered tab looked like at swapin,
144 // and the WebContents that it was swapped into. 146 // and the WebContents that it was swapped into.
145 scoped_ptr<SkBitmap> bitmap_; 147 scoped_ptr<SkBitmap> bitmap_;
146 WebContents* bitmap_web_contents_; 148 WebContents* bitmap_web_contents_;
147 149
148 base::WeakPtrFactory<PixelStats> weak_factory_; 150 base::WeakPtrFactory<PixelStats> weak_factory_;
149 151
150 PrerenderTabHelper* tab_helper_; 152 PrerenderTabHelper* tab_helper_;
151 }; 153 };
152 154
153 PrerenderTabHelper::PrerenderTabHelper(content::WebContents* web_contents) 155 // static
156 void PrerenderTabHelper::CreateForWebContentsWithPasswordManager(
157 content::WebContents* web_contents,
158 PasswordManager* password_manager) {
159 if (!FromWebContents(web_contents)) {
160 web_contents->SetUserData(UserDataKey(),
161 new PrerenderTabHelper(web_contents,
162 password_manager));
163 }
164 }
165
166 PrerenderTabHelper::PrerenderTabHelper(content::WebContents* web_contents,
167 PasswordManager* password_manager)
154 : content::WebContentsObserver(web_contents), 168 : content::WebContentsObserver(web_contents),
155 weak_factory_(this) { 169 weak_factory_(this) {
170 password_manager->AddSubmissionCallback(
171 base::Bind(&PrerenderTabHelper::PasswordSubmitted,
172 weak_factory_.GetWeakPtr()));
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 if (details.is_main_frame) { 268 if (form.password_value.empty())
254 RecordEvent(EVENT_LOGIN_ACTION_ADDED_MAINFRAME); 269 RecordEvent(EVENT_LOGIN_ACTION_ADDED_PW_EMPTY);
255 if (params.password_form.password_value.empty())
256 RecordEvent(EVENT_LOGIN_ACTION_ADDED_MAINFRAME_PW_EMPTY);
257 } else {
258 RecordEvent(EVENT_LOGIN_ACTION_ADDED_SUBFRAME);
259 if (params.password_form.password_value.empty())
260 RecordEvent(EVENT_LOGIN_ACTION_ADDED_SUBFRAME_PW_EMPTY);
261 }
262 } 270 }
263 } 271 }
264 272
265 PrerenderManager* PrerenderTabHelper::MaybeGetPrerenderManager() const { 273 PrerenderManager* PrerenderTabHelper::MaybeGetPrerenderManager() const {
266 return PrerenderManagerFactory::GetForProfile( 274 return PrerenderManagerFactory::GetForProfile(
267 Profile::FromBrowserContext(web_contents()->GetBrowserContext())); 275 Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
268 } 276 }
269 277
270 bool PrerenderTabHelper::IsPrerendering() { 278 bool PrerenderTabHelper::IsPrerendering() {
271 PrerenderManager* prerender_manager = MaybeGetPrerenderManager(); 279 PrerenderManager* prerender_manager = MaybeGetPrerenderManager();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 336
329 void PrerenderTabHelper::RecordEventIfLoggedInURLResult( 337 void PrerenderTabHelper::RecordEventIfLoggedInURLResult(
330 PrerenderTabHelper::Event event, 338 PrerenderTabHelper::Event event,
331 scoped_ptr<bool> is_present, 339 scoped_ptr<bool> is_present,
332 scoped_ptr<bool> lookup_succeeded) { 340 scoped_ptr<bool> lookup_succeeded) {
333 if (*lookup_succeeded && *is_present) 341 if (*lookup_succeeded && *is_present)
334 RecordEvent(event); 342 RecordEvent(event);
335 } 343 }
336 344
337 } // namespace prerender 345 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_tab_helper.h ('k') | chrome/browser/ui/browser_tab_contents.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698