OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 //------------------------------------------------------------------------------ | 5 //------------------------------------------------------------------------------ |
6 // Description of the life cycle of a instance of MetricsService. | 6 // Description of the life cycle of a instance of MetricsService. |
7 // | 7 // |
8 // OVERVIEW | 8 // OVERVIEW |
9 // | 9 // |
10 // A MetricsService instance is typically created at application startup. It | 10 // A MetricsService instance is typically created at application startup. It |
(...skipping 1485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1496 // log data is available. | 1496 // log data is available. |
1497 HandleIdleSinceLastTransmission(false); | 1497 HandleIdleSinceLastTransmission(false); |
1498 } | 1498 } |
1499 #endif // OS_CHROMEOS | 1499 #endif // OS_CHROMEOS |
1500 | 1500 |
1501 void MetricsService::LogChildProcessChange( | 1501 void MetricsService::LogChildProcessChange( |
1502 int type, | 1502 int type, |
1503 const NotificationSource& source, | 1503 const NotificationSource& source, |
1504 const NotificationDetails& details) { | 1504 const NotificationDetails& details) { |
1505 Details<ChildProcessInfo> child_details(details); | 1505 Details<ChildProcessInfo> child_details(details); |
1506 const std::wstring& child_name = child_details->name(); | 1506 const string16& child_name = child_details->name(); |
1507 | 1507 |
1508 if (child_process_stats_buffer_.find(child_name) == | 1508 if (child_process_stats_buffer_.find(child_name) == |
1509 child_process_stats_buffer_.end()) { | 1509 child_process_stats_buffer_.end()) { |
1510 child_process_stats_buffer_[child_name] = | 1510 child_process_stats_buffer_[child_name] = |
1511 ChildProcessStats(child_details->type()); | 1511 ChildProcessStats(child_details->type()); |
1512 } | 1512 } |
1513 | 1513 |
1514 ChildProcessStats& stats = child_process_stats_buffer_[child_name]; | 1514 ChildProcessStats& stats = child_process_stats_buffer_[child_name]; |
1515 switch (type) { | 1515 switch (type) { |
1516 case content::NOTIFICATION_CHILD_PROCESS_HOST_CONNECTED: | 1516 case content::NOTIFICATION_CHILD_PROCESS_HOST_CONNECTED: |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1598 | 1598 |
1599 DictionaryValue* plugin_dict = static_cast<DictionaryValue*>(*value_iter); | 1599 DictionaryValue* plugin_dict = static_cast<DictionaryValue*>(*value_iter); |
1600 std::string plugin_name; | 1600 std::string plugin_name; |
1601 plugin_dict->GetString(prefs::kStabilityPluginName, &plugin_name); | 1601 plugin_dict->GetString(prefs::kStabilityPluginName, &plugin_name); |
1602 if (plugin_name.empty()) { | 1602 if (plugin_name.empty()) { |
1603 NOTREACHED(); | 1603 NOTREACHED(); |
1604 continue; | 1604 continue; |
1605 } | 1605 } |
1606 | 1606 |
1607 // TODO(viettrungluu): remove conversions | 1607 // TODO(viettrungluu): remove conversions |
1608 if (child_process_stats_buffer_.find(UTF8ToWide(plugin_name)) == | 1608 string16 name16 = UTF8ToUTF16(plugin_name); |
1609 child_process_stats_buffer_.end()) | 1609 if (child_process_stats_buffer_.find(name16) == |
| 1610 child_process_stats_buffer_.end()) { |
1610 continue; | 1611 continue; |
| 1612 } |
1611 | 1613 |
1612 ChildProcessStats stats = | 1614 ChildProcessStats stats = child_process_stats_buffer_[name16]; |
1613 child_process_stats_buffer_[UTF8ToWide(plugin_name)]; | |
1614 if (stats.process_launches) { | 1615 if (stats.process_launches) { |
1615 int launches = 0; | 1616 int launches = 0; |
1616 plugin_dict->GetInteger(prefs::kStabilityPluginLaunches, &launches); | 1617 plugin_dict->GetInteger(prefs::kStabilityPluginLaunches, &launches); |
1617 launches += stats.process_launches; | 1618 launches += stats.process_launches; |
1618 plugin_dict->SetInteger(prefs::kStabilityPluginLaunches, launches); | 1619 plugin_dict->SetInteger(prefs::kStabilityPluginLaunches, launches); |
1619 } | 1620 } |
1620 if (stats.process_crashes) { | 1621 if (stats.process_crashes) { |
1621 int crashes = 0; | 1622 int crashes = 0; |
1622 plugin_dict->GetInteger(prefs::kStabilityPluginCrashes, &crashes); | 1623 plugin_dict->GetInteger(prefs::kStabilityPluginCrashes, &crashes); |
1623 crashes += stats.process_crashes; | 1624 crashes += stats.process_crashes; |
1624 plugin_dict->SetInteger(prefs::kStabilityPluginCrashes, crashes); | 1625 plugin_dict->SetInteger(prefs::kStabilityPluginCrashes, crashes); |
1625 } | 1626 } |
1626 if (stats.instances) { | 1627 if (stats.instances) { |
1627 int instances = 0; | 1628 int instances = 0; |
1628 plugin_dict->GetInteger(prefs::kStabilityPluginInstances, &instances); | 1629 plugin_dict->GetInteger(prefs::kStabilityPluginInstances, &instances); |
1629 instances += stats.instances; | 1630 instances += stats.instances; |
1630 plugin_dict->SetInteger(prefs::kStabilityPluginInstances, instances); | 1631 plugin_dict->SetInteger(prefs::kStabilityPluginInstances, instances); |
1631 } | 1632 } |
1632 | 1633 |
1633 child_process_stats_buffer_.erase(UTF8ToWide(plugin_name)); | 1634 child_process_stats_buffer_.erase(name16); |
1634 } | 1635 } |
1635 | 1636 |
1636 // Now go through and add dictionaries for plugins that didn't already have | 1637 // Now go through and add dictionaries for plugins that didn't already have |
1637 // reports in Local State. | 1638 // reports in Local State. |
1638 for (std::map<std::wstring, ChildProcessStats>::iterator cache_iter = | 1639 for (std::map<string16, ChildProcessStats>::iterator cache_iter = |
1639 child_process_stats_buffer_.begin(); | 1640 child_process_stats_buffer_.begin(); |
1640 cache_iter != child_process_stats_buffer_.end(); ++cache_iter) { | 1641 cache_iter != child_process_stats_buffer_.end(); ++cache_iter) { |
1641 ChildProcessStats stats = cache_iter->second; | 1642 ChildProcessStats stats = cache_iter->second; |
1642 | 1643 |
1643 // Insert only plugins information into the plugins list. | 1644 // Insert only plugins information into the plugins list. |
1644 if (ChildProcessInfo::PLUGIN_PROCESS != stats.process_type) | 1645 if (ChildProcessInfo::PLUGIN_PROCESS != stats.process_type) |
1645 continue; | 1646 continue; |
1646 | 1647 |
1647 // TODO(viettrungluu): remove conversion | 1648 // TODO(viettrungluu): remove conversion |
1648 std::string plugin_name = WideToUTF8(cache_iter->first); | 1649 std::string plugin_name = UTF16ToUTF8(cache_iter->first); |
1649 | 1650 |
1650 DictionaryValue* plugin_dict = new DictionaryValue; | 1651 DictionaryValue* plugin_dict = new DictionaryValue; |
1651 | 1652 |
1652 plugin_dict->SetString(prefs::kStabilityPluginName, plugin_name); | 1653 plugin_dict->SetString(prefs::kStabilityPluginName, plugin_name); |
1653 plugin_dict->SetInteger(prefs::kStabilityPluginLaunches, | 1654 plugin_dict->SetInteger(prefs::kStabilityPluginLaunches, |
1654 stats.process_launches); | 1655 stats.process_launches); |
1655 plugin_dict->SetInteger(prefs::kStabilityPluginCrashes, | 1656 plugin_dict->SetInteger(prefs::kStabilityPluginCrashes, |
1656 stats.process_crashes); | 1657 stats.process_crashes); |
1657 plugin_dict->SetInteger(prefs::kStabilityPluginInstances, | 1658 plugin_dict->SetInteger(prefs::kStabilityPluginInstances, |
1658 stats.instances); | 1659 stats.instances); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1692 thread_id = base::PlatformThread::CurrentId(); | 1693 thread_id = base::PlatformThread::CurrentId(); |
1693 return base::PlatformThread::CurrentId() == thread_id; | 1694 return base::PlatformThread::CurrentId() == thread_id; |
1694 } | 1695 } |
1695 | 1696 |
1696 #if defined(OS_CHROMEOS) | 1697 #if defined(OS_CHROMEOS) |
1697 void MetricsService::StartExternalMetrics() { | 1698 void MetricsService::StartExternalMetrics() { |
1698 external_metrics_ = new chromeos::ExternalMetrics; | 1699 external_metrics_ = new chromeos::ExternalMetrics; |
1699 external_metrics_->Start(); | 1700 external_metrics_->Start(); |
1700 } | 1701 } |
1701 #endif | 1702 #endif |
OLD | NEW |