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

81 Коммитов

Автор SHA1 Сообщение Дата
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jed Davis 4fe96e3d18 Bug 1446161 - Asynchronously launch preallocated content processes using MozPromise. r=mccr8
There are several layers to this patch:

1. GeckoChildProcessHost now exposes a promise that's resolved when
the process handle is available (or rejected if launch failed), as a
nonblocking alternative to LaunchAndWaitForProcessHandle.

2. ContentParent builds on this with the private method
LaunchSubprocessAsync and the public method PreallocateProcessAsync;
synchronous launch continues to exist for the regular on-demand launch
path, for the time being.

3. PreallocatedProcessManager now uses async launch, and handles the new
"launch in progress" state appropriately.

Depends on D8942

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

--HG--
extra : moz-landing-system : lando
2018-11-28 20:42:31 +00:00
Jed Davis fe298e735f Bug 1488993 - Fix PreallocatedProcessManager blocker management (v2). r=mconley,smaug
This fixes/adjusts two things about how content process preallocation is blocked:

1. Processes aren't registered as blockers until after they launch
successfully.  The main goal is to not leak a blocker if launch fails,
but we don't need to block *while* launching synchronously, because this
all happens on the main thread.

2. Preallocated processes themselves aren't blockers.  The main goal
here is so that async preallocation doesn't need extra complexity to
avoid being blocked by itself when launch completes.  This mostly
doesn't affect actual behavior, because we currently support at most
one preallocated process.  The difference is the window from when the
process is sent its first PBrowserConstructor until when it's next idle,
where there is now no longer a blocker, but this seems to be relatively
short (~100ms) and we don't even try to launch a new process until at
least 1s + an idle runnable.

This patch does not explicitly RemoveBlocker in ActorDestroy like the
first attempt did, because it's unnecessary: this is handled in the
ipc:content-shutdown observer.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 20:42:00 +00:00
Andreea Pavel 74cd2bf73e Backed out 8 changesets (bug 1446161, bug 1487287, bug 1488993, bug 1474991, bug 1496608) for very frequent automation.py crashes on a CLOSED TREE
Backed out changeset 8b1f88d7bfeb (bug 1487287)
Backed out changeset 8fa5e81ad801 (bug 1487287)
Backed out changeset 7a480161fa0f (bug 1474991)
Backed out changeset 80116391b7fe (bug 1446161)
Backed out changeset 1bdf64b29121 (bug 1446161)
Backed out changeset 37bf52f0e9cf (bug 1446161)
Backed out changeset 8ede2ebe6b7a (bug 1496608)
Backed out changeset cea43bc88c7a (bug 1488993)
2018-11-27 08:53:18 +02:00
Jed Davis dececcae11 Bug 1446161 - Asynchronously launch preallocated content processes using MozPromise. r=mccr8
There are several layers to this patch:

1. GeckoChildProcessHost now exposes a promise that's resolved when
the process handle is available (or rejected if launch failed), as a
nonblocking alternative to LaunchAndWaitForProcessHandle.

2. ContentParent builds on this with the private method
LaunchSubprocessAsync and the public method PreallocateProcessAsync;
synchronous launch continues to exist for the regular on-demand launch
path, for the time being.

3. PreallocatedProcessManager now uses async launch, and handles the new
"launch in progress" state appropriately.

Depends on D8942

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:35:53 +00:00
Jed Davis 47d57882cd Bug 1488993 - Fix PreallocatedProcessManager blocker management (v2). r=mconley,smaug
This fixes/adjusts two things about how content process preallocation is blocked:

1. Processes aren't registered as blockers until after they launch
successfully.  The main goal is to not leak a blocker if launch fails,
but we don't need to block *while* launching synchronously, because this
all happens on the main thread.

2. Preallocated processes themselves aren't blockers.  The main goal
here is so that async preallocation doesn't need extra complexity to
avoid being blocked by itself when launch completes.  This mostly
doesn't affect actual behavior, because we currently support at most
one preallocated process.  The difference is the window from when the
process is sent its first PBrowserConstructor until when it's next idle,
where there is now no longer a blocker, but this seems to be relatively
short (~100ms) and we don't even try to launch a new process until at
least 1s + an idle runnable.

This patch does not explicitly RemoveBlocker in ActorDestroy like the
first attempt did, because it's unnecessary: this is handled in the
ipc:content-shutdown observer.

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:06:07 +00:00
Jed Davis 734f735b83 Backed out changeset 933bd1aed20f (bug 1488993) 2018-09-18 12:51:26 -06:00
Jed Davis 020b1f5581 Bug 1488993 - Fix PreallocatedProcessManager blocker handling r=mconley
This makes sure to release blockers (so that content process
preallocation can resume) in error cases, and stops making preallocated
processes themselves blockers, because it's unnecessary (we don't
currently support multiple preallocated processes) and not doing it
means not having to handle those error cases as well.

(Also, in the future we might want to allow the possibility of multiple
concurrent launches if the hardware can support it with acceptable
performance.)

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

--HG--
extra : moz-landing-system : lando
2018-09-14 21:57:57 +00:00
Blake Kaplan 220f89f300 Bug 1431272 - Set the process priority for the preallocated process when it becomes active. r=jimm
This is currently a no-op, but the idea here is to make sure to set the
process to "active" when we're about to use it for something.

MozReview-Commit-ID: 2QUlALhfD4k

--HG--
extra : rebase_source : 13a67e9353bb47593b1394ce7ae7a7b6eef6e381
2018-01-17 17:37:20 -08:00
Ryan VanderMeulen 355897fc22 Backed out changeset cb808626c8df (bug 1424505) because it didn't help with the crashes. r=jimm, a=RyanVM 2018-04-10 16:26:55 -04:00
Jim Mathies fe947defe4 Bug 1424505 - Avoid recycling content process when accessibility is active. r=aklotz
MozReview-Commit-ID: 6rgOzR7qGfS
2018-03-08 19:33:47 -06:00
Gabor Krizsanits 31faf6cf36 Bug 1363601 - Let the ContentParent destroy the preallocated process during shutdown. r=mrbkap
The ContentParent during shutdown waits for the channel to be closed, preventing
any incoming message after the ipc actor was destroyed.
2017-08-08 13:32:57 +02:00
Gabor Krizsanits cb84415a1f Bug 1373660 - Block the preallocated process manager while a content process is being launched. r=mrbkap
We should not let the ppm to do work before the first paint in a new cp. This patch
makes sure that we only let the ppm spawn a new process after the last process reached
an idle state AND the main process becomes idle too.
2017-07-11 17:30:08 +02:00
Bill McCloskey f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Carsten "Tomcat" Book 8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey 6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey 4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Gabor Krizsanits 98fc89bfe4 Bug 1364849 - Recycle short lived content processes. r=mrbkap
To prevent addons or other code to rapidly create and destroy content processes
under various conditions, we let the preallocated process manager to reuse short
lived content processes.
2017-05-30 13:46:41 +02:00
Gabor Krizsanits eb829f971b Bug 1341008 - Use the preallocated process manager by default. r=billm, r=kmag
To mitigate the delay that a new content process startup might cause, when the
browser reaches a non-busy state we attempt to prelaunch an empty content process
in the background that can be grabbed and used the next time we need one. This patch
enables the preallocated process manager by default and attempts to fix all the
issues that prevented us doing this sooner.
2017-05-03 12:00:20 +02:00
Gabor Krizsanits 882d1434a2 Bug 1324428 - Simplified preallocated process manager. r=billm 2017-02-01 13:34:24 +01:00
Ehsan Akhgari 569f181508 Bug 1311149 - Remove the b2g preallocated app support; r=baku 2016-11-16 09:17:35 -05:00
Carsten "Tomcat" Book cfcaf71156 Backed out changeset f1ff6d4dca5f (bug 1311149) 2016-11-16 14:50:40 +01:00
Ehsan Akhgari 0e176830ff Bug 1311149 - Remove the b2g preallocated app support; r=baku 2016-11-15 23:21:28 -05:00
Kan-Ru Chen b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Alexandre Lissy 0af5b943b6 Bug 1284674 - Remove NUWA r=cyu
MozReview-Commit-ID: GyMRNzOBKw6

--HG--
extra : rebase_source : 293af1cd55f2035ce6a99f4ebf144059c32a2b8f
2016-08-02 14:54:00 +02:00
Alexandre Lissy 20b739aeda Bug 1273520 - NS_NewRunnable* renaming and include task.h r=fabrice
MozReview-Commit-ID: BcAboKGMr3a

--HG--
extra : rebase_source : 6c5050527d8dffbce4a5e867bd48254a1041e657
2016-05-18 18:25:35 +02:00
Kyle Huey 941ab1f522 Bug 1268313: Part 7 - Move NS_NewRunnableMethod and friends to mozilla::NewRunnableMethod. r=froydnj 2016-05-05 01:45:00 -07:00
Kyle Huey 44cee0989e Bug 1268313: Part 6 - Replace NewRunnableMethod with NS_NewRunnableMethod. r=froydnj 2016-05-05 01:45:00 -07:00
Thomas Zimmermann 42c137c01d Bug 1268432: Replace |Task| with |Runnable| in B2G code r=fabrice
This patch converts the remaining B2G code from |Task| to |Runnable| and
fixes related API calls. This is a follow-up to bug 1266595.
2016-05-02 10:27:15 -07:00
Carsten "Tomcat" Book de92769e7e Backed out changeset 4bcb784492bb (bug 1268313)
--HG--
extra : rebase_source : f2f752ab73f5bbf31a909892a0fac0f42c894430
2016-04-29 14:21:18 +02:00
Carsten "Tomcat" Book ba3fe0975c Backed out changeset 85ce8cb0639a (bug 1268313)
--HG--
extra : rebase_source : 56d1cf41a2dc4959b67f834e07192a5c772176a8
2016-04-29 14:21:16 +02:00
Kyle Huey 48a594a09e Bug 1268313: Part 7 - Move NS_NewRunnableMethod and friends to mozilla::NewRunnableMethod. r=froydnj 2016-04-28 14:08:25 -07:00
Kyle Huey 12d497cb39 Bug 1268313: Part 6 - Replace NewRunnableMethod with NS_NewRunnableMethod. r=froydnj 2016-04-28 14:08:24 -07:00
Kyle Huey 7579799b01 Bug 1266595: Replace Chromium Task with Runnable. r=froydnj 2016-04-27 17:06:05 -07:00
Birunthan Mohanathas d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda d381b4bca6 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas 373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Birunthan Mohanathas 9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
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
Cervantes Yu cd6468327a Bug 1168337: Kill the processes on startup of the Nuwa test case fix the abort in the preallocated process. r=khuey 2015-10-13 10:58:43 +08:00
Cervantes Yu aa6f91dd67 Bug 1155547, Part 2: Create PNuwa protocol (managed by PBackground) for forking content processes. r=khuey
This allows us to send a sync fork request to the Nuwa process when we need one but there is no
spare process available. After an app is launched, the request to fork a spare process is still
handled asynchronously.

--HG--
extra : rebase_source : 9b692a647f4fc861285d95f0372d6a9913eadf64
2015-07-31 15:25:27 +08:00
Birunthan Mohanathas a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Ting-Yu Chou 14f0c4dbfb Bug 1050122 - Part 2: Disable preallocate when proc loader is not initialized. r=khuey 2014-11-01 13:28:33 +08:00
Andrew McCreight 9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Cervantes Yu 4f02100ffd Backed out 2 changesets (bug 1138620)
Backed out changeset e60b4b01c05d (bug 1138620)
Backed out changeset 52d49dd25d6d (bug 1138620)
2015-04-24 15:05:44 +08:00
Cervantes Yu c8f30e79ea Bug 1138620 - Part 2: Test case for NS_NewUnmonitoredThread(). r=khuey 2015-04-21 18:23:48 +08:00
Cervantes Yu 3a63225876 Bug 1142229, part 1 - Clean up and refactor test cases for the Nuwa process. r=mrbkap 2015-04-09 15:26:49 +08:00
Ehsan Akhgari 883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -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 MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Ehsan Akhgari c2e56cca8e Follow-up to bug 1073081 - Fix the non-unified build bustage 2014-12-13 10:26:22 -05:00