Index: chrome/test/functional/tracing/tab_tracker.py |
=================================================================== |
--- chrome/test/functional/tracing/tab_tracker.py (revision 261231) |
+++ chrome/test/functional/tracing/tab_tracker.py (working copy) |
@@ -1,83 +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. |
- |
-import uuid |
- |
- |
-class TabTracker(object): |
- """Uniquely track tabs within a window. |
- |
- This allows the creation of tabs whose indices can be |
- determined even after lower indexed tabs have been closed, therefore changing |
- that tab's index. |
- |
- This is accomplished via a containing window which is created and tracked via |
- the window's index. As a result of this, all calls to open and close tabs in |
- this TabTracker's window must go through the appropriate instance of the |
- TabTracker. Also note that if a lower indexed window is closed after this |
- TabTracker is instantiated, this TabTracker will lose track of its window |
- """ |
- |
- def __init__(self, browser, visible=False): |
- """ |
- Args: |
- browser: an instance of PyUITest |
- visible: whether or not this TabTracker's window will be visible |
- """ |
- # A binary search tree would be faster, but this is easier to write. |
- # If this needs to become faster, understand that the important operations |
- # here are append, arbitrary deletion and searching. |
- self._uuids = [None] |
- self._window_idx = browser.GetBrowserWindowCount() |
- self._browser = browser |
- browser.OpenNewBrowserWindow(visible) |
- # We leave the 0'th tab empty to have something to close on __del__ |
- |
- def __del__(self): |
- self._browser.CloseBrowserWindow(self._window_idx) |
- |
- def CreateTab(self, url='about:blank'): |
- """Create a tracked tab and return its uuid. |
- |
- Args: |
- url: a URL to navigate to |
- |
- Returns: |
- a uuid uniquely identifying that tab within this TabTracker |
- """ |
- self._browser.AppendTab(url, self._window_idx) |
- # We use uuids here rather than a monotonic integer to prevent confusion |
- # with the tab index. |
- tab_uuid = uuid.uuid4() |
- self._uuids.append(tab_uuid) |
- return tab_uuid |
- |
- def ReleaseTab(self, tab_uuid): |
- """Release and close a tab tracked by this TabTracker. |
- |
- Args: |
- tab_uuid: the uuid of the tab to close |
- """ |
- idx = self.GetTabIndex(tab_uuid) |
- self._browser.CloseTab(tab_index=idx, windex=self._window_idx) |
- del self._uuids[idx] |
- |
- def GetTabIndex(self, tab_uuid): |
- """Get the index of a tracked tab within this TabTracker's window. |
- |
- Args: |
- tab_uuid: the uuid of the tab to close |
- |
- Returns: |
- the index of the tab within this TabTracker's window |
- """ |
- return self._uuids.index(tab_uuid) |
- |
- def GetWindowIndex(self): |
- """Get the index of this TabTracker's window. |
- |
- Returns: |
- the index of this TabTracker's window |
- """ |
- return self._window_idx |