Przeglądaj źródła

Used the editor.sourceElement#ckeditorInstance property to secure the source element.

Aleksander Nowodzinski 6 lat temu
rodzic
commit
4424682083

+ 4 - 5
packages/ckeditor5-core/src/editor/utils/securesourceelement.js

@@ -26,7 +26,7 @@ export default function secureSourceElement( editor ) {
 		return;
 	}
 
-	if ( sourceElement.dataset.ckeditorSecuredElement ) {
+	if ( sourceElement.ckeditorInstance ) {
 		/**
 		 * A DOM element used to create the editor (e.g.
 		 * {@link module:editor-inline/inlineeditor~InlineEditor.create `InlineEditor.create()`})
@@ -39,14 +39,13 @@ export default function secureSourceElement( editor ) {
 		throw new CKEditorError(
 			'securesourceelement-element-used-more-than-once: ' +
 			'The DOM element cannot be used to create multiple editor instances.',
-			editor,
-			{ element: sourceElement }
+			editor
 		);
 	}
 
-	sourceElement.dataset.ckeditorSecuredElement = true;
+	sourceElement.ckeditorInstance = editor;
 
 	editor.once( 'destroy', () => {
-		delete sourceElement.dataset.ckeditorSecuredElement;
+		delete sourceElement.ckeditorInstance;
 	} );
 }

+ 6 - 6
packages/ckeditor5-core/tests/editor/utils/securesourceelement.js

@@ -42,26 +42,26 @@ describe( 'secureSourceElement()', () => {
 		} ).to.not.throw();
 	} );
 
-	it( 'sets the data attribute after initializing the editor', () => {
+	it( 'sets the property after initializing the editor', () => {
 		secureSourceElement( editor );
 
-		expect( sourceElement.dataset.ckeditorSecuredElement ).to.equal( 'true' );
+		expect( sourceElement.ckeditorInstance ).to.equal( editor );
 	} );
 
-	it( 'removes the data attribute after destroying the editor', () => {
+	it( 'removes the property after destroying the editor', () => {
 		secureSourceElement( editor );
 
 		return editor.destroy()
 			.then( () => {
-				expect( sourceElement.dataset.ckeditorSecuredElement ).to.be.undefined;
+				expect( sourceElement.ckeditorInstance ).to.be.undefined;
 			} );
 	} );
 
 	it( 'throws an error if the same element was used twice', () => {
-		sourceElement.dataset.ckeditorSecuredElement = true;
+		sourceElement.ckeditorInstance = 'foo';
 
 		expectToThrowCKEditorError( () => {
 			secureSourceElement( editor );
-		}, /^securesourceelement-element-used-more-than-once/, editor, { element: sourceElement } );
+		}, /^securesourceelement-element-used-more-than-once/, editor );
 	} );
 } );