mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Refactor global init code and add more comments (#33755)
Follow up #33748 Now there are 3 "global" functions: * registerGlobalSelectorFunc: for all elements matching the selector, eg: `.ui.dropdown` * registerGlobalInitFunc: for `data-global-init="initInputAutoFocusEnd"` * registerGlobalEventFunc: for `data-global-click="onCommentReactionButtonClick"` And introduce `initGlobalInput` to replace old `initAutoFocusEnd` and `attachDirAuto`, use `data-global-init` to replace fragile `.js-autofocus-end` selector. Another benefit is that by the new approach, no matter how many times `registerGlobalInitFunc` is called, we only need to do one "querySelectorAll" in the last step, it could slightly improve the performance.
This commit is contained in:
		| @@ -62,6 +62,10 @@ func TestSanitizer(t *testing.T) { | ||||
| 		`<a href="javascript:alert('xss')">bad</a>`, `bad`, | ||||
| 		`<a href="vbscript:no">bad</a>`, `bad`, | ||||
| 		`<a href="data:1234">bad</a>`, `bad`, | ||||
|  | ||||
| 		// Some classes and attributes are used by the frontend framework and will execute JS code, so make sure they are removed | ||||
| 		`<div class="link-action" data-attr-class="foo" data-url="xxx">txt</div>`, `<div data-attr-class="foo">txt</div>`, | ||||
| 		`<div class="form-fetch-action" data-markdown-generated-content="bar" data-global-init="a" data-global-click="b">txt</div>`, `<div data-markdown-generated-content="bar">txt</div>`, | ||||
| 	} | ||||
|  | ||||
| 	for i := 0; i < len(testCases); i += 2 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user