Index: tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_backend_list.py |
diff --git a/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_backend_list.py b/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_backend_list.py |
deleted file mode 100644 |
index 7e1f8fb179495dc6ad6d78ed18adff77bf6bfd67..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_backend_list.py |
+++ /dev/null |
@@ -1,124 +0,0 @@ |
-# 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. |
- |
-import collections |
-from telemetry.core import exceptions |
- |
- |
-def DebuggerUrlToId(debugger_url): |
- return debugger_url.split('/')[-1] |
- |
- |
-class InspectorBackendList(collections.Sequence): |
- """A dynamic sequence of active InspectorBackends.""" |
- |
- def __init__(self, browser_backend): |
- """Constructor. |
- |
- Args: |
- browser_backend: The BrowserBackend instance to query for |
- InspectorBackends. |
- """ |
- self._browser_backend = browser_backend |
- self._devtools_context_map_backend = None |
- # A list of filtered contexts. |
- self._filtered_context_ids = [] |
- # A cache of inspector backends, by context ID. |
- self._wrapper_dict = {} |
- |
- @property |
- def _devtools_client(self): |
- return self._browser_backend.devtools_client |
- |
- @property |
- def app(self): |
- return self._browser_backend.app |
- |
- def GetContextInfo(self, context_id): |
- return self._devtools_context_map_backend.GetContextInfo(context_id) |
- |
- def ShouldIncludeContext(self, _): |
- """Override this method to control which contexts are included.""" |
- return True |
- |
- def CreateWrapper(self, inspector_backend_instance): |
- """Override to return the wrapper API over InspectorBackend. |
- |
- The wrapper API is the public interface for InspectorBackend. It |
- may expose whatever methods are desired on top of that backend. |
- """ |
- raise NotImplementedError |
- |
- # TODO(nednguyen): Remove this method and turn inspector_backend_list API to |
- # dictionary-like API (crbug.com/398467) |
- def __getitem__(self, index): |
- self._Update() |
- if index >= len(self._filtered_context_ids): |
- raise exceptions.DevtoolsTargetCrashException( |
- self.app, |
- 'Web content with index %s may have crashed. ' |
- 'filtered_context_ids = %s' % ( |
- index, repr(self._filtered_context_ids))) |
- context_id = self._filtered_context_ids[index] |
- return self.GetBackendFromContextId(context_id) |
- |
- def GetTabById(self, identifier): |
- self._Update() |
- return self.GetBackendFromContextId(identifier) |
- |
- def GetBackendFromContextId(self, context_id): |
- self._Update() |
- if context_id not in self._wrapper_dict: |
- try: |
- backend = self._devtools_context_map_backend.GetInspectorBackend( |
- context_id) |
- except exceptions.Error as e: |
- self._HandleDevToolsConnectionError(e) |
- raise e |
- # Propagate KeyError from GetInspectorBackend call. |
- |
- wrapper = self.CreateWrapper(backend) |
- self._wrapper_dict[context_id] = wrapper |
- return self._wrapper_dict[context_id] |
- |
- def IterContextIds(self): |
- self._Update() |
- return iter(self._filtered_context_ids) |
- |
- def __iter__(self): |
- self._Update() |
- for context_id in self._filtered_context_ids: |
- yield self.GetTabById(context_id) |
- |
- def __len__(self): |
- self._Update() |
- return len(self._filtered_context_ids) |
- |
- def _Update(self): |
- backends_map = self._devtools_client.GetUpdatedInspectableContexts() |
- self._devtools_context_map_backend = backends_map |
- |
- # Clear context ids that do not appear in the inspectable contexts. |
- context_ids = [context['id'] for context in backends_map.contexts] |
- self._filtered_context_ids = [context_id |
- for context_id in self._filtered_context_ids |
- if context_id in context_ids] |
- # Add new context ids. |
- for context in backends_map.contexts: |
- if (context['id'] not in self._filtered_context_ids and |
- self.ShouldIncludeContext(context)): |
- self._filtered_context_ids.append(context['id']) |
- |
- # Clean up any backends for contexts that have gone away. |
- for context_id in self._wrapper_dict.keys(): |
- if context_id not in self._filtered_context_ids: |
- del self._wrapper_dict[context_id] |
- |
- def _HandleDevToolsConnectionError(self, error): |
- """Called when handling errors in connecting to the DevTools websocket. |
- |
- This can be overwritten by sub-classes to add more debugging information to |
- errors. |
- """ |
- pass |