Π‘ΠΈΠΌΠ΅ΠΎΠ½ ΠΠΈΠ½ΡΠ΅Π½Ρ (Simeon Vincent), ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Chrome Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ (Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ Extensions Developer Advocate), ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Google Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Chrome, ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Π½Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π° ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° ΠΏΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ API webRequest, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π° Π»Π΅ΡΡ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ Chrome Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ (), Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° API webRequest Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° Π² ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌ Π²ΠΈΠ΄Π΅.
ΠΠ»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Chrome API Π±ΡΠ΄Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠ° Π·Π°ΠΌΠ΅Π½Ρ API webRequest Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ API , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ Π»ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΡΠ°ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ°Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΡ. ΠΠΎ ΡΡΡΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΠ»Π°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΠΏΡΠ°Π²ΠΈΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, API declarativeNetRequest Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΠ»Π°ΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ , Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ»ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ API declarativeNetRequest. Google ΡΠΎΠ³Π»Π°ΡΠΈΠ»ΡΡ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡΠΌΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ» API declarativeNetRequest. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ», ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Π² Π±Π΅Π»ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ (Referer, Cookie, Set-Cookie). Π ΠΏΠ»Π°Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Set-Cookie ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² CSP) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠ΅ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΠΌ Chrome, ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ ΠΌΠ΅ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ Chrome Canary.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠ΅ΡΠ΅Π· API webRequest. ΠΠ°ΡΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ API webRequest Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π΅ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΡΠΈΡΠΈΠΊΠΈ. Π Π°Π½Π΅Π΅ ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ Π²Π½ΠΎΡΠΈΠΌΠ°Ρ ΠΈΠΌΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΈΡΡΠΎΠΆΠ½Π°. Π ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π»ΠΈΡΡ Π½Π° Π΄ΠΎΠ»ΠΈ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, ΡΡΠΎ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅ΠΆΠΈΠΌΠΎ ΠΌΠ°Π»ΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΠΌ ΡΠΎΠ½Π΅.
ΠΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ Π·Π°ΡΠΈΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡ Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΊ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡ, ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π°Π²Π½ΠΎ ΡΠ»ΠΎΠΆΠΈΠ²ΡΠ΅ΠΉΡΡ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠΉ Π² Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΡΡ
Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΡ
ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Google ΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ API webRequest Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΡΠ°ΡΠΈΠΊΠ°, Π½ΠΎ Π½Π΅ Π²ΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Π² Π½Π΅Π³ΠΎ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.
ΠΠ·ΠΌΠ΅Π½ΡΡΡ ΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
web-ΡΡΡΠ°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΠ΅Π· Π΄ΡΡΠ³ΠΈΠ΅ API (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ°ΠΉΠ½Π΅ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΡΠΌ Π²Π²ΠΎΠ΄Π°).
Π ΡΠΉΠΌΠΎΠ½Π΄ Π₯ΠΈΠ»Π» (Raymond Hill), Π°Π²ΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° uBlock Origin ΠΈ uMatrix, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΆΠ΅ΡΡΠΊΠΎ ΠΎΡΠ²Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Ρ Google ΠΈ Π½Π°ΠΌΠ΅ΠΊΠ½ΡΠ» Π½Π° Π΄Π΅ΠΌΠ°Π³ΠΎΠ³ΠΈΡ ΠΈ Π·Π°ΠΊΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Google ΠΏΠΎΠ΄ Π²ΠΈΠ΄ΠΎΠΌ Π±Π»Π°Π³ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡ ΡΠ²ΠΎΠΈ Π±ΠΈΠ·Π½Π΅Ρ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΠΊΠ»Π°ΠΌΡ, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Π΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠΏΡΠ°Π²Π΄Π°ΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Π³Π»Π°Π·Π°Ρ ΡΠΈΡΠΎΠΊΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠΈ.
Π£Π±Π΅Π΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠ² Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠ³ΠΎ ΠΈ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ API ΠΎΠ½ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ». ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ Π ΡΠΉΠΌΠΎΠ½Π΄Π° ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π·Π΄ΡΡΠΎΡΡΠΈ, Π° Π½Π΅ ΠΈΠ·-Π·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° webRequest Π² ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΡ . ΠΡΠ»ΠΈ Π±Ρ Google Π²ΠΎΠ»Π½ΠΎΠ²Π°Π»Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΠ½ΠΈ Π±Ρ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°Π»ΠΈ webRequest Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° , ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ webRequest Π² Firefox.
ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ Π ΡΠΉΠΌΠΎΠ½Π΄Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Google Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π°Π»Π°Π½ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π±Π°Π·Ρ Chrome ΠΈ ΡΡΠ΅ΡΠ±ΠΎΠΌ Π±ΠΈΠ·Π½Π΅ΡΡ, Π½Π°Π½ΠΎΡΠΈΠΌΠΎΠΌΡ ΠΈΠ·-Π·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠΊΡΠΏΠ°Π½ΡΠΈΠΈ Chrome ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Google Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π° Π±ΡΠ»Π° ΠΌΠΈΡΠΈΡΡΡΡ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌΠΈ ΡΠ΅ΠΊΠ»Π°ΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· ΡΠ°ΠΌΡΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. ΠΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Chrome Π·Π°Π½ΡΠ» Π΄ΠΎΠΌΠΈΠ½ΠΈΡΡΡΡΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΏΠΎΠΏΡΡΠ°Π»Π°ΡΡ ΡΠΌΠ΅ΡΡΠΈΡΡ Π±Π°Π»Π°Π½Ρ Π² ΡΠ²ΠΎΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ, Π½Π°ΡΠ°Π² ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡ ΠΏΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ Π² Chrome ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ΅ΠΊΠ»Π°ΠΌΡ. API webRequest ΠΌΠ΅ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΠΉΡΠ°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ½Π΅Π½ΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠΊΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² ΡΠ΅ΠΊΠ»Π°ΠΌΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
