code: function activateEditing( editor )
  	{
  		var win = editor.window,
  			doc = editor.document,
  			body = editor.document.getBody(),
  			bodyFirstChild = body.getFirst(),
  			bodyChildsNum = body.getChildren().count();
  
  		if ( !bodyChildsNum
  			|| bodyChildsNum == 1
  				&& bodyFirstChild.type == CKEDITOR.NODE_ELEMENT
  				&& bodyFirstChild.hasAttribute( '_moz_editor_bogus_node' ) )
  		{
  			restoreDirty( editor );
  
  			// Memorize scroll position to restore it later (#4472).
  			var hostDocument = editor.element.getDocument();
  			var hostDocumentElement = hostDocument.getDocumentElement();
  			var scrollTop = hostDocumentElement.$.scrollTop;
  			var scrollLeft = hostDocumentElement.$.scrollLeft;
  
  			// Simulating keyboard character input by dispatching a keydown of white-space text.
  			var keyEventSimulate = doc.$.createEvent( "KeyEvents" );
  			keyEventSimulate.initKeyEvent( 'keypress', true, true, win.$, false,
  				false, false, false, 0, 32 );
  			doc.$.dispatchEvent( keyEventSimulate );
  
  			if ( scrollTop != hostDocumentElement.$.scrollTop || scrollLeft != hostDocumentElement.$.scrollLeft )
  				hostDocument.getWindow().$.scrollTo( scrollLeft, scrollTop );
  
  			// Restore the original document status by placing the cursor before a bogus br created (#5021).
  			bodyChildsNum && body.getFirst().remove();
  			doc.getBody().appendBogus();
  			var nativeRange = new CKEDITOR.dom.range( doc );
  			nativeRange.setStartAt( body , CKEDITOR.POSITION_AFTER_START );
  			nativeRange.select();
  		}
  	}
docs: Gecko need a key event to 'wake up' the editing ability when document is empty.(#3864, #5781)