Skip to content
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

[CP][stable channel] Fix regression due to Chrome breaking change #43287

Closed
sigmundch opened this issue Sep 1, 2020 · 6 comments
Closed

[CP][stable channel] Fix regression due to Chrome breaking change #43287

sigmundch opened this issue Sep 1, 2020 · 6 comments
Assignees
Labels
area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. cherry-pick-approved Label for approved cherrypick request cherry-pick-review Issue that need cherry pick triage to approve merge-to-stable

Comments

@sigmundch
Copy link
Member

commit(s) to merge: e33f84d

merge instructions: clean merge

What is the issue: Chrome made a breaking change on MemoryInfo. This trips DDC, causing it to improperly associate regular objects as instances of MemoryInfo, and as a result applications fail in arbitraty ways when performing a dynamic call.

What is the fix: MemoryInfo is a special type that is not exposed by Chrome, so DDC has special logic to associate its type information on the side. The fix updates the logic to be resilient to this breaking change.

Why cherrypick: This will be a very visible regression. The breaking change is currently in Chrome canary, once it gets released, this is likely going to break most Dart web development workflows. We've seen this break simple AngularDart apps, and expect this will affect Flutter Web development as well.

Luckily, production builds with dart2js are not affected, unless they run side-by-side with a DDC app, in which case the fix will also restore dart2js to work properly.

This should be cherry-picked to the current stable channel 2.9, be part of the upcoming beta and stable release. If we have the ability, I'd even consider cherry-picking 2.8, if not we should send an announcement with some mitigation instructions.

Risk: low. The change is small (2 lines) and works with both old and new versions of chrome. The code path is covered by all of our unit tests running in chrome browsers already.

Link to original issue(s): #43193

/cc @dgrove @kevmoo @mit-mit @whesse @athomas @vsmenon @franklinyow

@sigmundch sigmundch added merge-to-stable area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. cherry-pick-review Issue that need cherry pick triage to approve labels Sep 1, 2020
@franklinyow franklinyow added the cherry-pick-approved Label for approved cherrypick request label Sep 3, 2020
@franklinyow
Copy link
Contributor

Approved in SCRUM
@athomas @pcsosinski

@pcsosinski
Copy link

pcsosinski commented Sep 3, 2020

current expectation is that a stable Flutter (1.20) hotfix for this specific issue is not necessary - we will pick it up if we have a need for a 1.20 hotfix prior to 1.22.

@sigmundch
Copy link
Member Author

@pcsosinski - just to be clear, at the scum you mentioned that we only need this for flutter-beta, since this only affects flutter-web development with ddc but wont affect the rest of flutter. Did I misunderstand?

@pcsosinski
Copy link

ah sorry I've updated that comment to to say 'stable.' regarding beta, the branch we cut next week will be in beta the week of sept 14 - my understanding was that that timing fits for this issue?

@pcsosinski
Copy link

updated comment to say that a flutter hotfix is not necessary

dart-bot pushed a commit that referenced this issue Sep 8, 2020
#43287

Change-Id: I2880455fdd0ec94d1fa6e037cf408f4ca3f05e65
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161943
Reviewed-by: Michael Thomsen <[email protected]>
dart-bot pushed a commit that referenced this issue Sep 8, 2020
#43287

Change-Id: I2880455fdd0ec94d1fa6e037cf408f4ca3f05e65
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161943
Reviewed-by: Michael Thomsen <[email protected]>
@athomas
Copy link
Member

athomas commented Sep 8, 2020

Released in 2.9.3 (091c855).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. cherry-pick-approved Label for approved cherrypick request cherry-pick-review Issue that need cherry pick triage to approve merge-to-stable
Projects
None yet
Development

No branches or pull requests

4 participants