Skip to content

Merging from master #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 52 commits into from
Jul 21, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
b3224c7
Prefix and Suffix support for TextFields
gspencergoog Jun 13, 2017
eaffcb9
Adding Tests
gspencergoog Jun 13, 2017
077234a
Removing spurious newline.
gspencergoog Jun 13, 2017
633c6c7
Fixing a small problem with the test
gspencergoog Jun 13, 2017
04003b0
Code review changes
gspencergoog Jun 13, 2017
c1370b1
Code Review Changes
gspencergoog Jun 14, 2017
d92e0e1
I rebased some commits that I shouldn't have, so merging to make it r…
gspencergoog Jun 14, 2017
5b86b03
Review Changes
gspencergoog Jun 14, 2017
95450ba
Export the new StrokeJoin enum
gspencergoog Jun 14, 2017
e7ec8c9
Merge branch 'master' of github.com:gspencergoog/flutter into workspace
gspencergoog Jun 15, 2017
2ca1574
Added example for line styles, and enabled line join styles.
gspencergoog Jun 15, 2017
506bc1c
Merge pull request #1 from flutter/master
gspencergoog Jun 15, 2017
0ee01da
Merge pull request #2 from gspencergoog/master
gspencergoog Jun 15, 2017
9e331b2
Merge pull request #3 from gspencergoog/workspace
gspencergoog Jun 15, 2017
83c156c
Reverting inadvertent change to main.dart.
gspencergoog Jun 15, 2017
5a54fa2
Updated due to code review of engine code
gspencergoog Jun 15, 2017
1755464
Removed example.
gspencergoog Jun 17, 2017
e3aec6a
Merge pull request #4 from flutter/master
gspencergoog Jun 21, 2017
60d1a5d
Merge pull request #5 from flutter/master
gspencergoog Jun 26, 2017
1afb2d7
Added arguments to named routes, with test.
gspencergoog Jun 29, 2017
4e44bc9
Merge pull request #6 from flutter/master
gspencergoog Jun 29, 2017
11b44e9
Fixing some formatting
gspencergoog Jun 29, 2017
26b5883
Merge branch 'master' of https://github.com/flutter/flutter
gspencergoog Jun 29, 2017
badb84e
Merge branch 'master' of https://github.com/flutter/flutter
gspencergoog Jul 1, 2017
75f125d
Merge branch 'master' of https://github.com/flutter/flutter
gspencergoog Jul 18, 2017
ae0ebc1
Merge branch 'master' of https://github.com/flutter/flutter
gspencergoog Jul 18, 2017
5f9e560
Fix analyzer errors (#11284)
goderbauer Jul 19, 2017
daa7860
Add a ScrollController parameter to NestedScrollView (#11242)
Jul 19, 2017
c186d0d
pass the value of the android sdk (#11268)
devoncarew Jul 19, 2017
e13e780
Flutter analyze watch improvements (#11143)
Jul 19, 2017
df5cb39
Rev engine to 488584f8b7cf188d4699880d7b55144cd48067bf (#11291)
tvolkert Jul 19, 2017
bc4a3f1
Work around to fix appveyor build (#11295)
goderbauer Jul 19, 2017
1744e8e
Expose the currently available semantic scroll actions (#11286)
goderbauer Jul 19, 2017
77b0c1d
Don't pass "null" to debugPrint. (#11265)
Hixie Jul 19, 2017
e1adc52
Option to enable the performance overlay from 'flutter run'. (#11288)
Hixie Jul 19, 2017
63b6867
Roll engine to "Speculatively disable GN argument 'enable_profiling' …
rmacnak-google Jul 19, 2017
02b65bc
AnimatedCrossFade: shut off animations & semantics in faded out widge…
yjbanov Jul 19, 2017
669e13e
AnimatedSize: state machine, tests, animate only when needed (#11305)
yjbanov Jul 19, 2017
d767ac0
Fixed a dartdoc sample code typo (#11306)
Jul 19, 2017
b5c461a
a11y: implement new SemanticsAction "showOnScreen" (v2) (#11156)
goderbauer Jul 19, 2017
05ccad7
Roll engine to 53c9a702821b154f137541d4a528fbd25f00ad1b (#11310)
B3rn475 Jul 19, 2017
0b39266
More debug help. (#11308)
Hixie Jul 19, 2017
741598d
Fix restart/reload benchmark synchronization (#11282)
B3rn475 Jul 19, 2017
6dbf226
Create one listener that merges the leading and trailing glow control…
jason-simmons Jul 20, 2017
194bf41
Don't relayout a Text if only its color changed. (#11313)
Hixie Jul 20, 2017
e890ec5
Fix 'reloadSources' service from Observatory (#11315)
B3rn475 Jul 20, 2017
5670093
Rev engine to 5fcfb995bbce72b5f1ee807121f51a3c0280c8b4 (#11318)
tvolkert Jul 20, 2017
bb15e34
Add slider customizations (#11185)
maryx Jul 20, 2017
8e38848
Fix sample code and update docs (#11257)
goderbauer Jul 20, 2017
48427cb
Revert "Flutter analyze watch improvements (#11143)" (#11328)
Hixie Jul 20, 2017
9d90132
Do not call saveLayer for physical model layers whose bounds are simp…
jason-simmons Jul 21, 2017
d31c202
Merge branch 'master' of https://github.com/flutter/flutter
gspencergoog Jul 21, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bin/internal/engine.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c757fc74512fe9039a31e194906bf3700b4c1319
5fcfb995bbce72b5f1ee807121f51a3c0280c8b4
9 changes: 7 additions & 2 deletions bin/internal/update_dart_sdk.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,13 @@ if (Test-Path $dartSdkPath) {
}
New-Item $dartSdkPath -force -type directory | Out-Null
$dartSdkZip = "$cachePath\dart-sdk.zip"
Import-Module BitsTransfer
Start-BitsTransfer -Source $dartSdkUrl -Destination $dartSdkZip
# TODO(goderbauer): remove (slow and backwards-incompatible) appveyor work around
if (Test-Path Env:\APPVEYOR) {
curl $dartSdkUrl -OutFile $dartSdkZip
} else {
Import-Module BitsTransfer
Start-BitsTransfer -Source $dartSdkUrl -Destination $dartSdkZip
}

Write-Host "Unzipping Dart SDK..."
If (Get-Command 7z -errorAction SilentlyContinue) {
Expand Down
93 changes: 93 additions & 0 deletions dev/devicelab/bin/tasks/commands_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
// Copyright (c) 2017 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 'dart:async';
import 'dart:convert';
import 'dart:io';

import 'package:path/path.dart' as path;

import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/utils.dart';

void main() {
task(() async {
final Device device = await devices.workingDevice;
await device.unlock();
final Directory appDir = dir(path.join(flutterDirectory.path, 'dev/integration_tests/ui'));
await inDirectory(appDir, () async {
final Completer<Null> ready = new Completer<Null>();
bool ok;
print('run: starting...');
final Process run = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
<String>['run', '--verbose', '--observatory-port=8888', '-d', device.deviceId, 'lib/commands.dart'],
);
run.stdout
.transform(UTF8.decoder)
.transform(const LineSplitter())
.listen((String line) {
print('run:stdout: $line');
if (line.contains(new RegExp(r'^\[\s+\] For a more detailed help message, press "h"\. To quit, press "q"\.'))) {
print('run: ready!');
ready.complete();
ok ??= true;
}
});
run.stderr
.transform(UTF8.decoder)
.transform(const LineSplitter())
.listen((String line) {
stderr.writeln('run:stderr: $line');
});
run.exitCode.then((int exitCode) { ok = false; });
await Future.any<dynamic>(<Future<dynamic>>[ ready.future, run.exitCode ]);
if (!ok)
throw 'Failed to run test app.';
await drive('none');
print('test: pressing "p" to enable debugPaintSize...');
run.stdin.write('p');
await drive('debug_paint');
print('test: pressing "p" again...');
run.stdin.write('p');
await drive('none');
print('test: pressing "P" to enable performance overlay...');
run.stdin.write('P');
await drive('performance_overlay');
print('test: pressing "P" again...');
run.stdin.write('P');
await drive('none');
run.stdin.write('q');
final int result = await run.exitCode;
if (result != 0)
throw 'Received unexpected exit code $result from run process.';
});
return new TaskResult.success(null);
});
}

Future<Null> drive(String name) async {
print('drive: running commands_$name check...');
final Process drive = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
<String>['drive', '--use-existing-app', 'http://127.0.0.1:8888/', '--keep-app-running', '--driver', 'test_driver/commands_${name}_test.dart'],
);
drive.stdout
.transform(UTF8.decoder)
.transform(const LineSplitter())
.listen((String line) {
print('drive:stdout: $line');
});
drive.stderr
.transform(UTF8.decoder)
.transform(const LineSplitter())
.listen((String line) {
stderr.writeln('drive:stderr: $line');
});
final int result = await drive.exitCode;
if (result != 0)
throw 'Failed to drive test app (exit code $result).';
print('drive: finished commands_$name check successfully.');
}
3 changes: 2 additions & 1 deletion dev/devicelab/lib/framework/framework.dart
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,8 @@ class _TaskRunner {
// are catching errors coming from arbitrary (and untrustworthy) task
// code. Our goal is to convert the failure into a readable message.
// Propagating it further is not useful.
completer.complete(new TaskResult.failure(message));
if (!completer.isCompleted)
completer.complete(new TaskResult.failure(message));
});
return completer.future;
}
Expand Down
16 changes: 7 additions & 9 deletions dev/devicelab/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,13 @@ tasks:
stage: devicelab
required_agent_capabilities: ["has-android-device"]

commands_test:
description: >
Runs tests of flutter run commands.
stage: devicelab
required_agent_capabilities: ["has-android-device"]
flaky: true

android_sample_catalog_generator:
description: >
Builds sample catalog markdown pages and Android screenshots
Expand All @@ -131,7 +138,6 @@ tasks:
Verifies that `flutter drive --route` still works. No performance numbers.
stage: devicelab
required_agent_capabilities: ["linux/android"]
flaky: true

flutter_gallery_instrumentation_test:
description: >
Expand All @@ -140,7 +146,6 @@ tasks:
test can run on off-the-shelf infrastructures, such as Firebase Test Lab.
stage: devicelab
required_agent_capabilities: ["linux/android"]
flaky: true

# iOS on-device tests

Expand All @@ -149,22 +154,19 @@ tasks:
Checks that platform channels work on iOS.
stage: devicelab_ios
required_agent_capabilities: ["has-ios-device"]
flaky: true

platform_channel_sample_test_ios:
description: >
Runs a driver test on the Platform Channel sample app on iOS.
stage: devicelab_ios
required_agent_capabilities: ["has-ios-device"]
flaky: true

complex_layout_scroll_perf_ios__timeline_summary:
description: >
Measures the runtime performance of the Complex Layout sample app on
iOS.
stage: devicelab_ios
required_agent_capabilities: ["has-ios-device"]
flaky: true

# flutter_gallery_ios__start_up:
# description: >
Expand All @@ -186,14 +188,12 @@ tasks:
iOS.
stage: devicelab_ios
required_agent_capabilities: ["has-ios-device"]
flaky: true

basic_material_app_ios__size:
description: >
Measures the IPA size of a basic material app.
stage: devicelab_ios
required_agent_capabilities: ["has-ios-device"]
flaky: true

# microbenchmarks_ios:
# description: >
Expand All @@ -215,14 +215,12 @@ tasks:
Runs end-to-end Flutter tests on iOS.
stage: devicelab_ios
required_agent_capabilities: ["has-ios-device"]
flaky: true

ios_sample_catalog_generator:
description: >
Builds sample catalog markdown pages and iOS screenshots
stage: devicelab_ios
required_agent_capabilities: ["has-ios-device"]
flaky: true

# Tests running on Windows host

Expand Down
43 changes: 43 additions & 0 deletions dev/integration_tests/ui/lib/commands.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright 2017 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 'package:flutter_driver/driver_extension.dart';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

String log = '';

void main() {
enableFlutterDriverExtension(handler: (String message) async {
log = 'log:';
await WidgetsBinding.instance.reassembleApplication();
return log;
});
runApp(new MaterialApp(home: const Test()));
}

class Test extends SingleChildRenderObjectWidget {
const Test({ Key key }) : super(key: key);

@override
RenderTest createRenderObject(BuildContext context) {
return new RenderTest();
}
}

class RenderTest extends RenderProxyBox {
RenderTest({ RenderBox child }) : super(child);

@override
void debugPaintSize(PaintingContext context, Offset offset) {
super.debugPaintSize(context, offset);
log += ' debugPaintSize';
}

@override
void paint(PaintingContext context, Offset offset) {
log += ' paint';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Copyright 2017 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 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';

void main() {
FlutterDriver driver;

setUpAll(() async {
driver = await FlutterDriver.connect();
});

tearDownAll(() async {
driver?.close();
});

test('check that we are painting in debugPaintSize mode', () async {
expect(await driver.requestData('status'), 'log: paint debugPaintSize');
});
}
23 changes: 23 additions & 0 deletions dev/integration_tests/ui/test_driver/commands_none_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Copyright 2017 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 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';

void main() {
FlutterDriver driver;

setUpAll(() async {
driver = await FlutterDriver.connect();
});

tearDownAll(() async {
driver?.close();
});

test('check that we are in normal mode', () async {
expect(await driver.requestData('status'), 'log: paint');
await driver.waitForAbsent(find.byType('PerformanceOverlay'), timeout: Duration.ZERO);
});
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Copyright 2017 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 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';

void main() {
FlutterDriver driver;

setUpAll(() async {
driver = await FlutterDriver.connect();
});

tearDownAll(() async {
driver?.close();
});

test('check that we are showing the performance overlay', () async {
await driver.requestData('status'); // force a reassemble
await driver.waitFor(find.byType('PerformanceOverlay'), timeout: Duration.ZERO);
});
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
// Copyright 2017 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 'dart:async';

import 'package:integration_ui/keys.dart' as keys;
Expand Down
4 changes: 4 additions & 0 deletions dev/integration_tests/ui/test_driver/route_test.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
// Copyright 2017 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 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';

Expand Down
Loading