Commit graph

502 commits

Author SHA1 Message Date
athenian200
42659b995e Fix typo. 2019-12-28 21:19:27 +08:00
athenian200
a7054c85a4 Issue #1332 - Backport promise-based media playback
https://bugzilla.mozilla.org/show_bug.cgi?id=1244768

I happened to find an older version of the promise-based media playback patch in Bugzilla, the one that was originally submitted for review. It had the DocShell changes I already knew how to deal with, and had fewer of the audio wrapper and nsISupports changes that were confusing me in the later patch. I was able to do a better job getting this back into a UXP-appropriate configuration than I could have with the final version.

I'm honestly still a little unsure about some of the minor refactoring done in the patch itself, insisting on already_AddRefed promises and such, but I don't really know how to avoid those completely. Still, I think it's better than it was.
2019-12-28 21:19:26 +08:00
wolfbeast
72b9aaa248 Issue #1219 - Align computed DOM styles with mainstream behvior.
This updates our behavior for computed DOM styling to no longer return
null on elements that have no display, but return a 0-length (empty)
style instead and don't throw. For this we stop looking at having a
presentation for the style and just look at the document instead.

This resolves #1219
2019-12-21 07:12:56 +08:00
wolfbeast
d3e44892bf Issue #1322 - Part 4: Fix WebIDL.py parser for line endings and wrong
IDL name
2019-12-20 09:07:28 +08:00
wolfbeast
15672c6231 Issue #1322 - Part 3: Remove DOM promise interface gunk
Based on work by Boris Zbarsky
2019-12-20 09:07:27 +08:00
wolfbeast
40f99b202a Issue #1322 - Part 1: Remove the DOM Promise guts.
This removes all the parts guarded by SPIDERMONKEY_PROMISE
2019-12-20 09:07:24 +08:00
wolfbeast
d4b247abb3 Add missing call to WaitForIsDebuggerRegistered 2019-12-07 06:55:12 +08:00
wolfbeast
5a102074d1 Fix incorrect values for saving ordered lists as text. 2019-12-06 22:46:48 +08:00
wolfbeast
39cc10dde8 Update identifier map entries and notify if they get removed.
This can happen through DestroyElementMaps()
Based on work by Markus Stange and Edgar Chen.
2019-12-06 22:46:47 +08:00
David Parks
db34f0e7be Properly detect failure in receiving plugin NPObjects.
Properly handles NPError reporting and makes sure that, in the case of
failure, it does not return junk for the NPObject.
2019-12-06 22:46:42 +08:00
Roy Tam
d8c66d5b56 fix master branch build 2019-11-30 21:02:50 +08:00
Matt A. Tobin
37c5f72be6 Issue #1304 - Make the second arg of insertRule optional 2019-11-29 11:36:43 +08:00
wolfbeast
afa716fcd3 Add crashtest for resolved bug 1558522. 2019-11-28 10:32:35 +08:00
JustOff
e50e93cd7f Issue #1259 - Adjust Widewine strings after removing Adobe Primetime support 2019-11-22 10:48:13 +08:00
wolfbeast
10b2e09718 Bug 1330900 - Implement <script nomodule>
This patch implements:
- noModule getter/setter for HTMLScriptElement
- the nomodule attribute for HTMLScriptElement
- the logic in nsScriptLoader that denies the loading of a nomodule script
- tests

Tag #618
2019-11-11 21:59:49 +08:00
wolfbeast
289343a51d Bug 1340865 - Handle non-parser-created module scripts. 2019-11-11 21:59:46 +08:00
janekptacijarabaci
556510df8f Bug 1330682 - Use CORS when loading modules as per current spec 2019-11-11 21:55:03 +08:00
janekptacijarabaci
408d61b4f0 Bug 1330657 - Enable <script type="module"> behind a pref 2019-11-11 21:54:58 +08:00
wolfbeast
3bfa0a4c34 Issue #1263 - Part 2: Remove DiskSpaceWatcher tests 2019-11-08 20:23:35 +08:00
wolfbeast
92b01bf08a Issue #1263 - Part 1: Remove DiskSpaceWatcher 2019-11-08 20:23:33 +08:00
athenian200
45bf760ac5 MoonchildProductions#1251 - Part 27: Fix ifdef style.
This should do it for all the commits to files I changed, but while I'm in here I could probably go ahead and turn ALL the singular if defined statements into ifdef statements by using grep/find on the tree. On the other hand, perhaps we should do that as a separate issue so that this doesn't become a case of scope creep.
2019-11-04 11:54:07 +08:00
athenian200
1041e13cfb MoonchildProductions#1251 - Part 21: Fix Flash player and some extensions being incompatible.
82dd4adb0e/components/desktop/firefox/patches/firefox-49-npapi.patch

The first fix was something I found on Oracle's patchset and allowed me to use the last Flash Player compiled for Solaris, from all the way back in 2012. Still works with most Flash content.

The second is an evolution of what I had to do to get Interlink to compile. For Interlink, I basically had to copy the contents of any boolean values from confvars.sh into the empty moz.configure file, otherwise nothing would get configured. I decided to test whether Pale Moon had the same issue, and it turned out that it wasn't as bad as on Interlink, but it was still pure luck that the browser component built at all, because MOZ_PHOENIX and other important flags were apparently not being defined at all, hence why I couldn't get half the extensions to be compatible at first.

I don't know why this is the case, but apparently configure.in isn't able to import values from confvars.sh. old-configure.in seems immune to the problem that application-specific configure.in files were experiencing, though. confvars.sh itself seems to work fine with values that aren't passed along via configure.in, though. So it's the interface between those two files that is messed up.
2019-11-04 11:53:59 +08:00
athenian200
cbf60a2058 Fix a bunch of dumb typos and omissions. 2019-11-04 11:53:57 +08:00
athenian200
afb2e3a054 MoonchildProductions#1251 - Part 4: Core build system changes, lots of libevent/IPC junk.
This is mostly ifdefs, but as you can see, Solaris is actually a lot like Linux. They're both more SysV than BSD at core, and most of the differences have more to do with Solaris not using glibc than anything else.

I still need to audit a lot of these changes and understand why they're needed and what the alternative approaches are. After this patch, most of the core functionality needed to build Solaris is here.
2019-11-04 11:52:17 +08:00
athenian200
6de8a0f12d MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up.
Compared with what Pale Moon had for Solaris originally, this is mostly the same zero point I started patching from, but I've made the following changes here after reviewing all this initial code I never looked at closely before.

1. In package-manifest.in for both Basilisk and Pale Moon, I've made the SPARC code for libfreebl not interefere with the x86 code, use the proper build flags, and also updated it to allow a SPARC64 build which is more likely to be used than the 32-bit SPARC code we had there.

2. See Mozilla bug #832272 and the old rules.mk patch from around Firefox 30 in oracle/solaris-userland. I believe they screwed up NSINSTALL on Solaris when they were trying to streamline the NSS buildsystem, because they started having unexplained issues with it around that time after Firefox 22 that they never properly resolved until Mozilla began building NSS with gyp files. I'm actually not even sure how relevant the thing they broke actually is to Solaris at this point, bug 665509 is so old it predates Firefox itself and goes back to the Mozilla suite days. I believe $(INSTALL) -t was wrong, and they meant $(NSINSTALL) -t because that makes more sense and is closer to what was there originally. It's what they have for WINNT, and it's possible a fix more like that could serve for Solaris as well. Alternatively, we could get rid of all these half-broken Makefiles and start building NSS with gyp files like Mozilla did.

3. I've completely cut out support for the Sun compiler and taken into account the reality that everyone builds Firefox (and therefore its forks) with GCC now on Solaris. This alone helped clean up a lot of the uglier parts of the code.

4. I've updated all remaining SOLARIS build flags to the newer XP_SOLARIS, because the SOLARIS flag is no longer set when building Solaris.

5. I've confirmed the workaround in gtxFontconfigFonts.cpp is no longer necessary. The Solaris people got impatient about implementing a half-baked patch for a fontconfig feature that wasn't ready yet back in 2009, and somehow convinced Mozilla to patch their software to work around it when really they should have just fixed or removed their broken fontconfig patch. The feature they wanted has since been implemented properly, and no version of Solaris still uses the broken patch that required this fix. If anyone had ever properly audited this code, it would have been removed a long time ago.
2019-11-04 11:52:13 +08:00
wolfbeast
3d8d9f95df Issue #1257 - Part 3: Remove/update tests.
This removes a ton of tests that are no longer relevant with (un)watch
removed (e.g. testing stability/bugs in the watchpoint system itself
which has never been the most stable), and updates others that would
previously rely on watch/unwatch, so that they don't unexpectedly fail.
2019-11-01 10:25:02 +08:00
wolfbeast
3b9fbdc71d Issue #1257 - Part1: Remove watch class-hook and proxy trap. 2019-11-01 10:24:07 +08:00
wolfbeast
0771bbb58c Add size checks to WebGLContext::BufferData()
On MacOS, particularly large allocations within the platform limits
(1.2G+) will fail and crash. This adds a specific size check for that
when working around driver bugs (default).
While there, added a generic size_t limited size check for the
platform, and reporting OOM if too large.
2019-10-25 12:00:30 +08:00
Simon Giesecke
8b52506007 Ensure that file actors created after the database was closed are expired. 2019-10-25 12:00:19 +08:00
wolfbeast
21f7feb805 Avoid following the prototype chain
No longer follow the value's prototype chain when creating index updates
in IndexedDB.
2019-10-25 12:00:16 +08:00
wolfbeast
d21dc0f76a Issue #1253 - Reset performance object on navigation
This also addresses clearing of document dependent JS slots which might
get out of sync with innerWindow navigation; relevant comments added.

This resolves #1253
2019-10-25 12:00:08 +08:00
Gaming4JC
1f9d16132b Issue #1233 - Part 2: Update Reftests
List of relevant patches applied:

1425599 part 15 - [css-grid] Test reference fixes + more tests.

1373678 Part 3: Add line number checks to test_grid_implicit.html.

1416350 - Part 3: Add test to verify line numbers of grids with leading implicit tracks.

1416350 - Part 4: Add a reftest of repeat:auto-fit grids with leading implicit tracks.

1417711 - [css-grid] An abs.pos. grid container child that only covers removed 'auto-fit' tracks should not span to the end padding edge.

1416350 - Part 5: Correct the expected results for grids that have leading implicit tracks.

1418727 part 3 - [css-grid] Reftest updates.
2019-10-05 07:22:08 +08:00
Gaming4JC
f22ad944b7 Issue #1233 - Part 1: Fix grid overflow and rendering issues by improving Layout CSS-Grid API
List of relevant patches applied:

1425599 part 1 - [css-grid] Change the track sizing algorithm for spanning items so that it accumulates individual item contributions to the plan by max() rather than incrementing the planned size directly.

Also, fix a bug when copying back the planned limits after updating it for the first span group. It should only copy back track sizes that were actaully spanned by those items, other content-sized tracks' limits should remain at "infinity".

1425599 part 2 - [css-grid] Factor out the min-sizing parts of the track sizing for spanned items to a templated method (idempotent change).

1425599 part 3 - [css-grid] Factor out most of the max-sizing parts of the track sizing for spanned items to a templated method (idempotent change).

1425599 part 4 - [css-grid] Factor out the starting base/limit size to a templated method (idempotent change).

1425599 part 5 - [css-grid] Make CollectGrowable a templated method so that it works with either base/limit sizes (idempotent change).

1425599 part 6 - [css-grid] Make the size distribution methods templated with the intent of merging them in a later patch (idempotent change).

This patch also introduces an eInfinitelyGrowable bit to help get rid of the 'limits' temporary track sizes in the next patch.

1425599 part 7 - [css-grid] Remove the 'limits' copy of track sizes since they are no longer needed (idempotent change).

1425599 part 8 - [css-grid] Factor out the fit-content clamping function from DistributeToTrackLimits and pass it as a param instead (idempotent change).

1425599 part 9 - [css-grid] Merge DistributeToTrackLimits/Bases (idempotent change).

1425599 part 10 - [css-grid] Make MarkExcludedTracks a static method since it doesn't use 'this' (idempotent change).

1425599 part 11 - [css-grid] Hoist the marking of excluded tracks out from GrowSelectedTracksUnlimited to a separate method (idempotent change).

1425599 part 12 - [css-grid] Merge CopyPlanToBase/Limits into a templated method instead (idempotent change).

1425599 part 13 - [css-grid] Merge Grow[Base|Limits]ForSpanningItems into a templated method instead (idempotent change).

1425599 part 14 - [css-grid] Use iterators instead of an array + start/end index for the item data (idempotent change).

1425599 part 16 - [css-grid] Make SizeContributionForPhase a template.

1425599 - [css-grid] Follow-up bustage fix for stupid compiler warnings.

1378481 - Assign 'roundingError' in the default branch too, to avoid a maybe-uninitialized compiler warning.

1423292 - [css-grid] Add a couple of ItemState bits to Dump(), and make an ItemState assertion stricter (DEBUG-only changes).

1373678 Part 1: Reduce grid line numbers by count of leading implicit lines, minimum 0.

1416350 - Part 1: Correctly account for removed 'auto-fit' tracks also when there are leading implicit tracks.

1416350 - Part 2: Correct logic for Grid API line numbering with leading implicit tracks.

1418727 part 1 - [css-grid] Introduce StateBitsForRange() that collects the union of the state bits for a range of tracks (idempotent change).

1418727 part 2 - [css-grid] Require that an item spans at least one track with an 'auto' min sizing function for Automatic Minimum Size to apply.
2019-10-05 07:22:06 +08:00
wolfbeast
c2fafd67b0 Fix whitelisting of JavaScript-uris by CSP hash. 2019-09-06 23:50:03 +08:00
Olli Pettay
ec1e15a6f2 Ensure the right body element is used throughout the method call. 2019-09-06 23:49:56 +08:00
Sebastian Streich
3f25eeefaf Add checks to respect CSP-wildcard + Ports. 2019-09-06 23:49:53 +08:00
wolfbeast
cfc50f18c4 Fix a crash in IndexedDB. 2019-09-06 23:49:51 +08:00
wolfbeast
b3b78fea06 Issue #1222: Don't load plugin instances when they have no src URI.
Favor fallback content in that case (if present). Fallback is always
considered "good" in this case so may end up doing nothing which is what
we'd want for corner cases that hammer this routine with no content.
2019-09-06 23:48:49 +08:00
wolfbeast
19a7a8f535 Issue #1179: fix indentation 2019-09-06 23:48:44 +08:00
wolfbeast
f34f8ca034 Issue #1221: Pass the original element into
nsXMLContentSerializer::CheckElementEnd so that we can properly
determine whether it has children.

This resolves #1221
2019-08-30 13:37:37 +08:00
win7-7
e6f376f5ef Convert dom/base/nsImageLoadingContent.cpp to use AsyncOpen2 and followups along with it (1445670 and 1373780 part 2 and 3)
Convert dom/base/nsImageLoadingContent.cpp to use AsyncOpen2 and followups along with it (1445670 and 1373780 part 2 and 3)
2019-08-10 06:26:08 +08:00
Gaming4JC
624a2f1b61 1283712 - Part 8: Add WorkerErrorBase, WorkerErrorNote, and WorkerErrorReport. 2019-07-22 19:50:22 +08:00
Gaming4JC
fffabb3de4 1283712 - Part 7: Add nsIScriptErrorNote and nsIScriptError.notes. 2019-07-22 19:50:19 +08:00
Gaming4JC
19854690b7 1332245 - Move nsScriptError from js/xpconnect to dom/bindings. 2019-07-22 19:50:13 +08:00
Gaming4JC
317605333c 1320408 - Part 22: Remove JSContext* parameter from ProxyObject::renew and Wrapper::Renew. 2019-07-22 19:48:52 +08:00
Gaming4JC
1af9026a89 1333045 - Update Location object properties to current spec.
Specifically, three changes:
1) valueOf should be non-enumerable.
2) valueOf should be === to Object.prototype.valueOf.
3) There should be no toJSON.
2019-07-22 19:47:15 +08:00
wolfbeast
08ccf18274 Use WeakPtr for extension parent pointer. 2019-07-22 19:45:24 +08:00
Kyle Machulis
b2512d610b Don't allow cross-origin POST redirects on 308 codes.
We already don't allow cross origin POST redirects on 307 redirects;
this adds extra guards to make sure we don't allow them on 308s either.
2019-07-22 19:45:11 +08:00
wolfbeast
537197dfdc Truncate Buffer/Texture on GL_OOM. 2019-07-20 06:25:26 +08:00
wolfbeast
4ad12f3588 Get RefPtr for IDBOpenDBRequest before using it. (DiD) 2019-07-20 06:25:23 +08:00