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

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

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

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


рд╢рд╛рдпрдж, рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдирд┐рдЬреА рдореЛрдб рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ рдЧреЗрдХреЛ 20 (рдпрд╛ рд╡рд╣рд╛рдВ рдкреНрд░рддрд┐ рд╡рд┐рдВрдбреЛ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд░реЗрдВ?) рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╡рд┐рдВрдбреЛ рдореЛрдб рдкрд░ рдПрдХ рдРрдб-рдСрди рд╣реИред
рдЗрди рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рд╣реЛрдЧрд╛ред
рдФрд░ рдХрдИ рдмрджрд▓рд╛рд╡ рд╣реБрдП: " рдмрдЧ 463027 1646 рдмрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ ред"
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рднрд▓реЗ рд╣реА рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рдЬреА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ, рдмрд╣реБрдд рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рди рдХреЗрд╡рд▓ рдкреВрд░реА рдЦрд┐рдбрд╝рдХреА рдХреА рдЧреЛрдкрдиреАрдпрддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреИрдм (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреИрдм рдХреА рд╕рд╛рдордЧреНрд░реА) рднреА рд╣реИред

рдпрд╣, рдпрджрд┐ рдорд╛рдирд╡реАрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХреБрдЫ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╕рдордЭ рдХреЛ рдкреНрд░рд╢реНрди рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдВрддрдбрд╝рд┐рдпреЛрдВ (рд░рдХреНрдд, рдЖрдВрддреЛрдВ! рдФрд░ рдЖрдЧреЗ) рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рдПрдХ рд╕рд░рд▓ рдФрд░ (рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ) рд╕рд╕реНрддреА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░ рд╕рд░рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ nsILoadContext рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ (undocumented, hehe - рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ), рдЬреЛ рдЕрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╕рднреА рдЕрдиреНрдп рдХреЛрдб рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рддреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдЧрдВрджреЗ рдХрд╛рдо рдХрд┐рдП рдЧрдП (рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рднреА рдирд╣реАрдВ)ред
* рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рд╣реИрдВ: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рдПрдХ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рд╕рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рдЯреНрд░реА рдХреЗ рд╕рд╛рде рдХреЛрдИ рдХрдо рдкреНрд░рд╕рд┐рджреНрдз рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░, рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдм рдХреЗ рд╕рд╛рде, рдПрдХ рдПрдХреНрд╕рдпреВрдПрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдЦрд┐рдбрд╝рдХреА, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдбреЛрдо рдХреЗ рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде HTML рдЖрдЗрдлреНрд░реЗрдо рдХреЗ рд╕рдорд╛рди рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ: рдЖрдк рдбреЛрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреВрд░реА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд▓рд╛рдЗрд╡ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣рд╛рдБ рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдпрд╛ рдЖрдк рдХрд╕реНрдЯрдо рдмрдЯрди рдФрд░ рдореЗрд░реЗ рдЧреБрдг рдирд┐рд░реАрдХреНрд╖рдХ рдмрдЯрди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЧреЗрдХреЛ 20 рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рдмрдЯрди рдХреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ )ред
рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╣реА XUL рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИ:
рдбреЛрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░

рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ nsILoadContext рдХреЛ рдЯреИрдм рдореЗрдВ <рдмреНрд░рд╛рдЙрдЬрд╝рд░> 'рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдЪреАрдЬрд╝реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд╣реА рд╣реИред

рджреЛ рдЕрдиреНрдп рдЗрдВрдЯрд░рдлреЗрд╕ рднреАрдЦ рдорд╛рдВрдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ: nsISupports.QueryInterface () рдФрд░ nsIInterfaceRequestor.getInterface () ред
рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдзреНрдпрд╛рди рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЙрдкрдпреЛрдЧреА рд▓реЗрдЦ рд╣реИ, рдкреНрд░рддрд┐ рдЦрд┐рдбрд╝рдХреА рдирд┐рдЬреА рдмреНрд░рд╛рдЙрдЬрд╝рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди , рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдк рд╕рдорд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ : //gre / modules / PStreetBrowsingUtils .jsm , рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИ:
privacyContextFromWindow: function pbu_privacyContextFromWindow(aWindow) { return aWindow.QueryInterface(Ci.nsIInterfaceRequestor) .getInterface(Ci.nsIWebNavigation) .QueryInterface(Ci.nsILoadContext); }, 


рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдФрд░ рд╕реВрдХреНрд╖реНрдорддрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рддреЗ рд╕рдордпрдирд┐рд░реАрдХреНрд╖рдг рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ, рдпрд╣ рддреНрд░реБрдЯрд┐ рдХрдВрд╕реЛрд▓ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ
рдЪреЗрддрд╛рд╡рдиреА: рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИ

рдпрд╣ рдмрдЧ 800193 рд╣реИ - nsILoadContext.usePStreetBrowsing рдЧреБрдг рдХреЛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ, рдорд╛рдорд▓рд╛ рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рддрдХ рд╕реАрдорд┐рдд рд╣реИред

рддреЛ рдЕрдм рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЯреИрдм рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдо рддреМрд░ рдкрд░ gBrowser.getBrowserForTab (рдЯреИрдм) рд╣реИ , рд▓реЗрдХрд┐рди рд╣рдо рдЖрд╕рд╛рди рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рд╣реИ рд╣рдо рдПрдХ рдкреВрд░реНрдг рд░реАрд╕реНрдЯрд▓реЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЬреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдПрдЧреА, "рдкрд╛рд░рдВрдкрд░рд┐рдХ" рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдкрд╣рд▓реЗ рд╕рдиреНрдирд┐рдХрдЯрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), рдЗрд╕рд▓рд┐рдП tab.ownerDocument .defaultView.gBrowser.getBrowserForTab (рдЯреИрдм) рдХрд┐рд╕реА рддрд░рд╣ рдбрд░рд╛рд╡рдирд╛ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреГрд╢реНрдп-рд╕реНрд░реЛрдд рдореЗрдВ: chrome: //browser/content/tabbrowser.xml (рдпрд╣ рд▓рд┐рдВрдХ рдРрд╕рд╛ рд╣реИ, рдпрд╣ рдЦреБрд▓рддрд╛ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рд╣реИ)
  <method name="getBrowserForTab"> <parameter name="aTab"/> <body> <![CDATA[ return aTab.linkedBrowser; ]]> </body> </method> 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рддреЛ, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ (рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЯреИрдм рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ) рдПрдХреНрд╕рдпреВрдПрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рдХрдВрдЯреЗрдВрдЯрд╡рд┐рдВрдбреЛ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реИ рдЬреЛ рдбреЛрдо рд╡рд┐рдВрдбреЛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд╛рд╣рд┐рдПред ред

рддреЛ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ:
 var tab = ... //  ,       Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm"); var privacyContext = PrivateBrowsingUtils.privacyContextFromWindow(tab.linkedBrowser.contentWindow); privacyContext.usePrivateBrowsing = true; //    


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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рдЬреА рдЯреИрдм рдЦреЛрд▓реЗрдВред
рдЯреИрдм рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП gBrowser.addTab () рд╣реИ , рд▓реЗрдХрд┐рди рдПрдХ рд╕реВрдХреНрд╖реНрдорддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдПрдХ рдЯреИрдм рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рдореЛрдб рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ, рдЯреИрдм рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛, рдФрд░ рдпрджреНрдпрдкрд┐ рд▓рд┐рдВрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд┐рдВрдЧ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рдХреБрдХреАрдЬрд╝ рдирд┐рдЬреА рдирд╣реАрдВ рд╣реЛрдЧреАред
рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  <method name="addTab"> <parameter name="aURI"/> <parameter name="aReferrerURI"/> <parameter name="aCharset"/> <parameter name="aPostData"/> <parameter name="aOwner"/> <parameter name="aAllowThirdPartyFixup"/> <body> <![CDATA[ ... // Dispatch a new tab notification. We do this once we're // entirely done, so that things are in a consistent state // even if the event listener opens or closes tabs. var evt = document.createEvent("Events"); evt.initEvent("TabOpen", true, false); t.dispatchEvent(evt); if (uriIsNotAboutBlank) { ... try { b.loadURIWithFlags(aURI, flags, aReferrerURI, aCharset, aPostData); } catch (ex) { Cu.reportError(ex); } } 

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рди рдХреЗрд╡рд▓ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ (b.loadURIWithFlags () рджреНрд╡рд╛рд░рд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╢реБрд░реБрдЖрдд), рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдорд╛рдзрд╛рди: рдЖрдк рдЯреИрдмрдУрдкреЗрди рдЙрддреНрдкрдиреНрди рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдбрд╛рдЙрдирд▓реЛрдб рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдЖрддреА рд╣реИред
рдФрд░ рдпрд╣рд╛рдБ рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рдЙрддрдирд╛ рдкрд╛рд░рджрд░реНрд╢реА рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
 window.addEventListener("TabOpen", function waitForTab(e) { window.removeEventListener(e.type, waitForTab, false); var tab = e.originalTarget; // e.target     SeaMonkey makeTabPrivate(tab); }, false); gBrowser.selectedTab = gBrowser.addTab(); //     

рдЙрд╕реА рд╕рдордп, event.originalTarget Event.target рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ XBL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдЕрдирд╛рдо рдиреЛрдбреНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ SeaMonkey рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди <tabbrowser> 'a) рд╣реИред

рдЦреИрд░, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрдХреЗрд▓рд╛ рдирд┐рдЬреА рдЯреИрдм рд╣реИред
рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рджреВрд╕рд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЯреИрдм рдореЗрдВ PrivateTab-isPStreet = "true" рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВред
рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рдЯрдХрд░рд╛рд╡ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдмрд╕ рд╕рднреА рд╡рд░реНрдЧреЛрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ "PrivateTab-"ред
рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: nsIStyleSheetService.loadAndRegisterSheet () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рднреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ @ -рдореЛрдЬрд╝-рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдЬреА рдЯреИрдм рд╕реЗ, рдЖрдк рдПрдХ рдирдпрд╛ рдЯреИрдм рдпрд╛ рдПрдХ рд╡рд┐рдВрдбреЛ рднреА рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдирдП рдЯреИрдм рдФрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рдирд┐рдЬреА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдЗрд╕рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЯреИрдм рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдпрд╛ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ред рдЖрдк рдПрдХ рдЖрд╡рд░рдг (рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛) рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдПрдХ рдирд┐рд╖реНрдХрд╛рд╕рди рдкреИрдЪ (рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рдФрд░ рдпрд╣ рд╡рд┐рдзрд┐ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИ)ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреИрдЪ рдФрд░ рд░реИрдкрд░ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ: рдПрдХ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдЕрдкрдирд╛ рдкреИрдЪ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рдо рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ!)ред рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╡рд┐рд╕реНрддрд╛рд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреИрдЪ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдЖрд╡рд░рдг рдЗрд╕реЗ рддреЛрдбрд╝ рджреЗрдЧрд╛ - рдХреЛрдб рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдЯреНрд░рд┐рдХ рд╣реИ: рд░реИрдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрдЯреЛрд╕реНрдЯреНрд░рд┐рдВрдЧ () рдФрд░ toSource () рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ (рдпрд╛рдиреА, рдЖрд╡рд░рдг рдХреЛ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдореВрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣ рдмрдирд╛рдирд╛), рдлрд┐рд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреИрдЪ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рд╡реЗ рд╣рдореЗрдВ рдХрд╛рдЯ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛ред рд▓реЗрдХрд┐рди рдкреИрдЪ рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рдерд╛! рдФрд░, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдпрд╛рдж рдХрд┐рдП рдЧрдП рдорд╛рди рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддреЗ рд╣реБрдП, рд╣рдо рдЙрди рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдХреЛ рддреЛрдбрд╝ рджреЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдмрд╛рдж рдЙрдирдХреЗ рдкреИрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдк рдзреЛрдЦрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ: рдЬрдм рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рд╣рдорд╛рд░реЗ рдЧреНрд▓реЛрдмрд▓ рдореЗрдВ рдХреЙрд▓ рдХрд░реЗрдВ (рдЙрд╕ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рдлрд╝рдВрдХреНрд╢рди, рдлрд┐рд░ рдпрджрд┐ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдВрдкрд╛рджрди рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрдиреЛрдВ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣рдорд╛рд░реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдп рдХреЛ рдмрджрд▓реЗрдВред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЕрдирд╕реВрдЯ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
рдпрд╣рд╛рдВ рдкреИрдЪрдЕрдк рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рднреНрд░рд╛рдордХ рдЫрд╛рдпрд╛рд╡рд╛рдж рд╣реИред рдпрд╣ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдФрд░ рдХреЛрдб рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ:
рдореБрдЦреНрдп рдХреЛрдб (рдореВрд▓ рдФрд░ рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рд╕реНрдЯреНрд░реЗрд╕рд┐рдВрдЧ () / toSource рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛) рд╕рд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ:
 var orig = someObject.someMethod; var patch = window["privateTabMod::someObject.someMethod"] = function() { //   -  }; someObject.someMethod = function wrapped() { if(patch.apply(this, arguments)) return undefined; return orig.apply(this, arguments); }; 

рдФрд░ рд╣рд╛рдВ, рдпрд╣ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдЧреБрдгреЛрдВ рдХреЛ рдЙрди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдЬреЛ рдХрд╣реАрдВ рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрд╕реА рд╕рдордп, toString () / toSource () рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 function wrapped() { if(window["privateTabMod::someObject.someMethod"].apply(this, arguments)) return; //    } 

рдлрд┐рд░, рдЬрдм рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдкреИрдЪ рдХреЛ рд░реЛрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдпрд╛рдж рдХрд┐рдП рдЧрдП рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреА рддреБрд▓рдирд╛ someObject.someModod рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╡реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╛рдж рдХрд┐рдП рдЧрдП рдореВрд▓ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫObject.someMethod рдХреЛ рдмрджрд▓реЗрдВ, рдФрд░ рдпрджрд┐ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рд╡рд┐рдВрдбреЛ рдХреЛ рдмрджрд▓ рджреЗрдВ ["PrivateTabMod :: someObject.someMethod"] рдПрдХ рдЦрд╛рд▓реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдПред

рдЗрддрдиреА рд▓рдВрдмреА рд╡рд╛рдкрд╕реАред
рдФрд░ рд╣рд╛рдВ, eval рдкреИрдЪ рдХреЗ рд╕рд╛рде рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ, рдХрднреА-рдХрднреА рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдХ рдЖрд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЖрд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдмреЗрд╣рддрд░ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рддреГрддреАрдп-рдкрдХреНрд╖ рдХреЛрдб рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ eval рдкреИрдЪ рдЗрд╕реЗ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрд╕рдХреЗ рд╕рд┐рд░ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдЕрдкрдиреА рдмрд╛рд╣реЛрдВ рдХреЛ рд▓рд╣рд░рд╛рддреЗ рд╣реБрдП рднрд╛рдЧрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдФрд░ рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
Wladimir Palant рджреНрд╡рд╛рд░рд╛ рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ eval () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкрд╛рдВрдЪ рдЧрд▓рдд рдХрд╛рд░рдг
рдХреБрдЫ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ eval рдЕрдиреНрдп рд╣реИрдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЦрддрд░рдирд╛рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп eval () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ? YUKI "рдкреАрд░реЛ" рд╣рд┐рд░реЛрд╢реА рджреНрд╡рд╛рд░рд╛
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд░реИрдкрд░ рдПрдлрд╝рд▓-рдкреИрдЪ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ (рдХрднреА-рдХрднреА рдЖрдк рдЙрдирдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдФрд░ рдиреАрд░рд╕ рдПрдлрд╝рд▓-рдкреИрдЪ рди рддреЛ рдЕрдиреНрдп рдкреИрдЪ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рди рд╣реА рд░реИрдкрд░ рдХреЛред рд╣рд╛рдВ, рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЦрддрд░рдирд╛рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЦрддрд░рдирд╛рдХ рд╣реИ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред

рдФрд░ рдЬрдм рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреИрдЪ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдкрде рдХреЛ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд╣реИред
рдпрджрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рднрд┐рдиреНрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдПред рдФрд░ рд╕рдм рдХреЗ рдмрд╛рдж, рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ "рдкреНрд░рддреНрдпрдХреНрд╖" рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ, рдпрджреНрдпрдкрд┐ рдХреБрдЫ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИрдВ: рдкрд╣рд▓реЗ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреИрдмрдСрди рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЕрдирдзрд┐рдХреГрдд рдЯреИрдм рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рдереЗред рдпрд╣рд╛рдВ рдЖрдк рдРрд╕рд╛ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЬрдм рдЖрдк рдПрдХ рдЯреИрдм рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрддрдорд╛рди рдЯреИрдм рдХреА рдЧреЛрдкрдиреАрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдирд┐рдЬреА рд╣реИ, рддреЛ рдирдП рдЯреИрдм рдХреЛ рднреА рдирд┐рдЬреА рдмрдирд╛рдПрдВред

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

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдирд┐рдЬреА рдЯреИрдм рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рднреА рдирд┐рдЬреА рд╣реИред
рдореБрдЦреНрдп рдХрд╛рдо рдкреАрдЫреЗ рд╣реИ, рдФрд░ рд╕реБрдЦрдж рдЪреАрдЬреЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рдпреЛрдЬреНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХрднреА-рдХрднреА рдпреЗ рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рдореБрдЦреНрдп рдХреЛрдб рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмрдЪрдд рд╕рддреНрд░ рдФрд░ рдЕрдиреНрдп рдкреБрдирд░рд╛рд░рдВрдн рд╣реИрдВред рдЯреИрдм рдирд┐рдЬреА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдФрд░ nsISessionStore рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХреНрд╖рдг рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ SSTabRestoring рдШрдЯрдирд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ persistTabAttribute () рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдФрд░ рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ: рдЯреИрдм рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдирд┐рдЬреАрдЯреИрдм-рдЖрдЗрд╕рдкреИрд░рд┐рдЯреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред рдпрджрд┐ рдпрд╣ рд╣реИ, рддреЛ рдЯреИрдм рдХреЛ рдирд┐рдЬреА рдмрдирд╛рдПрдВред

рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ - "рд╕рдм рдХреБрдЫ" рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2100 рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рд▓рдЧрддрд╛ рд╣реИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ trifles рд╣реИрдВ - рджреЛрдиреЛрдВ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдЯрди рдореЗрдВ рдмрджрд▓рд╛рд╡ (рдЬреЛ рд▓рд╛рд▓ рд╣реИ, рдРрдк рдмрдЯрди) рдпрджрд┐ рдореЗрдиреВ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ (рдмрдЯрди, рд╣рд╛рд▓рд╛рдВрдХрд┐ , рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдХреЗ рдбреЛрдо рдЯреНрд░реА рдХреЗ рд░реВрдЯ рдиреЛрдб рдкрд░ рдкреНрд░рд╛рдЗрд╡реЗрдЯрдмреНрд░реЛрд╕рдорд┐рдВрдЧрдореЛрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ), рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдореЗрдиреВ рдореЗрдВ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдирд╛, рдФрд░ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ (рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрдХреНрд╕рдпреВрдПрд▓ рдХреБрдВрдЬреА рдХрднреА рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛрддрд╛), рдФрд░ рдбреНрд░реИрдЧ рдХрд░рдирд╛ рдФрд░ рдбреНрд░реЙрдк рдХрд░рдирд╛ (рдЖрдк рд▓рд┐рдВрдХ рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ) рдирд┐рдЬреА рдЯреИрдм!), рдФрд░ рдирд┐рдЬреА рдХреЗ рдмреАрдЪ рдЯреИрдм рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдмреИрд▓ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ (рдФрд░ рдкреИрдЪ!), рдФрд░ ... рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ рд╕рдордп, рдкрд╛рдардХреЛрдВ рдХреЗ рд╕рдордп рдХреЛ рдорд╣рддреНрд╡ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡рд╕реНрде рдиреАрдВрдж ред :) рдирд╣реАрдВ, рд╣рдо рднреА рдПрдХ рд╕рдкрдиреЗ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рджреВрд░ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореВрд▓реНрдп рд╣реИред

рдЕрдм рд╣рдо рдЯреИрдм рдирд┐рдХрд╛рд▓ рдЪреБрдХреЗ рд╣реИрдВ (рдФрд░ рдпрд╣ рдХрд╕реНрдЯрдо рдмрдЯрдиреНрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдпрд╛ рдмрд┐рд▓реНрдЯ-рдЗрди рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдП рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, devtools.chrome.enabled = рд╕рдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ : рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ - рд╕рд┐рдВрдкрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдбрд┐рдЯрд░ aka рд╕реНрдХреНрд░реИрдЪрдкреИрдб, Shift + F4 - рдкрд░реНрдпрд╛рд╡рд░рдг - рдмреНрд░рд╛рдЙрдЬрд╝рд░), рдЪреАрдЬреЛрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рд▓реЗрдХрд┐рди 2100 рд▓рд╛рдЗрдиреЗрдВ рдПрдХ рдмреБрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрд╛рдЯ рджреВрдВ, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХрд╛рдЯрдиреЗ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХрд╛ рдвреЗрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ), рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рдиреНрдпреВрдирддрдо рдЦреЛ рджреЗрддреА рд╣реИрдВ, рдЬреЛ рдХрд┐ рдмрд╕ рдХреБрдЫ рд╕рд░рд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

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

рдЬреИрд╕рд╛ рднреА рд╣реЛ, рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдХреНрд▓рд╛рд╕рд┐рдХ install.rdf рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде " <em: рдмреВрдЯрд╕реНрдЯреНрд░реИрдк> рд╕рдЪ </ em: рдмреВрдЯрд╕реНрдЯреНрд░реИрдк> "ред
рдФрд░ boot.stf.js рдлрд╝рд╛рдЗрд▓ install.rdf рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдм рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╝рд┐рдк-рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдкреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рдеред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИ! рдареАрдХ рд╣реИ, рдЬрдм рд╕рд╣реА рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦрд╛ рд╣реИред

Bootstrap.js рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдРрдб-рдСрди рдкреНрд░рдмрдВрдзрдХ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ рдЬрдм рдЖрдк рдЪрд╛рд▓реВ рдХрд░реЗрдВрдЧреЗ, рдмрдВрдж рдХрд░реЗрдВрдЧреЗ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдЖрджрд┐ред
рдФрд░ рдлрд┐рд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдЦреБрдж рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдЗрд╕реЗ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдкрдХрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП, рдЙрдирдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЦреБрдж рдХреЗ рдмрд╛рдж рднреА рд╕рд╛рдл рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣, рд╡реИрд╕реЗ, рдмрд╣реБрдд рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИ (рдЕрднреА рддрдХ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ)ред

рдпрд╣рд╛рдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рдЖрд░рдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЬреЗрдЯрдкреИрдХ рдЙрд░реНрдл тАЛтАЛрдПрдб-рдСрди рдПрд╕рдбреАрдХреЗ рднреА рд╣реИ ред рдЙрд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдирд┐рдЬреА рддреМрд░ рдкрд░, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИред рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдкрд░рд┐рдЪрд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд╛рд░ рднреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХреЗрд╡рд▓ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдХрднреА-рдХрднреА рджреЗрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Jetpack рдкрд░ рдЬрдЯрд┐рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ, рдЬреЛ рдпрд╣ рднреА рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдЕрдиреБрднрд╡ рд▓реЗрдЦрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдВрднрд╡рддрдГ рдРрдб-рдСрди рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рд▓реЗрдХрд┐рди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдкрд░ рд╡рд╛рдкрд╕ред
рд╣рдо рдХреЗрд╡рд▓ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк () рдФрд░ рд╢рдЯрдбрд╛рдЙрди () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╡рд┐рд╕реНрддрд╛рд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк () рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЙрдиреНрдЪ рдХрд░ рд░рд╣рд╛ рд╣реЛ рдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ / рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛ, рдХрд╛рд░рдг рдХреЛ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреБрд▓реА рд╣реБрдИ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП, nsIWindowMediator.getEnumerator () рд╣реИ , рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИред
рдкрд░рд┐рдгрд╛рдо рд╕рд░рд▓ рд╣реИ:
 //         : Components.utils.import("resource://gre/modules/Services.jsm"); // ... var ws = Services.wm.getEnumerator("navigator:browser"); while(ws.hasMoreElements()) this.initWindow(ws.getNext(), reason); 

рдЙрд╕реА рд╕рдордп, "рдиреЗрд╡рд┐рдЧреЗрдЯрд░: рдмреНрд░рд╛рдЙрдЬрд╝рд░" рдореБрдЦреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреЗ рд░реВрдЯ рдиреЛрдб ( XUL рд╡рд┐рдВрдбреЛ ) рдХреА рд╡рд┐рдВрдбреЛ рдЯрд╛рдЗрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдореВрд▓реНрдп рд╣реИред рдЖрдк рдЗрд╕реЗ рдЙрд╕реА DOM рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рддрджрдиреБрд╕рд╛рд░, initWindow () рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдФрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпреЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓реА рд╣реБрдИ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рд╣реИрдВ - рдЖрдкрдХреЛ рдЕрднреА рднреА рдирдИ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рддрд╛рдХрд┐ рдЦреБрдж рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдФрд░ рдмрд╛рдврд╝ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо nsIWindowWatcher.registerNotification () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕реА рд╕рдордп, рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рджреЛрдиреЛрдВ рдЬреЛ nsIObserver рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд▓рд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рд╣рдореЗрдВ рдЕрдкрдирд╛ рдирд╛рдо рд╕реНрдерд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред
рдлрд┐рд░ рд╕реЗ, Services.jsm рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
 Services.ww.registerNotification(this); 

рдЕрдм рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХрд╛ рдЕрд╡рд▓реЛрдХрди (рд╡рд┐рд╖рдп, рд╡рд┐рд╖рдп, рдбреЗрдЯрд╛) рд╡рд┐рдзрд┐ рдЙрджреНрдШрд╛рдЯрди (рд╡рд┐рд╖рдп рдореЗрдВ "рдбреЛрдореЗрд╡рд┐рдВрдбреЛрд╡реЙрдкреНрдб") рдФрд░ рд╕рдорд╛рдкрди ("рдбреЛрдорд╡рд┐рдВрдбреЛрдХреНрд▓реЛрд╕реНрдб") рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧреАред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕рдордп рдЖрдкрдХреЛ "рдбреЛрдореЗрд╡рд┐рдВрдбреЛрд╡реЙрдкреНрдб" рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЖрдк рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЦрд┐рдбрд╝рдХреА рд╣реИ - window.location.href рдореЗрдВ рд▓рдЧрднрдЧ: рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛ рд▓реЛрдб рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 observe: function(subject, topic, data) { if(topic == "domwindowopened") // subject -    subject.addEventListener("load", this, false); ... 

рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕реЗ рд╕рд╣реА рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдХ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ: рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ EventListener рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЬрдм рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдкрд╛рд░рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╣реИрдВрдбрд▓ (рдЗрд╡реЗрдВрдЯ) рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдФрд░ рднрд░реА рд╣реБрдИ рдЦрд┐рдбрд╝рдХреА рдкрд░ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣реА рд╡рд┐рдВрдбреЛрдЯрд╛рдЗрдк рдЬреЛ рд╣рдо рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдВрдбреЛ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рддреЗ рдереЗред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдВрдбреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдЙрджреНрдШрд╛рдЯрди рдФрд░ рд╕рдорд╛рдкрди рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред

рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рдЗрд╕реЗ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ TabClose рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ :
 window.addEventListener("TabClose", this, false); 

рдЬрдм рдХреЛрдИ рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ handleEvent () -> tabCloseHandler () рдХрд╛рдо рдХрд░реЗрдЧрд╛ , рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЯреИрдм рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

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

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

рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╢реАрд░реНрд╖рдХрд╣реАрди рдзрд╛рд░рд╛ рдХреЛ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реБрд░реНрдЦрд┐рдпреЛрдВ, рдЕрдлрд╕реЛрд╕, рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдореБрдЭреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкрд╛рда рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред

Source: https://habr.com/ru/post/In175469/


All Articles