- Step 1: Navigate to Proxy settings.
- Step 2: Select "Manual proxy settings - HTTP".
- Hostname: localhost
- Port: 80
Set no proxy for:
((_=>_.reduce((a, v)=>`${v.toString(16).padStart(2,"0")}${a}`,""))((_=>crypto.getRandomValues(_))(new Uint8Array(32)))) |
#Introduction
Developing Chrome Extensions is REALLY fun if you are a Front End engineer. If you, however, struggle with visualizing the architecture of an application, then developing a Chrome Extension is going to bite your butt multiple times due the amount of excessive components the extension works with. Here are some pointers in how to start, what problems I encounter and how to avoid them.
Note: I'm not covering chrome package apps, which although similar, work in a different way. I also won't cover the page options api neither the new brand event pages. What I explain covers most basic chrome applications and should be enough to get you started.
#Introduction
Developing Chrome Extensions is REALLY fun if you are a Front End engineer. If you, however, struggle with visualizing the architecture of an application, then developing a Chrome Extension is going to bite your butt multiple times due the amount of excessive components the extension works with. Here are some pointers in how to start, what problems I encounter and how to avoid them.
Note: I'm not covering chrome package apps, which although similar, work in a different way. I also won't cover the page options api neither the new brand event pages. What I explain covers most basic chrome applications and should be enough to get you started.
/** | |
* Get the current URL of the selected Chrome tab. | |
* Useful for Chrome/Chromium extensions. | |
* @return {Promise<any>} | |
*/ | |
const getCurrentUrl = () => { | |
return new Promise((resolve, reject) => { | |
chrome.tabs.query({"active": true, "currentWindow": true}, (tabs) => { | |
resolve(tabs[0].url); | |
}); |
Note
This no longer works in browser! If you absolutely need to use browser instead of desktop app, use an extension to add the string Electron/
anywhere in your user-agent.
How to use this script:
from scapy.all import PPPoED, Ether, sniff, sendp, srp1, hexdump | |
source = b"\xXX\xXX\xXX\xXX\xXX\xXX" # MAC address of your adapter on PC | |
destination = b"\xXX\xXX\xXX\xXX\xXX\xXX" # MAC address of LAN on your PS4 | |
interface = "Realtek PCIe 2.5GbE Family Controller #2" # get via "ipconfig /all" or eth0 or similiar on Linux | |
packet = sniff(iface=interface, filter="pppoed", count=1) | |
tag_value = packet[PPPoED][0].tag_list[1].tag_value | |
payload = destination + source + b"\x88\x63\x11\x07\x00\x00\x00\x0c\x01\x03\x00\x08" + tag_value | |
sendp(payload, iface=interface) |
/* | |
* This work is free. You can redistribute it and/or modify it under the | |
* terms of the Do What The Fuck You Want To Public License, Version 2, | |
* as published by Sam Hocevar. See the COPYING file for more details. | |
*/ | |
/* | |
* Easing Functions - inspired from http://gizma.com/easing/ | |
* only considering the t value for the range [0, 1] => [0, 1] | |
*/ | |
EasingFunctions = { |
chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){ //onUpdated should fire when the selected tab is changed or a link is clicked. | |
chrome.tabs.getSelected(null,function(tab){ | |
if (tab.url=='http://techmeme.com/') | |
chrome.contextMenus.create(contextMenuSpec); | |
else | |
chrome.contextMenus.removeAll(); | |
}); | |
}); | |
var contextMenuSpec = { |