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);
};
|