рдирд┐рд░реЛрдЧреА рд╡реНрдпрдХреНрддреАрдХрдбреВрди тАЬvk.com/away.phpтАЭ рдХрд┐рдВрд╡рд╛ рдЦрд╛рд▓реАрд▓ рд▓рд┐рдВрдХреНрд╕рдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреЗ

рд╡реНрд╣реАрдХреЙрдиреНрдЯрд╛рдХреНрдЯреЗ рд╡рд░ рдкреЛрд╕реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рджреБрд╡реНрдпрд╛рдВрд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░реВрди, рдЖрдкрд▓реНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдпреЗрдИрд▓ рдХреА, рдЗрддрд░ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХреНрд╕рдкреНрд░рдорд╛рдгреЗрдЪ, рдкреНрд░рдердо "рд╕реБрд░рдХреНрд╖рд┐рдд" рджреБрд╡реНрдпрд╛рд╡рд░ рд╕рдВрдХреНрд░рдордг рд╣реЛрддреЗ, рддреНрдпрд╛рдирдВрддрд░ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреНрдпрд╛рдпрдЪреА рдХреА рдирд╛рд╣реА рд╣реЗ рдард░рд╡рддреЗ. рдмреНрд░рд╛рдЙрдЭрд░рдЪреНрдпрд╛ рдЕреЕрдбреНрд░реЗрд╕ рдмрд╛рд░рдордзреНрдпреЗ "vk.com/away.php" рдЪреЗ рдЕрд░реНрдзрд╛-рд╕реЗрдХрдВрдж рджрд┐рд╕рдгреЗ рдмрд░реНтАНрдпрд╛рдЪ рд╕рдЬрдЧ рд▓реЛрдХрд╛рдВрдиреА рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ, рдкрд░рдВрддреБ рдЕрд░реНрдерд╛рддрдЪ, рддреНрдпрд╛рд▓рд╛ рдХреЛрдгрддреЗрд╣реА рдорд╣рддреНрддреНрд╡ рджрд┐рд▓реЗ рдирд╛рд╣реА.

рдирд┐рд░реЛрдЧреА рд╡реНрдпрдХреНрддреАрдХрдбреВрди тАЬvk.com/away.phpтАЭ рдХрд┐рдВрд╡рд╛ рдЦрд╛рд▓реАрд▓ рд▓рд┐рдВрдХреНрд╕рдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреЗ

prehistory

рдПрдХреЗ рджрд┐рд╡рд╢реА, рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдиреЗ, рджреБрд╕рд░рд╛ рдкреНрд░рдХрд▓реНрдк рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреНрдпрд╛рд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рддреНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдмрджреНрджрд▓ рд╕рд░реНрд╡рд╛рдВрдирд╛ рд╕рд╛рдВрдЧрдгреНрдпрд╛рдЪреА рдЗрдЪреНрдЫрд╛ рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдк рдПрдХрд╛ рдЕрджреНрд╡рд┐рддреАрдп IP рд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╣реЛрд╕реНрдЯ рдХреЗрд▓рд╛ рд╣реЛрддрд╛, рдкрд░рдВрддреБ рдбреЛрдореЗрди рдирд╛рд╡рд╛рд╢рд┐рд╡рд╛рдп. рдореНрд╣рдгреВрди, .ddns.net рдбреЛрдореЗрдирдордзреНрдпреЗ рдПрдХ рд╕реБрдВрджрд░ рддреГрддреАрдп-рд╕реНрддрд░реАрдп рд╕рдмрдбреЛрдореЗрди рддреНрд╡рд░реАрдд рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рдЬреЗ рд╢реЗрд╡рдЯреА рд▓рд┐рдВрдХ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реЗ рдЧреЗрд▓реЗ. 

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

рдирд┐рд░реЛрдЧреА рд╡реНрдпрдХреНрддреАрдХрдбреВрди тАЬvk.com/away.phpтАЭ рдХрд┐рдВрд╡рд╛ рдЦрд╛рд▓реАрд▓ рд▓рд┐рдВрдХреНрд╕рдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреЗ

рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рд╕реНрдорд╛рд░реНрдЯ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдХреЛрдгрддреНрдпрд╛ рд╕рд╛рдЗрдЯрд╡рд░ рдЬрд╛рдпрдЪреЗ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛ рдирд╛рд╣реА рд╣реЗ рдард░рд╡рд┐рдгреНрдпрд╛рдЪрд╛ рдЕрдзрд┐рдХрд╛рд░ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╡реНрд╣реАрдХреЙрдиреНрдЯрд╛рдХреНрдЯреЗ рд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛рдд рдЖрдгрд┐ рдХреНрд░реЕрдЪрд╢рд┐рд╡рд╛рдп рджреБрд╡реНрдпрд╛рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдгреНрдпрд╛рдЪреА рдХреЛрдгрддреАрд╣реА рд╕рдВрдзреА рдкреНрд░рджрд╛рди рдХрд░рдд рдирд╛рд╣реАрдд.

рдХрд╛рдп рдЪреВрдХ рдЖрд╣реЗ

рдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдЕрдиреЗрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рддреЛрдЯреЗ рдЖрд╣реЗрдд:

  • рд╕рдВрд╢рдпрд╛рд╕реНрдкрдж рд╕рд╛рдЗрдЯ рдЙрдШрдбрдгреНрдпрд╛рд╕ рдЕрд╕рдорд░реНрдерддрд╛. рд╡рд░ рд╕рд╛рдВрдЧрд┐рддрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдХрдбреЗ рд╕реНрдЯрдмрд╡рд░ рдорд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рдорд╛рд░реНрдЧ рдирд╛рд╣реА. рд▓рд┐рдВрдХ рдЙрдШрдбрдгреНрдпрд╛рдЪрд╛ рдПрдХрдореЗрд╡ рдорд╛рд░реНрдЧ рдореНрд╣рдгрдЬреЗ рддреЛ рдЕреЕрдбреНрд░реЗрд╕ рдмрд╛рд░рдордзреНрдпреЗ рдХреЙрдкреА рдЖрдгрд┐ рдкреЗрд╕реНрдЯ рдХрд░рдгреЗ.
  • рд▓рд┐рдВрдХ рдиреЗрд╡реНрд╣рд┐рдЧреЗрд╢рди рдзреАрдорд╛ рдХрд░рддреЗ. рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдЧрддреА рдкрд┐рдВрдЧрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ. рддреНрдпрд╛рдиреБрд╕рд╛рд░, рдЙрдЪреНрдЪ рдкрд┐рдВрдЧрд╕рд╣, рдЖрдпреБрд╖реНрдпрд╛рддреАрд▓ рдореМрд▓реНрдпрд╡рд╛рди рд╕реЗрдХрдВрдж рдЧрдорд╛рд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдЬреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА, рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╛рд╣реА.
  • рд╕рдВрдХреНрд░рдордг рдирд┐рд░реАрдХреНрд╖рдг. рд╣реА рдкрджреНрдзрдд рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ, рдЬреА рдЕрд░реНрдерд╛рддрдЪ рд╡реНрд╣реАрдХреЗ рд╡рд╛рдкрд░рддреЗ, рдЬреНрдпрд╛ рдкреЛрд╕реНрдЯрдордзреВрди рд╕рдВрдХреНрд░рдордг рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ рддреНрдпрд╛ рдкреЛрд╕реНрдЯрдЪрд╛ рдЖрдпрдбреА рд╕реБрд░рдХреНрд╖рд┐рдд рджреБрд╡реНрдпрд╛рд╡рд░ рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ.

рдЬреЕрдВрдЧреЛ рдореБрдХреНрдд рдХрд░рдд рдЖрд╣реЗ

рд╡рд░реАрд▓ рд╕рд░реНрд╡ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рдмреНрд░рд╛рдЙрдЭрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдЕрд╕реВ рд╢рдХрддреЗ. рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгрд╛рдВрд╕рд╛рдареА, рдирд┐рд╡рдб Chrome рд╡рд░ рдпреЗрддреЗ. рд╣рдм рд╡рд░ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЖрд╣реЗ рд▓реЗрдЦ Chrome рд╕рд╛рдареА рд╡рд┐рд╕реНрддрд╛рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдкрд┐рдд рд▓реЗрдЦ.

рдЕрд╕рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рджреЛрди рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддреАрд▓: рдПрдХ json-Manifest рдЖрдгрд┐ рдПрдХ JavaScript рдлрд╛рдЗрд▓ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ url рдЕреЕрдбреНрд░реЗрд╕рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рдореЕрдирд┐рдлреЗрд╕реНрдЯ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛

рдЯреЕрдмрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдпреБрдХреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдореБрдЦреНрдп рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ:

{
  "manifest_version": 2,
  "name": "Run Away From vk.com/away",
  "version": "1.0",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["tabs"],
  "browser_action": {
    "default_title": "Run Away From vk.com/away"
  }
}

js рдлрд╛рдИрд▓ рддрдпрд╛рд░ рдХрд░рд╛

рдпреЗрдереЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ: рдирд╡реАрди рдЯреЕрдм рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рд╡рд░ рдХреЙрд▓ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЗрд╡реНрд╣реЗрдВрдЯрдордзреНрдпреЗ, рдЖрдореНрд╣реА url рдкрддреНрддреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЪреЗрдХ рдЬреЛрдбрддреЛ рдЬрд░ рддреЛ "рдиреЗ рд╕реБрд░реВ рд╣реЛрдд рдЕрд╕реЗрд▓ рддрд░vk.com/away.php", рдирдВрддрд░ GET рд╡рд┐рдирдВрддреАрдордзреНтАНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдмрд░реЛрдмрд░ рдмрджрд▓рд╛:

chrome.tabs.onCreated.addListener( function (tabId, changeInfo, tab) {
	chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
		var url = tabs[0].url;
		if (url.substr(0,23) == "https://vk.com/away.php"){
			var last = url.indexOf("&", 0)
			if(last == -1)last = 1000;
			var url = decodeURIComponent(url.substr(27, last-27));
			chrome.tabs.update({url: url});
		}
	});
});

рд╡рд┐рд╕реНрддрд╛рд░ рдПрдХрддреНрд░ рдХрд░рдгреЗ

рджреЛрдиреНрд╣реА рдлрд╛рдпрд▓реА рдПрдХрд╛рдЪ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, Chrome рдЙрдШрдбрд╛, рд╡рд┐рд╕реНрддрд╛рд░ рдЯреЕрдм рдирд┐рд╡рдбрд╛ рдЖрдгрд┐ тАЬрд▓реЛрдб рдЕрдирдкреЕрдХ рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рд╕реНрддрд╛рд░тАЭ рдХреНрд▓рд┐рдХ рдХрд░рд╛. рдЙрдШрдбрдгрд╛рд▒реНрдпрд╛ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ, рд▓рд┐рдЦрд┐рдд рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдлрд╛рдЗрд▓рдЪреЗ рдлреЛрд▓реНрдбрд░ рдирд┐рд╡рдбрд╛ рдЖрдгрд┐ рдЧреЛрд│рд╛ рдХрд░рд╛ рдХреНрд▓рд┐рдХ рдХрд░рд╛. рддрдпрд╛рд░! рдЖрддрд╛ vk.com/away рд╕рд╛рд░рдЦреНрдпрд╛ рд╕рд░реНрд╡ рд▓рд┐рдВрдХ рдореВрд│ рд▓рд┐рдВрдХреНрд╕рдиреЗ рдмрджрд▓рд▓реНрдпрд╛ рдЖрд╣реЗрдд.

рддреНрдпрд╛рдРрд╡рдЬреА рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖

рдЕрд░реНрдерд╛рдд, рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╕реНрдЯрдмрдиреЗ рд▓рд╛рдЦреЛ рдлрд╕рд╡реНрдпрд╛ рд╕рд╛рдЗрдЯреНрд╕рдкрд╛рд╕реВрди рдЕрдиреЗрдХ рд▓реЛрдХрд╛рдВрдирд╛ рд╡рд╛рдЪрд╡рд▓реЗ рдЖрд╣реЗ, рддрдерд╛рдкрд┐, рдорд╛рдЭрд╛ рдЕрд╕рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХреА рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд▓рд┐рдВрдХрд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛рдпрдЪреЗ рдХреА рдирд╛рд╣реА рд╣реЗ рдард░рд╡рдгреНрдпрд╛рдЪрд╛ рдЕрдзрд┐рдХрд╛рд░ рд▓реЛрдХрд╛рдВрдирд╛рдЪ рдЖрд╣реЗ.
рд╕реЛрдпреАрд╕рд╛рдареА, рдореА рдкреНрд░рдХрд▓реНрдк рдкреЛрд╕реНрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ github.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛