[devicelab] Web benchmarks now run on Chromium 89+ (#98629)
This commit is contained in:
parent
e6b30950df
commit
93c0c043cf
@ -505,8 +505,17 @@ class BlinkTraceEvent {
|
||||
/// This event does not include non-UI thread scripting, such as web workers,
|
||||
/// service workers, and CSS Paint paintlets.
|
||||
///
|
||||
/// WebViewImpl::beginFrame was used in earlier versions of Chrome, kept
|
||||
/// for compatibility.
|
||||
///
|
||||
/// This event is a duration event that has its `tdur` populated.
|
||||
bool get isBeginFrame => ph == 'X' && name == 'WebViewImpl::beginFrame';
|
||||
bool get isBeginFrame {
|
||||
return ph == 'X' && (
|
||||
name == 'WebViewImpl::beginFrame' ||
|
||||
name == 'WebFrameWidgetBase::BeginMainFrame' ||
|
||||
name == 'WebFrameWidgetImpl::BeginMainFrame'
|
||||
);
|
||||
}
|
||||
|
||||
/// An "update all lifecycle phases" event contains UI thread computations
|
||||
/// related to an animation frame that's outside the scripting phase.
|
||||
@ -514,8 +523,16 @@ class BlinkTraceEvent {
|
||||
/// This event includes style recalculation, layer tree update, layout,
|
||||
/// painting, and parts of compositing work.
|
||||
///
|
||||
/// WebViewImpl::updateAllLifecyclePhases was used in earlier versions of
|
||||
/// Chrome, kept for compatibility.
|
||||
///
|
||||
/// This event is a duration event that has its `tdur` populated.
|
||||
bool get isUpdateAllLifecyclePhases => ph == 'X' && name == 'WebViewImpl::updateAllLifecyclePhases';
|
||||
bool get isUpdateAllLifecyclePhases {
|
||||
return ph == 'X' && (
|
||||
name == 'WebViewImpl::updateAllLifecyclePhases' ||
|
||||
name == 'WebFrameWidgetImpl::UpdateLifecycle'
|
||||
);
|
||||
}
|
||||
|
||||
/// Whether this is the beginning of a "measured_frame" event.
|
||||
///
|
||||
|
54
dev/devicelab/test/framework/browser_test.dart
Normal file
54
dev/devicelab/test/framework/browser_test.dart
Normal file
@ -0,0 +1,54 @@
|
||||
// Copyright 2014 The Flutter 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 'package:flutter_devicelab/framework/browser.dart';
|
||||
|
||||
import '../common.dart';
|
||||
import 'browser_test_json_samples.dart';
|
||||
|
||||
void main() {
|
||||
group('BlinkTraceEvent works with Chrome 89+', () {
|
||||
// Used to test 'false' results
|
||||
final BlinkTraceEvent unrelatedPhX =
|
||||
BlinkTraceEvent.fromJson(unrelatedPhXJson);
|
||||
final BlinkTraceEvent anotherUnrelated =
|
||||
BlinkTraceEvent.fromJson(anotherUnrelatedJson);
|
||||
|
||||
test('isBeginFrame', () {
|
||||
final BlinkTraceEvent event =
|
||||
BlinkTraceEvent.fromJson(beginMainFrameJson_89plus);
|
||||
|
||||
expect(event.isBeginFrame, isTrue);
|
||||
expect(unrelatedPhX.isBeginFrame, isFalse);
|
||||
expect(anotherUnrelated.isBeginFrame, isFalse);
|
||||
});
|
||||
|
||||
test('isUpdateAllLifecyclePhases', () {
|
||||
final BlinkTraceEvent event =
|
||||
BlinkTraceEvent.fromJson(updateLifecycleJson_89plus);
|
||||
|
||||
expect(event.isUpdateAllLifecyclePhases, isTrue);
|
||||
expect(unrelatedPhX.isUpdateAllLifecyclePhases, isFalse);
|
||||
expect(anotherUnrelated.isUpdateAllLifecyclePhases, isFalse);
|
||||
});
|
||||
|
||||
test('isBeginMeasuredFrame', () {
|
||||
final BlinkTraceEvent event =
|
||||
BlinkTraceEvent.fromJson(beginMeasuredFrameJson_89plus);
|
||||
|
||||
expect(event.isBeginMeasuredFrame, isTrue);
|
||||
expect(unrelatedPhX.isBeginMeasuredFrame, isFalse);
|
||||
expect(anotherUnrelated.isBeginMeasuredFrame, isFalse);
|
||||
});
|
||||
|
||||
test('isEndMeasuredFrame', () {
|
||||
final BlinkTraceEvent event =
|
||||
BlinkTraceEvent.fromJson(endMeasuredFrameJson_89plus);
|
||||
|
||||
expect(event.isEndMeasuredFrame, isTrue);
|
||||
expect(unrelatedPhX.isEndMeasuredFrame, isFalse);
|
||||
expect(anotherUnrelated.isEndMeasuredFrame, isFalse);
|
||||
});
|
||||
});
|
||||
}
|
103
dev/devicelab/test/framework/browser_test_json_samples.dart
Normal file
103
dev/devicelab/test/framework/browser_test_json_samples.dart
Normal file
@ -0,0 +1,103 @@
|
||||
// Copyright 2014 The Flutter 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 'dart:convert' show jsonDecode;
|
||||
|
||||
// JSON Event samples taken from running an instrumented version of the
|
||||
// integration tests of this package that dumped all the data as captured.
|
||||
|
||||
/// To test isBeginFrame. (Sampled from Chrome 89+)
|
||||
final Map<String, Object?> beginMainFrameJson_89plus = jsonDecode('''
|
||||
{
|
||||
"args": {
|
||||
"frameTime": 2338687248768
|
||||
},
|
||||
"cat": "blink",
|
||||
"dur": 6836,
|
||||
"name": "WebFrameWidgetImpl::BeginMainFrame",
|
||||
"ph": "X",
|
||||
"pid": 1367081,
|
||||
"tdur": 393,
|
||||
"tid": 1,
|
||||
"ts": 2338687258440,
|
||||
"tts": 375499
|
||||
}
|
||||
''') as Map<String, Object?>;
|
||||
|
||||
/// To test isUpdateAllLifecyclePhases. (Sampled from Chrome 89+)
|
||||
final Map<String, Object?> updateLifecycleJson_89plus = jsonDecode('''
|
||||
{
|
||||
"args": {},
|
||||
"cat": "blink",
|
||||
"dur": 103,
|
||||
"name": "WebFrameWidgetImpl::UpdateLifecycle",
|
||||
"ph": "X",
|
||||
"pid": 1367081,
|
||||
"tdur": 102,
|
||||
"tid": 1,
|
||||
"ts": 2338687265284,
|
||||
"tts": 375900
|
||||
}
|
||||
''') as Map<String, Object?>;
|
||||
|
||||
/// To test isBeginMeasuredFrame. (Sampled from Chrome 89+)
|
||||
final Map<String, Object?> beginMeasuredFrameJson_89plus = jsonDecode('''
|
||||
{
|
||||
"args": {},
|
||||
"cat": "blink.user_timing",
|
||||
"id": "0xea2a8b45",
|
||||
"name": "measured_frame",
|
||||
"ph": "b",
|
||||
"pid": 1367081,
|
||||
"scope": "blink.user_timing",
|
||||
"tid": 1,
|
||||
"ts": 2338687265932
|
||||
}
|
||||
''') as Map<String, Object?>;
|
||||
|
||||
/// To test isEndMeasuredFrame. (Sampled from Chrome 89+)
|
||||
final Map<String, Object?> endMeasuredFrameJson_89plus = jsonDecode('''
|
||||
{
|
||||
"args": {},
|
||||
"cat": "blink.user_timing",
|
||||
"id": "0xea2a8b45",
|
||||
"name": "measured_frame",
|
||||
"ph": "e",
|
||||
"pid": 1367081,
|
||||
"scope": "blink.user_timing",
|
||||
"tid": 1,
|
||||
"ts": 2338687440485
|
||||
}
|
||||
''') as Map<String, Object?>;
|
||||
|
||||
/// An unrelated data frame to test negative cases.
|
||||
final Map<String, Object?> unrelatedPhXJson = jsonDecode('''
|
||||
{
|
||||
"args": {},
|
||||
"cat": "blink,rail",
|
||||
"dur": 2,
|
||||
"name": "PageAnimator::serviceScriptedAnimations",
|
||||
"ph": "X",
|
||||
"pid": 1367081,
|
||||
"tdur": 2,
|
||||
"tid": 1,
|
||||
"ts": 2338691143317,
|
||||
"tts": 1685405
|
||||
}
|
||||
''') as Map<String, Object?>;
|
||||
|
||||
/// Another unrelated data frame to test negative cases.
|
||||
final Map<String, Object?> anotherUnrelatedJson = jsonDecode('''
|
||||
{
|
||||
"args": {
|
||||
"sort_index": -1
|
||||
},
|
||||
"cat": "__metadata",
|
||||
"name": "thread_sort_index",
|
||||
"ph": "M",
|
||||
"pid": 1367081,
|
||||
"tid": 1,
|
||||
"ts": 2338692906482
|
||||
}
|
||||
''') as Map<String, Object?>;
|
Loading…
x
Reference in New Issue
Block a user