Chromium Code Reviews
Description[Chromoting] Refactored worker process launching code and speeded up the desktop process launch.
This CL reduces time needed to start the desktop process in the user's session. The speed up is archieved by:
- Not using elevation on Win7 and below. Elevation is still required on Win8 in order to be able to inject Alt+Tab.
- If a launch attempt failed because of the job object not being ready, it is retried immediately after the job object is fully initialized.
- The initial delay when retrying a failed launch attempt reduced to 100ms.
Refactoring changes:
- Converted WorkerProcessLauncher classes into a single-threaded, synchronous class.
- Refactored and cleaned up the WorkerProcessLauncher::Delegate interface. The delegate can now launch the worker process asynchronously. Asynchronous events are reported by calling methods of WorkerProcessLauncher.
- WtsSessionProcessDelegate now uses GetNamedPipeClientProcessId() function to obtain the client's PID. The job object is still used to contain worker processes if there are more than one.
- WorkerProcessLauncher now limits time the worker process should start and connect back to 5 seconds.
- Handling of permanent exits codes was moved to WorkerProcessLauncher.
- WorkerProcessLauncher::Delegate now exposes the worker's handle instead of PID.
BUG=238821
TEST=remoting_unittests.WorkerProcessLauncherTest.*
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=200942
Patch Set 1 #
Total comments: 34
Patch Set 2 : CR feedback. #Patch Set 3 : - #
Total comments: 15
Patch Set 4 : CR feedback #2 #Patch Set 5 : rebased #Messages
Total messages: 11 (0 generated)
|