59 Commits

Author SHA1 Message Date
Kaushik Iska
d2bc74aa6d
Fix analyzer issues for onReportTiming to frameTiming (#38840)
Filed: https://github.com/flutter/flutter/issues/38838
to track these usages.

This was introduced by: https://github.com/flutter/engine/pull/11041
2019-08-19 14:56:22 -07:00
Michael Klimushyn
821602aef3
Revert "Moved the default BinaryMessenger instance to ServicesBinding (#37489)" (#37983)
This reverts commit 92ef2b9ce1d4e54d5efb3e6a962e9e724dc7efeb.

This requires either runApp() or
WidgetsFlutterBinding.ensureInitialized() to have been called before
using any MethodChannels. Plugins broadly rely on MethodChannels and
right now there's no general requirements that they be constructed
within the runApp call, so the ecosystem breakages from this are broader
than originally thought. Reverting for now.
2019-08-09 16:30:30 -07:00
adazh
92ef2b9ce1
Moved the default BinaryMessenger instance to ServicesBinding (#37489) 2019-08-09 10:13:40 -07:00
Ferhat
f1ea485018
[web][upstream] Don't register exit/saveCompilationTrace for web platform since they are not available (#37812)
* Don't register N/A services exit/saveCompilationTrace for web platform
2019-08-08 14:48:07 -07:00
liyuqian
e77237d6d3
Reland "Fix the first frame logic in tracing and driver (#35297)" (#37192)
This relands https://github.com/flutter/flutter/pull/35297

The followings have been done to fix the broken tests:
  1. Add `didSendFirstFrameRasterizedEvent` extension and its tests
  2. Wait for `didSendFirstFrameRasterizedEvent` instead of
     `didSendFirstFrameEvent` during start up tests
  3. Mark missed (probably newly added) start up tests as flaky
2019-07-31 11:01:52 -07:00
Jonah Williams
3068fc4f7c
Revert "Fix the first frame logic in tracing and driver (#35297)" (#37027)
This reverts commit 68fc7231b33dcb3f7c9e705e321135f009afda49.
2019-07-26 13:08:36 -07:00
liyuqian
68fc7231b3
Fix the first frame logic in tracing and driver (#35297)
This should fix https://github.com/flutter/flutter/issues/31442 and https://github.com/flutter/flutter/issues/34867
2019-07-26 09:38:12 -07:00
Jonah Williams
42a14b5891
Compatibility pass on flutter/foundation tests for JavaScript compilation. (1) (#33349) 2019-06-06 21:22:00 -07:00
Harry Terkelsen
13e9bfcc94
Add binaryMessenger constructor argument to platform channels (#30406)
* Deprecates `BinaryMessages` in favor of a default instance of `BinaryMessenger`, called `defaultBinaryMessenger`
* Platform channels use the `defaultBinaryMessenger` for their binaryMessenger default argument.
2019-05-28 11:18:22 -07:00
Jacob Richman
63aa5b3647
Refactor core uses of FlutterError. (#30983)
Make FlutterError objects more structured so they can be displayed better in debugging tools such as Dart DevTools.
2019-05-01 11:20:12 -07:00
Dan Field
d2790bd2bb
Check for invalid elevations (#30215)
* Check for invalid elevation usage in the layer tree
2019-04-10 14:57:46 -07:00
Alexandre Ardhuin
a6af422874
some spaces formatting (#29452)
* some space formattings

* always use blocks in if-else if a block is used

* format spaces in for and while

* allow multiline if conditions

* fix missing space
2019-03-20 23:23:31 +01:00
Alexandre Ardhuin
387f885481
Add missing trailing commas (#28673)
* add trailing commas on list/map/parameters

* add trailing commas on Invocation with nb of arg>1

* add commas for widget containing widgets

* add trailing commas if instantiation contains trailing comma

* revert bad change
2019-03-01 08:17:55 +01:00
Kenzie Schmoll
a172de0159
Send ServiceExtensionToggled event when service extension is set to a value. (#26426) 2019-01-16 12:29:20 -08:00
Kenzie Schmoll
52e5cd24dc
Add didSendFirstFrameEvent service extension. (#25977)
* Add didSendFirstFrameEvent service extension.
2019-01-03 10:38:06 -08:00
Stanislav Baranov
eb7a59b6d7
Switch over to the new name for compilation trace native function (#25594)
* Switch over to the new name for compilation trace native function.

Also see: https://github.com/flutter/engine/pull/7256

* rename

* roll the engine
2018-12-20 16:07:36 -08:00
Stanislav Baranov
c5251cdc02
Flutter tool support for automatic saving of JIT compilation trace (#25301) 2018-12-14 16:09:17 -08:00
Jacob Richman
10bcddcc5c
Add option to track widget rebuilds and repaints from the Flutter inspector. (#23534) 2018-10-29 16:32:26 -07:00
Michael Goderbauer
dc36195cb3
Reland "Remove all service extensions from release mode (#23038)" (#23291) 2018-10-23 03:53:29 +02:00
Michael Goderbauer
bb0290a4dc
Revert "Remove all service extensions from release mode (#23038)" (#23290)
This reverts commit 8e2ca93f52d82d22df8b987cef74238ac53b4b28.

Fixes https://github.com/flutter/flutter/issues/23172
2018-10-19 11:48:15 +02:00
Alexandre Ardhuin
0fb84e96c7
Prefer void to null (#22977)
* Future<void> main

* Future<void>.delayed

* prefer_void_to_Null

* address review comments
2018-10-16 22:03:06 +02:00
Michael Goderbauer
8e2ca93f52
Remove all service extensions from release mode (#23038)
Service extensions can only be activated in debug or profile mode, their code should never be included in release mode. This PR adds guards around all service extension registration calls that enable Dart's tree shaker to remove the extension's code in release mode, which reduces our binary size:

Android Snapshot (uncompressed): minus 127,384 Bytes (-124.40KB)
APK (compressed): minus 38,136 Bytes (-37.24KB)
iOS Snapshot (App.framework, uncompressed): 264,304 Bytes(-258.10KB)

For details: https://docs.google.com/document/d/13JlgvliCn5sWwT2K2SfDwD1NhEfxpJH9DCf22gZZru8/edit

**Benchmark Regressions:** This PR may cause benchmarks to regress because it may change the timing of GC. If you notice a benchmark regression **please note down the exact set of benchmarks that regressed on this PR** and then feel free to revert. I will follow-up with a PR that forces a GC before the effected benchmarks run to get a clean baseline before re-applying this PR.
2018-10-12 21:07:55 -07:00
Devon Carew
762c86995d
expose the debugProfileBuildsEnabled flag as a service extension (#21492)
* expose the debugProfileBuildsEnabled flag as a service extension

* fix tests

* review comments

* remove a new keyword

* test fixes

* review comments
2018-09-22 14:44:09 -07:00
Jacob Richman
ccd070a5b4
Add back screenshot extension that was temporarily disabled. (#21828)
Add back screenshot extension that was temporarily disabled.

Add matchesReferenceImage matcher to test that the screenshot extension
generates equivalent images to InspectorService.instance.screenshot.
2018-09-18 09:32:39 -04:00
Jacob Richman
29fae06f48
Temporarily remove screenshot service extension that is causing code size issues (#21749)
* Revert "Avoid ever creating the WidgetInspectorService outside of debug mode. (#21648)"

This reverts commit eeebd8332a5f4f5c79a9c77877781d7f1132d57b.

* Remove inspector screenshot service extension.
2018-09-12 13:30:16 -07:00
Alexandre Ardhuin
d927c93310
Unnecessary new (#20138)
* enable lint unnecessary_new

* fix tests

* fix tests

* fix tests
2018-09-12 08:29:29 +02:00
Jacob Richman
a2acc6a3e5
Revert "Revert "Enable taking screenshots of arbitrary RenderObjects from a running a… (#20637)" (#21395)" (#21448)
This reverts commit 5b5a5b82286923f52225320f5e9fc9f558838c05.
2018-09-07 10:02:05 -07:00
Jonah Williams
5b5a5b8228
Revert "Enable taking screenshots of arbitrary RenderObjects from a running a… (#20637)" (#21395)
This reverts commit 3306fc10421cfbad8f772d23c02aca27c7ca1d76.
2018-09-04 12:40:40 -07:00
Jacob Richman
3306fc1042
Enable taking screenshots of arbitrary RenderObjects from a running a… (#20637)
Enable taking screenshots of arbitrary RenderObjects from a running application from within the inspector.

Key functionality is in the added _ScreenshotPaintingContext class.
2018-09-04 10:50:04 -07:00
Jonah Williams
e235ccd76f
Support disabled animations (#20354) 2018-08-23 11:50:04 -07:00
Ian Hickson
686d8f8a22 Shim package:test to avoid matcher issues (#20602)
* Upgrade everything except matcher.
* Roll matcher (and test)
* Adjust tests that depend on flutter:test directly to depend on a shim
* Require use of package:test shim and remove other references to package:test
2018-08-14 20:33:58 -07:00
Yegor
d354096299
a11y traversal: sort locally; use new sorting algorithm (#16253)
New a11y traversal:

- sort direct sibling SemanticsNodes only
- use new sorting algorithm
- implement RTL
- test semantics in traversal order by default
- add AppBar traversal test
- breaking: remove nextNodeId/previousNodeId from the framework
- breaking: remove DebugSemanticsDumpOrder.geometricOrder
2018-04-23 14:23:49 -07:00
Jacob Richman
928c41e9a7
Support summary-details tree view (#16638)
Support summary-details tree view.
2018-04-18 09:09:34 -07:00
Jacob Richman
ab9ba3f909
Support exposing the InspectorService over the Flutterservice extension protocol as well as the observatory protocol. (#15876)
* Support exposing the InspectorService over the Flutter
service extension protocol as well as the observatory protocol.

We will probably remove most of the observatory protocol support once a
couple versions of the Flutter IntelliJ plugin have shipped that use the
Flutter service extension protocol. The only reason to continue supporting
the observatory protocol is it will allow using the inspector when paused
at a breakpoint.
2018-04-16 10:04:40 -07:00
Jason Simmons
466d15433f
Use Dart 2 camel case constants (#15360) 2018-03-12 11:06:32 -07:00
Alexander Aprelev
70f60b17d7
Run dev/bots/test's flutter drive test in preview-dart-2 (#15090)
* Run dev/bots/test's flutter drive test in preview-dart-2

* Fix extension callback type

* More type fixes
2018-03-05 08:55:10 -08:00
Greg Spencer
14309b9311
Adds the semantic node traversal API. (#14060)
This adds an API for defining the semantic node traversal order.

It adds a sortOrder argument to the Semantics widget, which is a class that can define a list of sort keys to sort on. The keys are sorted globally so that an order that doesn't have to do with the current widget hierarchy may be defined.

It also adds a shortcut sortKey argument to the Semantics widget that simply sets the sortOrder to just contain that key.

The platform side (flutter/engine#4540) gets an additional member in the SemanticsData object that is an integer describing where in the overall order each semantics node belongs. There is an associated engine-side change that takes this integer and uses it to order widgets for the platform's accessibility services.
2018-02-06 13:24:16 -08:00
Ian Hickson
186d1e9b0d
Have the framework in charge of scheduling frames. (#13344)
...instead of the engine.
2017-12-08 16:51:59 -08:00
Ian Hickson
44e228eb9e
Move image logic from services/ to painting/. (#13409)
This allows the scheduler library to depend on the services library
and the painting library to depend on the scheduler library without
the services library having to depend on the scheduler library.

While I was at it I also cleaned up some of the binding logic: the
licenses logic can now be overridden (and the test library does so),
and the image cache can now be overridden as well.
2017-12-07 14:53:08 -08:00
Ryan Macnak
cc5902b9d8
Fix some tests to be happy with proper microtask scheduling. (#12900)
(I suspect this accounts the sets of microtasks from scheduleWarmUpFrame now running separately.)

Issue https://github.com/flutter/flutter/issues/9998
2017-11-07 09:26:45 -08:00
Michael Goderbauer
8ecf19d8a0 Semantic hit test order for Slivers (#11792)
* Semantic hit test order for Slivers

* ++

* fix double space

* refactoring

* fix test

* comment fix

* tests

* remove accidental debugDumpSemanticsTree

* review comments

* fix button
2017-08-28 15:49:16 -07:00
Jacob Richman
5462ddb917 Bare bones widget inspector support. (#10332)
Bare bones widget inspector support.

Toggle the widget inspector from the flutter tool by pressing 'i'.
When the widget inspector is select mode:
Pointer down to to inspect a widget.
Pointer click to finalize selection of a widget. You can now interact
with the application as you normally would but with the inspected widget
highlighted.
Click the inspect icon in bottom left corner of screen to reactivate
select mode.
2017-08-21 16:17:54 -07:00
Ian Hickson
00e135d879 Prevent event dispatch from happening during reassemble. (#11459)
It was previously possible for event dispatch to occurr during the
brief window where the tree had been marked dirty but before it had
been relaid out by reassemble, which would cause assertions to fire if
someone did a hot reload while touching the device.
2017-08-04 12:01:35 -07:00
Jacob Richman
595cd23c8c Change all occurrences of '$runtimeType#$hashCode' to use the describeIdentity (#10888)
* Revert "Revert "Change all ocurrences of '$runtimeType#$hashCode' to use the idAndType method. (#10871)" (#10880)"

This reverts commit ceb814aa647ecd310794a72a7a5c28820ec57a25.
2017-06-21 10:47:06 -07:00
Jacob Richman
ceb814aa64 Revert "Change all ocurrences of '$runtimeType#$hashCode' to use the idAndType method. (#10871)" (#10880)
This reverts commit d46e208b98d4af93d7029c3e806d443dd51fd116.
2017-06-20 22:14:59 -07:00
Jacob Richman
d46e208b98 Change all ocurrences of '$runtimeType#$hashCode' to use the idAndType method. (#10871)
* Change all instances of '$runtimeType#$hashCode' to use the describeIdentity method.

The describeIdentity method generates a shorter description with a consistent length
consisting of the runtime type and the a 5 hex character long truncated
version of the hash code.
2017-06-20 18:13:28 -07:00
Devon Carew
230f108156 expose debugPaintBaselinesEnabled (#10276)
* expose debugPaintBaselinesEnabled

* Update binding.dart

review comments
2017-05-23 21:39:37 -07:00
Ian Hickson
ce2c834f70 Adjust the tests to handle a higher-DPI test harness. (#10056)
Requires https://github.com/flutter/engine/pull/3688
2017-05-15 16:47:14 -07:00
Ian Hickson
db84df230d Some tools to dump other trees. (#9999) 2017-05-12 15:51:58 -07:00
Ian Hickson
e8c46927c4 Flush microtasks after transient callbacks are run. (#9702)
This splits the frame pipeline into two, beginFrame and drawFrame.

As part of making this change I added some debugging hooks that helped
debug the issues that came up:

 * I added debugPrintScheduleFrameStacks which prints a stack whenever
   a frame is actually scheduled, so you can see why frames are being
   scheduled.

 * I added some toString output to EditableText and RawKeyboardListener.

 * I added a scheduler_tester.dart library for scheduler library tests.

 * I changed the test framework to flush microtasks before pumping.

 * Some asserts that had the old string literal form were replaced by
   asserts with messages.

I also fixed a few subtle bugs that this uncovered:

 * setState() now calls `ensureVisualUpdate`, rather than
   `scheduleFrame`. This means that calling it from an
   AnimationController callback does not actually schedule an extra
   redundant frame as it used to.

 * I corrected some documentation.
2017-05-02 09:27:53 -07:00