def testFirstTextPaintLens(self): MAINFRAME = 1 SUBFRAME = 2 trace_creator = test_utils.TraceCreator() requests = [trace_creator.RequestAt(1), trace_creator.RequestAt(10), trace_creator.RequestAt(20)] loading_trace = trace_creator.CreateTrace( requests, [{'ts': 0, 'ph': 'I', 'cat': 'blink.some_other_user_timing', 'name': 'firstPaint'}, {'ts': 30 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'name': 'firstishPaint', 'args': {'frame': MAINFRAME}}, {'ts': 3 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'name': 'firstPaint', 'args': {'frame': SUBFRAME}}, {'ts': 12 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'name': 'firstPaint', 'args': {'frame': MAINFRAME}}], MAINFRAME) loading_trace.tracing_track.SetMainFrameID(MAINFRAME) lens = user_satisfied_lens.FirstTextPaintLens(loading_trace) self.assertEqual(set(['0.1', '0.2']), lens.CriticalRequestIds()) self.assertEqual(1, lens.PostloadTimeMsec())
def setUp(self): self.trace_creator = test_utils.TraceCreator() self.requests = [ self.trace_creator.RequestAt(self._FIRST_REQUEST_TIME, frame_id=1), self.trace_creator.RequestAt( self._NAVIGATION_START_TIME + self._REQUEST_OFFSET, self._DURATION)] self.requests[0].timing.receive_headers_end = 0 self.requests[1].timing.receive_headers_end = 0 self.requests[0].encoded_data_length = self._FIRST_REQUEST_DATA_LENGTH self.requests[1].encoded_data_length = self._SECOND_REQUEST_DATA_LENGTH self.ad_domain = 'i-ve-got-the-best-ads.com' self.ad_url = 'http://www.' + self.ad_domain + '/i-m-really-rich.js' self.requests[0].url = self.ad_url self.trace_events = [ {'args': {'name': 'CrRendererMain'}, 'cat': '__metadata', 'name': 'thread_name', 'ph': 'M', 'pid': 1, 'tid': 1, 'ts': 0}, {'ts': self._NAVIGATION_START_TIME * self.MILLI_TO_MICRO, 'ph': 'R', 'cat': 'blink.user_timing', 'pid': 1, 'tid': 1, 'name': 'navigationStart', 'args': {'frame': 1}}, {'ts': self._LOAD_END_TIME * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'devtools.timeline', 'pid': 1, 'tid': 1, 'name': 'MarkLoad', 'args': {'data': {'isMainFrame': True}}}, {'ts': self._CONTENTFUL_PAINT * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'pid': 1, 'tid': 1, 'name': 'firstContentfulPaint', 'args': {'frame': self._MAIN_FRAME_ID}}, {'ts': self._TEXT_PAINT * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'pid': 1, 'tid': 1, 'name': 'firstPaint', 'args': {'frame': self._MAIN_FRAME_ID}}, {'ts': 90 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink', 'pid': 1, 'tid': 1, 'name': 'FrameView::synchronizedPaint'}, {'ts': self._SIGNIFICANT_PAINT * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'foobar', 'name': 'biz', 'pid': 1, 'tid': 1, 'args': {'counters': { 'LayoutObjectsThatHadNeverHadLayout': 10}}}, {'ts': (self._NAVIGATION_START_TIME - self._TOPLEVEL_EVENT_OFFSET) * self.MILLI_TO_MICRO, 'pid': 1, 'tid': 1, 'ph': 'X', 'dur': self._TOPLEVEL_EVENT_DURATION * self.MILLI_TO_MICRO, 'cat': 'toplevel', 'name': 'MessageLoop::RunTask'}, {'ts': self._NAVIGATION_START_TIME * self.MILLI_TO_MICRO, 'pid': 1, 'tid': 1, 'ph': 'X', 'dur': self._PARSING_EVENT_DURATION * self.MILLI_TO_MICRO, 'cat': 'devtools.timeline', 'name': 'ParseHTML', 'args': {'beginData': {'url': ''}}}, {'ts': self._NAVIGATION_START_TIME * self.MILLI_TO_MICRO, 'pid': 1, 'tid': 1, 'ph': 'X', 'dur': self._SCRIPT_EVENT_DURATION * self.MILLI_TO_MICRO, 'cat': 'devtools.timeline', 'name': 'EvaluateScript', 'args': {'data': {'scriptName': ''}}}]
def testCantGetNoSatisfaction(self): MAINFRAME = 1 trace_creator = test_utils.TraceCreator() requests = [trace_creator.RequestAt(1), trace_creator.RequestAt(10), trace_creator.RequestAt(20)] loading_trace = trace_creator.CreateTrace( requests, [{'ts': 0, 'ph': 'I', 'cat': 'not_my_cat', 'name': 'someEvent', 'args': {'frame': MAINFRAME}}], MAINFRAME) loading_trace.tracing_track.SetMainFrameID(MAINFRAME) lens = user_satisfied_lens.FirstContentfulPaintLens(loading_trace) self.assertEqual(set(['0.1', '0.2', '0.3']), lens.CriticalRequestIds()) self.assertEqual(float('inf'), lens.PostloadTimeMsec())
def testPLTLens(self): MAINFRAME = 1 trace_creator = test_utils.TraceCreator() requests = [ trace_creator.RequestAt(1), trace_creator.RequestAt(10), trace_creator.RequestAt(20) ] loading_trace = trace_creator.CreateTrace(requests, [{ 'ts': 5 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'devtools.timeline', 'pid': 1, 'tid': 1, 'name': 'MarkLoad', 'args': { 'data': { 'isMainFrame': True } } }, { 'ts': 10 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'devtools.timeline', 'pid': 1, 'tid': 1, 'name': 'MarkLoad', 'args': { 'data': { 'isMainFrame': True } } }, { 'ts': 20 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'devtools.timeline', 'pid': 1, 'tid': 1, 'name': 'MarkLoad', 'args': { 'data': { 'isMainFrame': False } } }], MAINFRAME) lens = user_satisfied_lens.PLTLens(loading_trace) self.assertEqual(set(['0.1']), lens.CriticalRequestIds()) self.assertEqual(10, lens.SatisfiedMs())
def testFirstSignificantPaintLens(self): MAINFRAME = 1 trace_creator = test_utils.TraceCreator() requests = [trace_creator.RequestAt(1), trace_creator.RequestAt(10), trace_creator.RequestAt(15), trace_creator.RequestAt(20)] loading_trace = trace_creator.CreateTrace( requests, [{'ts': 0, 'ph': 'I', 'cat': 'blink', 'name': 'firstPaint'}, {'ts': 9 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'name': 'FrameView::synchronizedPaint'}, {'ts': 18 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink', 'name': 'FrameView::synchronizedPaint'}, {'ts': 22 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink', 'name': 'FrameView::synchronizedPaint'}, {'ts': 5 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'foobar', 'name': 'biz', 'args': {'counters': { 'LayoutObjectsThatHadNeverHadLayout': 10 } } }, {'ts': 12 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'foobar', 'name': 'biz', 'args': {'counters': { 'LayoutObjectsThatHadNeverHadLayout': 12 } } }, {'ts': 15 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'foobar', 'name': 'biz', 'args': {'counters': { 'LayoutObjectsThatHadNeverHadLayout': 10 } } } ], MAINFRAME) lens = user_satisfied_lens.FirstSignificantPaintLens(loading_trace) self.assertEqual(set(['0.1', '0.2']), lens.CriticalRequestIds()) self.assertEqual(7, lens.PostloadTimeMsec())
def setUp(self): self.trace_creator = test_utils.TraceCreator() self.requests = [ self.trace_creator.RequestAt(self._FIRST_REQUEST_TIME, frame_id=1), self.trace_creator.RequestAt( self._NAVIGATION_START_TIME + self._REQUEST_OFFSET, self._DURATION)] self.requests[0].timing.receive_headers_end = 0 self.requests[1].timing.receive_headers_end = 0 self.requests[0].encoded_data_length = 128 self.requests[1].encoded_data_length = 1024 self.trace_events = [ {'ts': self._NAVIGATION_START_TIME * self.MILLI_TO_MICRO, 'ph': 'R', 'cat': 'blink.user_timing', 'name': 'navigationStart', 'args': {'frame': 1}}, {'ts': self._LOAD_END_TIME * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'devtools.timeline', 'name': 'MarkLoad', 'args': {'data': {'isMainFrame': True}}}, {'ts': self._CONTENTFUL_PAINT * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'name': 'firstContentfulPaint', 'args': {'frame': self._MAIN_FRAME_ID}}, {'ts': self._TEXT_PAINT * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink.user_timing', 'name': 'firstPaint', 'args': {'frame': self._MAIN_FRAME_ID}}, {'ts': 90 * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'blink', 'name': 'FrameView::synchronizedPaint'}, {'ts': self._SIGNIFICANT_PAINT * self.MILLI_TO_MICRO, 'ph': 'I', 'cat': 'foobar', 'name': 'biz', 'args': {'counters': { 'LayoutObjectsThatHadNeverHadLayout': 10 }}}]