Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: base/test/android/java/src/org/chromium/base/MultiprocessTestClientService.java

Issue 2765453004: Moving FileDescriptorInfo from content/ to base/. (Closed)
Patch Set: Synced. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.base; 5 package org.chromium.base;
6 6
7 import android.app.Service; 7 import android.app.Service;
8 import android.content.Intent; 8 import android.content.Intent;
9 import android.os.Handler; 9 import android.os.Handler;
10 import android.os.IBinder; 10 import android.os.IBinder;
11 import android.os.Process; 11 import android.os.Process;
12 12
13 import org.chromium.base.annotations.SuppressFBWarnings; 13 import org.chromium.base.annotations.SuppressFBWarnings;
14 import org.chromium.base.library_loader.LibraryLoader; 14 import org.chromium.base.library_loader.LibraryLoader;
15 import org.chromium.base.library_loader.LibraryProcessType; 15 import org.chromium.base.library_loader.LibraryProcessType;
16 import org.chromium.base.library_loader.ProcessInitException; 16 import org.chromium.base.library_loader.ProcessInitException;
17 import org.chromium.base.process_launcher.FileDescriptorInfo;
17 import org.chromium.native_test.MainRunner; 18 import org.chromium.native_test.MainRunner;
18 19
19 import javax.annotation.concurrent.GuardedBy; 20 import javax.annotation.concurrent.GuardedBy;
20 21
21 /** 22 /**
22 * The service implementation used to host all multiprocess test client code. 23 * The service implementation used to host all multiprocess test client code.
23 */ 24 */
24 public class MultiprocessTestClientService extends Service { 25 public class MultiprocessTestClientService extends Service {
25 private static final String TAG = "cr_TestClient"; 26 private static final String TAG = "cr_TestClient";
26 27
27 private static boolean sAlreadyInitialized = false; 28 private static boolean sAlreadyInitialized = false;
28 29
29 private final Handler mHandler = new Handler(); 30 private final Handler mHandler = new Handler();
30 31
31 private final Object mResultLock = new Object(); 32 private final Object mResultLock = new Object();
32 33
33 @GuardedBy("mResultLock") 34 @GuardedBy("mResultLock")
34 private MainReturnCodeResult mResult; 35 private MainReturnCodeResult mResult;
35 36
36 private final ITestClient.Stub mBinder = new ITestClient.Stub() { 37 private final ITestClient.Stub mBinder = new ITestClient.Stub() {
37 @Override 38 @Override
38 public int launch(final String[] commandLine, FileDescriptorInfo[] fdsTo Map) { 39 public int launch(final String[] commandLine, FileDescriptorInfo[] fdsTo Map) {
39 final int[] fdKeys = new int[fdsToMap.length]; 40 final int[] fdKeys = new int[fdsToMap.length];
40 final int[] fdFds = new int[fdsToMap.length]; 41 final int[] fdFds = new int[fdsToMap.length];
41 for (int i = 0; i < fdsToMap.length; i++) { 42 for (int i = 0; i < fdsToMap.length; i++) {
42 fdKeys[i] = fdsToMap[i].key; 43 fdKeys[i] = fdsToMap[i].id;
43 // Take ownership of the file descriptor so they outlive the Fil eDescriptorInfo 44 // Take ownership of the file descriptor so they outlive the Fil eDescriptorInfo
44 // instances. Native code will own them. 45 // instances. Native code will own them.
45 fdFds[i] = fdsToMap[i].fd.detachFd(); 46 fdFds[i] = fdsToMap[i].fd.detachFd();
46 } 47 }
47 // Don't run main directly, it would block and the response would no t be returned. 48 // Don't run main directly, it would block and the response would no t be returned.
48 // We post to the main thread as this thread does not have a Looper. 49 // We post to the main thread as this thread does not have a Looper.
49 mHandler.post(new Runnable() { 50 mHandler.post(new Runnable() {
50 @Override 51 @Override
51 public void run() { 52 public void run() {
52 int result = MainRunner.runMain(commandLine, fdKeys, fdFds); 53 int result = MainRunner.runMain(commandLine, fdKeys, fdFds);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 mResultLock.notifyAll(); 135 mResultLock.notifyAll();
135 } 136 }
136 } 137 }
137 138
138 private static void markInitialized() { 139 private static void markInitialized() {
139 // We don't set sAlreadyInitialized directly in onCreate to avoid FindBu gs complaining about 140 // We don't set sAlreadyInitialized directly in onCreate to avoid FindBu gs complaining about
140 // a static member been set from a non-static function. 141 // a static member been set from a non-static function.
141 sAlreadyInitialized = true; 142 sAlreadyInitialized = true;
142 } 143 }
143 } 144 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698