diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 183d79c43fffdd..11a8ec6d1af1f7 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -6559,12 +6559,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
Easy Unlock allows you to unlock your Chromebook when in proximity to your phone.
-
- Disable In-renderer Shared Worker.
-
-
- Disable In-Renderer Shared Worker to run Shared Worker in a legacy dedicated worker process.
-
Apps file associations.
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index fa4a16c7095722..90091d8fdac70e 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1790,13 +1790,6 @@ const Experiment kExperiments[] = {
SINGLE_VALUE_TYPE(switches::kEnableEasyUnlock)
},
#endif
- {
- "disable-embedded-shared-worker",
- IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_NAME,
- IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_DESCRIPTION,
- kOsDesktop,
- SINGLE_VALUE_TYPE(switches::kDisableEmbeddedSharedWorker)
- },
#if defined(OS_CHROMEOS)
{
"enable-filemanager-mtp",
diff --git a/chrome/browser/devtools/devtools_targets_ui.cc b/chrome/browser/devtools/devtools_targets_ui.cc
index 9e3b8359ce54c1..e2161c0845d2e0 100644
--- a/chrome/browser/devtools/devtools_targets_ui.cc
+++ b/chrome/browser/devtools/devtools_targets_ui.cc
@@ -246,19 +246,12 @@ class WorkerObserver
// WorkerTargetsUIHandler -----------------------------------------------------
class WorkerTargetsUIHandler
- : public DevToolsTargetsUIHandler,
- public content::BrowserChildProcessObserver {
+ : public DevToolsTargetsUIHandler {
public:
explicit WorkerTargetsUIHandler(const Callback& callback);
virtual ~WorkerTargetsUIHandler();
private:
- // content::BrowserChildProcessObserver overrides.
- virtual void BrowserChildProcessHostConnected(
- const content::ChildProcessData& data) OVERRIDE;
- virtual void BrowserChildProcessHostDisconnected(
- const content::ChildProcessData& data) OVERRIDE;
-
void UpdateTargets(const DevToolsTargetImpl::List& targets);
scoped_refptr observer_;
@@ -269,26 +262,12 @@ WorkerTargetsUIHandler::WorkerTargetsUIHandler(const Callback& callback)
observer_(new WorkerObserver()) {
observer_->Start(base::Bind(&WorkerTargetsUIHandler::UpdateTargets,
base::Unretained(this)));
- BrowserChildProcessObserver::Add(this);
}
WorkerTargetsUIHandler::~WorkerTargetsUIHandler() {
- BrowserChildProcessObserver::Remove(this);
observer_->Stop();
}
-void WorkerTargetsUIHandler::BrowserChildProcessHostConnected(
- const content::ChildProcessData& data) {
- if (data.process_type == content::PROCESS_TYPE_WORKER)
- observer_->Enumerate();
-}
-
-void WorkerTargetsUIHandler::BrowserChildProcessHostDisconnected(
- const content::ChildProcessData& data) {
- if (data.process_type == content::PROCESS_TYPE_WORKER)
- observer_->Enumerate();
-}
-
void WorkerTargetsUIHandler::UpdateTargets(
const DevToolsTargetImpl::List& targets) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc
index 7c74e231cc7b60..878462d84ec813 100644
--- a/chrome/browser/memory_details.cc
+++ b/chrome/browser/memory_details.cc
@@ -472,10 +472,6 @@ void MemoryDetails::UpdateHistograms() {
UMA_HISTOGRAM_MEMORY_KB("Memory.Plugin", sample);
plugin_count++;
continue;
- case content::PROCESS_TYPE_WORKER:
- UMA_HISTOGRAM_MEMORY_KB("Memory.Worker", sample);
- worker_count++;
- continue;
case content::PROCESS_TYPE_UTILITY:
UMA_HISTOGRAM_MEMORY_KB("Memory.Utility", sample);
other_count++;
@@ -584,9 +580,6 @@ void MemoryDetails::UpdateSwapHistograms() {
case content::PROCESS_TYPE_PLUGIN:
UMA_HISTOGRAM_MEMORY_KB("Memory.Swap.Plugin", sample);
continue;
- case content::PROCESS_TYPE_WORKER:
- UMA_HISTOGRAM_MEMORY_KB("Memory.Swap.Worker", sample);
- continue;
case content::PROCESS_TYPE_UTILITY:
UMA_HISTOGRAM_MEMORY_KB("Memory.Swap.Utility", sample);
continue;
diff --git a/chrome/browser/metrics/profiler_metrics_provider.cc b/chrome/browser/metrics/profiler_metrics_provider.cc
index 3e73e8652eb062..a843a4d45a62fa 100644
--- a/chrome/browser/metrics/profiler_metrics_provider.cc
+++ b/chrome/browser/metrics/profiler_metrics_provider.cc
@@ -27,8 +27,6 @@ ProfilerEventProto::TrackedObject::ProcessType AsProtobufProcessType(
return ProfilerEventProto::TrackedObject::RENDERER;
case content::PROCESS_TYPE_PLUGIN:
return ProfilerEventProto::TrackedObject::PLUGIN;
- case content::PROCESS_TYPE_WORKER:
- return ProfilerEventProto::TrackedObject::WORKER;
case content::PROCESS_TYPE_UTILITY:
return ProfilerEventProto::TrackedObject::UTILITY;
case content::PROCESS_TYPE_ZYGOTE:
diff --git a/chrome/browser/performance_monitor/process_metrics_history.cc b/chrome/browser/performance_monitor/process_metrics_history.cc
index f9ca171e903c21..7c724e0b618cf3 100644
--- a/chrome/browser/performance_monitor/process_metrics_history.cc
+++ b/chrome/browser/performance_monitor/process_metrics_history.cc
@@ -114,13 +114,6 @@ void ProcessMetricsHistory::RunPerformanceTriggers() {
if (min_cpu_usage_ > kHighCPUUtilizationThreshold)
UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.PluginProcess", true);
break;
- case content::PROCESS_TYPE_WORKER:
- UMA_HISTOGRAM_CUSTOM_COUNTS(
- "PerformanceMonitor.AverageCPU.WorkerProcess", average_cpu_usage,
- kHistogramMin, kHistogramMax, kHistogramBucketCount);
- if (min_cpu_usage_ > kHighCPUUtilizationThreshold)
- UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.WorkerProcess", true);
- break;
case content::PROCESS_TYPE_GPU:
UMA_HISTOGRAM_CUSTOM_COUNTS(
"PerformanceMonitor.AverageCPU.GPUProcess", average_cpu_usage,
diff --git a/chrome/browser/task_manager/child_process_resource_provider.cc b/chrome/browser/task_manager/child_process_resource_provider.cc
index eb0510c56d243f..dbc31eed0ecb3c 100644
--- a/chrome/browser/task_manager/child_process_resource_provider.cc
+++ b/chrome/browser/task_manager/child_process_resource_provider.cc
@@ -193,10 +193,6 @@ base::string16 ChildProcessResource::GetLocalizedTitle() const {
case content::PROCESS_TYPE_MAX:
NOTREACHED();
break;
-
- case content::PROCESS_TYPE_WORKER:
- NOTREACHED() << "Workers are not handled by this provider.";
- break;
case content::PROCESS_TYPE_UNKNOWN:
NOTREACHED() << "Need localized name for child process type.";
}
@@ -259,9 +255,6 @@ void ChildProcessResourceProvider::BrowserChildProcessHostConnected(
const content::ChildProcessData& data) {
DCHECK(updating_);
- // Workers are handled by WorkerResourceProvider.
- if (data.process_type == content::PROCESS_TYPE_WORKER)
- return;
if (resources_.count(data.handle)) {
// The case may happen that we have added a child_process_info as part of
// the iteration performed during StartUpdating() call but the notification
@@ -277,8 +270,6 @@ void ChildProcessResourceProvider::
const content::ChildProcessData& data) {
DCHECK(updating_);
- if (data.process_type == content::PROCESS_TYPE_WORKER)
- return;
ChildProcessMap::iterator iter = resources_.find(data.handle);
if (iter == resources_.end()) {
// ChildProcessData disconnection notifications are asynchronous, so we
@@ -322,8 +313,6 @@ void ChildProcessResourceProvider::RetrieveChildProcessData() {
// Only add processes which are already started, since we need their handle.
if (iter.GetData().handle == base::kNullProcessHandle)
continue;
- if (iter.GetData().process_type == content::PROCESS_TYPE_WORKER)
- continue;
child_processes.push_back(iter.GetData());
}
// Now notify the UI thread that we have retrieved information about child
diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc
index 8ae32cd0015c1b..ba76c794054503 100644
--- a/chrome/browser/task_manager/task_manager.cc
+++ b/chrome/browser/task_manager/task_manager.cc
@@ -27,7 +27,6 @@
#include "chrome/browser/task_manager/resource_provider.h"
#include "chrome/browser/task_manager/tab_contents_information.h"
#include "chrome/browser/task_manager/web_contents_resource_provider.h"
-#include "chrome/browser/task_manager/worker_resource_provider.h"
#include "chrome/browser/ui/browser_navigator.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
@@ -271,11 +270,6 @@ TaskManagerModel::TaskManagerModel(TaskManager* task_manager)
task_manager,
scoped_ptr(
new task_manager::GuestInformation())));
-
- // We don't need to show the worker processes if "embedded-shared-worker" flag
- // is enabled.
- if (!content::WorkerService::EmbeddedSharedWorkerEnabled())
- AddResourceProvider(new task_manager::WorkerResourceProvider(task_manager));
}
void TaskManagerModel::AddObserver(TaskManagerModelObserver* observer) {
diff --git a/chrome/browser/task_manager/worker_resource_provider.cc b/chrome/browser/task_manager/worker_resource_provider.cc
deleted file mode 100644
index f9e702ea2e163f..00000000000000
--- a/chrome/browser/task_manager/worker_resource_provider.cc
+++ /dev/null
@@ -1,359 +0,0 @@
-// Copyright (c) 2012 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/task_manager/worker_resource_provider.h"
-
-#include
-
-#include "base/basictypes.h"
-#include "base/strings/string16.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/devtools/devtools_window.h"
-#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/task_manager/resource_provider.h"
-#include "chrome/browser/task_manager/task_manager.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/child_process_data.h"
-#include "content/public/browser/devtools_agent_host.h"
-#include "content/public/browser/worker_service.h"
-#include "content/public/common/process_type.h"
-#include "grit/generated_resources.h"
-#include "grit/theme_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/image/image_skia.h"
-
-using content::BrowserThread;
-using content::DevToolsAgentHost;
-using content::WorkerService;
-
-namespace task_manager {
-
-// Objects of this class are created on the IO thread and then passed to the UI
-// thread where they are passed to the task manager. All methods must be called
-// only on the UI thread. Destructor may be called on any thread.
-class SharedWorkerResource : public Resource {
- public:
- SharedWorkerResource(const GURL& url,
- const base::string16& name,
- int process_id,
- int routing_id,
- base::ProcessHandle process_handle);
- virtual ~SharedWorkerResource();
-
- bool Matches(int process_id, int routing_id) const;
-
- void UpdateProcessHandle(base::ProcessHandle handle);
- base::ProcessHandle handle() const { return handle_; }
- int process_id() const { return process_id_; }
-
- private:
- // Resource methods:
- virtual base::string16 GetTitle() const OVERRIDE;
- virtual base::string16 GetProfileName() const OVERRIDE;
- virtual gfx::ImageSkia GetIcon() const OVERRIDE;
- virtual base::ProcessHandle GetProcess() const OVERRIDE;
- virtual int GetUniqueChildProcessId() const OVERRIDE;
- virtual Type GetType() const OVERRIDE;
- virtual bool CanInspect() const OVERRIDE;
- virtual void Inspect() const OVERRIDE;
-
- virtual bool SupportNetworkUsage() const OVERRIDE;
- virtual void SetSupportNetworkUsage() OVERRIDE;
-
- int process_id_;
- int routing_id_;
- base::string16 title_;
- base::ProcessHandle handle_;
-
- static gfx::ImageSkia* default_icon_;
-
- DISALLOW_COPY_AND_ASSIGN(SharedWorkerResource);
-};
-
-gfx::ImageSkia* SharedWorkerResource::default_icon_ = NULL;
-
-SharedWorkerResource::SharedWorkerResource(
- const GURL& url,
- const base::string16& name,
- int process_id,
- int routing_id,
- base::ProcessHandle process_handle)
- : process_id_(process_id),
- routing_id_(routing_id),
- handle_(process_handle) {
- title_ = base::UTF8ToUTF16(url.spec());
- if (!name.empty())
- title_ += base::ASCIIToUTF16(" (") + name + base::ASCIIToUTF16(")");
-}
-
-SharedWorkerResource::~SharedWorkerResource() {
-}
-
-bool SharedWorkerResource::Matches(int process_id,
- int routing_id) const {
- return process_id_ == process_id && routing_id_ == routing_id;
-}
-
-void SharedWorkerResource::UpdateProcessHandle(base::ProcessHandle handle) {
- handle_ = handle;
-}
-
-base::string16 SharedWorkerResource::GetTitle() const {
- return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_WORKER_PREFIX, title_);
-}
-
-base::string16 SharedWorkerResource::GetProfileName() const {
- return base::string16();
-}
-
-gfx::ImageSkia SharedWorkerResource::GetIcon() const {
- if (!default_icon_) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- default_icon_ = rb.GetImageSkiaNamed(IDR_PLUGINS_FAVICON);
- // TODO(jabdelmalek): use different icon for web workers.
- }
- return *default_icon_;
-}
-
-base::ProcessHandle SharedWorkerResource::GetProcess() const {
- return handle_;
-}
-
-int SharedWorkerResource::GetUniqueChildProcessId() const {
- return process_id_;
-}
-
-Resource::Type SharedWorkerResource::GetType() const {
- return WORKER;
-}
-
-bool SharedWorkerResource::CanInspect() const {
- return true;
-}
-
-void SharedWorkerResource::Inspect() const {
- // TODO(yurys): would be better to get profile from one of the tabs connected
- // to the worker.
- Profile* profile = ProfileManager::GetLastUsedProfile();
- if (!profile)
- return;
- scoped_refptr agent_host(
- DevToolsAgentHost::GetForWorker(process_id_, routing_id_));
- DevToolsWindow::OpenDevToolsWindowForWorker(profile, agent_host.get());
-}
-
-bool SharedWorkerResource::SupportNetworkUsage() const {
- return false;
-}
-
-void SharedWorkerResource::SetSupportNetworkUsage() {
-}
-
-
-// This class is needed to ensure that all resources in WorkerResourceList are
-// deleted if corresponding task is posted to but not executed on the UI
-// thread.
-class WorkerResourceProvider::WorkerResourceListHolder {
- public:
- WorkerResourceListHolder() {
- }
-
- ~WorkerResourceListHolder() {
- STLDeleteElements(&resources_);
- }
-
- WorkerResourceList* resources() {
- return &resources_;
- }
-
- private:
- WorkerResourceList resources_;
-};
-
-
-WorkerResourceProvider::
- WorkerResourceProvider(TaskManager* task_manager)
- : updating_(false),
- task_manager_(task_manager) {
-}
-
-WorkerResourceProvider::~WorkerResourceProvider() {
- DeleteAllResources();
-}
-
-Resource* WorkerResourceProvider::GetResource(
- int origin_pid,
- int child_id,
- int route_id) {
- return NULL;
-}
-
-void WorkerResourceProvider::StartUpdating() {
- DCHECK(!updating_);
- updating_ = true;
- // Get existing workers.
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE, base::Bind(
- &WorkerResourceProvider::StartObservingWorkers,
- this));
-
- BrowserChildProcessObserver::Add(this);
-}
-
-void WorkerResourceProvider::StopUpdating() {
- DCHECK(updating_);
- updating_ = false;
- launching_workers_.clear();
- DeleteAllResources();
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE, base::Bind(
- &WorkerResourceProvider::StopObservingWorkers,
- this));
-
- BrowserChildProcessObserver::Remove(this);
-}
-
-void WorkerResourceProvider::BrowserChildProcessHostConnected(
- const content::ChildProcessData& data) {
- DCHECK(updating_);
-
- if (data.process_type != content::PROCESS_TYPE_WORKER)
- return;
-
- ProcessIdToWorkerResources::iterator it(launching_workers_.find(data.id));
- if (it == launching_workers_.end())
- return;
- WorkerResourceList& resources = it->second;
- for (WorkerResourceList::iterator r = resources.begin();
- r != resources.end(); ++r) {
- (*r)->UpdateProcessHandle(data.handle);
- task_manager_->AddResource(*r);
- }
- launching_workers_.erase(it);
-}
-
-void WorkerResourceProvider::BrowserChildProcessHostDisconnected(
- const content::ChildProcessData& data) {
- DCHECK(updating_);
-
- if (data.process_type != content::PROCESS_TYPE_WORKER)
- return;
-
- // Worker process may be destroyed before WorkerMsg_TerminateWorkerContex
- // message is handled and WorkerDestroyed is fired. In this case we won't
- // get WorkerDestroyed notification and have to clear resources for such
- // workers here when the worker process has been destroyed.
- for (WorkerResourceList::iterator it = resources_.begin();
- it != resources_.end();) {
- if ((*it)->process_id() == data.id) {
- task_manager_->RemoveResource(*it);
- delete *it;
- it = resources_.erase(it);
- } else {
- ++it;
- }
- }
- DCHECK(!ContainsKey(launching_workers_, data.id));
-}
-
-void WorkerResourceProvider::WorkerCreated(
- const GURL& url,
- const base::string16& name,
- int process_id,
- int route_id) {
- SharedWorkerResource* resource = new SharedWorkerResource(
- url, name, process_id, route_id, base::kNullProcessHandle);
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&WorkerResourceProvider::NotifyWorkerCreated,
- this, base::Owned(new WorkerResourceHolder(resource))));
-}
-
-void WorkerResourceProvider::WorkerDestroyed(int process_id, int route_id) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE, base::Bind(
- &WorkerResourceProvider::NotifyWorkerDestroyed,
- this, process_id, route_id));
-}
-
-void WorkerResourceProvider::NotifyWorkerCreated(
- WorkerResourceHolder* resource_holder) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!updating_)
- return;
- AddResource(resource_holder->release());
-}
-
-void WorkerResourceProvider::NotifyWorkerDestroyed(
- int process_id, int routing_id) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!updating_)
- return;
- for (WorkerResourceList::iterator it = resources_.begin();
- it !=resources_.end(); ++it) {
- if ((*it)->Matches(process_id, routing_id)) {
- task_manager_->RemoveResource(*it);
- delete *it;
- resources_.erase(it);
- return;
- }
- }
-}
-
-void WorkerResourceProvider::StartObservingWorkers() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
-
- scoped_ptr holder(new WorkerResourceListHolder);
- std::vector worker_info =
- WorkerService::GetInstance()->GetWorkers();
-
- for (size_t i = 0; i < worker_info.size(); ++i) {
- holder->resources()->push_back(new SharedWorkerResource(
- worker_info[i].url, worker_info[i].name, worker_info[i].process_id,
- worker_info[i].route_id, worker_info[i].handle));
- }
-
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(
- &WorkerResourceProvider::AddWorkerResourceList,
- this, base::Owned(holder.release())));
-
- WorkerService::GetInstance()->AddObserver(this);
-}
-
-void WorkerResourceProvider::StopObservingWorkers() {
- WorkerService::GetInstance()->RemoveObserver(this);
-}
-
-void WorkerResourceProvider::AddWorkerResourceList(
- WorkerResourceListHolder* resource_list_holder) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!updating_)
- return;
- WorkerResourceList* resources = resource_list_holder->resources();
- for (WorkerResourceList::iterator it = resources->begin();
- it !=resources->end(); ++it) {
- AddResource(*it);
- }
- resources->clear();
-}
-
-void WorkerResourceProvider::AddResource(SharedWorkerResource* resource) {
- DCHECK(updating_);
- resources_.push_back(resource);
- if (resource->handle() == base::kNullProcessHandle) {
- int process_id = resource->process_id();
- launching_workers_[process_id].push_back(resource);
- } else {
- task_manager_->AddResource(resource);
- }
-}
-
-void WorkerResourceProvider::DeleteAllResources() {
- STLDeleteElements(&resources_);
-}
-
-} // namespace task_manager
diff --git a/chrome/browser/task_manager/worker_resource_provider.h b/chrome/browser/task_manager/worker_resource_provider.h
deleted file mode 100644
index 25df691a8fec34..00000000000000
--- a/chrome/browser/task_manager/worker_resource_provider.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright (c) 2011 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_TASK_MANAGER_WORKER_RESOURCE_PROVIDER_H_
-#define CHROME_BROWSER_TASK_MANAGER_WORKER_RESOURCE_PROVIDER_H_
-
-#include