Auto merge of #11214 - farodin91:windowproxy, r=jdm

Support WindowProxy return values in bindings

Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data:
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy --faster` does not report any errors
- [x] These changes fix #10965 (github issue number if applicable).

Either:
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11214)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-06-10 10:53:35 -05:00 committed by GitHub
commit 08a55e2951
11 changed files with 69 additions and 61 deletions

View file

@ -159,16 +159,16 @@ interface BrowserElementPrivileged {
// unsigned long count,
// unsigned long modifiers);
[Func="Window::global_is_mozbrowser", Throws]
[Func="::dom::window::Window::global_is_mozbrowser", Throws]
void goBack();
[Func="Window::global_is_mozbrowser", Throws]
[Func="::dom::window::Window::global_is_mozbrowser", Throws]
void goForward();
[Func="Window::global_is_mozbrowser", Throws]
[Func="::dom::window::Window::global_is_mozbrowser", Throws]
void reload(optional boolean hardReload = false);
[Func="Window::global_is_mozbrowser", Throws]
[Func="::dom::window::Window::global_is_mozbrowser", Throws]
void stop();
//[Throws,

View file

@ -13,8 +13,7 @@ interface HTMLIFrameElement : HTMLElement {
attribute DOMString width;
attribute DOMString height;
readonly attribute Document? contentDocument;
//readonly attribute WindowProxy? contentWindow;
readonly attribute Window? contentWindow;
readonly attribute WindowProxy? contentWindow;
// also has obsolete members
};
@ -31,7 +30,7 @@ partial interface HTMLIFrameElement {
};
partial interface HTMLIFrameElement {
[Func="Window::global_is_mozbrowser"]
[Func="::dom::window::Window::global_is_mozbrowser"]
attribute boolean mozbrowser;
};

View file

@ -6,10 +6,8 @@
[PrimaryGlobal]
/*sealed*/ interface Window : EventTarget {
// the current browsing context
//[Unforgeable] readonly attribute WindowProxy window;
//[Replaceable] readonly attribute WindowProxy self;
readonly attribute Window window;
[BinaryName="Self_"] readonly attribute Window self;
[Unforgeable] readonly attribute WindowProxy window;
[BinaryName="Self_", Replaceable] readonly attribute WindowProxy self;
[Unforgeable] readonly attribute Document document;
// attribute DOMString name;
[/*PutForwards=href, */Unforgeable] readonly attribute Location location;
@ -28,14 +26,11 @@
//void blur();
// other browsing contexts
//[Replaceable] readonly attribute WindowProxy frames;
readonly attribute Window frames;
[Replaceable] readonly attribute WindowProxy frames;
//[Replaceable] readonly attribute unsigned long length;
//[Unforgeable] readonly attribute WindowProxy top;
readonly attribute Window top;
[Unforgeable] readonly attribute WindowProxy top;
// attribute any opener;
//readonly attribute WindowProxy parent;
readonly attribute Window parent;
readonly attribute WindowProxy parent;
readonly attribute Element? frameElement;
//WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank",
// optional DOMString features = "", optional boolean replace = false);
@ -65,6 +60,9 @@
Window implements GlobalEventHandlers;
Window implements WindowEventHandlers;
[NoInterfaceObject]
interface WindowProxy {};
// https://html.spec.whatwg.org/multipage/#timers
[NoInterfaceObject/*, Exposed=Window,Worker*/]
interface WindowTimers {