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

Side by Side Diff: components/autofill/browser/risk/fingerprint.cc

Issue 13409003: Hide ContentClient getters from embedders so that they they don't reuse content's embedder API. The… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 7 years, 8 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 "components/autofill/browser/risk/fingerprint.h" 5 #include "components/autofill/browser/risk/fingerprint.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/cpu.h" 9 #include "base/cpu.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/strings/string_split.h" 11 #include "base/strings/string_split.h"
12 #include "base/sys_info.h" 12 #include "base/sys_info.h"
13 #include "base/time.h" 13 #include "base/time.h"
14 #include "base/utf_string_conversions.h" 14 #include "base/utf_string_conversions.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "components/autofill/browser/risk/proto/fingerprint.pb.h" 16 #include "components/autofill/browser/risk/proto/fingerprint.pb.h"
17 #include "content/public/browser/content_browser_client.h"
18 #include "content/public/browser/font_list_async.h" 17 #include "content/public/browser/font_list_async.h"
19 #include "content/public/browser/gpu_data_manager.h" 18 #include "content/public/browser/gpu_data_manager.h"
20 #include "content/public/browser/gpu_data_manager_observer.h" 19 #include "content/public/browser/gpu_data_manager_observer.h"
21 #include "content/public/browser/plugin_service.h" 20 #include "content/public/browser/plugin_service.h"
22 #include "content/public/browser/render_widget_host.h" 21 #include "content/public/browser/render_widget_host.h"
23 #include "content/public/browser/render_widget_host_view.h" 22 #include "content/public/browser/render_widget_host_view.h"
24 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
25 #include "content/public/browser/web_contents_view.h" 24 #include "content/public/browser/web_contents_view.h"
26 #include "content/public/common/content_client.h" 25 #include "content/public/common/content_client.h"
27 #include "content/public/common/gpu_info.h" 26 #include "content/public/common/gpu_info.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 FingerprintDataLoader( 181 FingerprintDataLoader(
183 int64 gaia_id, 182 int64 gaia_id,
184 const gfx::Rect& window_bounds, 183 const gfx::Rect& window_bounds,
185 const gfx::Rect& content_bounds, 184 const gfx::Rect& content_bounds,
186 const WebScreenInfo& screen_info, 185 const WebScreenInfo& screen_info,
187 const std::string& version, 186 const std::string& version,
188 const std::string& charset, 187 const std::string& charset,
189 const std::string& accept_languages, 188 const std::string& accept_languages,
190 const base::Time& install_time, 189 const base::Time& install_time,
191 DialogType dialog_type, 190 DialogType dialog_type,
191 const std::string& app_locale,
192 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback); 192 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback);
193 193
194 private: 194 private:
195 virtual ~FingerprintDataLoader(); 195 virtual ~FingerprintDataLoader();
196 196
197 // content::GpuDataManagerObserver: 197 // content::GpuDataManagerObserver:
198 virtual void OnGpuInfoUpdate() OVERRIDE; 198 virtual void OnGpuInfoUpdate() OVERRIDE;
199 199
200 // Callbacks for asynchronously loaded data. 200 // Callbacks for asynchronously loaded data.
201 void OnGotFonts(scoped_ptr<base::ListValue> fonts); 201 void OnGotFonts(scoped_ptr<base::ListValue> fonts);
(...skipping 18 matching lines...) Expand all
220 const std::string charset_; 220 const std::string charset_;
221 const std::string accept_languages_; 221 const std::string accept_languages_;
222 const base::Time install_time_; 222 const base::Time install_time_;
223 DialogType dialog_type_; 223 DialogType dialog_type_;
224 224
225 // Data that will be loaded asynchronously. 225 // Data that will be loaded asynchronously.
226 scoped_ptr<base::ListValue> fonts_; 226 scoped_ptr<base::ListValue> fonts_;
227 std::vector<webkit::WebPluginInfo> plugins_; 227 std::vector<webkit::WebPluginInfo> plugins_;
228 bool has_loaded_plugins_; 228 bool has_loaded_plugins_;
229 229
230 // The current application locale.
231 std::string app_locale_;
232
230 // The callback that will be called once all the data is available. 233 // The callback that will be called once all the data is available.
231 base::Callback<void(scoped_ptr<Fingerprint>)> callback_; 234 base::Callback<void(scoped_ptr<Fingerprint>)> callback_;
232 235
233 DISALLOW_COPY_AND_ASSIGN(FingerprintDataLoader); 236 DISALLOW_COPY_AND_ASSIGN(FingerprintDataLoader);
234 }; 237 };
235 238
236 FingerprintDataLoader::FingerprintDataLoader( 239 FingerprintDataLoader::FingerprintDataLoader(
237 int64 gaia_id, 240 int64 gaia_id,
238 const gfx::Rect& window_bounds, 241 const gfx::Rect& window_bounds,
239 const gfx::Rect& content_bounds, 242 const gfx::Rect& content_bounds,
240 const WebScreenInfo& screen_info, 243 const WebScreenInfo& screen_info,
241 const std::string& version, 244 const std::string& version,
242 const std::string& charset, 245 const std::string& charset,
243 const std::string& accept_languages, 246 const std::string& accept_languages,
244 const base::Time& install_time, 247 const base::Time& install_time,
245 DialogType dialog_type, 248 DialogType dialog_type,
249 const std::string& app_locale,
246 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback) 250 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback)
247 : gpu_data_manager_(content::GpuDataManager::GetInstance()), 251 : gpu_data_manager_(content::GpuDataManager::GetInstance()),
248 gaia_id_(gaia_id), 252 gaia_id_(gaia_id),
249 window_bounds_(window_bounds), 253 window_bounds_(window_bounds),
250 content_bounds_(content_bounds), 254 content_bounds_(content_bounds),
251 screen_info_(screen_info), 255 screen_info_(screen_info),
252 version_(version), 256 version_(version),
253 charset_(charset), 257 charset_(charset),
254 accept_languages_(accept_languages), 258 accept_languages_(accept_languages),
255 install_time_(install_time), 259 install_time_(install_time),
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 void FingerprintDataLoader::FillFingerprint() { 315 void FingerprintDataLoader::FillFingerprint() {
312 scoped_ptr<Fingerprint> fingerprint(new Fingerprint); 316 scoped_ptr<Fingerprint> fingerprint(new Fingerprint);
313 Fingerprint_MachineCharacteristics* machine = 317 Fingerprint_MachineCharacteristics* machine =
314 fingerprint->mutable_machine_characteristics(); 318 fingerprint->mutable_machine_characteristics();
315 319
316 machine->set_operating_system_build(GetOperatingSystemVersion()); 320 machine->set_operating_system_build(GetOperatingSystemVersion());
317 // We use the delta between the install time and the Unix epoch, in hours. 321 // We use the delta between the install time and the Unix epoch, in hours.
318 machine->set_browser_install_time_hours( 322 machine->set_browser_install_time_hours(
319 (install_time_ - base::Time::UnixEpoch()).InHours()); 323 (install_time_ - base::Time::UnixEpoch()).InHours());
320 machine->set_utc_offset_ms(GetTimezoneOffset().InMilliseconds()); 324 machine->set_utc_offset_ms(GetTimezoneOffset().InMilliseconds());
321 machine->set_browser_language( 325 machine->set_browser_language(app_locale_);
322 content::GetContentClient()->browser()->GetApplicationLocale());
323 machine->set_charset(charset_); 326 machine->set_charset(charset_);
324 machine->set_user_agent(content::GetContentClient()->GetUserAgent()); 327 machine->set_user_agent(content::GetUserAgent(GURL()));
325 machine->set_ram(base::SysInfo::AmountOfPhysicalMemory()); 328 machine->set_ram(base::SysInfo::AmountOfPhysicalMemory());
326 machine->set_browser_build(version_); 329 machine->set_browser_build(version_);
327 machine->set_browser_feature(DialogTypeToBrowserFeature(dialog_type_)); 330 machine->set_browser_feature(DialogTypeToBrowserFeature(dialog_type_));
328 AddFontsToFingerprint(*fonts_, machine); 331 AddFontsToFingerprint(*fonts_, machine);
329 AddPluginsToFingerprint(plugins_, machine); 332 AddPluginsToFingerprint(plugins_, machine);
330 AddAcceptLanguagesToFingerprint(accept_languages_, machine); 333 AddAcceptLanguagesToFingerprint(accept_languages_, machine);
331 AddScreenInfoToFingerprint(screen_info_, machine); 334 AddScreenInfoToFingerprint(screen_info_, machine);
332 AddCpuInfoToFingerprint(machine); 335 AddCpuInfoToFingerprint(machine);
333 AddGpuInfoToFingerprint(machine); 336 AddGpuInfoToFingerprint(machine);
334 337
(...skipping 29 matching lines...) Expand all
364 367
365 void GetFingerprint( 368 void GetFingerprint(
366 int64 gaia_id, 369 int64 gaia_id,
367 const gfx::Rect& window_bounds, 370 const gfx::Rect& window_bounds,
368 const content::WebContents& web_contents, 371 const content::WebContents& web_contents,
369 const std::string& version, 372 const std::string& version,
370 const std::string& charset, 373 const std::string& charset,
371 const std::string& accept_languages, 374 const std::string& accept_languages,
372 const base::Time& install_time, 375 const base::Time& install_time,
373 DialogType dialog_type, 376 DialogType dialog_type,
377 const std::string& app_locale,
374 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback) { 378 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback) {
375 gfx::Rect content_bounds; 379 gfx::Rect content_bounds;
376 web_contents.GetView()->GetContainerBounds(&content_bounds); 380 web_contents.GetView()->GetContainerBounds(&content_bounds);
377 381
378 WebKit::WebScreenInfo screen_info; 382 WebKit::WebScreenInfo screen_info;
379 content::RenderWidgetHostView* host_view = 383 content::RenderWidgetHostView* host_view =
380 web_contents.GetRenderWidgetHostView(); 384 web_contents.GetRenderWidgetHostView();
381 if (host_view) 385 if (host_view)
382 host_view->GetRenderWidgetHost()->GetWebScreenInfo(&screen_info); 386 host_view->GetRenderWidgetHost()->GetWebScreenInfo(&screen_info);
383 387
384 internal::GetFingerprintInternal( 388 internal::GetFingerprintInternal(
385 gaia_id, window_bounds, content_bounds, screen_info, version, charset, 389 gaia_id, window_bounds, content_bounds, screen_info, version, charset,
386 accept_languages, install_time, dialog_type, callback); 390 accept_languages, install_time, dialog_type, app_locale, callback);
387 } 391 }
388 392
389 namespace internal { 393 namespace internal {
390 394
391 void GetFingerprintInternal( 395 void GetFingerprintInternal(
392 int64 gaia_id, 396 int64 gaia_id,
393 const gfx::Rect& window_bounds, 397 const gfx::Rect& window_bounds,
394 const gfx::Rect& content_bounds, 398 const gfx::Rect& content_bounds,
395 const WebKit::WebScreenInfo& screen_info, 399 const WebKit::WebScreenInfo& screen_info,
396 const std::string& version, 400 const std::string& version,
397 const std::string& charset, 401 const std::string& charset,
398 const std::string& accept_languages, 402 const std::string& accept_languages,
399 const base::Time& install_time, 403 const base::Time& install_time,
400 DialogType dialog_type, 404 DialogType dialog_type,
405 const std::string& app_locale,
401 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback) { 406 const base::Callback<void(scoped_ptr<Fingerprint>)>& callback) {
402 // Begin loading all of the data that we need to load asynchronously. 407 // Begin loading all of the data that we need to load asynchronously.
403 // This class is responsible for freeing its own memory. 408 // This class is responsible for freeing its own memory.
404 new FingerprintDataLoader(gaia_id, window_bounds, content_bounds, screen_info, 409 new FingerprintDataLoader(gaia_id, window_bounds, content_bounds, screen_info,
405 version, charset, accept_languages, install_time, 410 version, charset, accept_languages, install_time,
406 dialog_type, callback); 411 dialog_type, app_locale, callback);
407 } 412 }
408 413
409 } // namespace internal 414 } // namespace internal
410 415
411 } // namespace risk 416 } // namespace risk
412 } // namespace autofill 417 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/browser/risk/fingerprint.h ('k') | content/browser/child_process_security_policy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698