summaryrefslogtreecommitdiffstats
path: root/mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/process/IChildProcess.aidl
blob: 0ae346e3b8fe7903d4925b60a2931cca9a0aeb53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.mozilla.gecko.process;

import org.mozilla.gecko.gfx.ICompositorSurfaceManager;
import org.mozilla.gecko.gfx.ISurfaceAllocator;
import org.mozilla.gecko.process.IProcessManager;

import android.os.Bundle;
import android.os.ParcelFileDescriptor;

interface IChildProcess {
    /** The process started correctly. */
    const int STARTED_OK = 0;
    /** An error occurred when trying to start this process. */
    const int STARTED_FAIL = 1;
    /** This process is being used elsewhere and cannot start. */
    const int STARTED_BUSY = 2;

    int getPid();
    int start(in IProcessManager procMan,
              in String mainProcessId,
              in String[] args,
              in Bundle extras,
              int flags,
              in String userSerialNumber,
              in String crashHandlerService,
              in ParcelFileDescriptor prefsPfd,
              in ParcelFileDescriptor prefMapPfd,
              in ParcelFileDescriptor ipcPfd,
              in ParcelFileDescriptor crashReporterPfd,
              in ParcelFileDescriptor crashAnnotationPfd);

    void crash();

    /** Must only be called for a GPU child process type. */
    ICompositorSurfaceManager getCompositorSurfaceManager();

    /**
     * Returns the interface that other processes should use to allocate Surfaces to be
     * consumed by the GPU process. Must only be called for a GPU child process type.
     * @param allocatorId A unique ID used to identify the GPU process instance the allocator
     *     belongs to.
     */
    ISurfaceAllocator getSurfaceAllocator(int allocatorId);
}