Auto merge of #20702 - servo:window-mixins, r=SimonSapin,nox

Implement WindowOrWorkerGlobalScope.origin

This is needed for the next WPT sync.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20702)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-04-27 12:34:58 -04:00 committed by GitHub
commit b4c86d3eba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
191 changed files with 4808 additions and 1988 deletions

View file

@ -75,28 +75,6 @@ Window implements WindowEventHandlers;
[NoInterfaceObject]
interface WindowProxy {};
// https://html.spec.whatwg.org/multipage/#timers
[NoInterfaceObject, Exposed=(Window,Worker)]
interface WindowTimers {
long setTimeout(Function handler, optional long timeout = 0, any... arguments);
long setTimeout(DOMString handler, optional long timeout = 0, any... arguments);
void clearTimeout(optional long handle = 0);
long setInterval(Function handler, optional long timeout = 0, any... arguments);
long setInterval(DOMString handler, optional long timeout = 0, any... arguments);
void clearInterval(optional long handle = 0);
};
Window implements WindowTimers;
// https://html.spec.whatwg.org/multipage/#atob
[NoInterfaceObject, Exposed=(Window,Worker)]
interface WindowBase64 {
[Throws]
DOMString btoa(DOMString btoa);
[Throws]
DOMString atob(DOMString atob);
};
Window implements WindowBase64;
// https://html.spec.whatwg.org/multipage/#Window-partial
partial interface Window {
void captureEvents();

View file

@ -4,21 +4,26 @@
// https://html.spec.whatwg.org/multipage/#windoworworkerglobalscope
// FIXME(nox): https://github.com/servo/servo/issues/20700
// typedef (DOMString or Function) TimerHandler;
[NoInterfaceObject, Exposed=(Window,Worker)]
interface WindowOrWorkerGlobalScope {
// [Replaceable] readonly attribute USVString origin;
[Replaceable] readonly attribute USVString origin;
// base64 utility methods
// DOMString btoa(DOMString data);
// DOMString atob(DOMString data);
[Throws] DOMString btoa(DOMString data);
[Throws] DOMString atob(DOMString data);
// timers
// long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
// void clearTimeout(optional long handle = 0);
// long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments);
// void clearInterval(optional long handle = 0);
// FIXME(nox): https://github.com/servo/servo/issues/20700
long setTimeout(Function handler, optional long timeout = 0, any... arguments);
long setTimeout(DOMString handler, optional long timeout = 0, any... arguments);
void clearTimeout(optional long handle = 0);
// FIXME(nox): https://github.com/servo/servo/issues/20700
long setInterval(Function handler, optional long timeout = 0, any... arguments);
long setInterval(DOMString handler, optional long timeout = 0, any... arguments);
void clearInterval(optional long handle = 0);
// ImageBitmap
// Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options);

View file

@ -22,5 +22,3 @@ partial interface WorkerGlobalScope { // not obsolete
void importScripts(DOMString... urls);
readonly attribute WorkerNavigator navigator;
};
WorkerGlobalScope implements WindowTimers;
WorkerGlobalScope implements WindowBase64;

View file

@ -22,7 +22,7 @@ use dom::bindings::num::Finite;
use dom::bindings::refcounted::Trusted;
use dom::bindings::reflector::DomObject;
use dom::bindings::root::{Dom, DomRoot, MutNullableDom};
use dom::bindings::str::DOMString;
use dom::bindings::str::{DOMString, USVString};
use dom::bindings::structuredclone::StructuredCloneData;
use dom::bindings::trace::RootedTraceableBox;
use dom::bindings::utils::{GlobalStaticData, WindowProxyHandler};
@ -1038,6 +1038,11 @@ impl WindowMethods for Window {
fn Name(&self) -> DOMString {
self.window_proxy().get_name()
}
// https://html.spec.whatwg.org/multipage/#dom-origin
fn Origin(&self) -> USVString {
USVString(self.origin().immutable().ascii_serialization())
}
}
impl Window {

View file

@ -12,7 +12,7 @@ use dom::bindings::inheritance::Castable;
use dom::bindings::reflector::DomObject;
use dom::bindings::root::{DomRoot, MutNullableDom};
use dom::bindings::settings_stack::AutoEntryScript;
use dom::bindings::str::DOMString;
use dom::bindings::str::{DOMString, USVString};
use dom::bindings::trace::RootedTraceableBox;
use dom::crypto::Crypto;
use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope;
@ -328,6 +328,11 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
self.navigation_start_precise)
})
}
// https://html.spec.whatwg.org/multipage/#dom-origin
fn Origin(&self) -> USVString {
USVString(self.upcast::<GlobalScope>().origin().immutable().ascii_serialization())
}
}