Commit graph

1,373 commits

Author SHA1 Message Date
Jon Coppeard
75f3f09fc6 Issue #618 - Don't mute errors for module scripts because they always use CORS 2020-08-29 08:10:17 +08:00
Moonchild
684f4824da Issue #618: Pass down referrer and referrer policy when fetching modules.
Because the spec says so.
2020-08-29 08:09:41 +08:00
Moonchild
97617a3ab1 Issue #618: Ignore 'event' and 'for' attributes for module scripts.
Because the spec says so.
2020-08-29 08:09:38 +08:00
Moonchild
34db761758 Issue #618 - Simplify module resolve hook to be a function pointer
This is an ahead-of time port to try and address #1624.
This is based on BZ 1461751 and Jon Coppeard's work in it.
2020-08-29 08:08:41 +08:00
Gaming4JC
6639e9cdac Issue #618 - Keep track of which modules in a graph have been fetched using a visited set
Ref: BZ 1365187
2020-08-29 08:08:23 +08:00
Gaming4JC
f0d6e293a3 Issue #618 - Simplify module map interface
Ref: BZ 1365187
2020-08-29 08:08:19 +08:00
Jon Coppeard
40017437ab Issue #618 - Record module dependency before starting fetch so that error
handling works correctly

Ref BZ 1395896
2020-08-29 08:07:10 +08:00
Moonchild
0d874713ef Issue #618 - Align error handling for module scripts with the spec (again)
This updates module implementation to match spec regarding handling of
instantiation errors, after it was changed yet again, this time to not remember
instantiation errors, but instead immediately rethrow applicable ones.

Ref: BZ 1420420
2020-08-29 08:07:00 +08:00
Moonchild
933fb54415 Issue #618 - Fix error events fired when loading JS module dependencies fail
When module dependencies fail, don't spam with errors for each import; only fire
the error event once.

Ref: BZ 1421259
2020-08-29 08:06:57 +08:00
Matt A. Tobin
fedaa41f44 Follow up to eb28b1f32 - Correct inputmethod build file by putting Keyboard.jsm back in EXTRA_JS_MODULES
JSMs are NOT Components.
2020-08-21 15:08:13 +08:00
athenian200
c1b3280e01 Fix nits 2020-08-19 16:21:24 +08:00
athenian200
42d14af9a3 Issue #1629 - Part 3: Implement behind preference.
This is not very "clean," and is mostly done in the same sloppy way as Emilio did it because that's basically the only way you can do it. Note well that this does NOT actually turn off everything I've done in a clean fashion like ifdefs would. For instance, the Explicitly Enabled flag is still present, but is now always false because the only condition that can set it true is behind the pref and therefore inert when this pref is off. Also, because the arguments of SetDisabled have changed, my modifications to SetMozDisabled must be present regardless of whether the pref is on or off. What I have done is turn off the actual reflection of the disabled attribute in Disabled and SetDisabled, as well as in AfterSetAttr.

However, turning the pref off seems to restore more or less our old behavior, though there may be subtle differences unlike with an ifdef since this is, unfortunately, not an exact science and I can only turn off changes that happen within individual functions and not changes in how functions interact with each other.
2020-08-19 16:21:22 +08:00
athenian200
6835425e20 Issue #1629 - Part 2: Implement the Explicitly Enabled flag.
This part of the bug was significantly complicated by the following major refactors:

https://bugzilla.mozilla.org/show_bug.cgi?id=1456435
https://bugzilla.mozilla.org/show_bug.cgi?id=1459498

As best as I can tell, we just need to implement the explicitly enabled
flag on every instance of GetStyleSheetInfo, make sure
aIsExplicitlyEnabled is false in every situation except the one where
the disabled content attribute is removed from a link element, and
enable alternate stylesheets if this flag is set on them. So we take the
explicitly enabled flag as an input to PrepareSheet, and also add it to
LoadStyleLink and LoadInlineStyle. I also decided not to defer loading of
alternate stylesheets that have been explicitly enabled.
2020-08-19 16:21:19 +08:00
athenian200
4e15e4c252 Issue #1629 - Part 1: Implement basic logic in HTMLLinkElement.
So basically, I'm trying to adapt this to UXP:

https://bugzilla.mozilla.org/show_bug.cgi?id=1281135

The earliest source of difficulty while adapting Bug 1281135 to our codebase was simply getting the new ErrorResult flag added to the SetDisabled function to play nice with the SetMozDisabled function. At this point, the implementation can actually have a stylesheet be disabled by default but there are supposedly issues with alternate stylesheets.

At first I played around with the return type of SetMozDisabled to no avail, but I found another solution fairly quickly.

https://bugzilla.mozilla.org/show_bug.cgi?id=846972
https://bugzilla.mozilla.org/show_bug.cgi?id=1157898

Essentially, the way around the problem of the number of return arguments not matching up is to declare a local variable within SetMozDisabled called ErrorResult rv, and using that to store the return value of the ErrorResult argument from SetDisabled. After that, because ErrorCode was removed, you would return rv.StealNSResult() in order to report success or failure to any consumer that calls on SetMozDisabled.
2020-08-19 16:21:17 +08:00
Andy
9f48a59946 Issue #1620 - Enable Intrinsic Ratio by Default
A simpler name feels so much cleaner.
2020-08-14 08:59:37 +08:00
Andy
c02e424911 Issue #1620 - Remove Development Comments 2020-08-14 08:59:35 +08:00
Andy
be1f68f39e Issue #1620 - Use Intrinsic Aspect Ratio for Images
https://bugzilla.mozilla.org/show_bug.cgi?id=1547231
https://bugzilla.mozilla.org/show_bug.cgi?id=1559094
https://bugzilla.mozilla.org/show_bug.cgi?id=1633434
https://bugzilla.mozilla.org/show_bug.cgi?id=1565690
https://bugzilla.mozilla.org/show_bug.cgi?id=1602047

Make use of Aspect Ratios in Image frames before Images are loaded.
- Check for width and height HTML properties and create a ratio with them.
- Overwrite HTML size values with actual image dimensions on load.
- Collapse any frames with srcless images.

Comments:
dom/html/nsGenericHTMLElement.cpp:1483
layout/generic/nsImageFrame.cpp:289
2020-08-14 08:59:33 +08:00
Moonchild
26990a1d74 Pref and disable getRootNode()
This is apparently used for fallback selection and if available it is "assumed"
Shadow DOM is also available, while this is a utility function.

Webcompat is a nightmare sometimes.
2020-08-08 06:56:50 +08:00
Moonchild
9dc4265141 [dom] Fix a spec compliance issue with the HTML LS regarding script loading.
This fixes a spec compliance issue with section 8.1.4.2 Fetching scripts.
2020-07-31 08:08:01 +08:00
Moonchild
52c03190ee [network/dom] Improve sanitization of download filenames. 2020-07-31 08:07:47 +08:00
Moonchild
b33e80b186 Issue #1391 - Remove the DOM battery API 2020-07-31 08:07:41 +08:00
Moonchild
078fea47aa Fix line endings. 2020-07-31 08:05:47 +08:00
Moonchild
70bf74e9d3 Issue #1587 Part 12 (followup 2): Allow clearing of signal by setting to null. 2020-07-31 08:05:44 +08:00
Moonchild
1ae6431766 Issue #1587 Part 11 (followup 1): Implement multithreaded signals for workers. 2020-07-31 08:05:40 +08:00
Gaming4JC
d081fe1bc6 Issue #618 - Remove eager instantiation - Debug follow up
The added debug assertion did not take into account microtask refactoring done in BZ 1405821.
Resulting in error: no member named 'IsInMicroTask' in 'nsContentUtils'.

This resolves the error.
2020-07-20 09:38:43 +08:00
Moonchild
e0ab4f9abf Issue #618 - Slightly improve module scripting tests.
Ref: BZ 1388728
2020-07-10 22:18:07 +08:00
Moonchild
743bdc04fb Issue #618 - Further align error handling for module scripts with the spec
Ref: BZ 1388728
2020-07-10 22:18:04 +08:00
Moonchild
a754a7be26 Issue #618 - Remove eager instantiation
This backs out the stuff added in Bug 1295978.
Ref: BZ 1295978, 1388728
2020-07-10 22:17:58 +08:00
Moonchild
91a79c0ddc Issue #618 - Match JSAPI names with the changes in 9ca74147225eed305e28c7887f9b2251aeeb0f36
Ref: BZ 1388728
2020-07-10 22:17:52 +08:00
Moonchild
336347212b Issue #618 - Add clarifying code comments. 2020-07-10 22:17:38 +08:00
Moonchild
27f4d0b5a5 Issue #618 - Check for failed instantiation when starting to fetch dependencies
If instantiation has failed, then also fail the load and don't fetch imports.
Ref BZ: 1358882
2020-07-10 22:17:34 +08:00
Moonchild
c04b682a88 Issue #1603 - Part 2: Split some classes out of ScriptLoader.cpp
This splits ScriptLoader up the same way Mozilla did with the exception of
ScriptRequest due to the fact that ScriptLoader and ScriptRequest are
interdependent and would create a circular dependency if split apart when not
using unified building.
2020-07-04 07:01:03 +08:00
Moonchild
f85b274e94 Issue #1603 - Part 1: Reorganize ScriptLoader/ScriptElement
- Moves scripting parts of DOM into 'dom/script'
- Renames nsScript{Loader/Element} to Script{Loader/Element}
- Adjusts all callers
2020-07-04 07:01:00 +08:00
wolfbeast
179fd7df8a Issue #1602 - Make sure we have a JSObject before trying to get global.
Dynamic script loading/unloading (thank you modules) can yank the script
out from under us before the JS API for it is initialized, leading to
null deref crashes.
This adds a simple check if the passed-in object is sane and present.
Resolves #1602
2020-07-04 07:00:57 +08:00
Matt A. Tobin
90e9fd3550 Bug 1430299 - Add DocumentOrShadowRoot interface
Tag #1375
2020-06-20 06:43:51 +08:00
Matt A. Tobin
693a79ca08 Bug 1429656 - Implement ShadowRoot.activeElement
Tag #1375
2020-06-20 06:43:49 +08:00
Matt A. Tobin
db72493615 Bug 1426494 - Share more code between nsIDocument and ShadowRoot
Tag #1375
2020-06-20 06:43:47 +08:00
Matt A. Tobin
15f6d2efda Bug 1355787 - nsIdentifierMapEntry should let one to use either strings or atoms as keys to avoid slow string assignments when possible.
Tag #1375
2020-06-20 06:43:45 +08:00
Matt A. Tobin
c21eecd1b3 Bug 1217436 - Make nsIdentifierMapEntry::mIdContentList an AutoTArray to save an allocation
Tag #1375
2020-06-20 06:43:43 +08:00
Moonchild
3d396386dc Issue #1587 - Part 9: Immediately reject an already-aborted signal 2020-06-12 22:12:37 +08:00
Moonchild
8ac3ccd67a Issue #1587 - Part 8: Remove controller follow/unfollow
Since it didn't end up being in the final spec after all.
2020-06-12 22:12:34 +08:00
Moonchild
b988c351ff Issue #1587 - Part 7: Rename FetchController to AbortController
Also renames FetchSignal to AbortSignal. Includes renaming the various
controlling prefs to enable.
2020-06-12 22:12:32 +08:00
Moonchild
0c2404efa7 Issue #1587 - Part 6: Move FetchController/Signal to its own dir
Since it is specced separately from fetch.
2020-06-12 22:12:29 +08:00
Moonchild
3d2ca85edd Issue #1587 - Part 5: Hook FetchObserver up to the Fetch API 2020-06-12 22:12:27 +08:00
Moonchild
6722d7f4b4 Issue #1587 - Part 4: Implement FetchObserver 2020-06-12 22:12:25 +08:00
Moonchild
78ff97aaf3 Issue #1587 - Part 3: Hook FetchSignal up to the Fetch API 2020-06-12 22:12:23 +08:00
Moonchild
7207793622 Issue #1587 - Part 2: Implement controller follow/unfollow 2020-06-12 22:12:20 +08:00
Moonchild
24087592ad Issue #1587 - Part 1: Implement FetchController/FetchSignal interface 2020-06-12 22:12:18 +08:00
Gaming4JC
21f87c85ec Issue #439 - Debug follow up to remove no longer existing headers
Although the headers were removed, they are still referenced in WebIDL causing compiler to fail for debug builds.
This removes TestFunctions.webidl and TestInterfaceJSMaplikeSetlikeIterable.webidl, with nit fix for existing incorrect whitespace.
2020-06-12 22:11:56 +08:00
Moonchild
7900742344 Issue #1585 - Replace node.rootNode with node.getRootNode()
This removes the (default disabled) node.rootNode readonly attribute
and replaces it with a node.getRootNode() function per WhatWG
spec discussion.
Based on work by John Dai <jdai@mozilla.com>
2020-06-10 21:00:36 +08:00