Commit Graph

2923 Commits

Author SHA1 Message Date
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd
583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Nathan Froyd
fe57e31ffe Bug 1212027 - part 7 - modify IPDL codegen to store sub-protocols in a hashtable rather than an array; r=jld,nical,cpearce,billm 2015-10-07 14:30:33 -04:00
Nathan Froyd
835e1550cb Bug 1212027 - part 5 - add LoneManagedOrNull for simplifying a lot of upcoming code; r=jld
A lot of existing code has variations on:

  if (ManagedPFooChild().Length()) {
    ...(ManagedPFooChild()[0])...
  }
  // Do something with nullptr, or some other action.

It's pretty reasonable to repeat this code when the managed protocols
are stored in an array; the code gets much less nice when managed
protocols are stored in a hashtable.  Let's write a small utility
function to handle those details for us.  Then when we change the
underlying storage, we only need to update this function, rather than a
bunch of callsites.

ProtocolUtils.h is included by all the generated IPDL headers, so
LoneManagedOrNull should be available everywhere the above pattern would
be encountered.
2015-10-07 20:15:56 -04:00
Nathan Froyd
cba63c94d7 Bug 1212027 - part 4 - use class interfaces when destroying managees; r=jld
Similar to the last patch, we copy any sub-protocols a protocol owns
before destroying the sub-protocols.  We do this to ensure a stable
iteration over the sub-protocols, as destroying a sub-protocol may
trigger other sub-protocol deletions.  Let's permit an existing
interface method to do the copying for us, so if the details of how we
store sub-protocols change, this call site is insulated from the
details.
2015-10-07 00:02:27 -04:00
Nathan Froyd
405aa9e2df Bug 1212027 - part 3 - use class interfaces when cloning managees; r=jld
In $PROTOCOL::CloneManages, we reach directly into the other protocol's
sub-protocol arrays to copy them.  It would be better, from a
fewer-places-to-modify-when-things-change point of view if we used the
$PROTOCOL::Managed$SUBPROTOCOL array getter that already exists for this
purpose.  A good compiler should be able to remove the function call
overhead...but cloning managees is probably expensive anyway, so a
function call here doesn't matter much.

It's not immediately obvious to me why we clone and then iterate over
the clone, rather than iterating directly, but perhaps there are subtle
IPDL dragons lurking hereabouts.
2015-10-06 23:59:32 -04:00
Nathan Froyd
8065270d99 Bug 1212027 - part 2 - add a C++ AST type for 'auto'; r=jld
This type will come in handy when we have to add iteration over
hashtables, since it would be a pain to write out the iterator type.
2015-10-06 21:33:13 -04:00
Nathan Froyd
278e9ff8b1 Bug 1212027 - part 1 - rename ipdl lowering helpers to reflect intent, not function; r=jld
The functions:

- _callCxxArrayInsertSorted
- _callCxxArrayRemoveSorted
- _callCxxArrayClear
- _cxxArrayHasElementSorted

are only ever used to touch the managed sub-protocol arrays of a
protocol.  It would be better if they reflected the *intent* of what
they were doing, rather than what C++ function they were calling, since
we're about to change that.
2015-10-06 21:20:07 -04:00
Wes Kocher
c2b3d9275b Backed out 2 changesets (bug 1182571) for being a likely cause of the Android S4 errors
Backed out changeset e2b3064dcace (bug 1182571)
Backed out changeset 8153ae231d16 (bug 1182571)
2015-10-15 14:07:06 -07:00
Jonas Sicking
81a15a3362 Bug 1182571: Fix nsILoadInfo->GetContentPolicyType API to be less ambigious. Audit and fix all users of it. r=ckerschb 2015-10-15 12:18:20 -07:00
Andrew McCreight
4d45e43c54 Bug 1213320 - Detect IPC::Channel leaks with the XPCOM leak checker. r=jld 2015-10-14 11:03:47 -07:00
Andrew McCreight
c38280f27b Bug 1212986 - Background ChildImpl should delete its Transport. r=mrbkap 2015-10-14 11:03:47 -07:00
Trevor Saunders
dda4730c3c bug 1212906 - don't handle windows messages while waiting for a sync a11y ipc message r=billm
Windows messages can trigger sync ipc messages to the child process.  That
means if we handle windows messages while waiting for the response to a sync
a11y ipc message we can end up reentering the code to send ipc messages which
is bad.  Try and avoid this situation by not handling windows messages while
waiting for a sync a11y message.
2015-10-14 14:02:47 -04:00
Bill McCloskey
1b725eb6bc Back out bug 1191143 - Cancel CPOWs from both sides 2015-10-07 11:15:11 -07:00
Bill McCloskey
47202f14e8 Back out bug 1191145 - Stop blocking scripts in CPOW IPCs 2015-10-07 11:15:11 -07:00
Carsten "Tomcat" Book
08997000eb Backed out 2 changesets (bug 1202902) to recking bug 1202902 to be able to reopen inbound on a CLOSED TREE
Backed out changeset 647025383676 (bug 1202902)
Backed out changeset d70c7fe532c6 (bug 1202902)
2015-10-07 14:03:21 +02:00
Carsten "Tomcat" Book
e7ef778c9d Backed out 1 changesets (bug 1202902) for causing merge conflicts to mozilla-central
Backed out changeset cfc1820361f5 (bug 1202902)

--HG--
extra : rebase_source : 5d3db72337754bc7ab0ed0c30b2896100411ff92
2015-10-07 12:13:45 +02:00
Shu-yu Guo
d06b6030f6 Bug 1202902 - Scripted fix the world. 2015-10-06 14:00:31 -07:00
Wes Kocher
9deac25dd2 Merge m-c to inbound, a=merge 2015-10-06 12:16:50 -07:00
Carsten "Tomcat" Book
918e7c76b4 Merge m-c to b2g-i 2015-10-06 12:24:42 +02:00
Aaron Klotz
6c3bc53e68 Bug 1209464: Fix missing neutered window region in MessageChannel::WaitForInterruptNotify. Regression from bug 1189709; r=jimm
--HG--
extra : rebase_source : 56caab29e3f48b6332f8cd1b47e1e830f75d9c74
extra : source : bed340eab428d1c0d86057771fb19b7090e0af51
2015-10-04 22:17:20 -06:00
Bill McCloskey
0f09a1e1ef Bug 1210821 - Fix possible IPC cancellation bug (r=dvander) 2015-10-05 13:15:15 -07:00
Thomas Zimmermann
fd52be5f45 Bug 1209085: Add 6-argument operator () to |UnpackPDUInitOp|, r=joliu 2015-10-06 10:08:14 +02:00
Nicholas Nethercote
399b5d9785 Bug 1205942 (part 5) - Disallow compiler warnings in ipc/chromium. r=jld.
--HG--
extra : rebase_source : 2cb59c74558ee2d05decef0b17c39a15338da782
2015-10-01 17:51:49 -07:00
Nicholas Nethercote
e21cd5505a Bug 1205942 (part 4) - Remove GetWinVersion(). r=jld.
Like the last patch, the motivation is to remove a GetVersionEx() call which
triggers deprecation warnings.

Because Windows XP SP2 is the earliest Windows version we support, two of the
existing uses of GetWinVersion() could be removed, because they were checking
for XP or earlier. One other Vista check could be replaced with
mozilla::IsVistaOrLater().

--HG--
extra : rebase_source : 48f032fe92c3897a91866c7ff786a635479c0389
2015-10-01 07:11:30 -07:00
Nicholas Nethercote
bf211c7df2 Bug 1205942 (part 3) - Remove unused OS version detection functions from ipc/chromium/. r=jld.
The motivation here is to remove the GetVersionEx() calls in the
Windows-specific code, because that function is deprecated and causes warnings.
The non-Windows versions come along for the ride.

--HG--
extra : rebase_source : ea50b4ce8271ea7281b901eac0542ab4a154adc6
2015-10-01 07:10:13 -07:00
Yoshi Huang
f97211a451 Bug 1167100 - User originAttribute in ContentPrincipalInfo. r=bholley 2015-09-23 18:19:06 +08:00
Wes Kocher
6feb6f6051 Merge m-c to inbound, a=merge 2015-09-29 16:13:55 -07:00
Bill McCloskey
6efa744de9 Bug 1191145 - Stop blocking scripts in CPOW IPCs (r=dvander) 2015-09-29 16:11:49 -07:00
Bill McCloskey
e633fa0e76 Bug 1191143 - Cancel CPOWs from both sides (r=dvander) 2015-09-29 16:11:49 -07:00
Wes Kocher
df21b43278 Backed out changeset d0e88c95f3c5 (bug 1167100) for crashes a=backout 2015-09-29 10:25:20 -07:00
George Wright
c229949556 Bug 1207921 - Call makeReply before dtorEpilogue so that we don't end up with a nullptr deref r=billm 2015-09-28 09:17:05 -04:00
Carsten "Tomcat" Book
363e40e298 merge mozilla-inbound to mozilla-central a=merge 2015-09-28 14:13:24 +02:00
Yoshi Huang
872722fe37 Bug 1167100 - User nsIPrincipal.originAttribute in ContentPrincipalInfo. r=bholley 2015-09-23 18:19:06 +08:00
Gian-Carlo Pascutto
e5ead0cadf Bug 1205164 - Detect message races in Mach Shmem implementation. r=blassey 2015-09-25 12:30:46 +02:00
Nicholas Nethercote
998f4575e5 Bug 1205942 (part 2) - Fix "always true" warning in child_thread.cc. r=jld.
The warning is "the address of NuwaMarkCurrentThread() will always evaluate to
'true'".

--HG--
extra : rebase_source : c66bd111a3a57b08095dbbbe043806cc2caf8c13
2015-09-23 18:21:19 -07:00
Ted Mielczarek
1da63ab087 bug 1204985 horrible clobber-avoidance bustage fix r=YOLO CLOSED TREE
--HG--
extra : commitid : 9YLhI1kywCS
2015-09-23 22:05:01 -04:00
Ted Mielczarek
edc3c41143 bug 1204985 - make SharedMemoryBasic_mach build on iOS. r=billm
--HG--
rename : ipc/glue/SharedMemoryBasic_mach.cpp => ipc/glue/SharedMemoryBasic_mach.mm
extra : commitid : LQkdXR8Jccx
extra : rebase_source : b16238102bba8173126299f5d225f5ac24f047b8
2015-09-22 13:59:00 -04:00
Nicholas Nethercote
91333243f4 Bug 1206558 (part 6) - Factor out common libevent moz.build stuff. r=mshal.
Two parts.

- Most of the common stuff goes into the new libeventcommon.mozbuild file.

- A little bit of common bsd/linux stuff factored out in
  ipc/chromium/moz.build.

--HG--
extra : rebase_source : a4bb56a444ad5b0d5d808e5d58dd7abe7dd81dbe
2015-09-22 16:24:51 -07:00
Nicholas Nethercote
89cb2574cf Bug 1206558 (part 5) - Give libevent its own moz.build file. r=mshal.
I originally tried putting it in ipc/chromium/src/third_party/libevent/, but
that directory already has a Makefile.in file, which caused problems, so I
moved it down one directory.

--HG--
extra : rebase_source : 63024d67c7b0f9215474cc85b475a4740ce51dc0
2015-09-22 16:24:51 -07:00
Nicholas Nethercote
555a6bb686 Bug 1206558 (part 4) - Factor out include handling in ipc/chromium/moz.build. r=mshal.
--HG--
extra : rebase_source : b8063fd9f38ec025e019bf29cba212a435b23a61
2015-09-22 16:24:51 -07:00
Nicholas Nethercote
4a88f838bd Bug 1206558 (part 3) - Move Android-specific code ipc/chromium/moz.build. r=mshal.
--HG--
extra : rebase_source : f80cb0fb31d1295fe0c36db884c5f38f4f0feb25
2015-09-22 16:24:51 -07:00
Nicholas Nethercote
63971ab5d4 Bug 1206558 (part 2) - Move Linux-specific code ipc/chromium/moz.build. r=mshal.
Just so the OS ordering at the top matches the OS ordering at the bottom.

--HG--
extra : rebase_source : c6c5a303ade7f740b3f2483b77c4276d0a782773
2015-09-22 16:24:51 -07:00
Nicholas Nethercote
b290ddeb41 Bug 1206558 (part 1) - Combine handling of BSDs in ipc/chromium/moz.build. r=mshal.
Also wrap some overlong comment lines.

--HG--
extra : rebase_source : 5f7ff89dae32ab443f423884adb92341b4c97079
2015-09-22 16:24:51 -07:00
Chris Peterson
71920a9550 Bug 1207030 - Enable -Wshadow flag in more directories that have no -Wshadow warnings. r=glandium 2015-09-22 21:39:03 -07:00
Nicholas Nethercote
e2d96fab66 Bug 1181026 (part 3) - Fix libevent constants for 32-bit Linux/Mac/BSD builds. r=glandium.
The patch also adds the CHECK_EVENT_SIZEOF macro which checks that the
_EVENT_SIZEOF_* constants have the right values.

--HG--
extra : rebase_source : 36a41bb25adcef55814aa51a280cad91062d2147
2015-09-22 20:01:29 -07:00
Nicholas Nethercote
34ad9836d9 Bug 1181026 (part 2) - Clean up libevent patch handling. r=glandium.
Add a missing one to the docs, and move them from their current two locations
into a new patches/ directory.

--HG--
rename : ipc/chromium/src/third_party/libevent-avoid-empty-sighandler.patch => ipc/chromium/src/third_party/libevent/patches/avoid-empty-sighandler.patch
rename : ipc/chromium/src/third_party/libevent-dont-use-issetugid-on-android.patch => ipc/chromium/src/third_party/libevent/patches/dont-use-issetugid-on-android.patch
rename : ipc/chromium/src/third_party/libevent/mac-arc4random-buf.patch => ipc/chromium/src/third_party/libevent/patches/mac-arc4random-buf.patch
rename : ipc/chromium/src/third_party/libevent/openbsd-no-arc4random_addrandom.patch => ipc/chromium/src/third_party/libevent/patches/openbsd-no-arc4random_addrandom.patch
rename : ipc/chromium/src/third_party/libevent-use-non-deprecated-syscalls.patch => ipc/chromium/src/third_party/libevent/patches/use-non-deprecated-syscalls.patch
extra : rebase_source : 2b434e627b6fcbf699ab50c51356a986391dcd1c
2015-09-22 19:59:53 -07:00
Nicholas Nethercote
609bbdb87c Bug 1181026 (part 1) - Reformat libevent's README.mozilla file. r=glandium.
--HG--
extra : rebase_source : ef3e5c99e2e062444000027a25f369ed5e0f14fa
2015-09-22 19:59:27 -07:00
Henry Chang
b6b5862949 Bug 1163254 - Add signedPkg to OriginAttributes. r=bholley 2015-09-18 15:11:58 +08:00
Nicholas Nethercote
51aed272e1 Bug 1205942 (part 1) - Fix overflows in time_posix.cc. r=jld.
We get the following warnings with clang.

> ipc/chromium/src/base/time_posix.cc:103:57: error: overflow in expression; result is 0 with type 'long' [-Werror,-Winteger-overflow]
> ipc/chromium/src/base/time_posix.cc:106:58: error: overflow in expression; result is -1000 with type 'long' [-Werror,-Winteger-overflow]

This is a genuine bug. The upstream code in Chromium has changed (commit
2a278516943eee02e0206506a4b907fc0b55f27b) and this patch changes our code to be
similar. I did tests and confirmed that instead of getting 0 or -1 for
|milliseconds|, we now get -2147483648000 or 2147483647999, which is much
better.

--HG--
extra : rebase_source : f01a4f03bc1576980010426328116d03eb71079b
2015-09-21 15:35:26 -07:00