Commit Graph

276 Commits

Author SHA1 Message Date
Sigmund Cherem c41b69ed77 [html] update templates for code accidentally changed in the generated code
These were updated in the dart:html output code in
https://dart-review.googlesource.com/c/sdk/+/163681

We may want to look into adding a presubmit that let us notify developers when a
change was made in one place but not the other (similar to how we used to check
for sdk and sdk_nnbd in the past).

Change-Id: I280315a5bb07971d0c0077498eb3c59944db0650
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164640
Reviewed-by: Srujan Gaddam <srujzs@google.com>
2020-09-25 21:34:54 +00:00
Srujan Gaddam 63a57a76ce [dart:html] Revert "[dart:html] Revert commits using MDN compatibility info"
This reverts commit f8ff12008e.

This CL is a revert of the initial revert and should be landed once
Flutter changes have been merged to handle the changes here.

Change-Id: I300a5efd776bf2a596743971f4e15ad62da77f5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153368
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-07-14 23:18:43 +00:00
Stephen Adams f997d62a6d [html] Better code for Element / _ChildrenElementList method
Two tricks let us compile this more efficiently:

    e.children.addAll(cs);

Normally, get$children is inlined, returning a _ChildrenElementList
wrapper, generating:

     new W._ChildrenElementList(e, e.children).addAll$1(0, cs);

The two tricks:

1. Split _ChildElementList.addAll into an 'unwrap' that then calls the
   logic in '_addAll'

2. Add information about the properties of e.children that allow it to
   be removed.

With these tricks, dart2js can optimize the code to this version that
avoids allocating a wrapper or accessing the 'children' property:

     W._ChildrenElementList__addAll(e, cs);

Change-Id: Ifdf533ac4f9790f09f87302e67304b5696097266
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153904
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-07-13 20:33:19 +00:00
Srujan Gaddam f8ff12008e [dart:html] Revert commits using MDN compatibility info
This reverts commits aff77e7e..e24f205d.

Due to a breakage in a Flutter roll, this CL stack needs to be
reverted. It should be reintroduced with changes to Flutter code to
compile with the changes in dart:html.

Breakage: https://github.com/flutter/engine/runs/828631927

Change-Id: I9c93c4eab823337d09d2e347015ad9ec402f2038
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152910
Auto-Submit: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2020-07-02 01:33:18 +00:00
Srujan Gaddam 7349385185 [dart:html] Changes to template/src to handle compat data
Mostly null-assertions to make code compatible with compat
data changes.

Change-Id: I8f7c6c2421d6427851a44588978910deae8440bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152047
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-07-01 22:06:34 +00:00
Srujan Gaddam efdb1c5cd6 [dart:html] Use 'null' when html is null
createContextualFragment accepts a non-nullable string, so if html
is null, it's called with 'null'.

Change-Id: If11a4c397c939017f501707130385d967ee05910
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/146691
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-05-06 02:18:12 +00:00
Srujan Gaddam e35f398779 [dart:html] Modify createFragment to take nullable html str
Closes https://github.com/dart-lang/sdk/issues/41699

createFragment should accept a nullable html string in its
implementation. As such, usages of createFragment within dart:html
are modified as well so the html string does not have to be
non-nullable.

Change-Id: Ia04ad2da9e2a48cabda8774f0af75559fb03a7d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145570
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-04-30 16:50:52 +00:00
Srujan Gaddam 2bd4858d40 [dart:html] Use TreatNullAs attribute in nullability
Closes https://github.com/dart-lang/sdk/issues/41419

Uses the external attribute TreatNullAs to allow nullable setters
and parameters.

Change-Id: I5182ac6dcfdcf78e84f204079a782aebbf128a78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143185
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-04-14 00:37:41 +00:00
Srujan Gaddam 544fc4627f [dart:html] Add insertAll to ChildrenElementList
Bug: https://github.com/dart-lang/sdk/issues/41275

insertAll should be unimplemented. It was previously relying
on a call to ChildrenElementList.length in the List mixin to
throw an UnsupportedError.

Change-Id: Ie8e5b126ea75a538e9db8b939bff0be012814efb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142201
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-04-02 20:16:39 +00:00
Srujan Gaddam bc65eafd3b [dart:html] Fix nullability for vars with null checks
There are several instances where there are non-nullable
variables with null checks associated with them that should
be converted back to nullable. Attribute functions in Element
are clarified as well.

Change-Id: I23cf020f02f3d4b512e041f0339daafb46fdd7f2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140909
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-04-02 19:28:59 +00:00
Srujan Gaddam b213b4ff58 [dart:html] Nullability fixes based on JS call
Changes types of return values depending on if the
call allows a Null type.

Change-Id: Id9b3d69eee1008d46a6b3b16f217a6b9c892fc6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141260
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2020-03-30 22:06:01 +00:00
Kevin Moore 6a5d73dfe7 Address a vulnerability in node validator
Related to DOM clobbering of previousSibling

Change-Id: Ib4ed1cdba4217c351804b0689a999b73713f79ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140622
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-03-23 20:01:58 +00:00
Joshua Litt 44669206b3 [dart2js] Fix html_dart2js to handle null argument.
Change-Id: I711261840fd733ecf640586b82da54d6f61c6bb5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139746
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2020-03-17 17:11:36 +00:00
Srujan Gaddam 5b23373f7e Modify fields in some abstract and native classes
Since we transitioned to natives for dart:html, manually written native
fields should be rewritten. Similarly, if there are fields in abstract
classes that represent interfaces, they should be converted. Fields in
abstract classes that are used in that class are left alone.

Change-Id: I924363639a4430b88b810b7348815bbc3f040e7c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137642
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2020-02-29 01:29:35 +00:00
Srujan Gaddam 9f79dfc37d Address analyzer errors in golden files in dart:html
New analyzer errors are reported for dart:html around nullability.
Non-nullable fields are translated to native getters and setters if part
of a concrete class and normal getters and setters if abstract.

Change-Id: I2fd87803a08872b2a7eae4de0af704f184997c7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137481
Reviewed-by: Stephen Adams <sra@google.com>
2020-02-29 01:29:35 +00:00
Srujan Gaddam 6d051311b6 Add back in null assertions for legacy weak mode
These assertions need to be added back into the nnbd sdk in order to be
compatible with weak mode.

Change-Id: Ie774fffda1fb0e79dbc7fe13cb75b9d28e4268fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136720
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2020-02-21 19:13:31 +00:00
Srujan Gaddam e2ff83724b Fix nullability for some templates
Addresses discrepancies between IDL and template files for some
operations. There's probably more I'm missing since this was
from a cursory check through all the templates.

Change-Id: Id79710b343f4a5fe0b5529f64c341d4f63d69b9d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135222
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-02-11 20:28:54 +00:00
Srujan Gaddam 3776313e65 Change dart:html templates to generate null-safe code
Introduces NULLASSERT token and NNBD condition to allow code to
conditionally compile with NNBD.

Change-Id: Ib71e439f32c793e69b66c328cd7c9900358d886e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134045
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-02-06 23:18:24 +00:00
Srujan Gaddam 28917d8b1d Handle invalid overrides in template and src dart files
Several functions did not override their parents' function signatures
correctly for nnbd.

Change-Id: Ibd935ffa39b3175db65bb43d15396134700d2f78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129143
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-29 22:22:50 +00:00
Srujan Gaddam 151dc015c0 Add $#NAME syntax to emitter to allow subtemplates
NNBD will require explicit casts in various locations in the dart:html
libraries. To avoid taking on this overhead in the pre-nnbd dart:html
library, syntax is introduced in the emitter to allow tokens with
arguments.

Test: emitter_test.py

Change-Id: Ie6de714f491e0cda654f33ee389a91b765cacc9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133333
Reviewed-by: Stephen Adams <sra@google.com>
2020-01-29 22:22:50 +00:00
Srujan Gaddam 7db61c6b01 Changing the dart:html generator scripts to generate null-safe/nnbd code
Change-Id: I4a8b097b126864366076b1e73cf3e0296600380e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128376
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-01-29 00:20:42 +00:00
Sam Rawlins f9648cb477 Fix doc comment for Element.animate
Change-Id: Iace87105cf2a1fa4aacc579b07c9760329c7d160
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119420
Auto-Submit: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Terry Lucas <terry@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2019-10-15 17:36:52 +00:00
Vijay Menon 1eaa7d2902 [html] cleanup JS types
This ensures JS calls in the SDK are statically typed (or, at least, don't
inadvertently trigger dynamic calls).

Analyzer has a hack where `JS('String', ...)` is typed as `String`.  Kernel
doesn't, but we get the same effect (in DDK) via `JS<String>('String', ...)`.

This should not affect dart2js which specially interprets the type string
itself.

Change-Id: I63c5f199e2c51da2beca72659261acf1faff66e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112937
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-08-14 18:02:09 +00:00
Terry Lucas 3a7101e16b Support TouchEvents and PointerEvent, also fixed innerText.
Bug: 36092
Change-Id: I74e3fb256e6be4dc8d919ac158327583f4d84a89
R=vsm@google.com
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108521
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
2019-07-18 14:24:05 +00:00
Stephen Adams aeaf82577e dart:html: Add Element.removeAttribute
- Improve `element.attributes.remove(name)` to compile to `element.removeAttribute(name)`.
- Improve `element.getNamespacedAttributes(namespace).remove(name)` to compile to
  `element.removeAttributeNS(namespace, name)`.
- Add removeAttribute[NS].
- Add hasAttriute[NS].
- Assert attribute names are not null to prevent conversion to "null"/"undefined".
- TODO: Assert values are not null to prevent conversion to "null"/"undefined".
- namespaceURI does not need checking since null and undefined map to 'no namespace'.

Fixes https://github.com/dart-lang/sdk/issues/35655

Change-Id: Ie5bee23c88e8fb92f9d46f29fdf4b7f3175a2aa3
Reviewed-on: https://dart-review.googlesource.com/c/90160
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Terry Lucas <terry@google.com>
2019-01-18 19:06:24 +00:00
Terry Lucas edca6169c1 Fixed a number of dart:html P1 issues.
- Fixed HTML API's with callback typedef to correctly convert Dart function to JS function.
- Expose HttpStatus from dart:html
- Expose DomName ondblclick and dblclickEvent for Angular analyzer.
- Fixed removeAll should be Iterable<Object> to match Set's removeAll not Iterable<E>.
- Fixed a number of DataTransferItem, Entry, FileEntry and DiretoryEntry returning NativeJavaScriptObject needed type registered in DDC.
- Added ability to allow local file access from Chrome browser added -local in ddb.

R=vsm@google.com

Fixes #30278
Fixes #35484
Fixes #34318
Fixes #35510

Change-Id: Ide8c04716c54045e837781d489562f27b694b109
Reviewed-on: https://dart-review.googlesource.com/c/89340
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2019-01-15 17:21:50 +00:00
Sam Rawlins f7dab643ff Remove discontinued webproject.org links. Fixes #21482
Bug: https://github.com/dart-lang/sdk/issues/21482
Change-Id: Ie3becfa7eb9f233186629cf97bfcabe51efc8794
Reviewed-on: https://dart-review.googlesource.com/c/82790
Reviewed-by: Terry Lucas <terry@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2018-11-06 22:20:51 +00:00
Terry Lucas 5721d8af6d - Fixed querySelectoryAll generic syntax to assert if types in list aren't of the same type T.
- Fixes requestFullscreen to call operation webkitRequestFullscreen not requestFullscreen its only available when RuntimeEnabled=FullscreenUnprefixed.

Fixes #21919

R=vsm@google.com

Change-Id: Ib4c4140350d3cef096954e67010f922df9f2310a
Reviewed-on: https://dart-review.googlesource.com/60702
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-06-25 18:43:54 +00:00
Terry Lucas 8fedfc7f8c Removed DomName, DosEditable, and experimental annoations they are unused.
R=kevmoo@google.com,vsm@google.com

Fixes #32304

Change-Id: Ia2c8f99f0125c4d4bd0f95a792ff2af8a58e3599
Reviewed-on: https://dart-review.googlesource.com/60400
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2018-06-18 18:48:03 +00:00
Terry Lucas bc75856e54 Update getClientRects, removed xtab, removed bogus entry in dom.json,
expose ServiceWorker, removed query and queryAll from in dart:html,
added constructor to MessageChannel and removed getCssCanvasContext.

Fixed all tests using query and queryAll.

Fixes https://github.com/dart-lang/sdk/issues/25664
Fixes https://github.com/dart-lang/sdk/issues/26349
Fixes https://github.com/dart-lang/sdk/issues/32323
Fixes https://github.com/dart-lang/sdk/issues/32659
Fixes https://github.com/dart-lang/sdk/issues/32675

R=kevmoo@google.com

Change-Id: I687471e80b8fe9c7040673113f424dbaab7c64d4
Reviewed-on: https://dart-review.googlesource.com/48381
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2018-03-27 20:45:33 +00:00
Terry Lucas 581c512345 Fixed DOMRectList not having a prototype field.
TBR=vsm@google.com

Change-Id: I6cbc38bbb2123b914d5b5511774425c403e614ed
Reviewed-on: https://dart-review.googlesource.com/47183
Reviewed-by: Terry Lucas <terry@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
2018-03-20 01:08:47 +00:00
Leaf Petersen 8f199377fa Remove generic method comment syntax from dart:html.
This removes the last uses of the generic method comment syntax from
the SDK.  There are no additional explicit casts or reified generics
(other than those implied by reifying generic methods) in this CL.

Bug:
Change-Id: Icae23cac60869243cb3ba441f86d70422f68178f
Reviewed-on: https://dart-review.googlesource.com/26081
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Jacob Richman <jacobr@google.com>
2017-12-06 21:26:04 +00:00
Stephen Adams 7686dce346 Replace _downcast and _cast with local downcasts (dart:html)
Change-Id: I4282b20aac07da125805a2654da072742dbbdd0b
Reviewed-on: https://dart-review.googlesource.com/20300
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-11-11 00:09:38 +00:00
Terry Lucas 621b12f324 Removed DARTIUM codegen for IDLS (sdk/lib/dartium)
TBR=alanknight@google.com

Review-Url: https://codereview.chromium.org/2978213002 .
2017-07-18 11:02:02 -07:00
Stephen Adams b0803e1dd7 _ChildrenElementList implements removeRange
This is to avoid inheriting an implementation that works incorrectly for the underlying NodeList.

TBR=lrn@google.com

BUG=

Review-Url: https://codereview.chromium.org/2977453002 .
2017-07-07 15:55:19 -07:00
Terry Lucas f27144d7b5 Roll 50: Updated for push to origin/master.
TBR=jacobr@google.com

Review-Url: https://codereview.chromium.org/2875773003 .
2017-05-10 18:16:51 -07:00
Erik Corry aa6353b6da Dart SDK Spelling b, c, and d.
R=kmillikin@google.com
BUG=

Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Stephen Adams 14c7c3c556 Redo "Refined types for most HtmlElement factory constructors"
Fix: ShadowElement is not always present.

Original:
Committed: https://github.com/dart-lang/sdk/commit/b7b12b564a3e1811ccfca3e28fe30dde685f6633
Reverted:  https://github.com/dart-lang/sdk/commit/963df1e3e1a3bac0013d191d2b02898bbebefa9d

BUG=

Review-Url: https://codereview.chromium.org/2718713003 .
2017-02-24 14:28:58 -08:00
Stephen Adams 963df1e3e1 Revert "Refined types for most HtmlElement factory constructors"
Need to fix ShadowElement

TBR=alanknight@google.com

Review-Url: https://codereview.chromium.org/2710323004 .
2017-02-24 14:15:37 -08:00
Stephen Adams b7b12b564a Refined types for most HtmlElement factory constructors
The body of new DivElement() is marked as returning a DivElement, instead of inferred to return Element.
The more precise receiver type allows svg polyfills to be excluded, allowsing the HtmlElement methods to be identified as the single target and inlined.

This tends to improve the code generated for idioms like

    new DivElement()..classes.add('foo')

    var e1 = new DivElement();
    e1.children.add(e2);

BUG=
R=alanknight@google.com

Review-Url: https://codereview.chromium.org/2705213003 .
2017-02-24 11:23:06 -08:00
Jacob Richman 36c9514f04 Use Point<num> in dart:html for strong mode
Strong mode is (as of recently) inferring a stricter type (e.g., Point<double>) and causing breaking changes.

patch from issue 2211493003 at patchset 1 (http://crrev.com/2211493003#ps1)

BUG=

Review URL: https://codereview.chromium.org/2211563002 .
2016-08-03 14:09:10 -07:00
Jacob Richman 7fdce7a2f0 Use _downcast and _cast instead of "as" to reduce dart2js output size.
BUG=
R=leafp@google.com

Review URL: https://codereview.chromium.org/1914583002 .
2016-04-22 11:09:01 -07:00
Jacob Richman 9ffe1c2450 Make querySelectorAll a generic method so that checked mode behavior is consistent with existing behavior and strong mode behavior is strong for the case of List<InputElement> elems = document.querySelector("input");
BUG=
R=leafp@google.com

Review URL: https://codereview.chromium.org/1904903003 .
2016-04-21 09:54:18 -07:00
Jacob Richman 777e1a386e Revert "Remove the generics from _FrozenElementList: causes checked mode failures"
This reverts commit 7824ac771b.

BUG=

Review URL: https://codereview.chromium.org/1909613003 .
2016-04-20 18:50:11 -07:00
Jacob Richman 864b64fd5e Strong html
BUG=
R=alanknight@google.com

Review URL: https://codereview.chromium.org/1894713002 .
2016-04-19 15:08:45 -07:00
Alan Knight 7824ac771b Remove the generics from _FrozenElementList: causes checked mode failures
BUG=
R=jacobr@google.com

Review URL: https://codereview.chromium.org/1891543005 .
2016-04-14 15:14:40 -07:00
Alan Knight a718c8dac9 Fix a few strong mode errors in dart:html
BUG=
R=jacobr@google.com

Committed: https://github.com/dart-lang/sdk/commit/65fe0a5383c7d09efb1dd958a7a30ec5c4d1c847

Review URL: https://codereview.chromium.org/1876363006 .
2016-04-13 15:13:31 -07:00
Alan Knight 3fd7e32b65 Revert "Fix a few strong mode errors in dart:html"
This reverts commit 65fe0a5383.

BUG=

Review URL: https://codereview.chromium.org/1879253004 .
2016-04-13 14:56:42 -07:00
Alan Knight 65fe0a5383 Fix a few strong mode errors in dart:html
BUG=
R=jacobr@google.com

Review URL: https://codereview.chromium.org/1876363006 .
2016-04-13 14:41:10 -07:00
Jacob Richman c65854d2e4 Optimize dartium dart:html bindings so real world application performance is acceptable. Improves dart:html performance by 2X-30X for microbenchmarks. Real world improvement is typically 2X-3X.
BUG=

Review URL: https://codereview.chromium.org/1832713002 .
2016-03-29 18:32:52 -07:00