Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Unified Diff: tools/telemetry/telemetry/core/tab_unittest.py

Issue 309533016: Remove the weak dictionary that maps tab objects to it markers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/tab_unittest.py
diff --git a/tools/telemetry/telemetry/core/tab_unittest.py b/tools/telemetry/telemetry/core/tab_unittest.py
index 89eaddca0ac99f1c422139ab1ec83aa78c4fe781..09815fd44c33b199ef8f84ce6cd070a336642e52 100644
--- a/tools/telemetry/telemetry/core/tab_unittest.py
+++ b/tools/telemetry/telemetry/core/tab_unittest.py
@@ -103,7 +103,8 @@ class TabTest(tab_test_case.TabTestCase):
self._tab.ClearHighlight(bitmap.WEB_PAGE_TEST_ORANGE)
trace_data = self._browser.StopTracing()
timeline_model = model.TimelineModel(trace_data)
- renderer_thread = timeline_model.GetRendererThreadFromTab(self._tab)
+ renderer_thread = timeline_model.GetRendererThreadFromTabId(
+ self._tab.id)
found_video_start_event = False
for event in renderer_thread.async_slices:
if event.name == '__ClearHighlight.video_capture_start':
@@ -111,6 +112,47 @@ class TabTest(tab_test_case.TabTestCase):
break
self.assertTrue(found_video_start_event)
+ def testGetRendererThreadFromTabId(self):
+ self.assertEquals(self._tab.url, 'about:blank')
+ # Create 3 tabs. The third tab is closed before we call StartTracing.
+ first_tab = self._tab
+ second_tab = self._browser.tabs.New()
+ second_tab.Navigate('about:blank')
+ second_tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
+ third_tab = self._browser.tabs.New()
+ third_tab.Navigate('about:blank')
+ third_tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
+ third_tab.Close()
+
+ self._browser.StartTracing(tracing_backend.MINIMAL_TRACE_CATEGORIES)
+ first_tab.ExecuteJavaScript('console.time("first-tab-marker");')
+ first_tab.ExecuteJavaScript('console.timeEnd("first-tab-marker");')
+ second_tab.ExecuteJavaScript('console.time("second-tab-marker");')
+ second_tab.ExecuteJavaScript('console.timeEnd("second-tab-marker");')
+ trace_data = self._browser.StopTracing()
+ timeline_model = model.TimelineModel(trace_data)
+
+ # Assert that the renderer_thread of the first tab contains
+ # 'first-tab-marker'.
+ renderer_thread = timeline_model.GetRendererThreadFromTabId(
+ first_tab.id)
+ first_tab_markers = [
+ renderer_thread.IterAllSlicesOfName('first-tab-marker')]
+ self.assertEquals(1, len(first_tab_markers))
+
+ # Close second tab and assert that the renderer_thread of the second tab
+ # contains 'second-tab-marker'.
+ second_tab.Close()
+ renderer_thread = timeline_model.GetRendererThreadFromTabId(
+ second_tab.id)
+ second_tab_markers = [
+ renderer_thread.IterAllSlicesOfName('second-tab-marker')]
+ self.assertEquals(1, len(second_tab_markers))
+
+ # Third tab wasn't available when we start tracing, so there is no
+ # renderer_thread corresponding to it in the the trace.
+ self.assertIs(None, timeline_model.GetRendererThreadFromTabId(third_tab.id))
+
class GpuTabTest(tab_test_case.TabTestCase):
def setUp(self):

Powered by Google App Engine
This is Rietveld 408576698