diff options
author | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-09 19:05:05 +0000 |
---|---|---|
committer | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-09 19:05:05 +0000 |
commit | 3f3a65fe54ba1ffad797a44401ffd42d9de9ffce (patch) | |
tree | b4ef7b030c6c6a181dd222c55d108b18be42e053 | |
parent | caace87499af099ae2bc43d03eb9444200bee2e9 (diff) | |
download | chromium_src-3f3a65fe54ba1ffad797a44401ffd42d9de9ffce.zip chromium_src-3f3a65fe54ba1ffad797a44401ffd42d9de9ffce.tar.gz chromium_src-3f3a65fe54ba1ffad797a44401ffd42d9de9ffce.tar.bz2 |
Move LanguageUsageMetrics and TranslateBrowserMetrics to components
LanguageUsageMetrics is moved to its own component because it is used
both in the translate component and directly in the browser.
TranslateBrowserMetrics is moved to the translate component.
BUG=331509
TBR=jochen
Review URL: https://codereview.chromium.org/131203002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243946 0039d316-1c4b-4281-b951-d872f2087c98
21 files changed, 103 insertions, 34 deletions
@@ -18,6 +18,7 @@ group("root") { deps = [ "//base(//build/toolchain/nacl:x86_newlib)", "//chrome", + "//components/language_usage_metrics", "//components/navigation_metrics", "//components/onc:onc_component", "//components/startup_metric_utils", diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS index 9146adb..8c6c296 100644 --- a/chrome/browser/DEPS +++ b/chrome/browser/DEPS @@ -11,6 +11,7 @@ include_rules = [ "+components/breakpad", "+components/browser_context_keyed_service", "+components/dom_distiller", + "+components/language_usage_metrics", "+components/nacl/browser", "+components/nacl/common", "+components/navigation_interception", diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index 32ec024..6a3877c 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc @@ -62,7 +62,6 @@ #include "chrome/browser/google/google_util.h" #include "chrome/browser/gpu/gl_string_manager.h" #include "chrome/browser/jankometer.h" -#include "chrome/browser/language_usage_metrics.h" #include "chrome/browser/media/media_capture_devices_dispatcher.h" #include "chrome/browser/metrics/field_trial_synchronizer.h" #include "chrome/browser/metrics/metrics_log.h" @@ -114,6 +113,7 @@ #include "chrome/common/profile_management_switches.h" #include "chrome/common/profiling.h" #include "chrome/installer/util/google_update_settings.h" +#include "components/language_usage_metrics/language_usage_metrics.h" #include "components/nacl/browser/nacl_browser.h" #include "components/nacl/browser/nacl_process_host.h" #include "components/startup_metric_utils/startup_metric_utils.h" @@ -1391,9 +1391,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { browser_process_->metrics_service()->RecordBreakpadHasDebugger( base::debug::BeingDebugged()); - LanguageUsageMetrics::RecordAcceptLanguages( + language_usage_metrics::LanguageUsageMetrics::RecordAcceptLanguages( profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)); - LanguageUsageMetrics::RecordApplicationLanguage( + language_usage_metrics::LanguageUsageMetrics::RecordApplicationLanguage( browser_process_->GetApplicationLocale()); // The extension service may be available at this point. If the command line diff --git a/chrome/browser/translate/translate_language_list.cc b/chrome/browser/translate/translate_language_list.cc index 29fb947..9219368 100644 --- a/chrome/browser/translate/translate_language_list.cc +++ b/chrome/browser/translate/translate_language_list.cc @@ -14,10 +14,10 @@ #include "base/strings/stringprintf.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/translate/translate_browser_metrics.h" #include "chrome/browser/translate/translate_manager.h" #include "chrome/browser/translate/translate_url_fetcher.h" #include "chrome/browser/translate/translate_url_util.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include "components/translate/core/browser/translate_event_details.h" #include "net/base/url_util.h" #include "ui/base/l10n/l10n_util.h" diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc index 437661f..50349af 100644 --- a/chrome/browser/translate/translate_manager.cc +++ b/chrome/browser/translate/translate_manager.cc @@ -19,7 +19,6 @@ #include "chrome/browser/tab_contents/language_state.h" #include "chrome/browser/tab_contents/tab_util.h" #include "chrome/browser/translate/translate_accept_languages.h" -#include "chrome/browser/translate/translate_browser_metrics.h" #include "chrome/browser/translate/translate_infobar_delegate.h" #include "chrome/browser/translate/translate_language_list.h" #include "chrome/browser/translate/translate_prefs.h" @@ -37,6 +36,7 @@ #include "chrome/common/render_messages.h" #include "chrome/common/url_constants.h" #include "components/translate/core/browser/page_translated_details.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include "components/translate/core/browser/translate_error_details.h" #include "components/translate/core/browser/translate_event_details.h" #include "components/translate/core/common/language_detection_details.h" diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 1ce893e..218cf0b 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -948,8 +948,6 @@ 'browser/jankometer_mac.cc', 'browser/jumplist_win.cc', 'browser/jumplist_win.h', - 'browser/language_usage_metrics.cc', - 'browser/language_usage_metrics.h', 'browser/lifetime/application_lifetime.cc', 'browser/lifetime/application_lifetime.h', 'browser/lifetime/application_lifetime_android.cc', @@ -2494,8 +2492,6 @@ 'browser/translate/options_menu_model.h', 'browser/translate/translate_accept_languages.h', 'browser/translate/translate_accept_languages.cc', - 'browser/translate/translate_browser_metrics.cc', - 'browser/translate/translate_browser_metrics.h', 'browser/translate/translate_infobar_delegate.cc', 'browser/translate/translate_infobar_delegate.h', 'browser/translate/translate_language_list.cc', @@ -3344,7 +3340,7 @@ }], ], }, { # 'OS!="win" - 'sources/': [ + 'sources/': [ # Exclude files that should be excluded for all non-Windows platforms. ['exclude', '^browser/first_run/try_chrome_dialog_view.cc'], ['exclude', '^browser/first_run/try_chrome_dialog_view.h'], diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index bb38235..f948753 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -995,7 +995,6 @@ 'browser/invalidation/invalidation_service_test_template.h', 'browser/invalidation/invalidator_storage_unittest.cc', 'browser/invalidation/ticl_invalidation_service_unittest.cc', - 'browser/language_usage_metrics_unittest.cc', 'browser/local_discovery/privet_confirm_api_flow_unittest.cc', 'browser/local_discovery/privet_http_unittest.cc', 'browser/local_discovery/privet_url_fetcher_unittest.cc', @@ -1409,7 +1408,6 @@ 'browser/thumbnails/render_widget_snapshot_taker_unittest.cc', 'browser/thumbnails/simple_thumbnail_crop_unittest.cc', 'browser/thumbnails/thumbnail_service_unittest.cc', - 'browser/translate/translate_browser_metrics_unittest.cc', 'browser/translate/translate_manager_unittest.cc', 'browser/translate/translate_prefs_unittest.cc', 'browser/translate/translate_script_unittest.cc', diff --git a/components/components.gyp b/components/components.gyp index 89488a1..341d120 100644 --- a/components/components.gyp +++ b/components/components.gyp @@ -15,6 +15,7 @@ 'breakpad.gypi', 'dom_distiller.gypi', 'json_schema.gypi', + 'language_usage_metrics.gypi', 'navigation_metrics.gypi', 'onc.gypi', 'policy.gypi', diff --git a/components/components_tests.gyp b/components/components_tests.gyp index 7dca5d6..d16e68b 100644 --- a/components/components_tests.gyp +++ b/components/components_tests.gyp @@ -41,6 +41,7 @@ 'json_schema/json_schema_validator_unittest.cc', 'json_schema/json_schema_validator_unittest_base.cc', 'json_schema/json_schema_validator_unittest_base.h', + 'language_usage_metrics/language_usage_metrics_unittest.cc', 'navigation_interception/intercept_navigation_resource_throttle_unittest.cc', 'precache/content/precache_manager_unittest.cc', 'precache/core/precache_database_unittest.cc', @@ -49,6 +50,7 @@ 'sessions/serialized_navigation_entry_unittest.cc', 'signin/core/webdata/token_service_table_unittest.cc', 'test/run_all_unittests.cc', + 'translate/core/browser/translate_browser_metrics_unittest.cc', 'translate/core/common/translate_metrics_unittest.cc', 'translate/core/common/translate_util_unittest.cc', 'translate/language_detection/language_detection_util_unittest.cc', @@ -102,6 +104,9 @@ # Dependencies of json_schema 'components.gyp:json_schema', + # Dependencies of language_usage_metrics + 'components.gyp:language_usage_metrics', + # Dependencies of precache/core 'components.gyp:precache_core', @@ -109,6 +114,7 @@ 'components.gyp:signin_core', # Dependencies of translate. + 'components.gyp:translate_core_browser', 'components.gyp:translate_core_common', 'components.gyp:translate_language_detection', @@ -157,6 +163,7 @@ ['include', '^auto_login_parser/'], ['include', '^autofill/'], ['include', '^dom_distiller/'], + ['include', '^language_usage_metrics/'], ['include', '^precache/core/'], ['include', '^signin/'], ['include', '^translate/'], diff --git a/components/language_usage_metrics.gypi b/components/language_usage_metrics.gypi new file mode 100644 index 0000000..e150a1bb --- /dev/null +++ b/components/language_usage_metrics.gypi @@ -0,0 +1,22 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'language_usage_metrics', + 'type': 'static_library', + 'dependencies': [ + '../base/base.gyp:base', + ], + 'include_dirs': [ + '..', + ], + 'sources': [ + 'language_usage_metrics/language_usage_metrics.cc', + 'language_usage_metrics/language_usage_metrics.h', + ], + }, + ], +} diff --git a/components/language_usage_metrics/OWNERS b/components/language_usage_metrics/OWNERS new file mode 100644 index 0000000..a214ab1 --- /dev/null +++ b/components/language_usage_metrics/OWNERS @@ -0,0 +1,3 @@ +hajimehoshi@chromium.org +mad@chromium.org +toyoshim@chromium.org diff --git a/chrome/browser/language_usage_metrics.cc b/components/language_usage_metrics/language_usage_metrics.cc index 62ed43c..adb91c9 100644 --- a/chrome/browser/language_usage_metrics.cc +++ b/components/language_usage_metrics/language_usage_metrics.cc @@ -1,8 +1,8 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/language_usage_metrics.h" +#include "components/language_usage_metrics/language_usage_metrics.h" #include <algorithm> @@ -17,6 +17,8 @@ void RecordAcceptLanguage(int language_code) { } } // namespace +namespace language_usage_metrics { + // static void LanguageUsageMetrics::RecordAcceptLanguages( const std::string& accept_languages) { @@ -69,3 +71,5 @@ void LanguageUsageMetrics::ParseAcceptLanguages( languages->insert(language_code); } } + +} // namespace language_usage_metrics diff --git a/chrome/browser/language_usage_metrics.h b/components/language_usage_metrics/language_usage_metrics.h index 15a6868..ffde58b 100644 --- a/chrome/browser/language_usage_metrics.h +++ b/components/language_usage_metrics/language_usage_metrics.h @@ -1,9 +1,9 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_LANGUAGE_USAGE_METRICS_H_ -#define CHROME_BROWSER_LANGUAGE_USAGE_METRICS_H_ +#ifndef COMPONENTS_LANGUAGE_USAGE_METRICS_LANGUAGE_USAGE_METRICS_H_ +#define COMPONENTS_LANGUAGE_USAGE_METRICS_LANGUAGE_USAGE_METRICS_H_ #include <set> #include <string> @@ -11,6 +11,8 @@ #include "base/basictypes.h" #include "base/gtest_prod_util.h" +namespace language_usage_metrics { + // Methods to record language usage as UMA histograms. class LanguageUsageMetrics { public: @@ -46,4 +48,6 @@ class LanguageUsageMetrics { FRIEND_TEST_ALL_PREFIXES(LanguageUsageMetricsTest, ParseAcceptLanguages); }; -#endif // CHROME_BROWSER_LANGUAGE_USAGE_METRICS_H_ +} // namespace language_usage_metrics + +#endif // COMPONENTS_LANGUAGE_USAGE_METRICS_LANGUAGE_USAGE_METRICS_H_ diff --git a/chrome/browser/language_usage_metrics_unittest.cc b/components/language_usage_metrics/language_usage_metrics_unittest.cc index 9a2dbc98..74344eb 100644 --- a/chrome/browser/language_usage_metrics_unittest.cc +++ b/components/language_usage_metrics/language_usage_metrics_unittest.cc @@ -1,11 +1,13 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/language_usage_metrics.h" +#include "components/language_usage_metrics/language_usage_metrics.h" #include "testing/gtest/include/gtest/gtest.h" +namespace language_usage_metrics { + TEST(LanguageUsageMetricsTest, ParseAcceptLanguages) { std::set<int> language_set; std::set<int>::const_iterator it; @@ -101,3 +103,5 @@ TEST(LanguageUsageMetricsTest, ToLanguageCode) { // However, LanguageUsageMetrics doesn't tell what code is valid. EXPECT_EQ(30840, LanguageUsageMetrics::ToLanguageCode("xx")); } + +} // namespace language_usage_metrics diff --git a/components/translate.gypi b/components/translate.gypi index 7c63eb9..474b529 100644 --- a/components/translate.gypi +++ b/components/translate.gypi @@ -8,6 +8,7 @@ 'target_name': 'translate_core_browser', 'type': 'static_library', 'dependencies': [ + 'language_usage_metrics', 'translate_core_common', '../base/base.gyp:base', '../url/url.gyp:url_lib', @@ -17,6 +18,8 @@ ], 'sources': [ 'translate/core/browser/page_translated_details.h', + 'translate/core/browser/translate_browser_metrics.cc', + 'translate/core/browser/translate_browser_metrics.h', 'translate/core/browser/translate_error_details.h', 'translate/core/browser/translate_event_details.cc', 'translate/core/browser/translate_event_details.h', diff --git a/components/translate/DEPS b/components/translate/DEPS index 8f4bfc0..c2106de 100644 --- a/components/translate/DEPS +++ b/components/translate/DEPS @@ -1,4 +1,8 @@ include_rules = [ - # translate is used on iOS, which cannot depend on content. + "+components/language_usage_metrics", + + # Translate is a layered component; subdirectories must explicitly introduce + # the ability to use the content layer as appropriate. "-content", + "-components/translate/content", ] diff --git a/chrome/browser/translate/translate_browser_metrics.cc b/components/translate/core/browser/translate_browser_metrics.cc index a6605bd..c0d3357d 100644 --- a/chrome/browser/translate/translate_browser_metrics.cc +++ b/components/translate/core/browser/translate_browser_metrics.cc @@ -1,15 +1,15 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/translate/translate_browser_metrics.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include <string> #include "base/basictypes.h" #include "base/metrics/histogram.h" #include "base/metrics/sparse_histogram.h" -#include "chrome/browser/language_usage_metrics.h" +#include "components/language_usage_metrics/language_usage_metrics.h" namespace { @@ -63,18 +63,21 @@ void ReportLanguageDetectionError() { } void ReportLocalesOnDisabledByPrefs(const std::string& locale) { - UMA_HISTOGRAM_SPARSE_SLOWLY(kTranslateLocalesOnDisabledByPrefs, - LanguageUsageMetrics::ToLanguageCode(locale)); + UMA_HISTOGRAM_SPARSE_SLOWLY( + kTranslateLocalesOnDisabledByPrefs, + language_usage_metrics::LanguageUsageMetrics::ToLanguageCode(locale)); } void ReportUndisplayableLanguage(const std::string& language) { - int language_code = LanguageUsageMetrics::ToLanguageCode(language); + int language_code = + language_usage_metrics::LanguageUsageMetrics::ToLanguageCode(language); UMA_HISTOGRAM_SPARSE_SLOWLY(kTranslateUndisplayableLanguage, language_code); } void ReportUnsupportedLanguageAtInitiation(const std::string& language) { - int language_code = LanguageUsageMetrics::ToLanguageCode(language); + int language_code = + language_usage_metrics::LanguageUsageMetrics::ToLanguageCode(language); UMA_HISTOGRAM_SPARSE_SLOWLY(kTranslateUnsupportedLanguageAtInitiation, language_code); } diff --git a/chrome/browser/translate/translate_browser_metrics.h b/components/translate/core/browser/translate_browser_metrics.h index 21ee89d..0d76e7b 100644 --- a/chrome/browser/translate/translate_browser_metrics.h +++ b/components/translate/core/browser/translate_browser_metrics.h @@ -1,9 +1,9 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_ -#define CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_ +#ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_BROWSER_METRICS_H_ +#define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_BROWSER_METRICS_H_ #include <string> @@ -61,4 +61,4 @@ const char* GetMetricsName(MetricsNameIndex index); } // namespace TranslateBrowserMetrics -#endif // CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_ +#endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_BROWSER_METRICS_H_ diff --git a/chrome/browser/translate/translate_browser_metrics_unittest.cc b/components/translate/core/browser/translate_browser_metrics_unittest.cc index a7e3149..404014f 100644 --- a/chrome/browser/translate/translate_browser_metrics_unittest.cc +++ b/components/translate/core/browser/translate_browser_metrics_unittest.cc @@ -1,8 +1,8 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/translate/translate_browser_metrics.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" diff --git a/tools/gn/secondary/components/language_usage_metrics/BUILD.gn b/tools/gn/secondary/components/language_usage_metrics/BUILD.gn new file mode 100644 index 0000000..6d30575 --- /dev/null +++ b/tools/gn/secondary/components/language_usage_metrics/BUILD.gn @@ -0,0 +1,16 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +static_library("language_usage_metrics") { + external = true + + sources = [ + "language_usage_metrics.cc", + "language_usage_metrics.h", + ] + + deps = [ + "//base", + ] +} diff --git a/tools/gn/secondary/components/translate/BUILD.gn b/tools/gn/secondary/components/translate/BUILD.gn index 04ff986..9619a5d 100644 --- a/tools/gn/secondary/components/translate/BUILD.gn +++ b/tools/gn/secondary/components/translate/BUILD.gn @@ -7,6 +7,8 @@ static_library("translate_core_browser") { sources = [ "core/browser/page_translated_details.h", + "core/browser/translate_browser_metrics.cc", + "core/browser/translate_browser_metrics.h", "core/browser/translate_error_details.h", "core/browser/translate_event_details.cc", "core/browser/translate_event_details.h", |