mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 1378853 - Stop using sdk/core/heritage in DevTools reflow actor. r=jdescottes
MozReview-Commit-ID: IZr8qrCUdU8 --HG-- extra : rebase_source : 7a11888136f83f043d89facea70970a7f428f018
This commit is contained in:
parent
2e486247c5
commit
fd3207ec5d
@ -28,7 +28,6 @@ const {Ci} = require("chrome");
|
||||
const {XPCOMUtils} = require("resource://gre/modules/XPCOMUtils.jsm");
|
||||
const protocol = require("devtools/shared/protocol");
|
||||
const events = require("sdk/event/core");
|
||||
const Heritage = require("sdk/core/heritage");
|
||||
const EventEmitter = require("devtools/shared/event-emitter");
|
||||
const {reflowSpec} = require("devtools/shared/specs/reflow");
|
||||
|
||||
@ -425,24 +424,21 @@ exports.releaseLayoutChangesObserver = releaseLayoutChangesObserver;
|
||||
* @param {TabActor} tabActor
|
||||
* @param {Function} callback Executed everytime a reflow occurs
|
||||
*/
|
||||
function ReflowObserver(tabActor, callback) {
|
||||
Observable.call(this, tabActor, callback);
|
||||
}
|
||||
class ReflowObserver extends Observable {
|
||||
constructor(tabActor, callback) {
|
||||
super(tabActor, callback);
|
||||
}
|
||||
|
||||
ReflowObserver.prototype = Heritage.extend(Observable.prototype, {
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIReflowObserver,
|
||||
Ci.nsISupportsWeakReference]),
|
||||
|
||||
_startListeners: function (windows) {
|
||||
_startListeners(windows) {
|
||||
for (let window of windows) {
|
||||
let docshell = window.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIWebNavigation)
|
||||
.QueryInterface(Ci.nsIDocShell);
|
||||
docshell.addWeakReflowObserver(this);
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
_stopListeners: function (windows) {
|
||||
_stopListeners(windows) {
|
||||
for (let window of windows) {
|
||||
try {
|
||||
let docshell = window.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
@ -454,16 +450,19 @@ ReflowObserver.prototype = Heritage.extend(Observable.prototype, {
|
||||
// which case, no need to remove the observer.
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
reflow: function (start, end) {
|
||||
reflow(start, end) {
|
||||
this.notifyCallback(start, end, false);
|
||||
},
|
||||
}
|
||||
|
||||
reflowInterruptible: function (start, end) {
|
||||
reflowInterruptible(start, end) {
|
||||
this.notifyCallback(start, end, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ReflowObserver.prototype.QueryInterface = XPCOMUtils
|
||||
.generateQI([Ci.nsIReflowObserver, Ci.nsISupportsWeakReference]);
|
||||
|
||||
/**
|
||||
* Reports window resize events on the tabActor's windows.
|
||||
@ -471,23 +470,24 @@ ReflowObserver.prototype = Heritage.extend(Observable.prototype, {
|
||||
* @param {TabActor} tabActor
|
||||
* @param {Function} callback Executed everytime a resize occurs
|
||||
*/
|
||||
function WindowResizeObserver(tabActor, callback) {
|
||||
Observable.call(this, tabActor, callback);
|
||||
this.onResize = this.onResize.bind(this);
|
||||
}
|
||||
class WindowResizeObserver extends Observable {
|
||||
|
||||
WindowResizeObserver.prototype = Heritage.extend(Observable.prototype, {
|
||||
_startListeners: function () {
|
||||
constructor(tabActor, callback) {
|
||||
super(tabActor, callback);
|
||||
this.onResize = this.onResize.bind(this);
|
||||
}
|
||||
|
||||
_startListeners() {
|
||||
this.listenerTarget.addEventListener("resize", this.onResize);
|
||||
},
|
||||
}
|
||||
|
||||
_stopListeners: function () {
|
||||
_stopListeners() {
|
||||
this.listenerTarget.removeEventListener("resize", this.onResize);
|
||||
},
|
||||
}
|
||||
|
||||
onResize: function () {
|
||||
onResize() {
|
||||
this.notifyCallback();
|
||||
},
|
||||
}
|
||||
|
||||
get listenerTarget() {
|
||||
// For the rootActor, return its window.
|
||||
@ -501,4 +501,4 @@ WindowResizeObserver.prototype = Heritage.extend(Observable.prototype, {
|
||||
.QueryInterface(Ci.nsIDocShell)
|
||||
.chromeEventHandler;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user