Use a common webNavigation
listener
Use the same listener for `webNavigation.onCommitted` and `webNavigation.onHistoryStateUpdated`.
This commit is contained in:
parent
b377be8a18
commit
c6340e9617
|
@ -1,6 +1,8 @@
|
||||||
// This happens right away, sometimes so fast that the content script isn't even ready. That's
|
// This happens right away, sometimes so fast that the content script isn't even ready. That's
|
||||||
// why the content script also asks for this stuff.
|
// why the content script also asks for this stuff.
|
||||||
chrome.webNavigation.onCommitted.addListener(function(data) {
|
chrome.webNavigation.onCommitted.addListener(webNavigationListener.bind(this, "styleApply"));
|
||||||
|
chrome.webNavigation.onHistoryStateUpdated.addListener(webNavigationListener.bind(this, "styleReplaceAll"));
|
||||||
|
function webNavigationListener(method, data) {
|
||||||
// Until Chrome 41, we can't target a frame with a message
|
// Until Chrome 41, we can't target a frame with a message
|
||||||
// (https://developer.chrome.com/extensions/tabs#method-sendMessage)
|
// (https://developer.chrome.com/extensions/tabs#method-sendMessage)
|
||||||
// so a style affecting a page with an iframe will affect the main page as well.
|
// so a style affecting a page with an iframe will affect the main page as well.
|
||||||
|
@ -9,13 +11,13 @@ chrome.webNavigation.onCommitted.addListener(function(data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
getStyles({matchUrl: data.url, enabled: true, asHash: true}, function(styleHash) {
|
getStyles({matchUrl: data.url, enabled: true, asHash: true}, function(styleHash) {
|
||||||
chrome.tabs.sendMessage(data.tabId, {method: "styleApply", styles: styleHash});
|
chrome.tabs.sendMessage(data.tabId, {method: method, styles: styleHash});
|
||||||
// Don't show the badge for frames
|
// Don't show the badge for frames
|
||||||
if (data.frameId == 0) {
|
if (data.frameId == 0) {
|
||||||
chrome.browserAction.setBadgeText({text: getBadgeText(Object.keys(styleHash)), tabId: data.tabId});
|
chrome.browserAction.setBadgeText({text: getBadgeText(Object.keys(styleHash)), tabId: data.tabId});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
|
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
|
||||||
switch (request.method) {
|
switch (request.method) {
|
||||||
|
@ -319,20 +321,3 @@ chrome.tabs.onAttached.addListener(function(tabId, data) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
chrome.webNavigation.onHistoryStateUpdated.addListener(function (details) {
|
|
||||||
var now = new Date();
|
|
||||||
console.log("%conHistoryStateUpdate %s: %s(%s)\n url=%s", "color:olive", now.toTimeString().substr(0,8),
|
|
||||||
details.transitionType, details.transitionQualifiers.join(" "), details.url);
|
|
||||||
var request = {
|
|
||||||
enabled: true,
|
|
||||||
matchUrl: details.url,
|
|
||||||
asHash: true
|
|
||||||
};
|
|
||||||
getStyles(request, function(r) {
|
|
||||||
chrome.tabs.sendMessage(details.tabId, {method: "styleReplaceAll", styles: r});
|
|
||||||
if (details.frameId === 0 && localStorage["show-badge"] === "true") {
|
|
||||||
chrome.browserAction.setBadgeText({text: getBadgeText(Object.keys(r)), tabId: details.tabId});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user