Greasemonkey: рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдЕрдХреНрддреВре░ 2017  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: greasemonkey/greasemonkey

рдЕрддреАрдд рдореЗрдВ рдЖрдк рдлрд╝рд╛рдЗрд▓> рдПрдХ .user.js рдЦреЛрд▓ рд╕рдХрддреЗ рдереЗ рдФрд░ рдпрд╣ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред 4.0 рдореЗрдВ рдЕрдм рддрдХ, рдпрд╣ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддрд╛ рд╣реИред

рд╕рднреА 44 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╢рд╛рдпрдж рдпрд╣ (рдореИрдЪ рдкреИрдЯрд░реНрди рдбреЙрдХреНрд╕)? рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдореИрдЪ рдЪрдпрдирдХрд░реНрддрд╛ рдореЗрдВ * рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреЗрд╡рд▓ http рдпрд╛ https рдкрд░ рдЧреНрд▓рдмреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред file:// рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд┐рд▓рд╛рди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВред

рд╡рд╣ рдпрд╛ <all_urls> рдЪрдпрдирдХрд░реНрддрд╛ред

file:/// рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рд▓рд╛рди рдкреИрдЯрд░реНрди рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдПрдХ рдПрдХреНрд╕рдПрдЪрдЖрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдпреВрдЖрд░рдПрд▓ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИред

рдореИрдВ рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдЧреМрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рдореИрдВ рджреЛ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рд╣реВрдВред рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡реЗрдмрдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдПрдХреНрд╕реЗрд╕ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдПрдХреНрд╕рдПрдЪрдЖрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рдП (рдЗрд╕ рдкрд░ рд╕реАрдзреЗ рдХреЛрдИ рд╕реНрд░реЛрдд рдирд╣реАрдВ; рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣рд╛рдВ рдмрд╣реБрдд рдиреАрдЪреЗ)ред рдпрд╛ рдпрд╣ рд╕рдорд╛рди рдореВрд▓ рдиреАрддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЧреЗрдХреЛ 1.9 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдиреНрдп рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рддрднреА рдкрдврд╝ рд╕рдХрддреА рд╣реИ рдЬрдм рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рдкреВрд░реНрд╡рдЬ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛред

рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ file:// рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдореИрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрдереЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдБ, рдпрд╣ рд╢рд╛рдпрдж "рдиреЛ рдлрд╛рдЗрд▓реНрд╕" рдирд┐рдпрдо рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЙрд╕ рдкрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд╣рд╛рдБ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдБред рдирдИ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдбрд╛рдЙрдирд▓реЛрдб рдПрдкреАрдЖрдИ рдЬреИрд╕реЗ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢реЗрд╖ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддреЗ рд╣реИрдВред

рд╣рдо рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдбреНрд░реИрдЧ/рдбреНрд░реЙрдк рдХреЛ рд╕реАрдзреЗ рд╕рдВрднрд╛рд▓рдирд╛, рдпрд╛ (рдПрд▓рдУрдПрд▓) рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓реЗ рдЯреИрдм рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдирд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдо рд╕рд╛рдкреЗрдХреНрд╖ рдЖрдЗрдХрди/рд╕рдВрд╕рд╛рдзрди/рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд▓рд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдФрд░ рднреА рдЕрдзрд┐рдХ рдХрд╛рдордХрд╛рдЬ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдЬрд╛рдпреЗрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдЖрд░рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░реЗрдЬ.рд▓реЛрдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЪрд░ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд/рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдпрджрд┐ WebExtensions рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрд╕реНрдерд╛рдпреА рд╕рдВрдЧреНрд░рд╣рдг рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдХрд╛рд╕рди рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореИрдВрдиреЗ рдЬреЛ рдХрд╣рд╛ рд╣реИ рдЙрд╕рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЙрддрдирд╛ рд╕реАрдзрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкрд╣реБрдВрдЪ browser.storage.local рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ Greasemonkey рдЬреИрд╕реЗ рдРрдбрдСрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рднрдВрдбрд╛рд░рдг рд╣реИред рджреВрд╕рд░реЗ, рд╕рдВрджреЗрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╕рдВрджреЗрд╢ рдХреЗрд╡рд▓ script-detect.js рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ script-detect.js рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддрд╛ рд╣реИ (рдореИрдВ рдЙрд╕ рдкрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ)ред

рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЧрд▓рдд рдирд╣реАрдВ рд╣реВрдБ, рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕реА рднреА рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╢реНрд░реЛрддрд╛ рдореЗрдВ DOM / рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ?

рдЖрдк рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ onBeforeRequest рдкрд░ рдПрдХ рдореИрдЪ рдХреЗ рд╕рд╛рде ['*://*/*.user.js'] рдФрд░ рдлрд┐рд░ рдПрдХ рдмрдирд╛рдиреЗ StreamFilter ред рдореИрдВрдиреЗ рдЕрдкрдиреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╢рд╛рдЦрд╛ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рд▓рд╛рдЧреВ рдХрд┐рдП рд╣реИрдВ, рдЗрд╕ рд╕рдордп рдХреЛрдИ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ _fix_ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЙрди рд╕реБрд░рдХреНрд╖рд╛ рдЪрд┐рдВрддрд╛рдУрдВ рд╕реЗ рдмрдЪрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рд▓рд╛рдпрд╛ рдерд╛ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред рдЙрд╕ рдкрд░ рдХреБрдЫ рдмрдЧрдЬрд┐рд▓рд╛ рдЯрд┐рдХрдЯ:
https://bugzilla.mozilla.org/show_bug.cgi?id=1341341
https://bugzilla.mozilla.org/show_bug.cgi?id=1266960

рдореБрдЭреЗ рдпрд╣рд╛рдВ #2671 . рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рдпрджрд┐ рдпрд╣ рдереНрд░реЗрдб рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ .... рддреЛ ...
рдЖрдк рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП XHR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдЙрддреНрдкрддреНрддрд┐ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдЖрд╕рд╛рди рддрд░реАрдХреЗ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ new FileReader() рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ input type="file"

рдпрджрд┐ рдпрд╣ рдереНрд░реЗрдб file:///.....user.js URL рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рддреЛ рдпрд╣ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдФрд░ рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рди рд╣реИред

рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = "рдлрд╝рд╛рдЗрд▓" рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдирдП рдлрд╝рд╛рдЗрд▓ рд░реАрдбрд░ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ

рдЖрд╣, рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ file:// рдкрде рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕рдорд╛рди рд░рд╣ рд╕рдХрддрд╛ рд╣реИред

import script -> script selected -> contents cached in backend -> install dialog prompt -> retrieve content from backend -> continue install as usual

рдФрд░ рдпрд╣ рдЙрди рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред

"рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ =" рдлрд╝рд╛рдЗрд▓ "" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╡реЗрдмрдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓рд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕реАрдзреЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
https://github.com/mdn/webextensions-examples/pull/171/files/6c066cfff4e8c662984f704cb17c8b39211ed062#diff -098de1750b345156f3cfd46f8199aa34

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕реАрдзреЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╢ _needed_ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рд╣реИред рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ рдЬрдм рдЖрдк рдХрд┐рд╕реА .user.js рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдбрд╛рдпрд▓реЙрдЧ рдкреЙрдк рдЕрдк рд╣реЛрдХрд░ рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдРрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд╣реАрдВ рдирд╣реАрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдордЧреНрд░реА рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЪрд╛рд╣реЗ рдЗрд╕реЗ рд╕реНрдЯреЛрд░реЗрдЬ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдпрд╛ рд╕рд┐рд░реНрдл рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╣реАрдВ рднреА рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред

рдореИрдВ рдпрд╣ рднреА рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдЖрдпрд╛рдд рд╕реБрд╡рд┐рдзрд╛ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП [1] рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рд╡рд╛рд╕рди рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рд╡реЗ рдХреЗрд╡рд▓ 3.x рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

[рез] рдореИрдВ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░реВрдВрдЧрд╛ рдЕрдЧрд░

рдпрджрд┐ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдХрдИ рдРрдбрдСрди рдореЗрдВ рдЖрдпрд╛рдд/рдирд┐рд░реНрдпрд╛рдд рд╣реИред

рдЖрдпрд╛рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд╡рдзрд╛рдирд┐рдпреЛрдВ/рдкреЙрдкрдЕрдк/рдЕрдзрд┐рд╕реВрдЪрдирд╛рдУрдВ/рдЪреЗрддрд╛рд╡рдиреА рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдХрд┐рд╕реА рдПрдХ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдПрдХ рдЖрдпрд╛рдд рдмрдЯрди (рдлрд╝рд╛рдЗрд▓ рдЗрдирдкреБрдЯ) рдЬреЛрдбрд╝реЗрдВ
рдПрдХ рдмрд╛рд░ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдкрд┐рдХрд░ рдЦреБрд▓ рдЬрд╛рддрд╛ рд╣реИ .. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЦреБрд▓реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ (рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTTPML5)
рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реА рдФрд░ рдкрд╛рд░реНрд╕ рдХреА рдЧрдИ рд╣реИ
рдпрджрд┐ рдпрд╣ USER рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ, рддреЛ рдЗрд╕реЗ IDB рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдлрд┐рд░ рдЪрд▓ рд░рд╣реЗ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдмрд╕ рдЗрддрдирд╛ рд╣реА....

рдореИрдВ рдЖрдпрд╛рдд/рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ, рдереАрдо рдбреЗрдЯрд╛ (500kb рддрдХ) рдФрд░ рдЖрдпрд╛рдд/рдирд┐рд░реНрдпрд╛рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдРрдб-рдСрди рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдореЗрдВ рднреА рдРрд╕рд╛ рд╣реА рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рдпрд╣ рднреА рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдЖрдпрд╛рдд рд╕реБрд╡рд┐рдзрд╛ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП[1]

рджрд░рдЕрд╕рд▓ .... рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд рдХрд░рдиреЗ рдФрд░ рдЬреАрдПрдо 3 -> 4 рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЫреВрдЯреА рд╣реБрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рдХреЛрдб рдФрд░ рдХрд╛рд░реНрдп рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ... рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореЗрд░реЗ рдХреЛрдб рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

... рдЖрдпрд╛рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд╡рдзрд╛рдирд┐рдпреЛрдВ/рдкреЙрдкрдЕрдк/рдЕрдзрд┐рд╕реВрдЪрдирд╛рдУрдВ/рдЪреЗрддрд╛рд╡рдиреА рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред ... рдпрджрд┐ рдпрд╣ USER рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ, рддреЛ рдЗрд╕реЗ IDB рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рдирдХ рдЗрдВрд╕реНрдЯреЙрд▓ рд╕рдВрд╡рд╛рдж рдкрд░ рдЫреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж @arantius рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рдирдХ рдЗрдВрд╕реНрдЯреЙрд▓ рд╕рдВрд╡рд╛рдж рдкрд░ рдЫреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред

рдорд╛рдирдХ рд╕рдВрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рд╕реА рджреВрд░рд╕реНрде рд╕реНрд░реЛрдд рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рддрдм рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рд╕рдВрд╡рд╛рдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдЖрдпрд╛рдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдпрд╛рдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИ
  • рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рдВрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкреВрдЫрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?" :)
    рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИ

рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ... рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЙрд▓рдмреИрдХ рджреНрд╡рд╛рд░рд╛ рд╣реЛрддрд╛ рд╣реИ (*.user.js рдкрд░ рдЯреНрд░рд┐рдЧрд░)...

рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ... рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЙрд▓рдмреИрдХ рджреНрд╡рд╛рд░рд╛ рд╣реЛрддрд╛ рд╣реИ (*.user.js рдкрд░ рдЯреНрд░рд┐рдЧрд░)...

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рд╛рдБред рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдпрд╛рдд рдмрдЯрди рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдФрд░ file:// рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рди рдХрд░реЗрдВред

рдЖрд╣, рдареАрдХ рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред рджреВрд░рд╕реНрде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ! ;-)

рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ... рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЙрд▓рдмреИрдХ рджреНрд╡рд╛рд░рд╛ рд╣реЛрддрд╛ рд╣реИ (*.user.js рдкрд░ рдЯреНрд░рд┐рдЧрд░)...

рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдлрд╝рд╛рдЗрд▓ рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рдЖрдпрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рд╣рд╛рдВ, рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓ рдЧрдпрд╛ред рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рд╣реИ (рдКрдкрд░ рджреЗрдЦреЗрдВ) ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХреЛрдб рдХреЛ рдЗрд╕рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .user.js рдХреЛ Greasemonkey рд╡рд┐рдВрдбреЛ рдкрд░ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?
рдЪреВрдВрдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдпрд╛рдиреА рдореИрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ imgur, рдпрд╛ megaupload рдЗрд╕реЗ рдЫреЛрдбрд╝рдХрд░)

рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЕрдирд╛рдбрд╝реА, рдЧреИрд░-рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рд╡рд╛рд▓рд╛) рдЬреЛ рдореБрдЭреЗ рд╕реНрдерд╛рдиреАрдп рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ?

рдЕрдВрдд рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕ "рдХреИрд╢" рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореБрдЭреЗ Firefox рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ "рдХреИрд╢" рдлрд╝рд╛рдЗрд▓реЗрдВ рдорд┐рд▓реАрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХреЛрдб рдХреЛ рдЗрд╕рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .user.js рдХреЛ Greasemonkey рд╡рд┐рдВрдбреЛ рдкрд░ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдбреНрд░реЙрдк рдмреЙрдХреНрд╕ рдХреА рддрд░рд╣ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ IMGoolge рджреЗрдЦреЗрдВ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реНрд░реЛрддрд╛рдУрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕реАрдзреЗ рдЖрдЧреЗ рдлрд╝рд╛рдЗрд▓ рдЗрдирдкреБрдЯ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

Mozilla рдиреЗ doc рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ (рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢):
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Working_with_files

  1. рдлрд╝рд╛рдЗрд▓ рдкрд┐рдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЦреЛрд▓реЗрдВ
  2. рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЦреЛрд▓реЗрдВ

рдЗрд╕рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╕реЗ, рд╣рдорд╛рд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ GM3 рдЬреИрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ред

рддреЛ, рдПрдХ рдЙрдкрдпреБрдХреНрдд рдСрдирд▓рд╛рдЗрди рдлреЙрд░реНрдо рдореЗрдВ рдкреЗрд╢ рдирд╣реАрдВ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрдЭрд╛рд╡?

@Samizdata рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ GM рдмреАрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/beta), рдУрдкрди рдордВрдХреА рдореЗрдиреНрдпреВ -> рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ рдЬреЛ @require рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХрдард┐рди рддрд░реАрдХреЗ рд╕реЗ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Proxomitron (http://www.proxomitron.info/files/) рдХреЛ рдкрдХрдбрд╝реЛ, рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ, FF рдХреЛ рдкреНрд░реЙрдХреНрд╕реА 127.0.0.1:8080 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ Proxomitron HTML рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ FF рдХреЗ рднреАрддрд░ " http: //bweb..local.ptron/YOURFILE.user.js ".

@kekkc , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреВрд░рд╕реНрде рд╕рдВрд╕рд╛рдзрди рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдПрдордУ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЪреАрдпрд░реНрд╕ред рдпрд╣ рд╣реЛ рдЧрдпрд╛, @kekkc !

@kekkc , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреВрд░рд╕реНрде рд╕рдВрд╕рд╛рдзрди рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдПрдордУ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрднреА рдирд╣реАрдВ.. рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ

@Sxderp рдХреНрдпрд╛ рд╣рдо #2707 рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@Eselce , рд╣рд╛рдБред рд╡рд╣ 'рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ' рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдФрд░ рдлрд┐рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ @require рдЯреИрдЧ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдореМрдЬреВрдж рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

.user.js рдпрд╛ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкрд░реЛрд╕рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЗрд╕ рдкрд╛рдпрдерди рд╡рди-рд▓рд╛рдЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  • рдкрд╛рдпрдерди 2.x рдХреЗ рд▓рд┐рдП:
    python -m SimpleHTTPServer

  • рдкрд╛рдпрдерди 3.x рдХреЗ рд▓рд┐рдП:
    python -m http.server

...рдЬреЛ http://127.0.0.1:8000/ рдкрд░ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдЗрд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ

(_рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 8000 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ рд╣реИ; рдЖрдк рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ; рдиреАрдЪреЗ рджреЗрдЦреЗрдВ_)

рдЗрд╕ рддрд░рд╣ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕реНрдерд╛рдиреАрдп .user.js рдФрд░ рд╕реНрдерд╛рдиреАрдп http рд╕рд░реНрд╡рд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ Greasemonkey рдХреЗ рд▓рд┐рдП рд▓реЗрдХрд┐рди Tampermonkey рдХреЗ рд▓рд┐рдП рднреА рдХрд░рддрд╛ рд╣реВрдВред

рдкрд╛рдпрдерди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Linux рдФрд░ MacOs рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрднреА рднреА рдЦреБрдж рдХреЛ рдбреЗрд╡рд▓рдкрд░ рдХрд╣рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ... _рдЧрдВрднреАрд░рддрд╛ рд╕реЗ ?! рдЖрдкрдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ?_ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдореИрдВ рдмрд╛рдЧрд╡рд╛рдиреА рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛: рдЕрдВрдХреБрд░: рдпрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рд╢реМрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд╛рдИ: рдкрд▓рдХ: (_рд╣реЗ, рдмрд╕ рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!_)

рдХреЛрдИ рдЕрдЬреАрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ -- рдЖрдк _ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ _, рд▓реЗрдХрд┐рди рдпрд╣ _рдмрд┐рд▓реНрдХреБрд▓ рдЕрдирд╛рд╡рд╢реНрдпрдХ_ рд╣реИред рдкрд╛рдпрдерди рдПрдХ "рдРрдк" рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдореМрд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЛ "рдмреЛрд▓рдиреЗ" рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрднреА рддрдХ рдЕрдкрдиреЗ рдмреБрдирд╛рдИ рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝реЗрдВ рдпрд╛ рдЬрд▓реНрджреА рди рдХрд░реЗрдВ!

рддреБрдЪреНрдЫ рдкреНрд░рдХреНрд░рд┐рдпрд╛:

  1. cd рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЖрдкрдХреЗ .user.js рдФрд░/рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ, requiredFile1.js рдФрд░ requiredFile2.js

  2. рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ: рдкрд╛рдпрдерди 2.x рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ

python -m SimpleHTTPServer

рдпрд╛: Phython 3.x рдХреЗ рд▓рд┐рдП, рднрд╛рдЧреЛ

python -m http.server

  1. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреА @require рд▓рд╛рдЗрдиреЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
// <strong i="42">@require</strong>  http://127.0.0.1:8000/requiredFile1.js
// <strong i="43">@require</strong>  http://127.0.0.1:8000/requiredFile2.js

...рдЬрд╣рд╛рдБ requiredFile1.js рдФрд░ requiredFile2.js рд╡реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдкрд░реЛрд╕рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

  1. рдЬрдм рдЖрдкрдХреА рдЧреНрд░реАрд╕рдореЛрдирдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдард╛рдПрдЧреА, рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╛рдпрдерди рджреНрд╡рд╛рд░рд╛ рдкрд░реЛрд╕рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХрд┐рдпрд╛ рд╣реБрдЖред

рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЙрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ рдЖрдк рдкрд╛рдпрдерди рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ <Ctrl><C> рджрдмрд╛рдПрдВред

рд╕рд╛рде рд╣реА, -_-рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ_--, рдХреГрдкрдпрд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ Greasemonkey рдпрд╛ Tampermonkey рдлрд╝рд╛рдЗрд▓реЗрдВ рдвреВрдВрдврдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ Python HTTP рд╕рд░реНрд╡рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЪрд▓рд╛рдирд╛ рди рднреВрд▓реЗрдВ...

рдпреБрдХреНрддрд┐ : рдпрджрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ 8000 рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдЕрдкрдиреЗ рдЖрджреЗрд╢ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ (рдПрдХ рдорд╛рдиреНрдп рдкреЛрд░реНрдЯ рд╕рдВрдЦреНрдпрд╛) рдЯрд╛рдЗрдк рдХрд░реЗрдВ, рдЬреИрд╕реЗ:

  • рдкрд╛рдпрдерди 2.x рдХреЗ рд▓рд┐рдП:
    python -m SimpleHTTPServer 12345

  • рдкрд╛рдпрдерди 3.x рдХреЗ рд▓рд┐рдП:
    python -m http.server 12345

...рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ @require url рдХреЛ 8000 рдХреЗ рдмрдЬрд╛рдп рдЙрд╕ рдирдВрдмрд░ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рдареАрдХ рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ рдЬреАрдПрдо рдЯреВрд▓рдмрд╛рд░ рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ "рдирдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ ..." рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВред

рдирдпрд╛ рд╕рдВрдЧрдд рдЯреИрдм рд╕реНрд╡рддрдГ-рдирд╛рдо "рдЕрдирд╛рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ 821696" рд╣реИ

рдлрд┐рд░ рдореИрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдЬреАрдПрдо рдХреЛрдб рд╕реЗ рдЯреИрдм рдлрд▓рдХ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдКрдкрд░реА рдмрд╛рдИрдВ рдУрд░ "рд╕рд╣реЗрдЬреЗрдВ" рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╣рд╛рдВ рдорд┐рд▓реЗрдЧреА? рдкрдврд╝реЗрдВ: рдмрд╛рдж рдореЗрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдБ рдЬреИрд╕реЗ "foobar"?

@bsto рдирд╛рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ @name рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рднреА рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ "рдирдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ..." рдХреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреАред
рдПрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╢реАрд░реНрд╖рдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рдЙрдк рдореЗрдиреВ рд╣реЛрдЧрд╛ред

рдареАрдХ рдзрдиреНрдпрд╡рд╛рджред

рдмрд╕ рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓:

25 рдирд╡рдВрдмрд░ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрдХреЗрдХреЗрд╕реА рдиреЗ рд╣рдореЗрдВ рдЕрдкрдиреА рдкреЛрд╕реНрдЯрд┐рдВрдЧ (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдореЗрдВ рдмрддрд╛рдпрд╛ рдХрд┐ рдореЛрдЬрд╝рд┐рд▓рд╛ рдиреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ (WinExplorer рд╕реЗ)ред

рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪрдирд╛ рдФрд░ рдЫреЛрдбрд╝рдирд╛ рдЕрдм рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рд╣реВрдБ?

рдЗрд╕реЗ рдЬреАрдПрдо рдореЗрдВ рдХрдм рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (*.user.js рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз)?

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо file://.../anything.user.js рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ/рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХ рдкреЗрдЬ рдПрдХреНрд╢рди рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ рдЬреЛ рдпреВрдЖрдИ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ)

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП file:// рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ (рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдкрд┐рдХрд░ рдЗрдирдкреБрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ: // рдмрд╕ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП (рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдкрд┐рдХрд░ рдЗрдирдкреБрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓, рд╣рдо рд╣реИрдорд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ рд╕реАрдорд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЗрд░рд╛рджреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ 2 рд╕реЗрдВрдЯ...

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рд╣рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ)

рдЬреИрд╕рд╛ рдХрд┐ Sxderp рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ ...

  • рдПрдХ рд╢реНрд░реЛрддрд╛ рдЬреЛрдбрд╝реЗрдВ (рдЬреИрд╕реЗ tabs.onUpdated.addListener рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╡реИрд╕реЗ рднреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)
  • рдкреГрд╖реНрда рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рд▓реЛрдб рд╣реЛрдиреЗ рджреЗрдВ
  • рдкреГрд╖реНрда рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдмреАрдЬреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ
  • рдкреЗрдЬ/рдЯреИрдм рдмрдВрдж рдХрд░реЗрдВ

рд╡рд┐рдХрд▓реНрдк ....

  • рдПрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╢реНрд░реЛрддрд╛ рдЬреЛрдбрд╝реЗрдВ
  • рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдЖрдпрд╛рдд рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ ... рдпрд╛ .... рдкреЙрдкрдЕрдк рдЖрдпрд╛рдд рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлрд╝рд╛рдЗрд▓рдкрд┐рдХрд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реИ

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдЕрдЧрд░ рдпрд╣ рдореИрдВ рд╣реЛрддрд╛, рддреЛ рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддрд╛ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░рдПрдХреНрд╢рди рдкреЙрдкрдЕрдк рдореЗрдВ рдмрд╕ рдЖрдпрд╛рдд рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореИрдВ рд╡реИрд╕реЗ рднреА GM4 рдХреЗ рдмрд╛рдж рд╕реЗ .user.js рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкреАрдЫреЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ;)

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдЕрдЧрд░ рдпрд╣ рдореИрдВ рд╣реЛрддрд╛, рддреЛ рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддрд╛ рдФрд░ рдмрд╕ ..

рдореЗрд░рд╛ рдпрд╣реА рдорддрд▓рдм рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдкреГрд╖реНрда рдореЗрдВ рдпреВрдЖрдИ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЬреАрдПрдо рдЕрдХреНрд╖рдо рдерд╛, рддреЛ рд╣рдо рдПрдХ рдЗрдиреНрдлреЛрдмрд╛рд░ рдкреЙрдк рдХрд░рддреЗ рдереЗ; рдЙрд╕реА рддрд░рд╣ рдХреА рдЪреАрдЬрд╝ред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореИрдВ рд╡реИрд╕реЗ рднреА GM4 рдХреЗ рдмрд╛рдж рд╕реЗ .user.js рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкреАрдЫреЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ;)

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

GM3 рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ abc.user.js рд░реВрдк рдореЗрдВ рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛

GM4 рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ IndexedDB рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдирд╛рдо @name ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░) abc.js ( .user рдмрд┐рдирд╛) рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рд╣реЗрдЬ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬреАрдПрдо рдореЗрдВ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдиреНрдпреБрдЕрд▓ рдЖрдпрд╛рдд, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .user рдирд╛рдордХрд░рдг рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдмрдВрдзреЗ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

рдлрд╛рдпрд░рдореЙрдиреНрдХреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

https://addons.mozilla.org/en-US/firefox/addon/firemonkey/

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

darkred picture darkred  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

GuardianMajor picture GuardianMajor  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

makyen picture makyen  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arantius picture arantius  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

byzod picture byzod  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ