Commit graph

1,373 commits

Author SHA1 Message Date
Gaming4JC
e8e20e994d Bug 1276438 part 3. Align the .body setter with the spec a bit better.
There are two changes here:

1) We allow setting .body even if the root element is not an <html:html>. This is what the spec says to do, and what we used to do before the changes in bug
366200. No tests for this yet, pending https://github.com/whatwg/html/issues/3403 getting resolved.

2) We use GetBody(), not GetBodyElement(), to look for an existing thing to replace. This matters if there are <frameset>s involved.

Tag UXP Issue #1344
Tag UXP Issue #252
2020-01-31 07:34:59 +08:00
Gaming4JC
c939244e89 Bug 1276438 part 2. Move the implementation of the .body setter from nsHTMLDocument to nsIDocument.
Tag UXP Issue #1344
Tag UXP Issue #252
2020-01-31 07:34:56 +08:00
Gaming4JC
0ef352d74b Bug 1276438 part 1. Move the implementation of the .body getter from nsHTMLDocument to nsIDocument.
Tag UXP Issue #1344
Tag UXP Issue #252
2020-01-31 07:34:53 +08:00
wolfbeast
b33c6e6dbf Issue #1366 - Fix build bustage from erroneously removing 2 function implementations. 2020-01-24 09:36:26 +08:00
wolfbeast
9d76eb5791 Issue #1354 - Clear the current context when MakeCurrent() fails. 2020-01-24 09:29:04 +08:00
Gaming4JC
8d600c51ed Issue #1366 - Completely remove showModalDialog 2020-01-24 09:28:42 +08:00
wolfbeast
173637496c No issue - Fix some line endings in WebGLShaderValidator.cpp 2020-01-17 09:19:03 +08:00
wolfbeast
9f7f1d457f Issue #1354 - Don't allow glsl[130,400] unless we have gpu_shader5
- Teach GLContext about gpu_shader5
- Downgrade shader language version if gpu_shader5 support isn't found.
2020-01-17 09:19:01 +08:00
Yaron Tausky
a0c6c89208 Make copy of list before iterating over it. 2020-01-10 17:07:00 +08:00
Gaming4JC
8b32eff646 Bug 1379728 part 1. Remove the double-definition of the 'close' event from EventNameList.h.
Tag #1343
2020-01-09 21:28:04 +08:00
Gaming4JC
a77fa3ec13 Bug 1322938 - Put <dialog> element behind preference.
Tag #1343
2020-01-09 21:28:00 +08:00
Gaming4JC
c39b0e4fd7 Bug 1322938 - Emit close event when HTMLDialogElement.prototype.close() is called.
Tag #1343
2020-01-09 21:27:56 +08:00
Gaming4JC
900df90dae Bug 1322938 - Basic implementation of HTMLDialogElement.
Tag #1343
2020-01-09 21:27:54 +08:00
wolfbeast
9d2e51ac97 Issue #1348 - Part 2: Teach IMEState about Private Browsing mode. 2020-01-09 21:26:56 +08:00
JustOff
13aff00f59 Issue #1345 - Implement non-standard legacy CSSStyleSheet rules 2020-01-09 21:23:47 +08:00
wolfbeast
4103320dde Issue #1118 - Part 9: Don't allow reuse of unlinked CallbackObjectHolder. 2019-12-28 21:20:08 +08:00
wolfbeast
f255a1e606 Issue #1118 - Part 8: Remove no-longer-used mDidDocumentOpen and
CheckForOutdatedParent()

This was only used to check for cases when document.open() changed the
global, and elements being inserted into the document needing a new
reflector as a result.

Since document.open() no longer changes the global, this code is no
longer needed.
2019-12-28 21:20:07 +08:00
wolfbeast
10e59cb5a9 Issue #1118 - Part 7: Remove no-longer-used mWillReparent debug code. 2019-12-28 21:20:06 +08:00
wolfbeast
b753aec164 Issue #1118 - Part 6: Fix various tests that are no longer correct.
The behavior change of document.open() requires these tests to be
changed to account for the new spec behavior.
2019-12-28 21:20:04 +08:00
wolfbeast
fc5d61608c Issue #1118 - Part 5: Change the way document.open() works
This changes the work we do for document.open() in the following ways:
- We no longer create a new Window when doing document.open().
  We use the same Window but remove all the event listeners on the
  existing DOM tree and Window before removing the document's existing
  children to provide a clean slate document to use for .write().
- We no longer create a session history entry (previously would be a
  wyciwyg URI). We now replace the current one, effectively losing the
  entry for the original document.
- We now support document.open() on windowless documents.
2019-12-28 21:20:03 +08:00
wolfbeast
08c26a9adf Issue #1118 Part 3: Add a public RemoveAllListeners method on
EventListenerManager.
2019-12-28 21:19:46 +08:00
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