Merge branch 'master' into stable

This commit is contained in:
Tamius Han 2021-01-10 17:43:48 +01:00
commit 33dc9038f0
13 changed files with 56 additions and 30 deletions

View File

@ -22,10 +22,11 @@
* 'Site settings' tab should now work in Chrome as well ([#126](https://github.com/tamius-han/ultrawidify/issues/126)) * 'Site settings' tab should now work in Chrome as well ([#126](https://github.com/tamius-han/ultrawidify/issues/126))
* Popup interface now refreshes properly ([#127](https://github.com/tamius-han/ultrawidify/issues/127)) * Popup interface now refreshes properly ([#127](https://github.com/tamius-han/ultrawidify/issues/127))
* Videos should now be scaled correctly when the display is narrower than video's native aspect ratio ([#118](https://github.com/tamius-han/ultrawidify/issues/118)) * Videos should now be scaled correctly when the display is narrower than video's native aspect ratio ([#118](https://github.com/tamius-han/ultrawidify/issues/118))
* Edge users using CWS version of the extension get a very aggressive warning when trying to use the extension with Edge
* Fullscreen videos on streamable are aligned correctly ([#116](https://github.com/tamius-han/ultrawidify/issues/118)). * Fullscreen videos on streamable are aligned correctly ([#116](https://github.com/tamius-han/ultrawidify/issues/118)).
* **[4.5.1.1]** Streamable fix broke old.reddit + RES on embeds from v.redd.it and streamable.com. We're now using an alternative implementation. ([#128](https://github.com/tamius-han/ultrawidify/issues/128)) * **[4.5.1.1]** Streamable fix broke old.reddit + RES on embeds from v.redd.it and streamable.com. We're now using an alternative implementation. ([#128](https://github.com/tamius-han/ultrawidify/issues/128))
* **[4.5.1.2]** Fixed the issue where videos would sometimes get misaligned while using hybrid stretch. ([#125](https://github.com/tamius-han/ultrawidify/issues/125)) * **[4.5.1.2]** Fixed the issue where videos would sometimes get misaligned while using hybrid stretch. ([#125](https://github.com/tamius-han/ultrawidify/issues/125))
* **[4.5.1.3]** Added fix for disney plus
* **[4.5.1.3]** Microsoft Edge has fixed the bugs that prevented the extension from working properly. Popup should no longer be shown.
### v4.5.0 (Current) ### v4.5.0 (Current)

View File

@ -5,7 +5,7 @@
"author": "Tamius Han <tamius.han@gmail.com>", "author": "Tamius Han <tamius.han@gmail.com>",
"scripts": { "scripts": {
"build": "npm run pre-build; cross-env NODE_ENV=production BROWSER=firefox CHANNEL=stable webpack --hide-modules", "build": "npm run pre-build; cross-env NODE_ENV=production BROWSER=firefox CHANNEL=stable webpack --hide-modules",
"build-all": "mkdir -p ./build/old; npm run pre-build; rm ./dist-zip/uw-amo-source.zip; mv -f ./dist-zip/*.zip ./build/old; npm run build; node scripts/build-zip.js ff; npm run build-chrome; node scripts/build-zip.js chrome; ./scripts/prepare-amo-source.sh", "build-all": "mkdir -p ./build/old; npm run pre-build; rm ./dist-zip/uw-amo-source.zip; mv -f ./dist-zip/*.zip ./build/old; npm run build; node scripts/build-zip.js ff; npm run build-chrome; node scripts/build-zip.js chrome; npm run build-edge; node scripts/build-zip.js edge; ./scripts/prepare-amo-source.sh",
"build-chrome": "cross-env NODE_ENV=production BROWSER=chrome CHANNEL=stable webpack --hide-modules", "build-chrome": "cross-env NODE_ENV=production BROWSER=chrome CHANNEL=stable webpack --hide-modules",
"build-chrome:dev": "cross-env NODE_ENV=development BROWSER=chrome webpack --hide-modules", "build-chrome:dev": "cross-env NODE_ENV=development BROWSER=chrome webpack --hide-modules",
"build-edge": "cross-env NODE_ENV=production BROWSER=edge CHANNEL=stable webpack --hide-modules", "build-edge": "cross-env NODE_ENV=production BROWSER=edge CHANNEL=stable webpack --hide-modules",

View File

@ -138,7 +138,7 @@ export default {
}, },
methods: { methods: {
getUrl(url) { getUrl(url) {
return BrowserDetect.firefox ? browser.runtime.getURL(url) : chrome.runtime.getURL(url); return BrowserDetect.getURL(url);
}, },
async hidePopupForever() { async hidePopupForever() {
const settings = new Settings(); const settings = new Settings();

View File

@ -4,16 +4,28 @@ if (process.env.CHANNEL !== 'stable') {
console.info('Loaded BrowserDetect'); console.info('Loaded BrowserDetect');
} }
function detectEdgeUA() {
return /Edg\/(\.?[0-9]*)*$/.test(window.navigator.userAgent);
}
function getBrowserObj() {
return process.env.BROWSER === 'firefox' ? browser : chrome;
}
function getURL(url) {
return process.env.BROWSER === 'firefox' ? browser.runtime.getURL(url) : chrome.runtime.getURL(url);
}
const BrowserDetect = { const BrowserDetect = {
firefox: process.env.BROWSER === 'firefox', firefox: process.env.BROWSER === 'firefox',
anyChromium: process.env.BROWSER !== 'firefox',
chrome: process.env.BROWSER === 'chrome', chrome: process.env.BROWSER === 'chrome',
edge: process.env.BROWSER === 'edge', edge: process.env.BROWSER === 'edge',
processEnvBrowser: process.env.BROWSER, processEnvBrowser: process.env.BROWSER,
processEnvChannel: process.env.CHANNEL, processEnvChannel: process.env.CHANNEL,
isEdgeUA: () => /Edg\/(\.?[0-9]*)*$/.test(window.navigator.userAgent), isEdgeUA: detectEdgeUA(),
getBrowserObj: () => { return process.env.BROWSER === 'firefox' ? browser : chrome; }, browserObj: getBrowserObj(),
getURL: (url) => { console.log('getting file:', url); console.log(process.env.BROWSER === 'firefox' ? browser.runtime.getURL(url) : chrome.runtime.getURL(url)); return process.env.BROWSER === 'firefox' ? browser.runtime.getURL(url) : chrome.runtime.getURL(url); }, getURL: (url) => getURL(url),
} }
if (process.env.CHANNEL !== 'stable') { if (process.env.CHANNEL !== 'stable') {

View File

@ -436,6 +436,15 @@ const ExtensionConfPatch = [
userOptions.sites['streamable.com'].css = '.player {text-align: left}' userOptions.sites['streamable.com'].css = '.player {text-align: left}'
}; };
} }
}, {
forVersion: '4.5.1.3',
updateFn: (userOptions, defaultOptions) => {
try {
userOptions.sites['wwww.disneyplus.com']['css'] = ".hudson-container {\n height: 100%;\n}";
} catch (e) {
// do nothing if disney+ is missing
}
}
} }
]; ];

View File

@ -1066,7 +1066,8 @@ var ExtensionConf = {
"useRelativeAncestor": false, "useRelativeAncestor": false,
"playerNodeCss": "" "playerNodeCss": ""
} }
} },
css: ".hudson-container { height: 100%; }",
}, },
"www.twitch.tv": { "www.twitch.tv": {
mode: ExtensionMode.Enabled, mode: ExtensionMode.Enabled,
@ -1145,13 +1146,6 @@ var ExtensionConf = {
}, },
css: 'video {\n width: 100% !important;\n height: 100% !important;\n}', css: 'video {\n width: 100% !important;\n height: 100% !important;\n}',
}, },
"www.disneyplus.com": {
DOM: {
player: {
periodicallyRefreshPlayerElement: true,
}
}
},
"imgur.com": { "imgur.com": {
mode: -1, mode: -1,
autoar: -1, autoar: -1,

View File

@ -11,7 +11,7 @@ class CommsClient {
if (BrowserDetect.firefox) { if (BrowserDetect.firefox) {
this.port = browser.runtime.connect({name: name}); this.port = browser.runtime.connect({name: name});
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
this.port = chrome.runtime.connect({name: name}); this.port = chrome.runtime.connect({name: name});
} }

View File

@ -485,9 +485,9 @@ class PlayerData {
* NOTE: this method needs to be deleted once Edge gets its shit together. * NOTE: this method needs to be deleted once Edge gets its shit together.
*/ */
showEdgeNotification() { showEdgeNotification() {
if (BrowserDetect.isEdgeUA() && !this.settings.active.mutedNotifications?.browserSpecific?.edge?.brokenDrm?.[window.hostname]) { // if (BrowserDetect.isEdgeUA && !this.settings.active.mutedNotifications?.browserSpecific?.edge?.brokenDrm?.[window.hostname]) {
this.ui = new PlayerUi(this.element, this.settings); // this.ui = new PlayerUi(this.element, this.settings);
} // }
} }
} }

View File

@ -69,7 +69,7 @@ class UWServer {
if(BrowserDetect.firefox) { if(BrowserDetect.firefox) {
browser.tabs.onActivated.addListener((m) => {this.onTabSwitched(m)}); browser.tabs.onActivated.addListener((m) => {this.onTabSwitched(m)});
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
chrome.tabs.onActivated.addListener((m) => {this.onTabSwitched(m)}); chrome.tabs.onActivated.addListener((m) => {this.onTabSwitched(m)});
} }
} }
@ -84,7 +84,7 @@ class UWServer {
try { try {
if (BrowserDetect.firefox || BrowserDetect.edge) { if (BrowserDetect.firefox || BrowserDetect.edge) {
browser.tabs.insertCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId}); browser.tabs.insertCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId});
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
chrome.tabs.insertCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId}); chrome.tabs.insertCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId});
} }
} catch (e) { } catch (e) {
@ -95,7 +95,7 @@ class UWServer {
try { try {
if (BrowserDetect.firefox || BrowserDetect.edge) { if (BrowserDetect.firefox || BrowserDetect.edge) {
browser.tabs.removeCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId}); browser.tabs.removeCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId});
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
// this doesn't work currently, but hopefully chrome will get this feature in the future // this doesn't work currently, but hopefully chrome will get this feature in the future
chrome.tabs.removeCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId}); chrome.tabs.removeCSS(sender.tab.id, {code: css, cssOrigin: 'user', frameId: sender.frameId});
} }
@ -141,7 +141,7 @@ class UWServer {
let tab; let tab;
if (BrowserDetect.firefox) { if (BrowserDetect.firefox) {
tab = await browser.tabs.get(this.currentTabId); tab = await browser.tabs.get(this.currentTabId);
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
tab = await this._promisifyTabsGet(chrome, this.currentTabId); tab = await this._promisifyTabsGet(chrome, this.currentTabId);
} }
@ -223,7 +223,7 @@ class UWServer {
file: '/ext/uw-ui.js', file: '/ext/uw-ui.js',
allFrames: true, allFrames: true,
}); });
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
await new Promise( resolve => await new Promise( resolve =>
chrome.tabs.executeScript({ chrome.tabs.executeScript({
file: '/ext/uw-ui.js', file: '/ext/uw-ui.js',
@ -269,7 +269,7 @@ class UWServer {
async getCurrentTab() { async getCurrentTab() {
if (BrowserDetect.firefox) { if (BrowserDetect.firefox) {
return (await browser.tabs.query({active: true, currentWindow: true}))[0]; return (await browser.tabs.query({active: true, currentWindow: true}))[0];
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
return new Promise((resolve, reject) => chrome.tabs.query({active: true, currentWindow: true}, (x) => resolve(x[0]))); return new Promise((resolve, reject) => chrome.tabs.query({active: true, currentWindow: true}, (x) => resolve(x[0])));
} }
} }

View File

@ -2,7 +2,7 @@
"manifest_version": 2, "manifest_version": 2,
"name": "Ultrawidify", "name": "Ultrawidify",
"description": "Removes black bars on ultrawide videos and offers advanced options to fix aspect ratio.", "description": "Removes black bars on ultrawide videos and offers advanced options to fix aspect ratio.",
"version": "4.5.1.2", "version": "4.5.1.3",
"applications": { "applications": {
"gecko": { "gecko": {
"id": "{cf02b1a7-a01a-4e37-a609-516a283f1ed3}" "id": "{cf02b1a7-a01a-4e37-a609-516a283f1ed3}"

View File

@ -216,7 +216,7 @@ export default {
// reminder webextension-polyfill doesn't seem to work in vue! // reminder webextension-polyfill doesn't seem to work in vue!
await browser.permissions.request({permissions: ['downloads']}); await browser.permissions.request({permissions: ['downloads']});
browser.downloads.download({saveAs: true, filename: 'ultrawidify-settings.json', url: fileUrl}); browser.downloads.download({saveAs: true, filename: 'ultrawidify-settings.json', url: fileUrl});
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.anyChromium) {
const ths = this; const ths = this;
chrome.permissions.request( chrome.permissions.request(

View File

@ -20,6 +20,17 @@
Build channel: {{BrowserDetect.processEnvChannel}} Build channel: {{BrowserDetect.processEnvChannel}}
</div> </div>
</div> </div>
<div v-if="BrowserDetect.isEdgeUA" style="margin: 2px 12px; border: 1px solid #fa6; color: #fa6" class="flex flex-row flex-center">
<div class="flex-nogrow flex-nosrhink flex flex-center" style="font-size: 2em">
<Icon icon="exclamation-triangle"></Icon>
</div>
<div class="flex-grow padding-right: 1em; line-height: 1">
<small>
<b>NOTE:</b> please ensure your Windows and Edge have the latest updates in order for this extension to work on DRM-protected sites.
If your Windows and Edge are not up to date, videos on sites like Netflix, Hulu, and Disney+ may not be aligned and cropped correctly.
</small>
</div>
</div>
<div <div
v-if="narrowPopup" v-if="narrowPopup"
class="w100 show-more flex flex-row flex-center flex-cross-center menu-button" class="w100 show-more flex flex-row flex-center flex-cross-center menu-button"
@ -261,7 +272,7 @@ export default {
cmd: 'unmark-player', cmd: 'unmark-player',
forwardToAll: true, forwardToAll: true,
}); });
if (BrowserDetect.chrome) { if (BrowserDetect.anyChromium) {
chrome.extension.getBackgroundPage().sendUnmarkPlayer({ chrome.extension.getBackgroundPage().sendUnmarkPlayer({
cmd: 'unmark-player', cmd: 'unmark-player',
forwardToAll: true, forwardToAll: true,

View File

@ -18,12 +18,11 @@
Fullscreen videos on streamable are aligned correctly (<a href="https://github.com/tamius-han/ultrawidify/issues/118">#116</a>). Note that while this fix hasn't broken any sites I have access to and know of, Fullscreen videos on streamable are aligned correctly (<a href="https://github.com/tamius-han/ultrawidify/issues/118">#116</a>). Note that while this fix hasn't broken any sites I have access to and know of,
there is a small possibility that this bugfix may break something somewhere. If this happens on a site you use, please notify me via github, email or PM me on reddit. there is a small possibility that this bugfix may break something somewhere. If this happens on a site you use, please notify me via github, email or PM me on reddit.
</li> </li>
<li>
Edge users using CWS version of the extension get a very aggressive warning when trying to use the extension with Edge
</li>
<li> <li>
<b>[4.5.1.1]</b> Streamable fix broke old.reddit + RES on embeds from v.redd.it and streamable.com. We're now using an alternative implementation. (<a href="https://github.com/tamius-han/ultrawidify/issues/128">#128</a>) <b>[4.5.1.1]</b> Streamable fix broke old.reddit + RES on embeds from v.redd.it and streamable.com. We're now using an alternative implementation. (<a href="https://github.com/tamius-han/ultrawidify/issues/128">#128</a>)
<b>[4.5.1.2]</b> Fixed the issue where videos would sometimes get misaligned while using hybrid stretch. (<a href="https://github.com/tamius-han/ultrawidify/issues/125">#125</a>) <b>[4.5.1.2]</b> Fixed the issue where videos would sometimes get misaligned while using hybrid stretch. (<a href="https://github.com/tamius-han/ultrawidify/issues/125">#125</a>)
<b>[4.5.1.3]</b> Added a potential fix for disney plus
<b>[4.5.1.3]</b> Microsoft Edge has fixed the bugs that prevented the extension from working properly. Popup should no longer be shown.
</li> </li>
</ul> </ul>
</div> </div>