Skip to content

Commit

Permalink
[Telemetry] Move inspector_network to chrome_proxy
Browse files Browse the repository at this point in the history
BUG=568148

Review URL: https://codereview.chromium.org/1512013002

Cr-Commit-Position: refs/heads/master@{#365547}
  • Loading branch information
nedn authored and Commit bot committed Dec 16, 2015
1 parent 3ba8b69 commit 3b2ea06
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import logging

from telemetry.core import exceptions
from telemetry.timeline import trace_data
from telemetry.timeline import model


class InspectorNetworkException(Exception):
Expand Down Expand Up @@ -224,4 +226,6 @@ def Stop(self):
self._is_recording = False
if len(events) == 0:
return None
return events
builder = trace_data.TraceDataBuilder()
builder.AddEventsTo(trace_data.INSPECTOR_TRACE_PART, events)
return model.TimelineModel(builder.AsData(), shift_world_to_zero=False)
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from common import inspector_network
from common import network_metrics
from telemetry import decorators
from telemetry.internal.backends.chrome_inspector import inspector_network
from telemetry.testing import tab_test_case


Expand All @@ -20,12 +21,13 @@ def __init__(self, *args):
super(InspectorNetworkTabTest, self).__init__(*args)

def _NavigateAndGetHTTPResponseEvents(self, page):
self._tab.StartTimelineRecording()
network = inspector_network.InspectorNetwork(
self._tab._inspector_backend._websocket)
network.timeline_recorder.Start()
self.Navigate(page)
self._tab.StopTimelineRecording()

self.assertTrue(self._tab.timeline_model)
return self._tab.timeline_model.GetAllEventsOfName('HTTPResponse')
timeline_model = network.timeline_recorder.Stop()
self.assertTrue(timeline_model)
return timeline_model.GetAllEventsOfName('HTTPResponse')

# crbug.com/449979, crbug.com/452279, crbug.com/455269, crbug.com/483212
@decorators.Disabled('mac', 'android', 'win', 'linux', 'chromeos')
Expand Down
12 changes: 8 additions & 4 deletions tools/chrome_proxy/common/network_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
import logging
import zlib

from common import inspector_network
from metrics import Metric
from telemetry.timeline import model
from telemetry.page import page_test
# All network metrics are Chrome only for now.
from telemetry.internal.backends.chrome_inspector import inspector_network
from telemetry.value import scalar


Expand Down Expand Up @@ -138,15 +139,18 @@ def __init__(self):

def Start(self, page, tab):
self._events = None
tab.StartTimelineRecording()
network = inspector_network.InspectorNetwork(
tab._inspector_backend._websocket)
self._timeline_recorder = network.timeline_recorder
self._timeline_recorder.Start()

def Stop(self, page, tab):
assert self._events is None
tab.StopTimelineRecording()
self._timeline_model = self._timeline_recorder.Stop()

def IterResponses(self, tab):
if self._events is None:
self._events = tab.timeline_model.GetAllEventsOfName('HTTPResponse')
self._events = self._timeline_model.GetAllEventsOfName('HTTPResponse')
if len(self._events) == 0:
return
for e in self._events:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,10 @@
from telemetry.internal.backends.chrome_inspector import devtools_http
from telemetry.internal.backends.chrome_inspector import inspector_console
from telemetry.internal.backends.chrome_inspector import inspector_memory
from telemetry.internal.backends.chrome_inspector import inspector_network
from telemetry.internal.backends.chrome_inspector import inspector_page
from telemetry.internal.backends.chrome_inspector import inspector_runtime
from telemetry.internal.backends.chrome_inspector import inspector_websocket
from telemetry.internal.backends.chrome_inspector import websocket
from telemetry.timeline import model as timeline_model_module
from telemetry.timeline import trace_data as trace_data_module


def _HandleInspectorWebSocketExceptions(func):
Expand Down Expand Up @@ -70,8 +67,6 @@ def __init__(self, app, devtools_client, context, timeout=60):
self._page = inspector_page.InspectorPage(
self._websocket, timeout=timeout)
self._runtime = inspector_runtime.InspectorRuntime(self._websocket)
self._network = inspector_network.InspectorNetwork(self._websocket)
self._timeline_model = None

def Disconnect(self):
"""Disconnects the inspector websocket.
Expand Down Expand Up @@ -282,32 +277,6 @@ def SynthesizeScrollGesture(self, x=100, y=800, xDistance=0, yDistance=-500,
}
return self._runtime.RunInspectorCommand(scroll_command, timeout)

# Timeline public methods.

@property
def timeline_model(self):
return self._timeline_model

@_HandleInspectorWebSocketExceptions
def StartTimelineRecording(self):
self._network.timeline_recorder.Start()

@_HandleInspectorWebSocketExceptions
def StopTimelineRecording(self):
builder = trace_data_module.TraceDataBuilder()

data = self._network.timeline_recorder.Stop()
if data:
builder.AddEventsTo(trace_data_module.INSPECTOR_TRACE_PART, data)
self._timeline_model = timeline_model_module.TimelineModel(
builder.AsData(), shift_world_to_zero=False)

# Network public methods.

@_HandleInspectorWebSocketExceptions
def ClearCache(self):
self._network.ClearCache()

# Methods used internally by other backends.

def _HandleInspectorDomainNotification(self, res):
Expand Down
18 changes: 0 additions & 18 deletions tools/telemetry/telemetry/internal/browser/web_contents.py
Original file line number Diff line number Diff line change
Expand Up @@ -256,24 +256,6 @@ def message_output_stream(self, stream):
def timeline_model(self):
return self._inspector_backend.timeline_model

def StartTimelineRecording(self):
"""Starts timeline recording.
Raises:
exceptions.TimeoutException
exceptions.DevtoolsTargetCrashException
"""
self._inspector_backend.StartTimelineRecording()

def StopTimelineRecording(self):
"""Stops timeline recording.
Raises:
exceptions.TimeoutException
exceptions.DevtoolsTargetCrashException
"""
self._inspector_backend.StopTimelineRecording()

def IsAlive(self):
"""Whether the WebContents is still operating normally.
Expand Down

0 comments on commit 3b2ea06

Please sign in to comment.