Revert "Reland "[PM] Add support for dedicated workers""

This reverts commit 897d08bff2ed90aca00c4adf99dac0a01da82d4e.

Reason for revert: Still breaks ARC boot, see crbug.com/1048710 and crbug.com/1046881

Original change's description:
> Reland "[PM] Add support for dedicated workers"
> 
> This is a reland of dec0aa0b6c20019fa56fe7821dbd6f4766ab3469
> 
> The fix for the failure is in this CL:
> https://chromium-review.googlesource.com/c/chromium/src/+/2036479
> 
> Original change's description:
> > [PM] Add support for dedicated workers
> >
> > The WorkerWatcher observes dedicated workers through the
> > DedicatedWorkerService interface.
> >
> > Change-Id: If62d911e500def7ebb905311485a8d89eeaca8df
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1992208
> > Reviewed-by: Sigurður Ásgeirsson <[email protected]>
> > Commit-Queue: Patrick Monette <[email protected]>
> > Cr-Commit-Position: refs/heads/master@{#736411}
> 
> Change-Id: I40b86ea7de8fa4b252ffe805ec5992020dffc515
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2028214
> Commit-Queue: Sigurður Ásgeirsson <[email protected]>
> Reviewed-by: Sigurður Ásgeirsson <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#738160}

[email protected],[email protected]

Change-Id: Ibc5ac277917d191b1033d45e2201e11b653e754e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2035965
Reviewed-by: Marc Treib <[email protected]>
Commit-Queue: Marc Treib <[email protected]>
Cr-Commit-Position: refs/heads/master@{#738208}
diff --git a/components/performance_manager/worker_watcher.cc b/components/performance_manager/worker_watcher.cc
index ac86ff0b..7d843911 100644
--- a/components/performance_manager/worker_watcher.cc
+++ b/components/performance_manager/worker_watcher.cc
@@ -47,27 +47,21 @@
 
 WorkerWatcher::WorkerWatcher(
     const std::string& browser_context_id,
-    content::DedicatedWorkerService* dedicated_worker_service,
     content::SharedWorkerService* shared_worker_service,
     ProcessNodeSource* process_node_source,
     FrameNodeSource* frame_node_source)
     : browser_context_id_(browser_context_id),
-      dedicated_worker_service_observer_(this),
       shared_worker_service_observer_(this),
       process_node_source_(process_node_source),
       frame_node_source_(frame_node_source) {
-  DCHECK(dedicated_worker_service);
   DCHECK(shared_worker_service);
   DCHECK(process_node_source_);
   DCHECK(frame_node_source_);
-  dedicated_worker_service_observer_.Add(dedicated_worker_service);
   shared_worker_service_observer_.Add(shared_worker_service);
 }
 
 WorkerWatcher::~WorkerWatcher() {
   DCHECK(frame_node_child_workers_.empty());
-  DCHECK(dedicated_worker_nodes_.empty());
-  DCHECK(!dedicated_worker_service_observer_.IsObservingSources());
   DCHECK(shared_worker_nodes_.empty());
   DCHECK(!shared_worker_service_observer_.IsObservingSources());
 }
@@ -93,58 +87,17 @@
 
   // Then clean all the worker nodes.
   std::vector<std::unique_ptr<NodeBase>> nodes;
-  nodes.reserve(dedicated_worker_nodes_.size() + shared_worker_nodes_.size());
-  for (auto& node : dedicated_worker_nodes_)
-    nodes.push_back(std::move(node.second));
-  dedicated_worker_nodes_.clear();
+  nodes.reserve(shared_worker_nodes_.size());
   for (auto& node : shared_worker_nodes_)
     nodes.push_back(std::move(node.second));
   shared_worker_nodes_.clear();
 
   PerformanceManagerImpl::GetInstance()->BatchDeleteNodes(std::move(nodes));
 
-  dedicated_worker_service_observer_.RemoveAll();
   shared_worker_service_observer_.RemoveAll();
 }
 
 void WorkerWatcher::OnWorkerStarted(
-    content::DedicatedWorkerId dedicated_worker_id,
-    int worker_process_id,
-    content::GlobalFrameRoutingId ancestor_render_frame_host_id) {
-  // TODO(https://crbug.com/993029): Plumb through the URL and the DevTools
-  // token.
-  auto worker_node = PerformanceManagerImpl::GetInstance()->CreateWorkerNode(
-      browser_context_id_, WorkerNode::WorkerType::kDedicated,
-      process_node_source_->GetProcessNode(worker_process_id), GURL(),
-      base::UnguessableToken::Create());
-  bool inserted = dedicated_worker_nodes_
-                      .emplace(dedicated_worker_id, std::move(worker_node))
-                      .second;
-  DCHECK(inserted);
-
-  AddClientFrame(GetDedicatedWorkerNode(dedicated_worker_id),
-                 ancestor_render_frame_host_id);
-}
-
-void WorkerWatcher::OnBeforeWorkerTerminated(
-    content::DedicatedWorkerId dedicated_worker_id,
-    content::GlobalFrameRoutingId ancestor_render_frame_host_id) {
-  RemoveClientFrame(GetDedicatedWorkerNode(dedicated_worker_id),
-                    ancestor_render_frame_host_id);
-
-  auto it = dedicated_worker_nodes_.find(dedicated_worker_id);
-  DCHECK(it != dedicated_worker_nodes_.end());
-
-  auto worker_node = std::move(it->second);
-#if DCHECK_IS_ON()
-  DCHECK(!base::Contains(clients_to_remove_, worker_node.get()));
-#endif  // DCHECK_IS_ON()
-  PerformanceManagerImpl::GetInstance()->DeleteNode(std::move(worker_node));
-
-  dedicated_worker_nodes_.erase(it);
-}
-
-void WorkerWatcher::OnWorkerStarted(
     const content::SharedWorkerInstance& instance,
     int worker_process_id,
     const base::UnguessableToken& dev_tools_token) {
@@ -174,41 +127,31 @@
 void WorkerWatcher::OnClientAdded(
     const content::SharedWorkerInstance& instance,
     content::GlobalFrameRoutingId render_frame_host_id) {
-  AddClientFrame(GetSharedWorkerNode(instance), render_frame_host_id);
-}
-
-void WorkerWatcher::OnClientRemoved(
-    const content::SharedWorkerInstance& instance,
-    content::GlobalFrameRoutingId render_frame_host_id) {
-  RemoveClientFrame(GetSharedWorkerNode(instance), render_frame_host_id);
-}
-
-void WorkerWatcher::AddClientFrame(
-    WorkerNodeImpl* worker_node,
-    content::GlobalFrameRoutingId client_render_frame_host_id) {
   FrameNodeImpl* frame_node =
-      frame_node_source_->GetFrameNode(client_render_frame_host_id);
+      frame_node_source_->GetFrameNode(render_frame_host_id);
   DCHECK(frame_node);
 
   // Connect the nodes in the PM graph.
+  WorkerNodeImpl* worker_node = GetSharedWorkerNode(instance);
   PerformanceManagerImpl::CallOnGraphImpl(
       FROM_HERE,
       base::BindOnce(&AddWorkerToFrameNode, frame_node, worker_node));
 
   // Keep track of the shared workers that this frame is a client to.
-  if (AddChildWorker(client_render_frame_host_id, worker_node)) {
+  if (AddChildWorker(render_frame_host_id, worker_node)) {
     frame_node_source_->SubscribeToFrameNode(
-        client_render_frame_host_id,
+        render_frame_host_id,
         base::BindOnce(&WorkerWatcher::OnBeforeFrameNodeRemoved,
-                       base::Unretained(this), client_render_frame_host_id));
+                       base::Unretained(this), render_frame_host_id));
   }
 }
 
-void WorkerWatcher::RemoveClientFrame(
-    WorkerNodeImpl* worker_node,
-    content::GlobalFrameRoutingId client_render_frame_host_id) {
+void WorkerWatcher::OnClientRemoved(
+    const content::SharedWorkerInstance& instance,
+    content::GlobalFrameRoutingId render_frame_host_id) {
+  WorkerNodeImpl* worker_node = GetSharedWorkerNode(instance);
   FrameNodeImpl* frame_node =
-      frame_node_source_->GetFrameNode(client_render_frame_host_id);
+      frame_node_source_->GetFrameNode(render_frame_host_id);
 
   // It's possible that the frame was destroyed before receiving the
   // OnClientRemoved() for all of its child shared worker. Nothing to do in
@@ -238,8 +181,8 @@
 
   // Remove |worker_node| from the set of workers that this frame is a client
   // of.
-  if (RemoveChildWorker(client_render_frame_host_id, worker_node))
-    frame_node_source_->UnsubscribeFromFrameNode(client_render_frame_host_id);
+  if (RemoveChildWorker(render_frame_host_id, worker_node))
+    frame_node_source_->UnsubscribeFromFrameNode(render_frame_host_id);
 }
 
 void WorkerWatcher::OnBeforeFrameNodeRemoved(
@@ -299,16 +242,6 @@
   return false;
 }
 
-WorkerNodeImpl* WorkerWatcher::GetDedicatedWorkerNode(
-    content::DedicatedWorkerId dedicated_worker_id) {
-  auto it = dedicated_worker_nodes_.find(dedicated_worker_id);
-  if (it == dedicated_worker_nodes_.end()) {
-    NOTREACHED();
-    return nullptr;
-  }
-  return it->second.get();
-}
-
 WorkerNodeImpl* WorkerWatcher::GetSharedWorkerNode(
     const content::SharedWorkerInstance& instance) {
   auto it = shared_worker_nodes_.find(instance);