1. 18 11月, 2020 1 次提交
  2. 22 10月, 2020 1 次提交
    • C
      Ensure root isolate create callback is invoked before the isolate is in the running phase. (#22041) · f459a866
      Chinmay Garde 提交于
      Embedders that have access to the Dart native API (only Fuchsia now) may perform
      library setup in the isolate create callback. The engine used to depend on the
      fact the root isolate entrypoint is invoked in the next iteration of message
      loop (via the `_startIsolate` trampoline in `isolate_patch.dart`) to ensure that
      library setup occur before the main entrypoint was invoked. However, due to
      differences in the way in which message loops are setup in Fuchsia, this
      entrypoint was run before the callback could be executed. Dart code on Fuchsia
      also has the ability to access the underlying event loops directly. This patch
      moves the invocation of the create callback to before user dart code has a
      chance to run. This difference in behavior on Fuchsia became an issue when the
      isolate initialization was reworked in https://github.com/flutter/engine/pull/21820
      for null-safety.
      
      Another issue was discovered in that the callback was being invoked twice, I
      fixed that too and added a test.
      
      Fixes https://github.com/flutter/flutter/issues/68732
      f459a866
  3. 21 10月, 2020 1 次提交
  4. 17 10月, 2020 1 次提交
    • C
      Enable loading snapshots with sound null safety enabled. (#21820) · 5bd7260a
      Chinmay Garde 提交于
      Snapshots compiled with sound null-safety enabled require changes to the way in
      which isolates are launched. Specifically, the `Dart_IsolateFlags::null_safety`
      field needs to be known upfront. The value of this field can only be determined
      once the kernel snapshot is available. This poses a problem in the engine
      because the engine used to launch the isolate at shell initialization and only
      need the kernel mappings later at isolate launch (when transitioning the root
      isolate to the `DartIsolate::Phase::Running` phase). This patch delays launch of
      the isolate on the UI task runner till a kernel mapping is available. The side
      effects of this delay (callers no longer having access to the non-running
      isolate handle) have been addressed in this patch. The DartIsolate API has also
      been amended to hide the method that could return a non-running isolate to the
      caller.  Instead, it has been replaced with a method that requires a valid
      isolate configuration that returns a running root isolate. The isolate will be
      launched by asking the isolate configuration for its null-safety
      characteristics.
      
      A side effect of enabling null-safety is that Dart APIs that work with legacy
      types will now terminate the process if used with an isolate that has sound
      null-safety enabled. These APIs may no longer be used in the engine. This
      primarily affects the Dart Convertors in Tonic that convert certain C++ objects
      into the Dart counterparts. All known Dart Converters have been updated to
      convert C++ objects to non-nullable Dart types inferred using type traits of the
      corresponding C++ object. The few spots in the engine that used the old Dart
      APIs directly have been manually updated. To ensure that no usage of the legacy
      APIs remain in the engine (as these would cause runtime process terminations),
      the legacy APIs were prefixed with the `DART_LEGACY_API` macro and the macro
      defined to `[[deprecated]]` in all engine translation units. While the engine
      now primarily works with non-nullable Dart types, callers can still use
      `Dart_TypeToNonNullableType` to acquire nullable types for use directly or with
      Tonic. One use case that is not addressed with the Tonic Dart Convertors is the
      creation of non-nullable lists of nullable types. This hasn’t come up so far in
      the engine.
      
      A minor related change is reworking tonic to define a single library target.
      This allows the various tonic subsystems to depend on one another. Primarily,
      this is used to make the Dart convertors use the logging utilities. This now
      allows errors to be more descriptive as the presence of error handles is caught
      (and logged) earlier.
      
      Fixes https://github.com/flutter/flutter/issues/59879
      5bd7260a
  5. 16 10月, 2020 3 次提交
  6. 12 9月, 2020 1 次提交
    • C
      Prefer C++ standard headers to their C counterpart (#21091) · 16b900b6
      Chris Bracken 提交于
      We currently use a mix of C standard includes (e.g. limits.h) and their
      C++ variants (e.g. climits). This migrates to a consistent style for all
      cases where the C++ variants are acceptable, but leaves the C
      equivalents in place where they are required, such as in the embedder
      API and other headers that may be used from C.
      16b900b6
  7. 01 9月, 2020 1 次提交
  8. 26 8月, 2020 1 次提交
  9. 25 8月, 2020 1 次提交
  10. 13 8月, 2020 1 次提交
  11. 08 8月, 2020 1 次提交
  12. 29 7月, 2020 1 次提交
  13. 25 6月, 2020 1 次提交
  14. 16 6月, 2020 1 次提交
  15. 08 5月, 2020 1 次提交
    • J
      Remove the global engine entry timestamp (#18182) · 88b9d424
      Jason Simmons 提交于
      The engine was using a global to store a timestamp representing the
      launch of the engine.  This timestamp is initialized with a JNI call
      on Android and during shell setup on other platforms.  Later the
      timestamp is added to a FlutterEngineMainEnter timeline event used to
      measure engine startup time in benchmarks.
      
      This PR removes the global and the JNI call and moves the timestamp
      into the settings object.
      88b9d424
  16. 12 4月, 2020 1 次提交
  17. 17 3月, 2020 1 次提交
  18. 05 2月, 2020 1 次提交
  19. 25 1月, 2020 1 次提交
  20. 09 1月, 2020 1 次提交
  21. 11 10月, 2019 1 次提交
  22. 09 10月, 2019 1 次提交
  23. 06 8月, 2019 1 次提交
  24. 12 7月, 2019 1 次提交
  25. 26 6月, 2019 1 次提交
    • C
      Add --observatory-host switch (#9485) · 107fe823
      Chris Bracken 提交于
      Adds --observatory-host, which allows callers to specify the localhost
      IP binding directly. Allows users to set 0.0.0.0 or the host IP address
      as is possible in the standalone VM, rather than restricting users to
      loopback.
      
      We retain the default behaviour of binding to loopback since the vast
      majority of observatory use-cases involve local access (e.g. host tests
      on flutter_tester) or port-forwarded local access (e.g. flutter driver
      device tests). However, some scenarios, such as QA test labs, may
      benefit from binding to a publicly-accessible IP address.
      107fe823
  26. 07 6月, 2019 1 次提交
  27. 25 4月, 2019 1 次提交
  28. 23 4月, 2019 2 次提交
  29. 20 4月, 2019 3 次提交
  30. 19 4月, 2019 1 次提交
  31. 11 4月, 2019 1 次提交
  32. 10 4月, 2019 1 次提交
    • C
      Rename the blink namespace to flutter. (#8517) · eec74e5c
      Chinmay Garde 提交于
      Some components in the Flutter engine were derived from the forked blink codebase. While the forked components have either been removed or rewritten, the use of the blink namespace has mostly (and inconsistently) remained. This renames the blink namesapce to flutter for consistency. There are no functional changes in this patch.
      eec74e5c
  33. 06 4月, 2019 2 次提交
  34. 04 4月, 2019 1 次提交