コード例 #1
0
 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())
コード例 #2
0
  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': ''}}}]
コード例 #3
0
 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())
コード例 #4
0
 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())
コード例 #5
0
 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())
コード例 #6
0
  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
         }}}]