Index: perf_insights/perf_insights/mappers/scheduling/map_input_blockers.html |
diff --git a/perf_insights/perf_insights/mappers/scheduling/map_input_blockers.html b/perf_insights/perf_insights/mappers/scheduling/map_input_blockers.html |
deleted file mode 100644 |
index 01b988e00ff4c48d4d55c6c9dedc876e43ac298a..0000000000000000000000000000000000000000 |
--- a/perf_insights/perf_insights/mappers/scheduling/map_input_blockers.html |
+++ /dev/null |
@@ -1,81 +0,0 @@ |
-<!DOCTYPE html> |
-<!-- |
-Copyright 2015 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. |
---> |
- |
-<link rel="import" href="/perf_insights/mre/function_handle.html"> |
-<link rel="import" href="/tracing/base/range.html"> |
-<link rel="import" href="/tracing/model/helpers/chrome_model_helper.html"> |
- |
-<script> |
-'use strict'; |
- |
-tr.exportTo('pie', function() { |
- // Collects the set of tasks that are preventing user input from being |
- // processed on the main thread. |
- // See https://goo.gl/l7V5xg. |
- function mapInputBlockers(result, model) { |
- var modelHelper = model.getOrCreateHelper( |
- tr.model.helpers.ChromeModelHelper); |
- var rendererHelpers = modelHelper.rendererHelpers; |
- |
- if (!rendererHelpers) { |
- // If we didn't detect any renderer processes, bail out. |
- result.addPair('inputBlockers', null); |
- return; |
- } |
- |
- // Look for main thread input handling in each renderer process. |
- var inputBlockers = {}; |
- var foundInputBlockers = false; |
- for (var pid in rendererHelpers) { |
- var rendererHelper = rendererHelpers[pid]; |
- var mainThread = rendererHelper.mainThread; |
- // Look for events that represent main thread input handling that also |
- // have one associated flow event showing where the input came from. |
- mainThread.iterateAllEvents(function(event) { |
- if (event.title !== 'LatencyInfo.Flow' || |
- event.args['step'] !== 'HandleInputEventMain' || |
- event.inFlowEvents.length !== 1) { |
- return; |
- } |
- |
- // Now we can derive the queueing interval from the flow event. |
- var flowEvent = event.inFlowEvents[0]; |
- var queueRange = |
- tr.b.Range.fromExplicitRange(flowEvent.start, event.start); |
- |
- // Find all events that intersect the queueing interval and compute how |
- // much they contributed to it. |
- mainThread.iterateAllEvents(function(event) { |
- var eventRange = |
- tr.b.Range.fromExplicitRange(event.start, |
- event.start + event.duration); |
- var intersection = queueRange.findIntersection(eventRange); |
- if (intersection.isEmpty || intersection.duration === 0) |
- return; |
- if (inputBlockers[event.title] === undefined) |
- inputBlockers[event.title] = []; |
- inputBlockers[event.title].push(intersection.duration); |
- foundInputBlockers = true; |
- }); |
- }); |
- } |
- |
- if (!foundInputBlockers) { |
- result.addPair('inputBlockers', null); |
- return; |
- } |
- |
- result.addPair('inputBlockers', inputBlockers); |
- } |
- |
- pi.FunctionRegistry.register(mapInputBlockers); |
- |
- return { |
- mapInputBlockersForTest: mapInputBlockers |
- }; |
-}); |
-</script> |