Commit 3f3a65fe authored by droger@chromium.org's avatar droger@chromium.org

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
parent caace874
......@@ -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",
......
......@@ -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",
......
......@@ -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
......
......@@ -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"
......
......@@ -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"
......
......@@ -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',
......
......@@ -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',
......
......@@ -15,6 +15,7 @@
'breakpad.gypi',
'dom_distiller.gypi',
'json_schema.gypi',
'language_usage_metrics.gypi',
'navigation_metrics.gypi',
'onc.gypi',
'policy.gypi',
......
......@@ -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/'],
......
# 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',
],
},
],
}
hajimehoshi@chromium.org
mad@chromium.org
toyoshim@chromium.org
// 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
// 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_
// 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
......@@ -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',
......
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",
]
// 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);
}
......
// 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_
// 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"
......
# 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",
]
}
......@@ -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",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment