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

Unified Diff: tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_page.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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/internal/backends/chrome_inspector/inspector_page.py
diff --git a/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_page.py b/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_page.py
deleted file mode 100644
index 2c3b087a3a291c1bfbf814e5d9f79b414d2f16a7..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_page.py
+++ /dev/null
@@ -1,156 +0,0 @@
-# Copyright 2013 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 time
-
-from telemetry.util import image_util
-
-
-class InspectorPage(object):
- """Class that controls a page connected by an inspector_websocket.
-
- This class provides utility methods for controlling a page connected by an
- inspector_websocket. It does not perform any exception handling. All
- inspector_websocket exceptions must be handled by the caller.
- """
- def __init__(self, inspector_websocket, timeout=60):
- self._inspector_websocket = inspector_websocket
- self._inspector_websocket.RegisterDomain('Page', self._OnNotification)
-
- self._navigation_pending = False
- self._navigation_url = '' # Support for legacy backends.
- self._navigation_frame_id = ''
- self._navigated_frame_ids = None # Holds frame ids while navigating.
- self._script_to_evaluate_on_commit = None
- # Turn on notifications. We need them to get the Page.frameNavigated event.
- self._EnablePageNotifications(timeout=timeout)
-
- def _OnNotification(self, msg):
- if msg['method'] == 'Page.frameNavigated':
- url = msg['params']['frame']['url']
- if not self._navigated_frame_ids == None:
- frame_id = msg['params']['frame']['id']
- if self._navigation_frame_id == frame_id:
- self._navigation_frame_id = ''
- self._navigated_frame_ids = None
- self._navigation_pending = False
- else:
- self._navigated_frame_ids.add(frame_id)
- elif self._navigation_url == url:
- # TODO(tonyg): Remove this when Chrome 38 goes stable.
- self._navigation_url = ''
- self._navigation_pending = False
- elif (not url == 'chrome://newtab/' and not url == 'about:blank'
- and not 'parentId' in msg['params']['frame']):
- # Marks the navigation as complete and unblocks the
- # WaitForNavigate call.
- self._navigation_pending = False
-
- def _SetScriptToEvaluateOnCommit(self, source):
- existing_source = (self._script_to_evaluate_on_commit and
- self._script_to_evaluate_on_commit['source'])
- if source == existing_source:
- return
- if existing_source:
- request = {
- 'method': 'Page.removeScriptToEvaluateOnLoad',
- 'params': {
- 'identifier': self._script_to_evaluate_on_commit['id'],
- }
- }
- self._inspector_websocket.SyncRequest(request)
- self._script_to_evaluate_on_commit = None
- if source:
- request = {
- 'method': 'Page.addScriptToEvaluateOnLoad',
- 'params': {
- 'scriptSource': source,
- }
- }
- res = self._inspector_websocket.SyncRequest(request)
- self._script_to_evaluate_on_commit = {
- 'id': res['result']['identifier'],
- 'source': source
- }
-
- def _EnablePageNotifications(self, timeout=60):
- request = {
- 'method': 'Page.enable'
- }
- res = self._inspector_websocket.SyncRequest(request, timeout)
- assert len(res['result'].keys()) == 0
-
- def WaitForNavigate(self, timeout=60):
- """Waits for the navigation to complete.
-
- The current page is expect to be in a navigation. This function returns
- when the navigation is complete or when the timeout has been exceeded.
- """
- start_time = time.time()
- remaining_time = timeout
- self._navigation_pending = True
- while self._navigation_pending and remaining_time > 0:
- remaining_time = max(timeout - (time.time() - start_time), 0.0)
- self._inspector_websocket.DispatchNotifications(remaining_time)
-
- def Navigate(self, url, script_to_evaluate_on_commit=None, timeout=60):
- """Navigates to |url|.
-
- If |script_to_evaluate_on_commit| is given, the script source string will be
- evaluated when the navigation is committed. This is after the context of
- the page exists, but before any script on the page itself has executed.
- """
-
- self._SetScriptToEvaluateOnCommit(script_to_evaluate_on_commit)
- request = {
- 'method': 'Page.navigate',
- 'params': {
- 'url': url,
- }
- }
- self._navigated_frame_ids = set()
- res = self._inspector_websocket.SyncRequest(request, timeout)
- if 'frameId' in res['result']:
- # Modern backends are returning frameId from Page.navigate.
- # Use it here to unblock upon precise navigation.
- frame_id = res['result']['frameId']
- if self._navigated_frame_ids and frame_id in self._navigated_frame_ids:
- self._navigated_frame_ids = None
- return
- self._navigation_frame_id = frame_id
- else:
- # TODO(tonyg): Remove this when Chrome 38 goes stable.
- self._navigated_frame_ids = None
- self._navigation_url = url
- self.WaitForNavigate(timeout)
-
- def GetCookieByName(self, name, timeout=60):
- """Returns the value of the cookie by the given |name|."""
- request = {
- 'method': 'Page.getCookies'
- }
- res = self._inspector_websocket.SyncRequest(request, timeout)
- cookies = res['result']['cookies']
- for cookie in cookies:
- if cookie['name'] == name:
- return cookie['value']
- return None
-
- def CaptureScreenshot(self, timeout=60):
- request = {
- 'method': 'Page.captureScreenshot'
- }
- # "Google API are missing..." infobar might cause a viewport resize
- # which invalidates screenshot request. See crbug.com/459820.
- for _ in range(2):
- res = self._inspector_websocket.SyncRequest(request, timeout)
- if res and ('result' in res) and ('data' in res['result']):
- return image_util.FromBase64Png(res['result']['data'])
- return None
-
- def CollectGarbage(self, timeout=60):
- request = {
- 'method': 'HeapProfiler.collectGarbage'
- }
- res = self._inspector_websocket.SyncRequest(request, timeout)
- assert 'result' in res

Powered by Google App Engine
This is Rietveld 408576698