Граф коммитов

51 Коммитов

Автор SHA1 Сообщение Дата
Kan-Ru Chen 506dfe6ea3 Bug 1264642 - Part 4. Use BufferList to replace raw buffers in StructuredClone. r=baku r=billm r=jorendorff
In JS StructuredClone BufferList<SystemAllocPolicy> is typedef'd to
JSStructuredCloneData and use everywhere in gecko that stores structured
clone data.

This patch changed some raw pointers to UniquePtr<JSStructuredCloneData>
and some to stack allocated JSStructuredCloneData for better life time
management. Some parameters or methods are deleted because of changing
to the new data structure.

MessagePortMessage now has the exactly same structure with
ClonedMessageData. Maybe in the future they can be consolidated.

MozReview-Commit-ID: 1IY9p5eKLgv
2016-08-23 00:40:46 +08:00
Boris Zbarsky e715be26bd Bug 1250185 part 1. nsIStructuredCloneContainer.initFromBase64 doesn't need a JSContext argument. r=khuey 2016-02-23 15:02:32 -05:00
Andrea Marchesini a708d07f10 Bug 1201806 - part 2 - nsStructuredCloneContainer should use StructuredCloneIPCHelper, r=smaug 2015-09-09 08:11:38 +01:00
Andrea Marchesini efd3b25c78 Bug 1198795 - ipc/StructuredCloneUtils should be merged with StructuredCloneHelper, r=smaug
--HG--
rename : dom/ipc/StructuredCloneUtils.cpp => dom/ipc/StructuredCloneIPCHelper.cpp
rename : dom/ipc/StructuredCloneUtils.h => dom/ipc/StructuredCloneIPCHelper.h
2015-09-02 17:20:30 +01:00
Andrea Marchesini fdbfd864e7 Bug 1186307 - StructuredCloneHelper in workers.postMessage(), r=smaug 2015-08-27 17:19:13 +01:00
Nigel Babu d5f46aaf6c Backed out a19daae11647 (Bug 1186307) for W8 and W4 bustage on CLOSED TREE 2015-08-27 15:04:25 +05:30
Andrea Marchesini b68734b7da Bug 1186307 - StructuredCloneHelper in workers.postMessage(), r=smaug 2015-08-27 09:06:09 +01:00
Andrea Marchesini cf19abf4e5 Bug 1189389 - nsIStructuredCloneContainer should use StructuredCloneHelper, r=smaug 2015-08-26 13:17:23 +01:00
Nikhil Marathe 839a3bc3fb Bug 1183954 - Fix Notification.data structured cloning on workers. r=robertbindar,mccr8
Rather than store a non-thread-safe refcounted nsIStructuredCloneContainer, store the base64 representation.
Caches a jsval the first time an attempt to access data is made from content script.

--HG--
extra : commitid : Ijd82LTJaYo
extra : rebase_source : f82e837842037ea02efae3a0fc9b2b35c2a0d7d0
2015-07-30 12:44:14 -07:00
Andrew McCreight 9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Sylvestre Ledru 88ebaa2020 Bug 1156662 - Identical code for different branches. r=bz
--HG--
extra : rebase_source : 4722a8dbf198f05090370235f811dccb35ce658c
2015-04-21 18:37:34 +02:00
Boris Zbarsky 9f8de4bfd5 Bug 1154366. Pass in a JSContext to StructuredCloneContainer::InitFromJSVal so it will throw its exceptions somewhere where people might see them. r=bholley 2015-04-16 13:22:15 -04:00
Bobby Holley e3eca2660e Bug 1070696 - Rename xpc::GetNativeForGlobal to xpc::NativeGlobal and make it accept non-global JSObjects. r=smaug
The method is infallible, and making the callers invoke
js::GetGlobalForObjectCrossCompartment manually is dumb.
2014-09-21 21:31:53 +02:00
Bob Owen 325adb5305 Bug 1046647 - Part 4: Replace nsCxPusher in nsDocShell::AddState. r=bholley 2014-08-05 17:18:30 +01:00
Steve Fink 12001268c0 Bug 912456 - transferable MessagePorts, r=jorendorff
--HG--
extra : rebase_source : 5b8a2a9b261c53f0ff5a860e1dc2e7ede711105f
2013-11-14 20:42:34 -08:00
Tom Schuster f39e81815a Bug 939294 - Change xpidl jsval to handles. r=gabor,bz,khuey,bsmedberg,terrence 2014-01-09 18:39:36 +01:00
Tom Schuster 127ebf3721 Bug 930782 - Handlify JS_WrapValue. r=terrence 2013-10-26 18:19:05 +02:00
Terrence Cole 856c484ab5 Bug 929800 - Handlify the structured clone interface; r=sfink,smaug
--HG--
extra : rebase_source : 4f21dd799ad27dc665997d4912996a500ae8a2f2
2013-10-22 17:18:32 -07:00
Nicholas Nethercote 36ec1052f2 Bug 905017 (part 2, attempt 2) - Move structured clone stuff from jsapi.{h,cpp} and jsclone.{h,cpp} to js/StructuredClone.{h,cpp}. r=billm.
--HG--
rename : js/src/jsclone.cpp => js/src/vm/StructuredClone.cpp
extra : rebase_source : 2699588c63ef58ab84bc8c63adc0487648af3834
2013-08-19 23:43:47 -07:00
Ms2ger 8040c0cadd Backout changesets 7e6fb33fdf22:c85332df4320 (bug 905017) for windows bustage. 2013-08-22 10:16:30 +02:00
Nicholas Nethercote b62bcfa0e3 Bug 905017 (part 2) - Move structured clone stuff from jsapi.{h,cpp} and jsclone.{h,cpp} to js/StructuredClone.{h,cpp}. r=billm.
--HG--
rename : js/src/jsclone.cpp => js/src/vm/StructuredClone.cpp
extra : rebase_source : ecce9699ddb45535aa94d5e3add901f5a8620c46
2013-08-19 23:43:47 -07:00
Nicholas Nethercote 2585de9a07 Bug 905017 (part 1) - Minimize inclusions of JS engine headers in .h and .idl files. r=billm.
--HG--
extra : rebase_source : 984c61ab12f46be0509b1ce0d458d9a6e5841c64
2013-08-17 15:50:18 -07:00
Johnny Stenback 84b7ee4886 Bug 859707. Convert History to WebIDL bindings. r=bz 2013-08-09 23:47:59 -07:00
Nicholas Nethercote d8f824e34e Bug 898914 (part 1) - Remove JSBool.
--HG--
extra : rebase_source : 2d202e0e5005a7f54724b1540481c15cde3ad52e
2013-08-08 15:53:04 -07:00
Bobby Holley f2943090bd Bug 868130 - Remove the lion's share of JSAutoRequests in gecko. r=gabor
There are still a handful that either are used with other runtimes, or that
happen very early/late in cx the lifetime of various things where it doesn't
necessarily make sense to have a cx on the stack. This should definitely ensure
that we're not doing double-duty with the nsCxPusher change, though.
2013-05-22 10:05:28 -06:00
Bobby Holley ff37abce70 Bug 868634 - Remove compartment entry in nsStructuredCloneContainer. r=bz
I can't see what this is supposed to be doing. The one caller defaults to aCx,
and if not, gets and pushes a context associated with the document, restoring
it to the default compartment.

So this only changes the behavior when we use the aCx that comes in from above,
in which case it's totally not clear to me why we would want to get the default
global here.
2013-05-07 14:18:03 -07:00
David Zbarsky b7033dea1a Bug 868312: Various dom rooting fixes r=bz 2013-05-04 03:52:57 -04:00
Bobby Holley 7e45dcce35 Bug 865729 - Remove nsIJSContextStack from dom/foo. r=gabor 2013-04-29 11:16:18 -07:00
Jose Cortes 1068414e39 Bug 842186 - Replace use of jsval with JS::Value in dom/base. r=jwalden
From 1a684ed61615d32965201e55335478d5f403ac4a Mon Sep 17 00:00:00 2001
 cpp files in the dom/base/ directory. r=jwalden
---
 dom/base/Crypto.cpp                     |  3 +-
 dom/base/DOMRequest.cpp                 | 12 +++---
 dom/base/DOMRequest.h                   |  4 +-
 dom/base/Navigator.cpp                  | 10 ++---
 dom/base/nsDOMJSUtils.h                 |  6 +--
 dom/base/nsDOMWindowUtils.cpp           | 20 ++++-----
 dom/base/nsGlobalWindow.cpp             | 24 +++++------
 dom/base/nsIJSNativeInitializer.h       |  4 +-
 dom/base/nsJSEnvironment.cpp            | 73 +++++++++++++++++----------------
 dom/base/nsJSEnvironment.h              |  8 ++--
 dom/base/nsJSTimeoutHandler.cpp         |  4 +-
 dom/base/nsJSUtils.h                    |  2 +-
 dom/base/nsStructuredCloneContainer.cpp | 10 ++---
 13 files changed, 91 insertions(+), 89 deletions(-)

--HG--
extra : rebase_source : af1420550a745aba9fd6c20297ac3cd0075f5ead
2013-04-11 18:52:10 -04:00
Ms2ger 30583e01b5 Bug 845374 - Part j: Stop including nsIXPCScriptable.h in nsContentUtils.h; r=khuey 2013-03-17 08:55:15 +01:00
Bobby Holley 0619f84ac4 Bug 834732 - Make nsDocShell::AddState push the JSContext if it grabs one, and remove push in nsStructuredCloneContainer. r=mrbkap
This gets rid of one of the last consumers of REQUIRE_SCRIPT_CONTEXT.
2013-02-26 11:04:10 -08:00
Bobby Holley 03f7f4b219 Bug 834732 - Get rid of footgun bool param for nsCxPusher and use an explicit enum. r=mrbkap
The goal here is to get rid of this crap entirely, and make nsCxPusher always
push. But that's a scary change, so we do it in chunks. This patch, in particular,
should have zero behavioral change. This means preserving some very wrong behavior.
For instance, currently SafeAutoJSContext never pushes a damn thing, because the
safe JSContext doesn't have an associated nsIScriptContext. We preserve this
behavior, and in fact convert various similarly-buggy consumers to
SafeAutoJSContext, so that we can hoist the behavioral change into a subsequent
patch.
2013-02-26 11:04:09 -08:00
Nicholas Nethercote c36dea3127 Bug 824883 - Fix three warnings in dom/ code. r=bz.
--HG--
extra : rebase_source : 3763606a23b66493596787ca33cec32618efa2f1
2012-12-26 20:24:59 -08:00
Isaac Aggrey c984edf823 Bug 794510: Part 2: Use more stdint types instead of protypes.h types; r=ehsan 2012-10-11 18:38:04 -05:00
Andrea Marchesini d20fd52c39 Bug 720083 - Workers: add support for transferable objects from HTML5 spec. r=sphink, r=bent 2012-10-03 18:19:22 -04:00
Phil Ringnalda 350f7a9cd9 Back out b24a73b2c617 for Windows build bustage and test_xhr_timeout.html failure 2012-09-27 21:24:42 -07:00
Andrea Marchesini 7d56919385 Bug 720083 - Workers: add support for transferable objects from HTML5 spec. r=sphink, r=bent 2012-09-27 23:05:59 -04:00
Randell Jesup 65539ef89c Bug 773151: Convert nsCAutoString->nsAutoCString CLOSED TREE r=bsmedberg 2012-09-01 22:35:17 -04:00
Luke Wagner ad90af9ca5 Bug 625199 - s/JSAutoEnterCompartment/JSAutoCompartment/ and make it infallible (r=bholley)
--HG--
extra : rebase_source : 12acf2288285f5caefd7fecea8207de3a47eab5b
2012-08-21 18:42:53 -07:00
Ehsan Akhgari e368dc9c85 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Aryeh Gregor d0ad5a7d0c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
David Zbarsky d2ee12f6f9 Bug 763350 - Clean up some includes in content/ and dom/ r=smaug 2012-07-01 16:45:59 -07:00
Gervase Markham 82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Bobby Holley 2d2091879c Bug 738956 - Wrap values in nsStructuredCloneContainer::InitFromVariant before passing them to JS_WriteStructuredClone. r=khuey 2012-03-27 11:43:11 -07:00
Landry Breuil 29474753d7 Bug 714332 - Fix uint64 types usage in dom/workers and dom/base; r=bent
Use uint64_t where appropriate for mData, fails to build on OpenBSD
otherwise with wrong casts/no matching template.

dom/base/nsStructuredCloneContainer.cpp:96: error: invalid conversion from 'PRUint64*' to 'uint64_t*'
dom/base/nsStructuredCloneContainer.cpp:131: error: invalid conversion from 'PRUint64*' to 'uint64_t*'
dom/workers/WorkerPrivate.cpp:822: error: no matching function for call to 'JSAutoStructuredCloneBuffer::steal(uint64**, size_t*)'
../../dist/include/jsapi.h:4641: note: candidates are: void
JSAutoStructuredCloneBuffer::steal(uint64_t**, size_t*, uint32_t*) <near
match>
dom/workers/WorkerPrivate.cpp:833: error: no matching function for call to 'JSAutoStructuredCloneBuffer::adopt(uint64*&, size_t&)'
../../dist/include/jsapi.h:4634: note: candidates are: void
JSAutoStructuredCloneBuffer::adopt(uint64_t*, size_t, uint32_t) <near
match>
dom/workers/WorkerPrivate.cpp:853: error: no matching function for call to 'JSAutoStructuredCloneBuffer::steal(uint64**, size_t*)'
../../dist/include/jsapi.h:4641: note: candidates are: void
JSAutoStructuredCloneBuffer::steal(uint64_t**, size_t*, uint32_t*) <near
match>
2012-01-02 19:08:14 +01:00
Ms2ger e27ef6c21a Bug 713550 - Move Base64 code on nsXPConnect to XPCOM / xpcpublic.h; r=bholley+khuey 2011-12-28 09:13:38 +01:00
Jeff Walden 735580ff0e Bug 708735 - Use <stdint.h> types in JSAPI and throughout SpiderMonkey. Continue to provide the {u,}int{8,16,32,64} and JS{Uint,Int}{8,16,32,64} integer types through a single header, however, for a simpler backout strategy -- and also to ease the transition for embedders. r=timeless on switching the jsd API to use the <stdint.h> types, r=luke, r=dmandelin 2011-12-08 22:54:10 -05:00
Michael Wu d2b70213ac Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Justin Lebar fc4cd2c7f1 Bug 656991 - Followup. Use JS_free instead of free. r=bz
--HG--
extra : rebase_source : 00e5cc27f067a191e7a834852faee8c788feb061
2011-05-16 16:36:12 -04:00
Justin Lebar 346784b907 Bug 656991 - Fix leak in nsStructuredCloneContainer::InitFromVariant. r=bz,igor 2011-05-15 20:29:19 -04:00