- Spegnimento
- 6 settembre 2026 alle ore 01:03 UTC
- Autore
- Kamo
- Impegno
- 20358db
Supprimere il menu contestuale del browser (734f68cb) ha preso l'unica copia / incollare il La finestra del terminale era in realtà. Non è quello che sembrava — ci sono Copia e Paste pulsanti sulla striscia — quindi questo è ciò che era sotto. Leggere il clipboard è permesso-gated in ogni browser, e `paste()` gettato il suo rifiuto lontano in un nudo `catch`; `copySelection` era peggio, in attesa Il che non puo' prendere nulla quando `navigator.clipboard` non è definito perché l'accesso alla proprietà getta prima C'è una promessa. Entrambi fallirono invisibilmente. Il menu del browser era l'unico percorso che non richiedeva alcun permesso a tutti: xterm registra un `paste` nativo ascoltatore sulla sua area di testo nascosta e sulla sua radice proprio in modo che un nativo Paste atterra nel guscio. Quindi il pulsante destro diventa quello di questa finestra, e la finestra disegna il menu: - La stampa viene fermata nella fase di cattura, sopra gli ascoltatori di xterm, quindi è mai segnalato a tmux (`mouse on`, impostato dall'agente desktop) e tmux disegni nessun menu di riquadro dietro il nostro. Un menu, che era il punto di 734f68cb. Ogni altro pulsante è intoccato. Verificato in Chrome, non solo in jsdom: la stampa non raggiunge l'emulatore, `contextmenu` spara ancora con le sue coordinate, e il menu nativo rimane prevenuto. - Copia rientra in un'area di testo graffiante ed execCommand quando l'API di Clipboard rifiuta, quindi una copia è sempre disponibile. Paste utilizza readText, che è il metà che può essere rifiutato. - E' per questo che ogni elemento nomina la sua scorciatoia. Ctrl+ Shift+V è il browser OWN incollare e non può mai essere rifiutato: restituire falso dalla chiave personalizzata di xterm handler restituisce da ` keyDown` prima di prevenireDefault, in modo che il browser incolla nell'area di testo xterm sta ascoltando. Quell'ultimo corregge anche una doppia pasta. Ctrl+ Shift+V ha restituito falso e chiamato readText, così la pasta del browser e il nostro entrambi atterrati — ogni pasta raddoppiato il suo proprio testo per chiunque abbia concesso il permesso. Ctrl+ Shift+C cancella ora esplicitamente, o Chrome apre l'ispettore elemento sopra il terminale su copia.