description

# Window class Null safety

Top-level container for the current browser tab or window.

In a web browser, each window has a Window object, but within the context of a script, this object represents only the current window. Each other window, tab, and iframe has its own Window object.

Each window contains a Document object, which contains all of the window's content.

Use the top-level `window` object to access the current window. For example:

    // Draw a scene when the window repaints.
    drawScene(num delta) {...}
    window.animationFrame.then(drawScene);.

    // Write to the console.
    window.console.log('Jinkies!');
    window.console.error('Jeepers!');

Note: This class represents only the current window, while WindowBase is a representation of any window, including other tabs, windows, and frames.

## See also

- WindowBase

## Other resources

- DOM Window from MDN.
- Window from the W3C.

Inheritance
  - Object
  - EventTarget
  - Window
Implemented types
  - WindowEventHandlers
  - WindowBase
  - GlobalEventHandlers
  - WindowBase64
Annotations
  - @Native("Window,DOMWindow")

## Properties

animationFrame → Future<num>
  Returns a Future that completes just before the window is about to repaint so the user can draw an animation frame. [...]
  read-only
animationWorklet → _Worklet?
  read-only
applicationCache → ApplicationCache?
  The application cache for this window. [...]
  read-only
audioWorklet → _Worklet?
  read-only
caches → CacheStorage?
  read-only
closed → bool?
  Indicates whether this window has been closed. [...]
  read-only, override
console → Console
  The debugging console for this window.
  read-only
cookieStore → CookieStore?
  read-only
crypto → Crypto?
  Entrypoint for the browser's cryptographic functions. [...]
  read-only
customElements → CustomElementRegistry?
  read-only
defaultStatus ↔ String?
  Deprecated.
  read / write
defaultstatus ↔ String?
  Deprecated.
  read / write
devicePixelRatio → num
  The ratio between physical pixels and logical CSS pixels. [...]
  read-only
document → Document
  The newest document in this window. [...]
  read-only
external → External?
  read-only
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
history → History
  The current session history for this window's newest document. [...]
  read-only, override
indexedDB → IdbFactory?
  Gets an instance of the Indexed DB factory to being using Indexed DB. [...]
  @SupportedBrowser(SupportedBrowser.CHROME, '23.0'), @SupportedBrowser(SupportedBrowser.FIREFOX, '15.0'), @SupportedBrowser(SupportedBrowser.IE, '10.0'), read-only
innerHeight → int?
  The height of the viewport including scrollbars. [...]
  read-only
innerWidth → int?
  The width of the viewport including scrollbars. [...]
  read-only
isSecureContext → bool?
  read-only
localStorage → Storage
  Storage for this window that persists across sessions. [...]
  read-only
location ↔ Location
  The current location of this window. [...]
  read / write, override-getter
locationbar → BarProp?
  This window's location bar, which displays the URL. [...]
  read-only
menubar → BarProp?
  This window's menu bar, which displays menu commands. [...]
  read-only
name ↔ String?
  The name of this window. [...]
  read / write
navigator → Navigator
  The user agent accessing this window. [...]
  read-only
offscreenBuffering → bool?
  Whether objects are drawn offscreen before being displayed. [...]
  read-only
on → Events
  This is an ease-of-use accessor for event streams which should only be used when an explicit accessor is not available.
  read-only, inherited
onAbort → Stream<Event>
  Stream of `abort` events handled by this Window.
  read-only, override
onAnimationEnd → Stream<AnimationEvent>
  Stream of `animationend` events handled by this Window.
  read-only
onAnimationIteration → Stream<AnimationEvent>
  Stream of `animationiteration` events handled by this Window.
  read-only
onAnimationStart → Stream<AnimationEvent>
  Stream of `animationstart` events handled by this Window.
  read-only
onBeforeUnload → Stream<Event>
  Stream of `beforeunload` events handled by this Window.
  read-only
onBlur → Stream<Event>
  Stream of `blur` events handled by this Window.
  read-only, override
onCanPlay → Stream<Event>
  read-only, override
onCanPlayThrough → Stream<Event>
  read-only, override
onChange → Stream<Event>
  Stream of `change` events handled by this Window.
  read-only, override
onClick → Stream<MouseEvent>
  Stream of `click` events handled by this Window.
  read-only, override
onContentLoaded → Stream<Event>
  Stream of `contentloaded` events handled by this Window.
  read-only
onContextMenu → Stream<MouseEvent>
  Stream of `contextmenu` events handled by this Window.
  read-only, override
onDeviceMotion → Stream<DeviceMotionEvent>
  Stream of `devicemotion` events handled by this Window.
  read-only
onDeviceOrientation → Stream<DeviceOrientationEvent>
  Stream of `deviceorientation` events handled by this Window.
  read-only
onDoubleClick → Stream<Event>
  Stream of `doubleclick` events handled by this Window.
  @DomName('Window.ondblclick'), read-only, override
onDrag → Stream<MouseEvent>
  Stream of `drag` events handled by this Window.
  read-only, override
onDragEnd → Stream<MouseEvent>
  Stream of `dragend` events handled by this Window.
  read-only, override
onDragEnter → Stream<MouseEvent>
  Stream of `dragenter` events handled by this Window.
  read-only, override
onDragLeave → Stream<MouseEvent>
  Stream of `dragleave` events handled by this Window.
  read-only, override
onDragOver → Stream<MouseEvent>
  Stream of `dragover` events handled by this Window.
  read-only, override
onDragStart → Stream<MouseEvent>
  Stream of `dragstart` events handled by this Window.
  read-only, override
onDrop → Stream<MouseEvent>
  Stream of `drop` events handled by this Window.
  read-only, override
onDurationChange → Stream<Event>
  read-only, override
onEmptied → Stream<Event>
  read-only, override
onEnded → Stream<Event>
  read-only, override
onError → Stream<Event>
  Stream of `error` events handled by this Window.
  read-only, override
onFocus → Stream<Event>
  Stream of `focus` events handled by this Window.
  read-only, override
onHashChange → Stream<Event>
  Stream of `hashchange` events handled by this Window.
  read-only, override
onInput → Stream<Event>
  Stream of `input` events handled by this Window.
  read-only, override
onInvalid → Stream<Event>
  Stream of `invalid` events handled by this Window.
  read-only, override
onKeyDown → Stream<KeyboardEvent>
  Stream of `keydown` events handled by this Window.
  read-only, override
onKeyPress → Stream<KeyboardEvent>
  Stream of `keypress` events handled by this Window.
  read-only, override
onKeyUp → Stream<KeyboardEvent>
  Stream of `keyup` events handled by this Window.
  read-only, override
onLoad → Stream<Event>
  Stream of `load` events handled by this Window.
  read-only, override
onLoadedData → Stream<Event>
  read-only, override
onLoadedMetadata → Stream<Event>
  read-only, override
onLoadStart → Stream<Event>
  read-only
onMessage → Stream<MessageEvent>
  Stream of `message` events handled by this Window.
  read-only, override
onMouseDown → Stream<MouseEvent>
  Stream of `mousedown` events handled by this Window.
  read-only, override
onMouseEnter → Stream<MouseEvent>
  Stream of `mouseenter` events handled by this Window.
  read-only, override
onMouseLeave → Stream<MouseEvent>
  Stream of `mouseleave` events handled by this Window.
  read-only, override
onMouseMove → Stream<MouseEvent>
  Stream of `mousemove` events handled by this Window.
  read-only, override
onMouseOut → Stream<MouseEvent>
  Stream of `mouseout` events handled by this Window.
  read-only, override
onMouseOver → Stream<MouseEvent>
  Stream of `mouseover` events handled by this Window.
  read-only, override
onMouseUp → Stream<MouseEvent>
  Stream of `mouseup` events handled by this Window.
  read-only, override
onMouseWheel → Stream<WheelEvent>
  Stream of `mousewheel` events handled by this Window.
  read-only, override
onOffline → Stream<Event>
  Stream of `offline` events handled by this Window.
  read-only, override
onOnline → Stream<Event>
  Stream of `online` events handled by this Window.
  read-only, override
onPageHide → Stream<Event>
  Stream of `pagehide` events handled by this Window.
  read-only
onPageShow → Stream<Event>
  Stream of `pageshow` events handled by this Window.
  read-only
onPause → Stream<Event>
  read-only, override
onPlay → Stream<Event>
  read-only, override
onPlaying → Stream<Event>
  read-only, override
onPopState → Stream<PopStateEvent>
  Stream of `popstate` events handled by this Window.
  read-only, override
onProgress → Stream<Event>
  read-only
onRateChange → Stream<Event>
  read-only, override
onReset → Stream<Event>
  Stream of `reset` events handled by this Window.
  read-only, override
onResize → Stream<Event>
  Stream of `resize` events handled by this Window.
  read-only, override
onScroll → Stream<Event>
  Stream of `scroll` events handled by this Window.
  read-only, override
onSearch → Stream<Event>
  Stream of `search` events handled by this Window.
  read-only
onSeeked → Stream<Event>
  read-only, override
onSeeking → Stream<Event>
  read-only, override
onSelect → Stream<Event>
  Stream of `select` events handled by this Window.
  read-only, override
onStalled → Stream<Event>
  read-only, override
onStorage → Stream<StorageEvent>
  Stream of `storage` events handled by this Window.
  read-only, override
onSubmit → Stream<Event>
  Stream of `submit` events handled by this Window.
  read-only, override
onSuspend → Stream<Event>
  read-only, override
onTimeUpdate → Stream<Event>
  read-only, override
onTouchCancel → Stream<TouchEvent>
  Stream of `touchcancel` events handled by this Window.
  read-only, override
onTouchEnd → Stream<TouchEvent>
  Stream of `touchend` events handled by this Window.
  read-only, override
onTouchMove → Stream<TouchEvent>
  Stream of `touchmove` events handled by this Window.
  read-only, override
onTouchStart → Stream<TouchEvent>
  Stream of `touchstart` events handled by this Window.
  read-only, override
onTransitionEnd → Stream<TransitionEvent>
  Stream of `transitionend` events handled by this Window.
  read-only
onUnload → Stream<Event>
  Stream of `unload` events handled by this Window.
  read-only, override
onVolumeChange → Stream<Event>
  read-only, override
onWaiting → Stream<Event>
  read-only, override
onWheel → Stream<WheelEvent>
  Stream of `wheel` events handled by this Window.
  read-only, override
opener ↔ WindowBase?
  A reference to the window that opened this one. [...]
  read / write, override-getter
orientation → int?
  read-only
origin → String?
  read-only
outerHeight → int
  The height of this window including all user interface elements. [...]
  read-only
outerWidth → int
  The width of the window including all user interface elements. [...]
  read-only
pageXOffset → int
  read-only
pageYOffset → int
  read-only
parent → WindowBase?
  A reference to the parent of this window. [...]
  read-only, override
performance → Performance
  Timing and navigation data for this window. [...]
  @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE), read-only
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited
screen → Screen?
  Information about the screen displaying this window. [...]
  read-only
screenLeft → int?
  The distance from the left side of the screen to the left side of this window. [...]
  read-only
screenTop → int?
  The distance from the top of the screen to the top of this window. [...]
  read-only
screenX → int?
  The distance from the left side of the screen to the mouse pointer. [...]
  read-only
screenY → int?
  The distance from the top of the screen to the mouse pointer. [...]
  read-only
scrollbars → BarProp?
  This window's scroll bars. [...]
  read-only
scrollX → int
  The distance this window has been scrolled horizontally. [...]
  read-only
scrollY → int
  The distance this window has been scrolled vertically. [...]
  read-only
self → WindowBase?
  The current window. [...]
  read-only
sessionStorage → Storage
  Storage for this window that is cleared when this session ends. [...]
  read-only
speechSynthesis → SpeechSynthesis?
  Access to speech synthesis in the browser. [...]
  read-only
status ↔ String?
  Deprecated.
  read / write
statusbar → BarProp?
  This window's status bar. [...]
  read-only
styleMedia → StyleMedia?
  Access to CSS media queries. [...]
  read-only
toolbar → BarProp?
  This window's tool bar. [...]
  read-only
top → WindowBase?
  A reference to the topmost window in the window hierarchy. [...]
  read-only, override
visualViewport → VisualViewport?
  read-only
window → WindowBase?
  The current window. [...]
  read-only

## Methods

addEventListener(String type, EventListener? listener, [bool? useCapture]) → void
  inherited
alert([String? message]) → void
  Displays a modal alert to the user. [...]
atob(String atob) → String
  override
btoa(String btoa) → String
  override
cancelAnimationFrame(int id) → void
  Cancels an animation frame request. [...]
cancelIdleCallback(int handle) → void
close() → void
  Closes the window. [...]
  override
confirm([String? message]) → bool
  Displays a modal OK/Cancel prompt to the user. [...]
dispatchEvent(Event event) → bool
  inherited
fetch(dynamic input, [Map? init]) → Future
find(String? string, bool? caseSensitive, bool? backwards, bool? wrap, bool? wholeWord, bool? searchInFrames, bool? showDialog) → bool
  Finds text in this window. [...]
getComputedStyleMap(Element element, String? pseudoElement) → StylePropertyMapReadonly
getMatchedCssRules(Element? element, String? pseudoElement) → List<CssRule>
  Returns all CSS rules that apply to the element's pseudo-element.
  @Creates('_CssRuleList'), @JSName('getMatchedCSSRules'), @Returns('_CssRuleList')
getSelection() → Selection?
  Returns the currently selected text. [...]
matchMedia(String query) → MediaQueryList
  Returns a list of media queries for the given query string. [...]
moveBy(int x, int y) → void
  Moves this window. [...]
moveTo(Point<num> p) → void
  Moves this window to a specific position. [...]
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
open(String url, String name, [String? options]) → WindowBase
  Opens a new window. [...]
openDatabase(String name, String version, String displayName, int estimatedSize, [DatabaseCallback? creationCallback]) → SqlDatabase
  @Creates('SqlDatabase'), @JSName('openDatabase'), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.SAFARI)
postMessage(dynamic message, String targetOrigin, [List<Object>? transfer]) → void
  Sends a cross-origin message. [...]
  override
print() → void
  Opens the print dialog for this window. [...]
removeEventListener(String type, EventListener? listener, [bool? useCapture]) → void
  inherited
requestAnimationFrame(FrameRequestCallback callback) → int
  Called to draw an animation frame and then request the window to repaint after `callback` has finished (creating the animation). [...]
requestFileSystem(int size, {bool persistent: false}) → Future<FileSystem>
  Access a sandboxed file system of `size` bytes. [...]
requestIdleCallback(IdleRequestCallback callback, [Map? options]) → int
resizeBy(int x, int y) → void
  Resizes this window by an offset. [...]
resizeTo(int x, int y) → void
  Resizes this window to a specific width and height. [...]
resolveLocalFileSystemUrl(String url) → Future<Entry>
  Asynchronously retrieves a local filesystem entry. [...]
  @JSName('webkitResolveLocalFileSystemURL'), @SupportedBrowser(SupportedBrowser.CHROME)
scroll([dynamic options_OR_x, dynamic y, Map? scrollOptions]) → void
  Scrolls the page horizontally and vertically to a specific point. [...]
scrollBy([dynamic options_OR_x, dynamic y, Map? scrollOptions]) → void
  Scrolls the page horizontally and vertically by an offset. [...]
scrollTo([dynamic options_OR_x, dynamic y, Map? scrollOptions]) → void
  Scrolls the page horizontally and vertically to a specific point. [...]
stop() → void
  Stops the window from loading. [...]
toString() → String
  Returns a string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator. [...]
  inherited

## Static Properties

supportsPointConversions → bool
  convertPointFromNodeToPage and convertPointFromPageToNode are removed. see http://dev.w3.org/csswg/cssom-view/#geometry
  read-only

## Constants

animationEndEvent → const EventStreamProvider<AnimationEvent>
  Static factory designed to expose `animationend` events to event handlers that are not necessarily instances of Window. [...]
  @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.SAFARI)
  `const EventStreamProvider<AnimationEvent>('webkitAnimationEnd')`
animationIterationEvent → const EventStreamProvider<AnimationEvent>
  Static factory designed to expose `animationiteration` events to event handlers that are not necessarily instances of Window. [...]
  @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.SAFARI)
  `const EventStreamProvider<AnimationEvent>('webkitAnimationIteration')`
animationStartEvent → const EventStreamProvider<AnimationEvent>
  Static factory designed to expose `animationstart` events to event handlers that are not necessarily instances of Window. [...]
  @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.SAFARI)
  `const EventStreamProvider<AnimationEvent>('webkitAnimationStart')`
beforeUnloadEvent → const EventStreamProvider<BeforeUnloadEvent>
  Static factory designed to expose `beforeunload` events to event handlers that are not necessarily instances of Window. [...]
  `const _BeforeUnloadEventStreamProvider('beforeunload')`
contentLoadedEvent → const EventStreamProvider<Event>
  Static factory designed to expose `contentloaded` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<Event>('DOMContentLoaded')`
deviceMotionEvent → const EventStreamProvider<DeviceMotionEvent>
  Static factory designed to expose `devicemotion` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<DeviceMotionEvent>('devicemotion')`
deviceOrientationEvent → const EventStreamProvider<DeviceOrientationEvent>
  Static factory designed to expose `deviceorientation` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<DeviceOrientationEvent>('deviceorientation')`
hashChangeEvent → const EventStreamProvider<Event>
  Static factory designed to expose `hashchange` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<Event>('hashchange')`
loadStartEvent → const EventStreamProvider<Event>
  `const EventStreamProvider<Event>('loadstart')`
messageEvent → const EventStreamProvider<MessageEvent>
  Static factory designed to expose `message` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<MessageEvent>('message')`
offlineEvent → const EventStreamProvider<Event>
  Static factory designed to expose `offline` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<Event>('offline')`
onlineEvent → const EventStreamProvider<Event>
  Static factory designed to expose `online` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<Event>('online')`
pageHideEvent → const EventStreamProvider<Event>
  Static factory designed to expose `pagehide` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<Event>('pagehide')`
pageShowEvent → const EventStreamProvider<Event>
  Static factory designed to expose `pageshow` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<Event>('pageshow')`
PERSISTENT → const int
  Indicates that file system data cannot be cleared unless given user permission. [...]
  `1`
popStateEvent → const EventStreamProvider<PopStateEvent>
  Static factory designed to expose `popstate` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<PopStateEvent>('popstate')`
progressEvent → const EventStreamProvider<Event>
  `const EventStreamProvider<Event>('progress')`
storageEvent → const EventStreamProvider<StorageEvent>
  Static factory designed to expose `storage` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<StorageEvent>('storage')`
TEMPORARY → const int
  Indicates that file system data can be cleared at any time. [...]
  `0`
unloadEvent → const EventStreamProvider<Event>
  Static factory designed to expose `unload` events to event handlers that are not necessarily instances of Window. [...]
  `const EventStreamProvider<Event>('unload')`