Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Unified Diff: CHANGELOG.md

Issue 1911213002: Update changelog for event changes in dart:html (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: louder Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: CHANGELOG.md
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f8d9aadded24121ab48dd066cbc7146c4c82cf8c..3e21825a01a565e306c669bb93a4b703658e3021 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,10 +14,92 @@
* Introduce `ChunkedConverter` and deprecate chunked methods on `Converter`.
+* `dart:html`
+
+ There have been a number of **BREAKING** changes to align APIs with recent
+ changes in Chrome. These include:
+
+ * Chrome's `ShadowRoot` interface no longer has the methods `getElementById`,
+ `getElementsByClassName`, and `getElementsByTagName`, e.g.,
+
+ ```dart
+ elem.shadowRoot.getElementsByClassName('clazz')
+ ```
+
+ should become:
+
+ ```dart
+ elem.shadowRoot.querySelectorAll('.clazz')
+ ```
+
+ * The `clipboardData` property has been removed from `KeyEvent`
+ and `Event`. It has been moved to the new `ClipboardEvent` class, which is
+ now used by `copy`, `cut`, and `paste` events.
+
+ * The `layer` property has been removed from `KeyEvent` and
+ `UIEvent`. It has been moved to `MouseEvent`.
+
+ * The `Point get page` property has been removed from `UIEvent`.
+ It still exists on `MouseEvent` and `Touch`.
+
+ There have also been a number of other additions and removals to `dart:html`,
+ `dart:indexed_db`, `dart:svg`, `dart:web_audio`, and `dart:web_gl` that
+ correspond to changes to Chrome APIs between v39 and v45. Many of the breaking
+ changes represent APIs that would have caused runtime exceptions when compiled
+ to Javascript and run on recent Chrome releases.
+
* `dart:io`
* Added `SecurityContext.alpnSupported`, which is true if a platform
supports ALPN, and false otherwise.
+### JavaScript interop
+
+For performance reasons, a potentially **BREAKING** change was added for
+libraries that use JS interop.
+Any Dart file that uses `@JS` annotations on declarations (top-level functions,
+classes or class members) to interop with JavaScript code will require that the
+file have the annotation `@JS()` on a library directive.
+
+```dart
+@JS()
+library my_library;
+```
+
+The analyzer will enforce this by generating the error:
+
+The `@JS()` annotation can only be used if it is also declared on the library
+directive.
+
+If part file uses the `@JS()` annotation, the library that uses the part should
+have the `@JS()` annotation e.g.,
+
+```dart
+// library_1.dart
+@JS()
+library library_1;
+
+import 'package:js/js.dart';
+
+part 'part_1.dart';
+```
+
+```dart
+// part_1.dart
+part of library_1;
+
+@JS("frameworkStabilizers")
+external List<FrameworkStabilizer> get frameworkStabilizers;
+```
+
+If your library already has a JS module e.g.,
+
+```dart
+@JS('array.utils')
+library my_library;
+```
+
+Then your library will work without any additional changes.
+
### Analyzer
* Static checking of `for in` statements. These will now produce static
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698