mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-07 21:43:24 +00:00
0349ad7fd6
Access to a particular named browsing context depends on the caller who is attempting the access. For a call to `parent.open(..., name)`, for instance, it's the privileges of the sub-frame making the open() call that matter, even though the name resolution happens relative to the parent. The current BrowsingContext FindWithName logic always considers only the access of the BrowsingContext it's searching relative to, regardless of the caller, while the corresponding DocShell logic correctly takes the caller into account. This patch updates the APIs to allow passing a specific accessing BrowsingContext, and falls back to the target when one isn't passed (e.g., by WebIDL callers, to which the new parameter is not exposed). Differential Revision: https://phabricator.services.mozilla.com/D40492 --HG-- extra : rebase_source : b9b490c3feac203b3273a7f6f721ed71e41db0d3 extra : histedit_source : d26fe0d4fd962cad76fbf0f1701eff32cb1a9c49
58 lines
1.7 KiB
Plaintext
58 lines
1.7 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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/. */
|
|
|
|
interface nsIDocShell;
|
|
|
|
[Exposed=Window, ChromeOnly]
|
|
interface BrowsingContext {
|
|
static BrowsingContext? get(unsigned long long aId);
|
|
|
|
static BrowsingContext? getFromWindow(WindowProxy window);
|
|
|
|
BrowsingContext? findChildWithName(DOMString name, BrowsingContext accessor);
|
|
BrowsingContext? findWithName(DOMString name, BrowsingContext accessor);
|
|
|
|
readonly attribute DOMString name;
|
|
|
|
readonly attribute BrowsingContext? parent;
|
|
|
|
readonly attribute BrowsingContext top;
|
|
|
|
sequence<BrowsingContext> getChildren();
|
|
|
|
readonly attribute nsIDocShell? docShell;
|
|
|
|
readonly attribute Element? embedderElement;
|
|
|
|
readonly attribute unsigned long long id;
|
|
|
|
readonly attribute BrowsingContext? opener;
|
|
|
|
readonly attribute BrowsingContextGroup group;
|
|
};
|
|
|
|
[Exposed=Window, ChromeOnly]
|
|
interface CanonicalBrowsingContext : BrowsingContext {
|
|
sequence<WindowGlobalParent> getWindowGlobals();
|
|
|
|
readonly attribute WindowGlobalParent? currentWindowGlobal;
|
|
|
|
// XXX(nika): This feels kinda hacky, but will do for now while we don't
|
|
// synchronously create WindowGlobalParent. It can throw if somehow the
|
|
// content process has died.
|
|
[Throws]
|
|
readonly attribute DOMString? currentRemoteType;
|
|
|
|
readonly attribute WindowGlobalParent? embedderWindowGlobal;
|
|
|
|
void notifyStartDelayedAutoplayMedia();
|
|
void notifyMediaMutedChanged(boolean muted);
|
|
};
|
|
|
|
[Exposed=Window, ChromeOnly]
|
|
interface BrowsingContextGroup {
|
|
sequence<BrowsingContext> getToplevels();
|
|
};
|