gecko-dev/widget/android/nsIAndroidBridge.idl
Jim Chen ad471d48f6 Bug 1458327 - 1. Pass init-data instead of settings to Window; r=esawin
Instead of passing a live settings object to the native Window, pass a
static initialization data bundle to the Window. The bundle contains
settings at the time of creation. All changes to settings after creation
are updated through events, rather than the live object.

Using a live object between Gecko and UI threads has some drawbacks,
including the need to lock the object, and the fact it won't work with
remote runtimes across processes.

MozReview-Commit-ID: 1DngLfJ0Fnc

--HG--
extra : rebase_source : 05c0ba76ce7f45a02557cc1a30e399682dccd5a7
2018-05-04 21:08:10 -04:00

84 lines
2.7 KiB
Plaintext

/* 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 mozIDOMWindowProxy;
[scriptable, uuid(e8420a7b-659b-4325-968b-a114a6a067aa)]
interface nsIBrowserTab : nsISupports {
readonly attribute mozIDOMWindowProxy window;
};
[scriptable, uuid(08426a73-e70b-4680-9282-630932e2b2bb)]
interface nsIUITelemetryObserver : nsISupports {
void startSession(in wstring name,
in long long timestamp);
void stopSession(in wstring name,
in wstring reason,
in long long timestamp);
void addEvent(in wstring action,
in wstring method,
in long long timestamp,
in wstring extras);
};
[scriptable, uuid(0370450f-2e9c-4d16-b333-8ca6ce31a5ff)]
interface nsIAndroidBrowserApp : nsISupports {
readonly attribute nsIBrowserTab selectedTab;
nsIBrowserTab getBrowserTab(in int32_t tabId);
nsIUITelemetryObserver getUITelemetryObserver();
};
[scriptable, uuid(e64c39b8-b8ec-477d-aef5-89d517ff9219)]
interface nsIAndroidEventCallback : nsISupports
{
void onSuccess([optional] in jsval data);
void onError([optional] in jsval data);
};
[scriptable, function, uuid(819ee2db-d3b8-46dd-a476-40f89c49133c)]
interface nsIAndroidEventFinalizer : nsISupports
{
void onFinalize();
};
[scriptable, function, uuid(73569a75-78eb-4c7f-82b9-2d4f5ccf44c3)]
interface nsIAndroidEventListener : nsISupports
{
void onEvent(in AString event,
[optional] in jsval data,
[optional] in nsIAndroidEventCallback callback);
};
[scriptable, uuid(e98bf792-4145-411e-b298-8219d9b03817)]
interface nsIAndroidEventDispatcher : nsISupports
{
[implicit_jscontext]
void dispatch(in jsval event,
[optional] in jsval data,
[optional] in nsIAndroidEventCallback callback,
[optional] in nsIAndroidEventFinalizer finalizer);
[implicit_jscontext]
void registerListener(in nsIAndroidEventListener listener,
in jsval events);
[implicit_jscontext]
void unregisterListener(in nsIAndroidEventListener listener,
in jsval events);
};
[scriptable, uuid(60a78a94-6117-432f-9d49-304913a931c5)]
interface nsIAndroidView : nsIAndroidEventDispatcher
{
[implicit_jscontext] readonly attribute jsval initData;
};
[scriptable, uuid(1beb70d3-70f3-4742-98cc-a3d301b26c0c)]
interface nsIAndroidBridge : nsIAndroidEventDispatcher
{
attribute nsIAndroidBrowserApp browserApp;
void contentDocumentChanged(in mozIDOMWindowProxy window);
boolean isContentDocumentDisplayed(in mozIDOMWindowProxy window);
};