summaryrefslogtreecommitdiffstats
path: root/services/fxaccounts/rust-bridge/mozIFirefoxAccountsBridge.idl
blob: f896242448dfd072f4dd0b8dc89a9c8faa44f1fb (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
49
50
51
52
53
54
55
56
57
58
/* 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/. */

#include "nsISupports.idl"

interface nsIPropertyBag;
interface nsIVariant;

// A generic callback called with a result. Variants are automatically unboxed
// in JavaScript: for example, a `UTF8String` will be passed as a string
// argument; an `Int32` or `Int64` as a number. Methods that don't return a
// value will pass a `null` variant to `handleSuccess`.
// For all callback types in this file, either `handleSuccess`
// or `handleError` is guaranteed to be called once.
[uuid(341b13a2-d121-4799-9870-9900861d98a0), scriptable]
interface mozIFirefoxAccountsBridgeCallback : nsISupports {
    void handleSuccess(in nsIVariant result);
    void handleError(in nsresult code, in AUTF8String message);
};

[uuid(f33d083c-7443-11ea-bc8c-a517fc2ca371), scriptable]
interface mozIFirefoxAccountsBridge : nsISupports {
    void init(in nsIPropertyBag options);
    void initFromJSON(in AUTF8String json);
    void stateJSON(in mozIFirefoxAccountsBridgeCallback callback);

    void beginOAuthFlow(in Array<AUTF8String> scopes, in AUTF8String entryPoint, in mozIFirefoxAccountsBridgeCallback callback);
    void completeOAuthFlow(in AUTF8String code, in AUTF8String state, in mozIFirefoxAccountsBridgeCallback callback);
    void disconnect(in mozIFirefoxAccountsBridgeCallback callback);

    void getAccessToken(in AUTF8String scope, in unsigned long long ttl, in mozIFirefoxAccountsBridgeCallback callback);
    void getSessionToken(in mozIFirefoxAccountsBridgeCallback callback);
    void getAttachedClients(in mozIFirefoxAccountsBridgeCallback callback);
    void checkAuthorizationStatus(in mozIFirefoxAccountsBridgeCallback callback);
    void clearAccessTokenCache(in mozIFirefoxAccountsBridgeCallback callback);
    void handleSessionTokenChange(in AUTF8String sessionToken, in mozIFirefoxAccountsBridgeCallback callback);

    void migrateFromSessionToken(in AUTF8String sessionToken, in AUTF8String kSync, in AUTF8String kXCS, in boolean copySessionToken, in mozIFirefoxAccountsBridgeCallback callback);
    void retryMigrateFromSessionToken(in mozIFirefoxAccountsBridgeCallback callback);
    void isInMigrationState(in mozIFirefoxAccountsBridgeCallback callback);

    void getProfile(in boolean ignoreCache, in mozIFirefoxAccountsBridgeCallback callback);

    void getTokenServerEndpointURL(in mozIFirefoxAccountsBridgeCallback callback);
    void getConnectionSuccessURL(in mozIFirefoxAccountsBridgeCallback callback);
    void getManageAccountURL(in AUTF8String entrypoint, in mozIFirefoxAccountsBridgeCallback callback);
    void getManageDevicesURL(in AUTF8String entrypoint, in mozIFirefoxAccountsBridgeCallback callback);

    void fetchDevices(in boolean ignoreCache, in mozIFirefoxAccountsBridgeCallback callback);
    void setDeviceDisplayName(in AUTF8String name, in mozIFirefoxAccountsBridgeCallback callback);
    void handlePushMessage(in AUTF8String payload, in mozIFirefoxAccountsBridgeCallback callback);
    void pollDeviceCommands(in mozIFirefoxAccountsBridgeCallback callback);
    void sendSingleTab(in AUTF8String targetId, in AUTF8String title, in AUTF8String url, in mozIFirefoxAccountsBridgeCallback callback);
    void setDevicePushSubscription(in AUTF8String endpoint, in AUTF8String publicKey, in AUTF8String authKey, in mozIFirefoxAccountsBridgeCallback callback);
    void initializeDevice(in AUTF8String name, in AUTF8String deviceType, in Array<AUTF8String> supportedCapabilities, in mozIFirefoxAccountsBridgeCallback callback);
    void ensureCapabilities(in Array<AUTF8String> supportedCapabilities, in mozIFirefoxAccountsBridgeCallback callback);
};