Index: chrome/common/child_process_info.cc |
=================================================================== |
--- chrome/common/child_process_info.cc (revision 77479) |
+++ chrome/common/child_process_info.cc (working copy) |
@@ -1,191 +0,0 @@ |
-// Copyright (c) 2010 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/common/child_process_info.h" |
- |
-#include <limits> |
- |
-#include "base/atomicops.h" |
-#include "base/i18n/rtl.h" |
-#include "base/logging.h" |
-#include "base/process_util.h" |
-#include "base/rand_util.h" |
-#include "base/string_util.h" |
-#include "base/utf_string_conversions.h" |
-#include "grit/generated_resources.h" |
-#include "ui/base/l10n/l10n_util.h" |
- |
-ChildProcessInfo::ChildProcessInfo(ProcessType type, int id) : |
- type_(type), |
- renderer_type_(RENDERER_UNKNOWN) { |
- if (id == -1) |
- id_ = GenerateChildProcessUniqueId(); |
- else |
- id_ = id; |
-} |
- |
-ChildProcessInfo::ChildProcessInfo(const ChildProcessInfo& original) |
- : type_(original.type_), |
- renderer_type_(original.renderer_type_), |
- name_(original.name_), |
- version_(original.version_), |
- id_(original.id_), |
- process_(original.process_) { |
-} |
- |
-ChildProcessInfo::~ChildProcessInfo() { |
-} |
- |
-ChildProcessInfo& ChildProcessInfo::operator=( |
- const ChildProcessInfo& original) { |
- if (&original != this) { |
- type_ = original.type_; |
- renderer_type_ = original.renderer_type_; |
- name_ = original.name_; |
- version_ = original.version_; |
- id_ = original.id_; |
- process_ = original.process_; |
- } |
- return *this; |
-} |
- |
-// static |
-std::string ChildProcessInfo::GetTypeNameInEnglish( |
- ChildProcessInfo::ProcessType type) { |
- switch (type) { |
- case BROWSER_PROCESS: |
- return "Browser"; |
- case RENDER_PROCESS: |
- return "Tab"; |
- case PLUGIN_PROCESS: |
- return "Plug-in"; |
- case WORKER_PROCESS: |
- return "Web Worker"; |
- case UTILITY_PROCESS: |
- return "Utility"; |
- case PROFILE_IMPORT_PROCESS: |
- return "Profile Import helper"; |
- case ZYGOTE_PROCESS: |
- return "Zygote"; |
- case SANDBOX_HELPER_PROCESS: |
- return "Sandbox helper"; |
- case NACL_LOADER_PROCESS: |
- return "Native Client module"; |
- case NACL_BROKER_PROCESS: |
- return "Native Client broker"; |
- case GPU_PROCESS: |
- return "GPU"; |
- case PPAPI_PLUGIN_PROCESS: |
- return "Pepper Plugin"; |
- case UNKNOWN_PROCESS: |
- default: |
- DCHECK(false) << "Unknown child process type!"; |
- return "Unknown"; |
- } |
-} |
- |
-// static |
-std::string ChildProcessInfo::GetRendererTypeNameInEnglish( |
- ChildProcessInfo::RendererProcessType type) { |
- switch (type) { |
- case RENDERER_NORMAL: |
- return "Tab"; |
- case RENDERER_CHROME: |
- return "Tab (Chrome)"; |
- case RENDERER_EXTENSION: |
- return "Extension"; |
- case RENDERER_DEVTOOLS: |
- return "Devtools"; |
- case RENDERER_INTERSTITIAL: |
- return "Interstitial"; |
- case RENDERER_NOTIFICATION: |
- return "Notification"; |
- case RENDERER_BACKGROUND_APP: |
- return "Background App"; |
- case RENDERER_UNKNOWN: |
- default: |
- NOTREACHED() << "Unknown renderer process type!"; |
- return "Unknown"; |
- } |
-} |
- |
-// static |
-std::string ChildProcessInfo::GetFullTypeNameInEnglish( |
- ChildProcessInfo::ProcessType type, |
- ChildProcessInfo::RendererProcessType rtype) { |
- if (type == RENDER_PROCESS) |
- return GetRendererTypeNameInEnglish(rtype); |
- return GetTypeNameInEnglish(type); |
-} |
- |
- |
-string16 ChildProcessInfo::GetLocalizedTitle() const { |
- string16 title = WideToUTF16Hack(name_); |
- if (type_ == ChildProcessInfo::PLUGIN_PROCESS && title.empty()) |
- title = l10n_util::GetStringUTF16(IDS_TASK_MANAGER_UNKNOWN_PLUGIN_NAME); |
- |
- // Explicitly mark name as LTR if there is no strong RTL character, |
- // to avoid the wrong concatenation result similar to "!Yahoo! Mail: the |
- // best web-based Email: NIGULP", in which "NIGULP" stands for the Hebrew |
- // or Arabic word for "plugin". |
- base::i18n::AdjustStringForLocaleDirection(&title); |
- |
- switch (type_) { |
- case ChildProcessInfo::UTILITY_PROCESS: |
- return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_UTILITY_PREFIX); |
- |
- case ChildProcessInfo::PROFILE_IMPORT_PROCESS: |
- return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_UTILITY_PREFIX); |
- |
- case ChildProcessInfo::GPU_PROCESS: |
- return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_GPU_PREFIX); |
- |
- case ChildProcessInfo::NACL_BROKER_PROCESS: |
- return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NACL_BROKER_PREFIX); |
- |
- case ChildProcessInfo::PLUGIN_PROCESS: |
- case ChildProcessInfo::PPAPI_PLUGIN_PROCESS: |
- return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_PLUGIN_PREFIX, |
- title, |
- WideToUTF16Hack(version_)); |
- |
- case ChildProcessInfo::NACL_LOADER_PROCESS: |
- return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_NACL_PREFIX, title); |
- |
- case ChildProcessInfo::WORKER_PROCESS: |
- return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_WORKER_PREFIX, title); |
- |
- // These types don't need display names or get them from elsewhere. |
- case BROWSER_PROCESS: |
- case RENDER_PROCESS: |
- case ZYGOTE_PROCESS: |
- case SANDBOX_HELPER_PROCESS: |
- NOTREACHED(); |
- break; |
- |
- case UNKNOWN_PROCESS: |
- NOTREACHED() << "Need localized name for child process type."; |
- } |
- |
- return title; |
-} |
- |
-std::string ChildProcessInfo::GenerateRandomChannelID(void* instance) { |
- // Note: the string must start with the current process id, this is how |
- // child processes determine the pid of the parent. |
- // Build the channel ID. This is composed of a unique identifier for the |
- // parent browser process, an identifier for the child instance, and a random |
- // component. We use a random component so that a hacked child process can't |
- // cause denial of service by causing future named pipe creation to fail. |
- return base::StringPrintf("%d.%p.%d", |
- base::GetCurrentProcId(), instance, |
- base::RandInt(0, std::numeric_limits<int>::max())); |
-} |
- |
-// static |
-int ChildProcessInfo::GenerateChildProcessUniqueId() { |
- // This function must be threadsafe. |
- static base::subtle::Atomic32 last_unique_child_id = 0; |
- return base::subtle::NoBarrier_AtomicIncrement(&last_unique_child_id, 1); |
-} |