Remove goog.dom.ViewportSizeMonitor

This commit is contained in:
Andreas Hocevar
2016-01-27 16:28:18 +01:00
parent 7e27ba1d42
commit 2b451e7893
5 changed files with 14 additions and 62 deletions

View File

@@ -10,7 +10,6 @@ goog.require('goog.async.AnimationDelay');
goog.require('goog.async.nextTick');
goog.require('goog.debug.Console');
goog.require('goog.dom');
goog.require('goog.dom.ViewportSizeMonitor');
goog.require('goog.dom.classlist');
goog.require('goog.functions');
goog.require('goog.log');
@@ -348,17 +347,10 @@ ol.Map = function(options) {
this.registerDisposable(this.renderer_);
/**
* @type {goog.dom.ViewportSizeMonitor}
* @type {function(Event)|undefined}
* @private
*/
this.viewportSizeMonitor_ = new goog.dom.ViewportSizeMonitor();
this.registerDisposable(this.viewportSizeMonitor_);
/**
* @type {ol.events.Key}
* @private
*/
this.viewportResizeListenerKey_ = null;
this.handleResize_;
/**
* @private
@@ -580,7 +572,7 @@ ol.Map.prototype.disposeInternal = function() {
this.handleBrowserEvent, false, this);
if (this.handleResize_ !== undefined) {
goog.global.removeEventListener(ol.events.EventType.RESIZE,
this.handleResize_, false, this);
this.handleResize_, false);
}
goog.dom.removeNode(this.viewport_);
goog.base(this, 'disposeInternal');
@@ -1064,9 +1056,10 @@ ol.Map.prototype.handleTargetChanged_ = function() {
if (!targetElement) {
goog.dom.removeNode(this.viewport_);
if (this.viewportResizeListenerKey_) {
ol.events.unlistenByKey(this.viewportResizeListenerKey_);
this.viewportResizeListenerKey_ = null;
if (this.handleResize_ !== undefined) {
goog.global.removeEventListener(ol.events.EventType.RESIZE,
this.handleResize_);
this.handleResize_ = undefined;
}
} else {
targetElement.appendChild(this.viewport_);
@@ -1077,10 +1070,10 @@ ol.Map.prototype.handleTargetChanged_ = function() {
[ol.events.EventType.KEYDOWN, ol.events.EventType.KEYPRESS],
this.handleBrowserEvent, false, this);
if (!this.viewportResizeListenerKey_) {
this.viewportResizeListenerKey_ = ol.events.listen(
this.viewportSizeMonitor_, ol.events.EventType.RESIZE,
this.updateSize, false, this);
if (!this.handleResize_) {
this.handleResize_ = this.updateSize.bind(this);
goog.global.addEventListener(ol.events.EventType.RESIZE,
this.handleResize_);
}
}

View File

@@ -1,7 +1,5 @@
goog.provide('ol.source.VectorTile');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.TileState');
goog.require('ol.VectorTile');
goog.require('ol.events');

View File

@@ -32,22 +32,6 @@
goog.json.USE_NATIVE_JSON = true;
/**
* The goog.dom.ViewportSizeMonitor (used in map.js) creates a global leak
* by setting goog.UID_PROPERTY_ on the monitored window. In order to test
* that we don't have other global leaks, we preemptively set the property
* so Mocha can compare the global before and after our tests.
*
* In addition, calling ol.events.listen on the global object (as done
* in deviceorientation.js) creates a second leak by setting
* ol.events.listenER_MAP_PROP_ on the global object.
*
* We preemptively set both of these properties so Mocha can compare the
* global before and after tests. The call to ol.events.listen also
* calls goog.getUid.
*/
ol.events.listen(this, 'test', function() {});
var runner = mocha.run();
if (window.console && console.log) {
// write stacks to the console for failed tests

View File

@@ -211,17 +211,13 @@ describe('ol.Map', function() {
map = new ol.Map({
target: document.createElement('div')
});
var viewportResizeListeners = map.viewportSizeMonitor_.getListeners(
ol.events.EventType.RESIZE, false);
expect(viewportResizeListeners).to.have.length(1);
expect(map.handleResize_).to.be.ok();
});
describe('call setTarget with null', function() {
it('unregisters the viewport resize listener', function() {
map.setTarget(null);
var viewportResizeListeners = map.viewportSizeMonitor_.getListeners(
ol.events.EventType.RESIZE, false);
expect(viewportResizeListeners).to.have.length(0);
expect(map.handleResize_).to.be(undefined);
});
});
@@ -229,9 +225,7 @@ describe('ol.Map', function() {
it('registers a viewport resize listener', function() {
map.setTarget(null);
map.setTarget(document.createElement('div'));
var viewportResizeListeners = map.viewportSizeMonitor_.getListeners(
ol.events.EventType.RESIZE, false);
expect(viewportResizeListeners).to.have.length(1);
expect(map.handleResize_).to.be.ok();
});
});
@@ -401,7 +395,6 @@ describe('ol.Map', function() {
goog.require('goog.dispose');
goog.require('goog.dom');
goog.require('ol.events.EventType');
goog.require('ol.Map');
goog.require('ol.MapEvent');
goog.require('ol.Overlay');

View File

@@ -28,22 +28,6 @@
<script type="text/javascript">
/**
* The goog.dom.ViewportSizeMonitor (used in map.js) creates a global leak
* by setting goog.UID_PROPERTY_ on the monitored window. In order to test
* that we don't have other global leaks, we preemptively set the property
* so Mocha can compare the global before and after our tests.
*
* In addition, calling ol.events.listen on the global object (as done
* in deviceorientation.js) creates a second leak by setting
* ol.events.listenER_MAP_PROP_ on the global object.
*
* We preemptively set both of these properties so Mocha can compare the
* global before and after tests. The call to ol.events.listen also
* calls goog.getUid.
*/
ol.events.listen(this, 'test', function() {});
var errors = [];
var runner = mocha.run(function(evt) {
if (window.callPhantom) {