mirror of
https://github.com/grafana/grafana.git
synced 2026-07-29 15:59:50 -05:00
Angular tweaks to work around chrome GC bug
This commit is contained in:
@@ -12,6 +12,11 @@ function (angular, app, _) {
|
||||
return {
|
||||
restrict: 'A',
|
||||
link: function($scope, elem) {
|
||||
|
||||
$scope.$on("$destroy",function() {
|
||||
elem.remove();
|
||||
});
|
||||
|
||||
$scope.$watch('panel.type', function() {
|
||||
var _type = $scope.panel.type;
|
||||
$scope.reset_panel(_type);
|
||||
|
||||
@@ -13,7 +13,6 @@ function (angular) {
|
||||
|
||||
'<div class="row-fluid panel-extra"><div class="panel-extra-container">' +
|
||||
|
||||
|
||||
'<span class="extra row-button" ng-show="panel.editable != false">' +
|
||||
'<span confirm-click="row.panels = _.without(row.panels,panel)" '+
|
||||
'confirmation="Are you sure you want to remove this {{panel.type}} panel?" class="pointer">'+
|
||||
|
||||
Vendored
+17
@@ -8464,6 +8464,21 @@ function $RootScopeProvider(){
|
||||
} else {
|
||||
this.$$childHead = this.$$childTail = child;
|
||||
}
|
||||
|
||||
// RASHID: Fix for chrome GC bug
|
||||
child.$on('$destroy', function() {
|
||||
if(Child)
|
||||
Child.prototype = null;
|
||||
// Async so that the $broadcast('$destroy') can traverse the rest
|
||||
setTimeout(function() {
|
||||
child.__proto__ = {};
|
||||
for(var i in child)
|
||||
child[i] = null;
|
||||
child = null;
|
||||
return null;
|
||||
});
|
||||
});
|
||||
|
||||
return child;
|
||||
},
|
||||
|
||||
@@ -8893,6 +8908,8 @@ function $RootScopeProvider(){
|
||||
// see: https://github.com/angular/angular.js/issues/1313#issuecomment-10378451
|
||||
this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead =
|
||||
this.$$childTail = null;
|
||||
parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead =
|
||||
this.$$childTail = null;
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user