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