gecko-dev/dom/chrome-webidl/ClonedErrorHolder.webidl
Kris Maglione a71c8e64ff Bug 1588839 - Part 1 - Add helper to allow structured cloning Error/Exception objects. r=bzbarsky
In order to be able to reasonably debug error results from things like
JSWindowActor.sendQuery, we need to be able to clone errors across process
boundaries, so that they can be propagated to the caller that initiated a
query. The standard for the structured clone algorithm does not allow cloning
errors directly, so this patch instead adds a chrome-only wrapper object which
supports structured clone writing, and on reading, automatically decodes to
the error object it wraps. Callers who wish to clone an Error or Exception
object simply need to wrap it in a ClonedErrorHolder before sending.

Differential Revision: https://phabricator.services.mozilla.com/D50881

--HG--
extra : moz-landing-system : lando
2019-12-07 18:59:14 +00:00

19 lines
693 B
Plaintext

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/**
* A stub object to hold an Error, Exception, or DOMException object to be
* transferred via structured clone. The object will automatically be decoded
* directly into the type of the error object that it wraps.
*
* This is a temporary workaround for lack of native Error and Exception
* cloning support, and can be removed once bug 1556604 and bug 1561357 are
* fixed.
*/
[ChromeOnly, Exposed=Window]
interface ClonedErrorHolder {
[Throws]
constructor(object aError);
};