fixed #24 and prolly #23

This commit is contained in:
Tamius Han 2018-02-22 22:14:52 +01:00
commit 728fa0a0b3
5 changed files with 24 additions and 32 deletions

View File

@ -81,6 +81,10 @@ Manually triggering aspect ratio change will suspend automatic aspect ratio dete
## Changelog ## Changelog
### v2.1.3
* Youtube pushed an update that broke this extension on Firefox (but not on Chrome?). This update fixes it.
### v2.1.2 ### v2.1.2
* Fixed some bugs with autodetection sometimes not working properly on Youtube. * Fixed some bugs with autodetection sometimes not working properly on Youtube.

View File

@ -10,6 +10,7 @@ Debug = {
debugStorage: true, debugStorage: true,
showArDetectCanvas: true, showArDetectCanvas: true,
flushStoredSettings: false, flushStoredSettings: false,
playerDetectDebug: false
arDetect: { arDetect: {
edgeDetect: true edgeDetect: true
} }

View File

@ -14,6 +14,8 @@ var _se_init = async function(neverFlushStored){
var newSettings = await StorageManager.getopt_async("uw-settings"); var newSettings = await StorageManager.getopt_async("uw-settings");
var uwVersion = browser.runtime.getManifest().version;
if (Debug.debug) if (Debug.debug)
console.log("[Settings::_se_init()] settings saved in localstorage are:", newSettings, " - if that's empty, it's gonna be replaced by this:", JSON.stringify(this), ")"); console.log("[Settings::_se_init()] settings saved in localstorage are:", newSettings, " - if that's empty, it's gonna be replaced by this:", JSON.stringify(this), ")");
@ -23,6 +25,10 @@ var _se_init = async function(neverFlushStored){
} }
else{ else{
var actualSettings = JSON.parse(newSettings["uw-settings"]); var actualSettings = JSON.parse(newSettings["uw-settings"]);
if(actualSettings.version === undefined || actualSettings.version != uwVersion){
console.log("[Settings::_se_init()] extension was updated, replacing settings");
StorageManager.setopt({"uw-settings": JSON.stringify(this)});
}
if(Debug.debug) if(Debug.debug)
console.log("[Settings::_se_init()] parsed settings:", actualSettings); console.log("[Settings::_se_init()] parsed settings:", actualSettings);

View File

@ -47,7 +47,8 @@ var _pd_getPlayerDimensions = function(element){
return; return;
} }
var playerCandidateNode = element; var playerCandidateNode = element;
var trustCandidateAfterGrows = 2; // if candidate_width or candidate_height increases in either dimensions this many
// times, we say we found our player. (This number ignores weird elements)
// in case our <video> is bigger than player in one dimension but smaller in the other // in case our <video> is bigger than player in one dimension but smaller in the other
// if site is coded properly, player can't be wider than that // if site is coded properly, player can't be wider than that
var candidate_width = Math.max(element.offsetWidth, screen.width); var candidate_width = Math.max(element.offsetWidth, screen.width);
@ -64,15 +65,22 @@ var _pd_getPlayerDimensions = function(element){
continue; continue;
} }
if ( element.offsetHeight <= candidate_height && if ( element.offsetHeight <= candidate_height &&
element.offsetWidth <= candidate_width ){ element.offsetWidth <= candidate_width ){
playerCandidateNode = element; playerCandidateNode = element;
candidate_width = element.offsetWidth; candidate_width = element.offsetWidth;
candidate_height = element.offsetHeight; candidate_height = element.offsetHeight;
// if(Debug.debug){ if(Debug.debug){
// console.log("Found new candidate for player. Dimensions: w:", candidate_width, "h:",candidate_height); console.log("Found new candidate for player. Dimensions: w:", candidate_width, "h:",candidate_height, "node:", playerCandidateNode);
// } }
}
else if(trustCandidateAfterGrows --<= 0){
if(Debug.debug && Debug.playerDetect){
console.log("Current element grew in comparrison to the child. We probably found the player. breaking loop, returning current result");
}
break;
} }
element = element.parentNode; element = element.parentNode;

View File

@ -6,33 +6,6 @@ if(Debug.debug)
// calling _res_restore() for some weird reason. // calling _res_restore() for some weird reason.
var _res_restore_wd = false; var _res_restore_wd = false;
var _res_manual_autoar = function(siteProps){
if(! siteProps.autoar_imdb.enabled)
return;
if(siteProps.autoar_imdb.isClass)
var ntitle = document.querySelector("."+ siteProps.autoar_imdb.title); // NOTE: needs to be tested
else
var ntitle = document.querySelector("#"+ siteProps.autoar_imdb.title); // NOTE: needs to be tested
//querySelector lahko vrne null, zato moramo preveriti, kaj smo dobili — drugače se .textContent pritožuje.
//querySelector can return null, in which case .textContent will complain.
if(!ntitle)
return;
var title = ntitle.textContent;
char_got_ar = false;
last_whatdo = {type: "autoar", what_do:"autoar"};
var sending = browser.runtime.sendMessage({
type: "gibAspectRatio",
title: title
});
// sending.then( function(){}, function(err1, err2){console.log("uw::periodic: there was an error while sending a message", err1, err2)} );
}
var _res_char = function(newAr, video, player){ var _res_char = function(newAr, video, player){
// Kot vhodni argument dobimo razmerje stranic. Problem je, ker pri nekaterih ločljivostih lahko razmerje stranic // Kot vhodni argument dobimo razmerje stranic. Problem je, ker pri nekaterih ločljivostih lahko razmerje stranic