Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(403)

Unified Diff: sdk/lib/html/dart2js/html_dart2js.dart

Issue 233793002: Remove _LocationWrapper (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
« no previous file with comments | « sdk/lib/_internal/lib/native_helper.dart ('k') | tools/dom/src/dart2js_LocationWrapper.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/html/dart2js/html_dart2js.dart
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 1bc1d73ac5c57f6872778604cd678570376f7f1f..5720988bb4b173ccc54e124f5c0154666c84ce87 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -27469,59 +27469,29 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
}
// API level getter and setter for Location.
- // TODO: The cross domain safe wrapper can be inserted here or folded into
- // _LocationWrapper.
+ // TODO: The cross domain safe wrapper can be inserted here.
/**
* The current location of this window.
*
* Location currentLocation = window.location;
* print(currentLocation.href); // 'http://www.example.com:80/'
*/
- Location get location {
- // Firefox work-around for Location. The Firefox location object cannot be
- // made to behave like a Dart object so must be wrapped.
- var result = _location;
- if (_isDartLocation(result)) return result; // e.g. on Chrome.
- if (null == _location_wrapper) {
- _location_wrapper = new _LocationWrapper(result);
- }
- return _location_wrapper;
- }
+ Location get location => _location;
// TODO: consider forcing users to do: window.location.assign('string').
/**
* Sets the window's location, which causes the browser to navigate to the new
- * location. [value] may be a Location object or a string.
+ * location. [value] may be a Location object or a String.
*/
void set location(value) {
- if (value is _LocationWrapper) {
- _location = value._ptr;
- } else {
- _location = value;
- }
+ _location = value;
}
- _LocationWrapper _location_wrapper; // Cached wrapped Location object.
-
// Native getter and setter to access raw Location object.
- dynamic get _location => JS('Location|=Object', '#.location', this);
+ dynamic get _location => JS('Location|Null', '#.location', this);
void set _location(value) {
JS('void', '#.location = #', this, value);
}
- // Prevent compiled from thinking 'location' property is available for a Dart
- // member.
- @JSName('location')
- _protect_location() native;
-
- static _isDartLocation(thing) {
- // On Firefox the code that implements 'is Location' fails to find the patch
- // stub on Object.prototype and throws an exception.
- try {
- return thing is Location;
- } catch (e) {
- return false;
- }
- }
/**
* Called to draw an animation frame and then request the window to repaint
@@ -35723,94 +35693,6 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
bool get repeat => throw new UnimplementedError();
dynamic get _get_view => throw new UnimplementedError();
}
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-// On Firefox 11, the object obtained from 'window.location' is very strange.
-// It can't be monkey-patched and seems immune to putting methods on
-// Object.prototype. We are forced to wrap the object.
-
-class _LocationWrapper implements Location {
-
- final _ptr; // Opaque reference to real location.
-
- _LocationWrapper(this._ptr);
-
- // TODO(sra): Replace all the _set and _get calls with 'JS' forms.
-
- // final List<String> ancestorOrigins;
- List<String> get ancestorOrigins => _get(_ptr, 'ancestorOrigins');
-
- // String hash;
- String get hash => _get(_ptr, 'hash');
- void set hash(String value) {
- _set(_ptr, 'hash', value);
- }
-
- // String host;
- String get host => _get(_ptr, 'host');
- void set host(String value) {
- _set(_ptr, 'host', value);
- }
-
- // String hostname;
- String get hostname => _get(_ptr, 'hostname');
- void set hostname(String value) {
- _set(_ptr, 'hostname', value);
- }
-
- // String href;
- String get href => _get(_ptr, 'href');
- void set href(String value) {
- _set(_ptr, 'href', value);
- }
-
- // final String origin;
- String get origin {
- if (JS('bool', '("origin" in #)', _ptr)) {
- return JS('String', '#.origin', _ptr);
- }
- return '${this.protocol}//${this.host}';
- }
-
- // String pathname;
- String get pathname => _get(_ptr, 'pathname');
- void set pathname(String value) {
- _set(_ptr, 'pathname', value);
- }
-
- // String port;
- String get port => _get(_ptr, 'port');
- void set port(String value) {
- _set(_ptr, 'port', value);
- }
-
- // String protocol;
- String get protocol => _get(_ptr, 'protocol');
- void set protocol(String value) {
- _set(_ptr, 'protocol', value);
- }
-
- // String search;
- String get search => _get(_ptr, 'search');
- void set search(String value) {
- _set(_ptr, 'search', value);
- }
-
- void assign(String url) => JS('void', '#.assign(#)', _ptr, url);
-
- void reload() => JS('void', '#.reload()', _ptr);
-
- void replace(String url) => JS('void', '#.replace(#)', _ptr, url);
-
- String toString() => JS('String', '#.toString()', _ptr);
-
-
- static _get(p, m) => JS('var', '#[#]', p, m);
- static _set(p, m, v) => JS('void', '#[#] = #', p, m, v);
-}
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
« no previous file with comments | « sdk/lib/_internal/lib/native_helper.dart ('k') | tools/dom/src/dart2js_LocationWrapper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698