Commit Graph

73 Commits

Author SHA1 Message Date
Tom Schuster
a7887ce4fb Bug 1595046 - Make it possible to inspect every exception value in the web console. r=jonco,baku,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D64437
2020-05-08 20:54:17 +00:00
Dorel Luca
c5e566a917 Backed out changeset 4107b758e7ae (bug 1501608) as requested by dev 2020-05-02 15:03:19 +03:00
Denis Palmeiro
07b0c9ed4e Bug 1501608 - Remove the ELEMENT_SLOT in the ScriptSourceObject and instead use a callback function to return the script element based on the value of the privateValue in the SSO. r=jonco,smaug
We can reduce the size of the SSO by removing the element slot entirely, and instead retrieve the element through a callback function.  The callback will take in the value in the private slot of the SSO, which is either a LoadedScript* (from the browser) or a JSObject* (from the shell).  In addition, this removes the requirement of having a script dom element ready when parsing a JS script which can open up new opportunities for performance.

Differential Revision: https://phabricator.services.mozilla.com/D70417
2020-04-30 16:21:23 +00:00
Karl Tomlinson
c9beb32780 Bug 1628842 give up on reporting off-main-thread exceptions when global creation fails r=baku
and there is no fallback global available.

I assume there is little value in attempting to create another global if a
previous attempt failed.

Differential Revision: https://phabricator.services.mozilla.com/D71152
2020-04-17 04:10:43 +00:00
Tom Schuster
8b0d3f4de1 Bug 1626100 - Replace SetPendingExceptionAndStack with a ExceptionStack version. r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D69667
2020-04-09 12:35:59 +00:00
Tom Schuster
dc77ca452f Bug 1626100 - Use ExceptionStack for AutoJSAPI::StealExceptionAndStack. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D69666
2020-04-09 12:35:42 +00:00
Tom Schuster
dcc2de6895 Bug 1626100 - Introduce an ExceptionStack class and StealPendingExceptionStack. r=sfink,mccr8
See also the bug for a more detailed description.

Differential Revision: https://phabricator.services.mozilla.com/D69636
2020-04-09 12:35:29 +00:00
Tom Schuster
c91c8178d8 Bug 1623226 - Pass exception stack from AutoJSAPI::ReportException. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D67791
2020-03-31 01:19:31 +00:00
Dorel Luca
a5e09b0f3a Backed out 3 changesets (bug 1623226) for Devtools failures in browser/browser_webconsole_stubs_page_error.js. CLOSED TREE
Backed out changeset 312da02ea6d6 (bug 1623226)
Backed out changeset 798079ba88f7 (bug 1623226)
Backed out changeset 83f0b1c5399c (bug 1623226)
2020-03-31 04:16:44 +03:00
Tom Schuster
2085ab38c6 Bug 1623226 - Pass exception stack from AutoJSAPI::ReportException. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D67791
2020-03-30 22:45:14 +00:00
Bas Schouten
55dc9e2acd Bug 1563335 - Part 1: Implement mechanism to throttle JS execution. r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D59321
2020-03-26 00:36:24 +00:00
Tom Schuster
8089e507cf Bug 1622562 - Remove JSREPORT_IS_WARNING everywhere. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D67029
2020-03-21 20:14:13 +00:00
Mihai Alexandru Michis
5633a545f2 Backed out 4 changesets (bug 1622562) for causing wpt failures.
CLOSED TREE

Backed out changeset 1ab69d63949b (bug 1622562)
Backed out changeset a5c299f23df7 (bug 1622562)
Backed out changeset 233b80b283fb (bug 1622562)
Backed out changeset e76f213e7f04 (bug 1622562)
2020-03-20 20:56:58 +02:00
Tom Schuster
57b1d15589 Bug 1622562 - Remove JSREPORT_IS_WARNING everywhere. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D67029
2020-03-20 17:24:28 +00:00
Simon Giesecke
8b9bcb9369 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/script. r=smaug
Depends on D66027

Differential Revision: https://phabricator.services.mozilla.com/D66028
2020-03-09 15:04:35 +00:00
Boris Zbarsky
2df1df0176 Bug 1517588. Use nsIPrincipal::IsSystemPrincipal instead of nsContentUtils::IsSystemPrincipal r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D53067
2019-12-05 04:44:32 +00:00
Boris Zbarsky
66d0320937 Bug 1589309. Pass XPCOM strings, not buffer pointers, to notifyJSRunToCompletionStart. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D49650
2019-10-18 02:50:45 +00:00
Jan de Mooij
b7ab1cac81 Bug 1586991 part 22 - Use nsAutoJSString instead of AutoStableStringChars in DocshellEntryMonitor::Entry to ensure null-termination. r=bzbarsky
Note that nsDocShell::NotifyJSRunToCompletionStart ends up passing this string to
JavascriptTimelineMarker where the constructor assigns it to |nsString mFunctionName|
so there should be no difference between passing nullptr or empty string.

Differential Revision: https://phabricator.services.mozilla.com/D49391
2019-10-17 13:04:07 +00:00
Bobby Holley
bbdb992b42 Bug 1244247 - Remove racey sScriptSettingsTLSInitialized. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D49213
2019-10-15 02:10:02 +00:00
Steve Fink
ee7920b317 Bug 1560667 - Collection of fixes for things uncovered by improvements to the hazard analysis. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D46534
2019-10-02 03:20:33 +00:00
Boris Zbarsky
aae1e5d349 Bug 1328307. AutoNoJSAPI should make it clearer that script is not running. r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D41792
2019-08-23 20:47:02 +00:00
Karl Tomlinson
6d914f0b98 Bug 1542931 add CycleCollectedJSContext::ReportError() r=baku
to make AutoJSAPI error reporting safe for worklets.

Parameter order matches xpc::ErrorReport::Init().

Depends on D34477

Differential Revision: https://phabricator.services.mozilla.com/D34478
2019-06-12 19:11:04 +00:00
Boris Zbarsky
ed7925a057 Bug 1547923 part 6. Make nsIGlobalObject::GetGlobalJSObject always expose to active JS. r=mccr8
See callsite audit in https://bugzilla.mozilla.org/attachment.cgi?id=9061976
for details on why the remaining GetGlobalJSObject callers should switch to the
"always expose" behavior.

Differential Revision: https://phabricator.services.mozilla.com/D29707
2019-05-02 21:36:15 +00:00
Boris Zbarsky
204bfb5dd2 Bug 1547923 part 5. Start using nsIGlobalObject::GetGlobalJSObjectPreserveColor where possible. r=mccr8,jonco
Differential Revision: https://phabricator.services.mozilla.com/D29706
2019-05-03 15:15:31 +00:00
Boris Zbarsky
bc3d6e1282 Bug 1547923 part 4. Add nsIGlobalObject::HasJSGlobal(). r=mccr8
Consumers that just care about this boolean state should use this instead of
getting the JSObject* directly.

Differential Revision: https://phabricator.services.mozilla.com/D29705
2019-05-02 21:32:17 +00:00
Brian Hackett
818d284879 Bug 1543751 Part 2 - Include stack in worker error reports, r=bz. 2019-04-15 13:46:05 -10:00
Boris Zbarsky
f84e5421de Bug 1543564 part 2. Get rid of pointless nsPIDOMWindowInner::AsInner methods. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D27027
2019-04-11 14:12:43 +00:00
Brian Hackett
147960477e Bug 996060 Part 2 - Use JS engine stack if necessary when reporting errors, r=bz.
Differential Revision: https://phabricator.services.mozilla.com/D25645
2019-04-01 12:17:43 -06:00
Jeff Walden
9a71a44ca4 Bug 1542120 - Add js/public/Warnings.h for warning-related JSAPI. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D26273
2019-04-05 22:52:04 +00:00
Brian Hackett
fb9c24359c Bug 1535071 - Use the debugger global scope for worker error reporting if necessary, r=smaug,baku.
Differential Revision: https://phabricator.services.mozilla.com/D24270
2019-03-25 09:26:48 +00:00
Markus Stange
beff53a46a Bug 1500692 - Centralize profiling category definition and add infrastructure for subcategories. r=njn
The actual subcategories will be added in later patches, so that there are no
unused categories.

Differential Revision: https://phabricator.services.mozilla.com/D11334
2019-02-16 17:37:43 +00:00
Emilio Cobos Álvarez
dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Markus Stange
6a17120170 Bug 1500467 - Mark AutoEntryScript label frames as RELEVANT_FOR_JS. r=njn
Depends on D9301

Differential Revision: https://phabricator.services.mozilla.com/D9302
2018-11-14 18:55:01 +00:00
Markus Stange
f5cffdfd39 Bug 1499507 - Don't collect line numbers for profiling stack frames. r=njn
They were not displayed in the UI, and the instructions to initialize the line
field of a stack frame increased code size unnecessarily.

This change reduces the binary size on Linux x64 by around 100KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

@@ -20,17 +20,16 @@
    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
    leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
    movq       %rdx, (%rax,%rcx)
    movq       $0x0, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x106, 0x18(%rax,%rcx)
    movl       $0x1c, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx

Depends on D9193

Differential Revision: https://phabricator.services.mozilla.com/D9195
2018-11-06 04:31:02 +00:00
Brindusan Cristian
045b98e787 Backed out 9 changesets (bug 1499507) for build bustages on /profiler/core/platform.cpp. CLOSED TREE
Backed out changeset 4c79a5557d7b (bug 1499507)
Backed out changeset 35d05a53e0a9 (bug 1499507)
Backed out changeset 9254e6c721b3 (bug 1499507)
Backed out changeset cf40b044af3f (bug 1499507)
Backed out changeset 76dd85b9aaf7 (bug 1499507)
Backed out changeset 6256446f16c4 (bug 1499507)
Backed out changeset 41cede6bc7d2 (bug 1499507)
Backed out changeset 30476b824eb4 (bug 1499507)
Backed out changeset 24a9494155fe (bug 1499507)
2018-11-05 23:24:49 +02:00
Markus Stange
6015e65848 Bug 1499507 - Don't collect line numbers for profiling stack frames. r=njn
They were not displayed in the UI, and the instructions to initialize the line
field of a stack frame increased code size unnecessarily.

This change reduces the binary size on Linux x64 by around 100KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

@@ -20,17 +20,16 @@
    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
    leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
    movq       %rdx, (%rax,%rcx)
    movq       $0x0, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x106, 0x18(%rax,%rcx)
    movl       $0x1c, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx

Depends on D9193

Differential Revision: https://phabricator.services.mozilla.com/D9195
2018-11-05 20:55:10 +00:00
Narcis Beleuzu
2c73816546 Backed out 9 changesets (bug 1499507) for bustages on ProfileBuffer.cpp . CLOSED TREE
Backed out changeset 541186291b88 (bug 1499507)
Backed out changeset 8a3f4acbad3b (bug 1499507)
Backed out changeset f427afc392b0 (bug 1499507)
Backed out changeset 58dc19fb2b76 (bug 1499507)
Backed out changeset 9225e9aea377 (bug 1499507)
Backed out changeset ca23a517da63 (bug 1499507)
Backed out changeset 16d6c90333de (bug 1499507)
Backed out changeset bc134fe1722a (bug 1499507)
Backed out changeset 4a9c9a91182c (bug 1499507)
2018-11-05 21:48:11 +02:00
Markus Stange
d8edec3cdc Bug 1499507 - Don't collect line numbers for profiling stack frames. r=njn
They were not displayed in the UI, and the instructions to initialize the line
field of a stack frame increased code size unnecessarily.

This change reduces the binary size on Linux x64 by around 100KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

@@ -20,17 +20,16 @@
    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
    leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
    movq       %rdx, (%rax,%rcx)
    movq       $0x0, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x106, 0x18(%rax,%rcx)
    movl       $0x1c, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx

Depends on D9193

Differential Revision: https://phabricator.services.mozilla.com/D9195
2018-11-05 19:07:45 +00:00
Jan de Mooij
d227b4369d Bug 722345 part 3 - Remove request API. r=luke
Differential Revision: https://phabricator.services.mozilla.com/D4424
2018-08-28 09:53:30 +02:00
Jan de Mooij
cf6c255f8c Bug 1267297 - Use AutoEntryScript for script activity bookkeeping instead of the request machinery. r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D4085
2018-09-04 16:59:56 +00:00
Jeff Walden
c5cf4f39a4 Bug 1040316 - Move AutoStableStringChars out of friendapi into public API. r=jandem 2018-08-20 07:44:44 -07:00
Steve Fink
67f47fa2d6 Bug 1480835 - Remove now-redundant assertion that is a rooting hazard, r=jandem 2018-08-03 10:25:49 -07:00
Jan de Mooij
a760e2d0e5 Bug 1479363 part 5 - Use JSAutoRealm instead of JSAutoRealmAllowCCW in remaining dom/ directories. r=mccr8 2018-08-02 08:49:00 +02:00
Jan de Mooij
fddc23c346 Bug 1478955 part 1 - Rename JSAutoRealm to JSAutoRealmAllowCCW. r=luke 2018-07-28 12:12:26 +02:00
Jan de Mooij
41e091b454 Bug 1474540 - Assert we don't pass cross-compartment wrappers to AutoJSAPI::Init. r=bholley 2018-07-24 09:19:25 +02:00
Jan de Mooij
89f1b83309 Bug 1474541 part 2 - Assert we don't pass cross-compartment wrappers to AutoEntryScript. r=bz 2018-07-25 10:42:40 +02:00
Csoregi Natalia
c8dab51568 Backed out changeset 438598073b9b (bug 1474540) for assertion failure at ScriptSettings.cpp:493 on Android. CLOSED TREE 2018-07-24 11:34:09 +03:00
Jan de Mooij
029c024bc1 Bug 1474540 - Assert we don't pass cross-compartment wrappers to AutoJSAPI::Init. r=bholley 2018-07-24 09:19:25 +02:00
Jan de Mooij
6248eac269 Bug 1475559 part 5 - Pass a global object to nsScriptErrorWithStack. r=bz
The stack object might be a CCW and we want to make it impossible to get a CCW's global. Now the caller has to supply a same-compartment global object, so we no longer rely on getting the CCW's global.
2018-07-21 14:34:37 +02:00