diegoles / closure-library

Automatically exported from code.google.com/p/closure-library
0 stars 0 forks source link

Some undisposed objects in goog.editor #516

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
Create and dispose goog.editor with monitoring instances as below.

goog.Disposable.MONITORING_MODE = goog.Disposable.MonitoringMode.PERMANENT;
document.body.appendChild(goog.dom.createDom('div', {'id': 'toolbar'}));
document.body.appendChild(goog.dom.createDom('div', {'id': 'editMe'}));
var myField = new goog.editor.Field('editMe');

/**
 * @param {goog.editor.Plugin} plugin The plugin to register.
 */
var registerPlugin = function(plugin) {
  myField.registerPlugin(plugin);
  myField.registerDisposable(plugin);
};

// Create and register all of the editing plugins you want to use.
registerPlugin(new goog.editor.plugins.BasicTextFormatter());
registerPlugin(new goog.editor.plugins.RemoveFormatting());
registerPlugin(new goog.editor.plugins.UndoRedo());
registerPlugin(new goog.editor.plugins.ListTabHandler());
registerPlugin(new goog.editor.plugins.SpacesTabHandler());
registerPlugin(new goog.editor.plugins.EnterHandler());
registerPlugin(new goog.editor.plugins.HeaderFormatter());
registerPlugin(new goog.editor.plugins.LoremIpsum('Click here to edit'));
registerPlugin(new goog.editor.plugins.LinkDialogPlugin());
registerPlugin(new goog.editor.plugins.LinkBubble());

// Specify the buttons to add to the toolbar, using built in default buttons.
var buttons = [
  goog.editor.Command.BOLD,
  goog.editor.Command.ITALIC,
  goog.editor.Command.UNDERLINE,
  goog.editor.Command.FONT_COLOR,
  goog.editor.Command.BACKGROUND_COLOR,
  goog.editor.Command.FONT_FACE,
  goog.editor.Command.FONT_SIZE,
  goog.editor.Command.LINK,
  goog.editor.Command.UNDO,
  goog.editor.Command.REDO,
  goog.editor.Command.UNORDERED_LIST,
  goog.editor.Command.ORDERED_LIST,
  goog.editor.Command.INDENT,
  goog.editor.Command.OUTDENT,
  goog.editor.Command.JUSTIFY_LEFT,
  goog.editor.Command.JUSTIFY_CENTER,
  goog.editor.Command.JUSTIFY_RIGHT,
  goog.editor.Command.SUBSCRIPT,
  goog.editor.Command.SUPERSCRIPT,
  goog.editor.Command.STRIKE_THROUGH,
  goog.editor.Command.REMOVE_FORMAT
];
var myToolbar = goog.ui.editor.DefaultToolbar.makeToolbar(buttons, 
goog.dom.getElement('toolbar'));

// Hook the toolbar into the field.
var myToolbarController = new goog.ui.editor.ToolbarController(myField, 
myToolbar);

goog.events.listen(myField, goog.editor.Field.EventType.LOAD, function() {
  myField.makeUneditable();
  myField.dispose();
  myToolbarController.dispose();
  var undisposedObjects = goog.Disposable.getUndisposedObjects();
  console.log(undisposedObjects.length);
});

myField.makeEditable();

What is the expected output? What do you see instead?
The console output
expected: 0
actual: 3

What version of the product are you using? On what operating system?
r2325

Please provide any additional information below.
The undisposed objects:
goog.async.Delay in goog.editor.Field
(https://code.google.com/p/closure-library/source/browse/trunk/closure/goog/edit
or/field.js?r=2325#140)
(https://code.google.com/p/closure-library/source/browse/trunk/closure/goog/edit
or/field.js?r=2325#868)
goog.events.EventHandler in goog.editor.plugins.AbstractBubblePlugin
(https://code.google.com/p/closure-library/source/browse/trunk/closure/goog/edit
or/plugins/abstractbubbleplugin.js?r=2325#63)

Original issue reported on code.google.com by lv.wh...@gmail.com on 27 Nov 2012 at 5:20