code: function( onContentOnly, image, autoFireChange ) {
  			var editor = this.editor;
  			// Do not change snapshots stack when locked, editor is not ready,
  			// editable is not ready or when editor is in mode difference than 'wysiwyg'.
  			if ( this.locked || editor.status != 'ready' || editor.mode != 'wysiwyg' )
  				return false;
  
  			var editable = editor.editable();
  			if ( !editable || editable.status != 'ready' )
  				return false;
  
  			var snapshots = this.snapshots;
  
  			// Get a content image.
  			if ( !image )
  				image = new Image( editor );
  
  			// Do nothing if it was not possible to retrieve an image.
  			if ( image.contents === false )
  				return false;
  
  			// Check if this is a duplicate. In such case, do nothing.
  			if ( this.currentImage ) {
  				if ( image.equalsContent( this.currentImage ) ) {
  					if ( onContentOnly )
  						return false;
  
  					if ( image.equalsSelection( this.currentImage ) )
  						return false;
  				} else if ( autoFireChange !== false ) {
  					editor.fire( 'change' );
  				}
  			}
  
  			// Drop future snapshots.
  			snapshots.splice( this.index + 1, snapshots.length - this.index - 1 );
  
  			// If we have reached the limit, remove the oldest one.
  			if ( snapshots.length == this.limit )
  				snapshots.shift();
  
  			// Add the new image, updating the current index.
  			this.index = snapshots.push( image ) - 1;
  
  			this.currentImage = image;
  
  			if ( autoFireChange !== false )
  				this.refreshState();
  			return true;
  		}
docs: Saves a snapshot of the document image for later retrieval.
  
  @param {Boolean} onContentOnly If set to `true`, the snapshot will be saved only if the content has changed.
  @param {CKEDITOR.plugins.undo.Image} image An optional image to save. If skipped, current editor will be used.
  @param {Boolean} autoFireChange If set to `false`, will not trigger the {@link CKEDITOR.editor#change} event to editor.