Skip to content

Conversation

@darshankawar
Copy link
Owner

Description

Replace this paragraph with a description of what this PR is doing. If you're modifying existing behavior, describe the existing behavior, how this PR is changing it, and what motivated the change. If you're changing visual properties, consider including before/after screenshots (and runnable code snippets to reproduce them).

Related Issues

Replace this paragraph with a list of issues related to this PR from our issue database. Indicate, which of these issues are resolved or fixed by this PR. There should be at least one issue listed here.

Tests

I added the following tests:

Replace this with a list of the tests that you added as part of this PR. A change in behavior with no test covering it
will likely get reverted accidentally sooner or later. PRs must include tests for all changed/updated/fixed behaviors. See Test Coverage.

Checklist

Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I signed the CLA.
  • I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I updated/added relevant documentation (doc comments with ///).
  • All existing and new tests are passing.
  • The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Did any tests fail when you ran them? Please read Handling breaking changes.

Jonah Williams and others added 30 commits October 16, 2020 15:07
…mes. (flutter#68334)

We'd like to see how many of these flakes are transient and how many involve the device/machine getting temporarily wedged. Add a retry with no delay to see if it is possible to add sufficient error handling to startApp/installApp to handle this.
…68020)

This PR suggests improving the IntelliJ plugin "jar" detection logic.

Previously:
The IntelliJ Flutter plugin was contained flutter-intellij.jar.
Currently:
It is named flutter-intellij-X.Y.Z.jar and does not contain META-INF/plugin.xml.
META-INF/plugin.xml is included in flutter-idea-X.Y.Z.jar.

So this PR changes the rules for searching the plugin's jar file.
Concretely, it looks for the jar file containing META-INF/plugin.xml in the plugin's package directory and reads the package version from its META-INF/plugin.xml.

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
…lutter#68409)

Remove devicelab specific code for shutting down gradle daemon, add --android-gradle-daemon option to build/run/drive`. Avoids need for un-tested devicelab specific handler. There are also some feature requests for this, so 2 birds one stone.

Example:

flutter build apk --no-android-gradle-daemon will pass --no-daemon on to gradle
)

The current timeout is too short for some remote workflows. The existing unit test require hitting a real timeout so I've removed it.

See b/171005910
…ter#68491)

Remove devicelab specific code for shutting down gradle daemon, add --android-gradle-daemon option to build/run/drive`. Avoids need for un-tested devicelab specific handler. There are also some feature requests for this, so 2 birds one stone.

Example:

flutter build apk --no-android-gradle-daemon will pass --no-daemon on to gradle
…andled". (flutter#67359)

- - When I added notification of key events before processing them as text, it made it so that shortcut key bindings like the spacebar would prevent spaces from being inserted into text fields, which is obviously not desirable (and so that change was reverted). At the same time, we do want to make it possible to override key events so that they can do things like intercept a tab key or arrow keys that change the focus.

This PR changes the behavior of the Shortcuts widget so that if it has a shortcut defined, but no action is bound to the intent, then instead of responding that the key is "handled", it responds as if nothing handled it. This allows the engine to continue to process the key as text entry.

This PR includes:

- Modification of the callback type for key handlers to return a KeyEventResult instead of a bool, so that we can return more information (i.e. the extra state of "stop propagation").
- Modification of the ActionDispatcher.invokeAction contract to require that Action.isEnabled return true before calling it. It will now assert if the action isn't enabled when invokeAction is called. This is to allow optimization of the number of calls to isEnabled, since the shortcuts widget now wants to know if the action was enabled before deciding to either handle the key or to return ignored.
- Modification to ShortcutManager.handleKeypress to return KeyEventResult.ignored for keys which don't have an enabled action associated with them.
- Adds an attribute to DoNothingAction that allows it to mark a key as not handled, even though it does have an action associated with it. This will allow disabling of a shortcut for a subtree.
Split the integration_ui target into individual driver tests. Remove disabled screenshot tests
Removes one-off handling for defines test and forces it to run through the DriverTest interface
… deps (flutter#68487)

Fixes flutter#67370

By running most of these executions through flutter, we get the benefit of the flutter error handling and precaching. IN the test where this is not feasible, call pre-cache directly.
…n-binary in all startup tests (flutter#68516)

These devicelab tests are incredibly flaky. Currently they will build & install the same application 15 times. This causes the temp storage to fill up on android, and has a good chance of flaking on iOS due to install issues.

The change from 3 to 15 increased total test time for 2 -> 12 minutes on iOS, or roughly 5 more test equivalents for every single iOS test. Reduce the iteration count back to 5

Uninstall the app after each run so temp storage does not fill up.
…plication-binary in all startup tests (flutter#68516)" (flutter#68531)

This reverts commit a4c2075.
jmagman and others added 27 commits October 29, 2020 16:09
…utter#68756)

The flutter run failures are cause by the application occasionally taking a long time to start up. This caused the ios fallback discovery to kick in, which will always fail if the application hasn't started. Solution: remove the iOS fallback discovery and wait up to 30 seconds.

This has not proven to reduce the flakes, but it does at least remove one error case and removes code that will no longer work without the mDNS fallback.
…is unspecified) (flutter#69351)

Fixes flutter#69348

If the web development server fails to bind, then retry up to 5 times. If a port was not provided, select a new free port each time.
* 53d5d68 Add dart-lang/sdk's new package:clock dependency (flutter/engine#22142)

* c32e3d8 Roll Skia from 7737a5bd2510 to 5567a6091ceb (8 revisions) (flutter/engine#22146)

* 376045c Roll Fuchsia Linux SDK from XYN02FThN... to UKgKCjxSA... (flutter/engine#22147)

* 03395de Roll Fuchsia Mac SDK from GKPwGj1Ux... to xHjtLQPQ5... (flutter/engine#22151)

* 0c7e952 Manual Dart SDK roll 6e015bd9cddb to 9c6e76468ca4 (6 revisions (flutter/engine#22153)

* e5f168a Update constraint to latest integration test (flutter/engine#22169)

* e61e8c2 Smooth window resizing on macOS (flutter/engine#21525)

* acece00 Allow parse_and_send to use access tokens (flutter/engine#22019)

* 0270632 Includes roles for links, checkboxes, and radio buttons in semantics (flutter/engine#22061)

* 632354d Roll Fuchsia Linux SDK from UKgKCjxSA... to PY5hNI-wY... (flutter/engine#22175)

* 62d50af Add plumbing for command line arguments on Windows (flutter/engine#22094)

* 06b0910 Fix possible use of std::moved value in Rasterizer (flutter/engine#22125)

* 005dec4 [web] Clean up unused previousStyle logic (flutter/engine#22150)

* ca05bdc Roll Skia from 5567a6091ceb to f548a028ce70 (7 revisions) (flutter/engine#22155)

* 5b07ac4 Roll Fuchsia Mac SDK from xHjtLQPQ5... to ICK_JlnKJ... (flutter/engine#22188)

* d615a97 Roll Fuchsia Linux SDK from PY5hNI-wY... to Usec4YBzR... (flutter/engine#22197)

* 11ed711 Invalidate the cached SkParagraph font collection when a new font manager is installed (flutter/engine#22157)

* 07c780b [web] Assign default natural width/height for svgs that report 0,0 on firefox and ie11 (flutter/engine#22184)

* b54bb88 Migrate runZoned to runZonedGuarded (flutter/engine#22198)

* 247139a [web] Fix transform not invalidating path bounds causing debugValidate failure (flutter/engine#22172)

* e4dffc1 [web] Fix scroll wheel line delta on Firefox. (flutter/engine#21928)

* d6627c6 Reland [ios] Refactor IOSSurface factory and unify surface creation (flutter/engine#22016)

* ce1dd11 Standardize macro names for dartdoc macros (flutter/engine#22180)

* f81bc37 [profiling] Handle thread_info to account for killed threads (flutter/engine#22170)

* fd94c86 Fix for firefox custom clipping (flutter/engine#22182)

* 9ccf9f1 bring back build_test to ensure we validate licenses (flutter/engine#22201)

* 38f6665 Set strut font to Roboto if the given font hasn't been registered (flutter/engine#22129)

* caf32d5 Add a proc table version of embedder API (flutter/engine#21813)

* ed0f477 Use preTranslate when applying offset to matrix (flutter/engine#21648)

* b457e2d Refactor make_mock_engine into fl_test (flutter/engine#21585)

* 28497c8 Fix typos in FlValue docs (flutter/engine#21875)

* bb32446 Fix FlTextInputPlugin tear down (flutter/engine#22007)

* 7a7804b Add "input shield" to capture pointer input for reinjection (flutter/engine#22067)

* fe85f94 Update painting.dart (flutter/engine#22195)

* 99cc50d [ios] Surface factory holds the canonical reference to the external view embedder (flutter/engine#22206)
* [null-safety] enable null safety

* opt expression evaluation web test out of null safety
… quit (flutter#69443)

* start and stop chromedriver once per sub-shard; do not wait for it to quit

* enable web_long_running_tests but keep them as flaky
My yearly pass to fix spelling errors in the API dartdocs.
…r#69382)

* Fix failing tests from introducing raw string generation in gen_l10n tool
@darshankawar darshankawar merged commit a0e494c into darshankawar:master Nov 3, 2020
darshankawar pushed a commit that referenced this pull request Nov 3, 2020
…ated (flutter#65184)

More work to prevent current #2 crash issue on stable. If adb is not located do not list/create android devices.
darshankawar pushed a commit that referenced this pull request Sep 8, 2021
…1498)" (flutter#71519)

This appears to be triggering an null dereference by calling
popSystemNavigator on a null platform plugin delegate.

boolean io.flutter.plugin.platform.PlatformPlugin$PlatformPluginDelegate.popSystemNavigator()

Relevant logs:
```
2020-12-01T14:34:34.410242: stderr: [   +6 ms] VMServiceFlutterDriver: >>> {command: get_text, finderType: ByValueKey, keyValueString: status, keyValueType: String}
2020-12-01T14:34:34.490211: stderr: [  +79 ms] VMServiceFlutterDriver: <<< {isError: false, response: {text: ok}, type: _extensionType, method: ext.flutter.driver}
2020-12-01T14:34:34.493011: stderr: [   +2 ms] VMServiceFlutterDriver: >>> {command: tap, finderType: ByValueKey, keyValueString: step, keyValueType: String}
2020-12-01T14:34:34.962001: stdout: [ +468 ms] E/MethodChannel#flutter/platform( 9732): Failed to handle method call
2020-12-01T14:34:34.962222: stdout: [        ] E/MethodChannel#flutter/platform( 9732): java.lang.NullPointerException: Attempt to invoke interface method 'boolean io.flutter.plugin.platform.PlatformPlugin$PlatformPluginDelegate.popSystemNavigator()' on a null object reference
2020-12-01T14:34:34.962356: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at io.flutter.plugin.platform.PlatformPlugin.popSystemNavigator(PlatformPlugin.java:313)
2020-12-01T14:34:34.962499: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at io.flutter.plugin.platform.PlatformPlugin.access$600(PlatformPlugin.java:28)
2020-12-01T14:34:34.962735: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at io.flutter.plugin.platform.PlatformPlugin$1.popSystemNavigator(PlatformPlugin.java:101)
2020-12-01T14:34:34.963047: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at io.flutter.embedding.engine.systemchannels.PlatformChannel$1.onMethodCall(PlatformChannel.java:123)
2020-12-01T14:34:34.963284: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
2020-12-01T14:34:34.963592: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
2020-12-01T14:34:34.963910: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:738)
2020-12-01T14:34:34.964227: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at android.os.MessageQueue.nativePollOnce(Native Method)
2020-12-01T14:34:34.964571: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at android.os.MessageQueue.next(MessageQueue.java:323)
2020-12-01T14:34:34.964805: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at android.os.Looper.loop(Looper.java:136)
2020-12-01T14:34:34.965034: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at android.app.ActivityThread.main(ActivityThread.java:6123)
2020-12-01T14:34:34.965248: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at java.lang.reflect.Method.invoke(Native Method)
2020-12-01T14:34:34.965398: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
2020-12-01T14:34:34.965589: stdout: [        ] E/MethodChannel#flutter/platform( 9732):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
2020-12-01T14:34:34.966863: stderr: [   +1 ms] VMServiceFlutterDriver: <<< {isError: false, response: {}, type: _extensionType, method: ext.flutter.driver}
2020-12-01T14:34:34.967698: stderr: [        ] VMServiceFlutterDriver: >>> {command: get_text, finderType: ByValueKey, keyValueString: status, keyValueType: String}
2020-12-01T14:34:34.986399: stdout: [  +18 ms] E/flutter ( 9732): [ERROR:flutter/shell/common/shell.cc(209)] Dart Unhandled Exception: PlatformException(error, Attempt to invoke interface method 'boolean io.flutter.plugin.platform.PlatformPlugin$PlatformPluginDelegate.popSystemNavigator()' on a null object reference, null, java.lang.NullPointerException: Attempt to invoke interface method 'boolean io.flutter.plugin.platform.PlatformPlugin$PlatformPluginDelegate.popSystemNavigator()' on a null object reference
2020-12-01T14:34:34.986682: stdout: [        ] E/flutter ( 9732):   at io.flutter.plugin.platform.PlatformPlugin.popSystemNavigator(PlatformPlugin.java:313)
stdout: [        ] E/flutter ( 9732):   at io.flutter.plugin.platform.PlatformPlugin.access$600(PlatformPlugin.java:28)
2020-12-01T14:34:34.987013: stdout: [        ] E/flutter ( 9732):   at io.flutter.plugin.platform.PlatformPlugin$1.popSystemNavigator(PlatformPlugin.java:101)
2020-12-01T14:34:34.987328: stdout: [        ] E/flutter ( 9732):   at io.flutter.embedding.engine.systemchannels.PlatformChannel$1.onMethodCall(PlatformChannel.java:123)
2020-12-01T14:34:34.987547: stdout: [        ] E/flutter ( 9732):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
2020-12-01T14:34:34.987815: stdout: [        ] E/flutter ( 9732):   at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
2020-12-01T14:34:34.988037: stdout: [        ] E/flutter ( 9732):   at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:738)
2020-12-01T14:34:34.988246: stdout: [        ] E/flutter ( 9732):   at android.os.MessageQueue.nativePollOnce(Native Method)
2020-12-01T14:34:34.988470: stdout: [        ] E/flutter ( 9732):   at android.os.MessageQueue.next(MessageQueue.java:323)
2020-12-01T14:34:34.988678: stdout: [        ] E/flutter ( 9732):   at android.os.Looper.loop(Looper.java:136)
2020-12-01T14:34:34.988934: stdout: [        ] E/flutter ( 9732):   at android.app.ActivityThread.main(ActivityThread.java:6123)
2020-12-01T14:34:34.989112: stdout: [        ] E/flutter ( 9732):   at java.lang.reflect.Method.invoke(Native Method)
2020-12-01T14:34:34.989348: stdout: [        ] E/flutter ( 9732):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
2020-12-01T14:34:34.990016: stdout: [        ] E/flutter ( 9732):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
stdout: [        ] E/flutter ( 9732): ), stack trace: #0      JSONMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:159:7)
stdout: [        ] E/flutter ( 9732): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18)
2020-12-01T14:34:34.990374: stdout: [        ] E/flutter ( 9732): <asynchronous suspension>
2020-12-01T14:34:34.990702: stdout: [        ] E/flutter ( 9732): #2      SystemNavigator.pop (package:flutter/src/services/system_navigator.dart:34:5)
2020-12-01T14:34:34.990946: stdout: [        ] E/flutter ( 9732): <asynchronous suspension>
```

This reverts commit 6a84b02.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.