рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ

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

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ, Google Chrome (рдФрд░ рдХреНрд░реЛрдорд┐рдпрдо) рдлрд╝рдВрдХреНрд╢рди - рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдкрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рдореЗрдВ рдкреНрд░рдкрддреНрд░ рдХреНрд░реЛрдо-рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ URL рд╣реИ: // ciegcibjokpkcklhgbpnmnikpkmkhbjk /, рдЬрд╣рд╛рдВ рд▓реЙрдиреНрдЧ рдбреЛрдореЗрди рдирд╛рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЖрдВрддреНрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╛рдо рд╣реИ, рдЬреЛ рдУрдПрд╕ рд╕реЗрд╡рд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рднреА рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреГрд╖реНрда рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдорд╛рди) рд╕реЗ, рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЫрд╡рд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬреЛ рдкрде рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЛрдореЗрди рдирд╛рдореЛрдВ рдХреЗ рд╕рдореВрд╣ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рднрдВрдбрд╛рд░рдг рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдирд╛; рдкреВрд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рд╕реНрдЯреЛрд░ рдХреА рдЧрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗрдЯрд┐рдВрдЧ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреЗрдЬ рдкрд░ Mordor рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ URL рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

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

рдЬрд╛рдВрдЪ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреНрд░реЛрдо рдореЗрдВ рдбреЗрд╡рд▓рдкрд░ рдореЛрдб рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдиреЗ рдФрд░ 3 рдлрд╝рд╛рдЗрд▓реЛрдВ (рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ.рдЬреЙрд╕рди, рд╕реНрдХреНрд░рд┐рдкреНрдЯ.рдЬреЗрдПрд╕, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб.рдЬреЗрдПрд╕) рдХреЛ рдмрдирд╛рдиреЗ рдпрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ 2 рдкреГрд╖реНрдареЛрдВ рд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦреЗрдВ - рдЗрд╕рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛред js рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ (рдкреГрд╖реНрдарднреВрдорд┐ рджреЗрдЦреЗрдВред Js рдкреГрд╖реНрдарднреВрдорд┐ рдХрдВрд╕реЛрд▓ - рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ "рдЪреЗрдХ рдореЛрдб рджреЗрдЦреЗрдВ: _generated_background_page.html" рдХреНрд░реЛрдо рдореЗрдВ: // рдПрдХреНрд╕рдЯреЗрдВрд╢рди /)ред рдпрджрд┐ рдХреБрдЫ рд▓реЗрдЦ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рддреЛ рдпрд╣ рд▓реЗрдЦ рдХреЗ рдХреЛрдб рдХреЗ 2 рдЦрдВрдбреЛрдВ рдХреЛ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛ред

Habr├й рдкрд░, рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ habrahabr.ru/post/159145 , рдирд╡рдВрдмрд░ 2012 рдореЗрдВ рд▓рд╛рдЧреВ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХреА рдЧрдИ рдереА - рдЬреНрдЮрд╛рди рдХреЗ рд╕рдорд╛рди рд╕реНрд░реЛрдд рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╢рд╛рдВрддрд┐ рд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд░реВрд╕реА рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдЬреВрди 2012 рдХреЗ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдВ рддрдВрддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ Google рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИред рдпрд╣ рдРрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВред рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЖрдо рд╕реНрдореГрддрд┐ рдирд╣реАрдВ рд╣реИред рдбреЗрд╡рд▓рдкрд░. chrome.com/extensions/api_index.html рдкрд░ рд╡рд░реНрдгрд┐рдд рдХрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рдореЗрдЬрд╝рд░ рд╕рдВрджреЗрд╢ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ, рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЙрдирдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реА рддрд░рдл рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рд╕рдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреЛрд╕реНрдЯрдорд╛рд╕реЗрдЬ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЬреЛ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдПрдХреНрд╕реЗрд╕ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдорддреМрд░ рдкрд░ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдФрд░ рдлрд╝реНрд░реЗрдореЛрдВ рдХреЗ рдмреАрдЪ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдбреЛрдореЗрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВ рддреЛ рдпрд╣ рд╕рдВрдЪрд╛рд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд╛рдзрди рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдкрд╣рд▓реЗ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХреАрд╡рд░реНрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ "рдмреИрд╕рд╛рдЦреА" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдирд╛рдо "window.name" рдХреЗ рддрд╣рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рдкрджреНрдзрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬрдЯрд┐рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдирд┐рдпрдорд┐рдд рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рддрдВрддреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреНрд░реЛрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЗ рддрдВрддреНрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдкреЛрд╕реНрдЯрдорд╛рд╕реЗрдЬ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░, IE8 +)


рд╕рдВрджреЗрд╢ рдХрд╛ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреГрд╖реНрда рдПрдХ рдХрд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ "рд╕рдВрджреЗрд╢" рдмрдирд╛рддрд╛ рд╣реИ - рдпрд╣ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдкрдиреЗ рдбреЛрдореЗрди рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рддрдХ рдпрд╣ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред (IE8 рдореЗрдВ рдПрдХ рд╕реАрдорд╛ рд╣реИ - рдлреНрд░реЗрдо рдХреЗ рдХреЗрд╡рд▓ рдореВрд▓ рд╡рд┐рдВрдбреЛ рддрдХ рдкрд╣реБрдВрдЪрдирд╛)ред
otherWindow.postMessage(message, targetOrigin); //message -    __  //targetOrigin -     otherWindow,  " " 

рдпрджрд┐ рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
1) рдПрдХ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╣реИ;
2) рд╣реИрдВрдбрд▓рд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП "рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ" рдмрд┐рд▓реНрдХреБрд▓ рдбреЛрдореЗрди рд╕реЗ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
 window.addEventListener('message', function(event){ //  if(event.origin !== 'URL_-') // , , 'http://example.org' return; ...// event.data,  message  .postMessage ...// event.source - -  ,  //       }, false); 


рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ (рдХреНрд░реЛрдо)


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

рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХреНрд░реЛрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреЗрдЬ : spmbt.kodingen.com/bgMessageXmp/index.htm рд╕реЗ рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреЗрдЦрд╛, рдкрд░рдЦрд╛ рдФрд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ 5 рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж (рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ - рдХреЗрд╡рд▓ 3 рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ), рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ : 1) рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, 2) рдХреНрд░реЛрдо рдкрд░ рдЕрдирдЬрд╝рд┐рдк (рдпрд╛ рдЗрд╕реЗ рддреБрд░рдВрдд рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ), 3) рдХреНрд░реЛрдо: // рдПрдХреНрд╕рдЯреЗрдВрд╢рди / "рдбреЗрд╡рд▓рдкрд░ рдореЛрдб" рдкрд░ рдЬрд╛рдПрдВ, 4) "рдЕрдирдкреИрдХреНрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ..." рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП, 5) рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 5 рд▓рд┐рдВрдХ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдпрд╣ рдХреНрд░реЛрдо: // рдПрдХреНрд╕рдЯреЗрдВрд╢рди / рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЗрд╕ рдирдореВрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рд▓реЗрдЦрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ рдбрд┐рдмрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЙрдирд╕реЗ рдЯрд╛рдЗрдкреЛрд╕ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред

рдЙрджрд╛рд╣рд░рдг 1
рдЕрдЧрд░ рдЖрдкрдХреЛ рдЯреИрдм рд╕реЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреЗрдЬ рдкрд░ рднреЗрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рд╕рд░рд▓ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  chrome.extension.sendMessage('   '); 

рдПрдХ рд╕рдВрджреЗрд╢ рдкреГрд╖реНрдарднреВрдорд┐ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреГрд╖реНрда рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 chrome.extension.onMessage.addListener(function(request){ if(request=='   ') //,        console.log('1. : ', request); }); 


рдЙрджрд╛рд╣рд░рдг 2
рдЗрд╕ рдЬреЛрдбрд╝реА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ:
 chrome.extension.sendMessage(' backMsg', function(backMessage){ console.log('2.    :', backMessage); }); 

рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рд╕реЗ:
 chrome.extension.onMessage.addListener(function(request, sender, f_callback){ if(request==' backMsg'){ //,        console.log('2.   : ', request); f_callback('backMsg'); //  } }); 

f_callback - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд (рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдореЗрдВ рдирд╣реАрдВ), рд▓реЗрдХрд┐рди рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рдеред
рдкреНрд░реЗрд╖рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд░реВрдк рд╣реИ:
 { active: true highlighted: true id: 34 //id  ()  incognito: false index: 0 pinned: false selected: true status: "complete" title: "HabrAjax by spmbt" //document.title url: "http://spmbt.kodingen.com/habrahabr/habrAjax/index.htm" //location.href windowId: 1 //id   } 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд╕рд╕реЗ рдХреБрдЫ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рд╣рдо рдкреНрд░реЗрд╖рдХ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рдЯреИрдм рдпрд╛ рд╡рд┐рдВрдбреЛ рд╕реЗ рд╕рдВрджреЗрд╢ рдЖрдпрд╛ рд╣реИ, рдЙрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЕрдиреНрдп рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рднреЗрдЬреЗрдВ, рдпрджрд┐ рд╡реЗ рдЕрдиреНрдп рдЯреИрдм рдореЗрдВ рд╣реИрдВред
(рдЙрджрд╛рд╣рд░рдг 2 рдХрд╛ рдЕрдВрдд)

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

рдПрдХ рддрд░реНрдХ рдХреЛ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде, 3 рддрд░реНрдХ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреА рднреВрдорд┐рдХрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдЧреЗ рдЬрд╛рдХрд░, рдЙрдиреНрд╣реЗрдВ 1 рддрд░реНрдХ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЪрд╛рдмрд┐рдпрд╛рдБ {рдЕрдиреБрд░реЛрдз: ..., рдкреНрд░реЗрд╖рдХ: ..., рдХреЙрд▓рдмреИрдХ: f () {...}}; рддреБрдордиреЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛? рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рдорд╛рдирд╛ рдХрд┐ 3 рддрд░реНрдХ - рдпрд╣ рдПрдХ рдРрд╕реА рд╕рдЬреНрдЬрдирддрд╛ рдХреА рд╕реАрдорд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╛рдж рд░рдЦрдиреЗ (рдФрд░ рдЖрдЧреЗ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдордирд╛рдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рд╕реНрд╡-рдкреНрд░рд▓реЗрдЦрди рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рддрд░реНрдХ 2-3 рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдХрд▓реНрдк рд╕реНрдерд┐рддрд┐рдЧрдд рддрд░реНрдХреЛрдВ рдХреА рдУрд░ рдЭреБрдХ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рдХрд╛ рдирд╛рдо, рдмрд▓реНрдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИрд╢ рднреА рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 var data ='From page '; chrome.extension.sendMessage({cmd:'exec1', h:{data1: data, dataX: d+1}, function(backMessage) console.log(backMessage); }}); 

рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рд╕реЗ:
 chrome.extension.onMessage.addListener(function(request, sender, callback){ if(request.cmd =='exec1'){ callback('backMsg'); //  console.log('Tis message in background page printed after' +' receive of data1 = ', request.h.data1, '; URL= ',sender.url); }); 

рд╕рд╛рдордЧреНрд░реА рдкреГрд╖реНрдареЛрдВ рд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░реЗрдВ:
 var inBg = function(cmd, h, f_back){ h.cmd = cmd; chrome.extension.sendMessage(h, f_back); }); ... inBg('exec1', {data1: data, dataX: d+1}, function(){ ... }); 


( рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рддреАрд╕рд░рд╛ рдХреЙрд▓рдмреИрдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ... рдкреНрд░рдмрдВрдзрди рдХреЗрд╡рд▓ 2 рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)

рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рд╕реЗ рд╡рд┐рдВрдбреЛ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ (рдХреНрд░реЛрдо)


рдЙрджрд╛рд╣рд░рдг 3
рдпрджрд┐ рдХреЛрдИ рдЙрд▓рдЯрд╛ рдХрд╛рд░реНрдп рд╣реИ , рддреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ, рдХрд╣реЗрдВ, рд╕рдХреНрд░рд┐рдп рдЯреИрдм:
рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 chrome.tabs.getSelected(null, function(tab){ //   ,     chrome.tabs.sendRequest(tab.id,{msg:"msg01"}); //   }); 

рд╕рд╛рдордЧреНрд░реА рдореЗрдВ:
 chrome.extension.onRequest.addListener(function(req){ //   background console.log('3.   :', req.msg); //   }); 

рдХреНрдпрд╛ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдордиреЗ sendMessage-onMessage рдЬреЛрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ - sendRequest-onRequest ? рдирд╣реАрдВ, рдХреЛрдИ рднреА рд╡рд┐рдзрд┐ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЬреЛрдбрд╝реА рд╕реЗ рд╣реЛред

рдЙрджрд╛рд╣рд░рдг 4
рдпрджрд┐ рдЖрдкрдХреЛ рд░рд┐рд╡рд░реНрд╕ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 var inBack = function(tabId, cmd, h, f_back){ h.cmd = cmd; chrome.tabs.sendMessage(tabId, h, f_back); }; chrome.tabs.getSelected(null, function(tab){ inBack(tab.id,'exec0', {dat:'h'}, function(backMessage){ console.log('4.    : ', backMessage); }); }); 

рд╕рд╛рдордЧреНрд░реА рдкреГрд╖реНрда рдкрд░:
 chrome.extension.onMessage.addListener(function(request, sender, callback){ if(request.cmd =='exec0'){ // console.log('4.  :', request.dat); callback('12w3'); } }); 


рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реА рднрд┐рдиреНрди рд╡рд╕реНрддреБ (chrome.runtime) рдХреЗ рд▓рд┐рдП, developer.chrome.com/extensions/messaging.html рдкрд░, рдФрд░ chrome.runtime рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ SendMessageред

рдорд╛рдирдХ рдбрд╛рдХ рдкреНрд░рд╕рд╛рд░рдг рдкрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди (рд╡рд┐рдлрд▓)


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

рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ chrome.extension.getURL ('рдкрд╛рде') рд╣реИ ред рдпрд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдорд╛рд░реНрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдВрд╕рд╛рдзрди рдорд┐рд▓рддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ) - рдЗрд╕рд╕реЗ рдЪрд┐рддреНрд░ рдФрд░ рдЧреНрд░рдВрдеред рдПрдХ рдЕрд▓рдЧ рдбреЛрдореЗрди рдпрд╣рд╛рдВ рдПрдХ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдПрдЧрд╛: рдкреГрд╖реНрда рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдШрд┐рд░реЗ рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдЬрд╛рдХреНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╛ рдЗрд╕реЗ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ - рд╕рдВрджреЗрд╢ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЛрдореЗрди рджреАрд╡рд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

рдЙрджрд╛рд╣рд░рдг 5
рдЖрдЗрдП рдПрдХ рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ("рдХреНрд░реЛрдо-рдПрдХреНрд╕рдЯреЗрдВрд╢рди:") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ (рдХреБрдЫ рдЗрд╕ рддрд░рд╣ "// ciegcibjokpkcklhgbpnmnikpkmkhbjk")ред
 var bgUrl = chrome.extension.getURL(''); console.log(bgUrl); //  

рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рд╡рд┐рдВрдбреЛ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рд╡рд┐рдзрд┐ рд╣реИ:
 chrome.extension.getBackgroundPage(); 

рд▓реЗрдХрд┐рди рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ:
рдЕрдирдХрд╡рд░реНрдб рдПрд░рд░: "getBackgroundPage" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред
рдХрдорд╛рдВрдбреЛ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдирд┐рдордп рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдлреНрд░реЗрдо рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреБрдЫ рднреА рдЖрдкрдХреЛ рдПрдХ рдлреНрд░реЗрдо рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
 var ifr = document.createElement('iframe'); ifr.id ='ifr1'; ifr.src = bgUrl; document.body.appendChild(ifr); 

рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ:
рдХреНрд░реЛрдо-рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЕрд╕реНрд╡реАрдХреГрдд рднрд╛рд░ : // ciegcibjokpkcklhgbpnmnikpkmkhbbk / ред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд╛рд╣рд░ рдкреГрд╖реНрдареЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди web_accessible_resources рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдЬреЛрдбрд╝реЗрдВ (рдФрд░ chrome.extension.sendMessage рдХреЗ рд╕рд╛рде рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛)ред
"рдЕрдиреБрдорддрд┐рдпрд╛рдБ": ["рдХреНрд░реЛрдо-рдПрдХреНрд╕рдЯреЗрдВрд╢рди: // *", ...]
рдХреНрд░реЛрдо рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ: // рдПрдХреНрд╕рдЯреЗрдВрд╢рди /:
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рдереА:
рдЕрдиреБрдорддрд┐ 'рдХреНрд░реЛрдо-рдПрдХреНрд╕рдЯреЗрдВрд╢рди: //' рдЕрдЬреНрдЮрд╛рдд рд╣реИ рдпрд╛ URL рдкреИрдЯрд░реНрди рд╡рд┐рдХреГрдд рд╣реИред
рдпрджрд┐ рдкрд╣реБрдВрдЪ рд╕реЗ рд╡рдВрдЪрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд░рд╣реЗрдЧрд╛
 ifr.postMessage('Yep', bgUrl.replace(/\/$/,'') ); 

рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ -
 window.addEventListener('message', function(ev){ console.log('origin: ', ev.origin); },!1); 


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

рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рддрд░рдХреАрдмреЗрдВ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред Chrome.extension рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдирд┐рдЬреА рд╣рд┐рд╕реНрд╕рд╛ рд╢рд╛рдВрддрд┐ рд╕реЗ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред (рд╣рдореЗрдВ рдЕрднреА рднреА sandbox.html рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд░реЗрдо рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред)

рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреГрд╖реНрда рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

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


All Articles