Compare commits
No commits in common. "7c1d3e52e55d0f2f815dbc7570d74e87fb083b80" and "f0840b78e1c61c1105517244716fa5201976c825" have entirely different histories.
7c1d3e52e5
...
f0840b78e1
@ -2,14 +2,6 @@
|
|||||||
|
|
||||||
## v6.0 (current major)
|
## v6.0 (current major)
|
||||||
|
|
||||||
### v6.2.5
|
|
||||||
|
|
||||||
* Popup appearance changed — UI advertisement panel was moved to the popup header
|
|
||||||
* Fixed the bug where popup wouldn't be showing the correct settings
|
|
||||||
* Fixed the bug where site settings would default to 'disabled', even if Extension default setting was not disabled.
|
|
||||||
* Added ability to export and import settings from file (ft. developer mode editor)
|
|
||||||
|
|
||||||
|
|
||||||
### v6.2.4
|
### v6.2.4
|
||||||
* [#264](https://github.com/tamius-han/ultrawidify/issues/264) — fixed issue with white screen that affected some youtube users. Special thanks to [SnowyOwlNugget](https://github.com/SnowyOwlNugget">SnowyOwlNugget), who instead of whining provided the necessary information.
|
* [#264](https://github.com/tamius-han/ultrawidify/issues/264) — fixed issue with white screen that affected some youtube users. Special thanks to [SnowyOwlNugget](https://github.com/SnowyOwlNugget">SnowyOwlNugget), who instead of whining provided the necessary information.
|
||||||
* Minor updates to the settings
|
* Minor updates to the settings
|
||||||
|
@ -175,7 +175,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.tabs.find(x => x.id === 'changelog').highlight = !this.settings.active?.whatsNewChecked;
|
this.tabs.find(x => x.id === 'changelog').highlight = !this.settings.active.whatsNewChecked;
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
this.logger = new Logger();
|
this.logger = new Logger();
|
||||||
|
@ -5,10 +5,6 @@
|
|||||||
|
|
||||||
// @import "form.scss";
|
// @import "form.scss";
|
||||||
|
|
||||||
* {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color: $background-primary;
|
background-color: $background-primary;
|
||||||
color: $text-normal;
|
color: $text-normal;
|
||||||
@ -23,7 +19,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.main-window::before {
|
.main-window::before {
|
||||||
content: ' ';
|
content: ' backdrop-filter machine broke :( googlo pls fix';
|
||||||
color: #000;
|
color: #000;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: -0.5rem;
|
left: -0.5rem;
|
||||||
|
@ -206,7 +206,7 @@ export default {
|
|||||||
this.selectedTab = this.defaultTab;
|
this.selectedTab = this.defaultTab;
|
||||||
}
|
}
|
||||||
this.siteSettings = this.settings.getSiteSettings(this.site);
|
this.siteSettings = this.settings.getSiteSettings(this.site);
|
||||||
this.tabs.find(x => x.id === 'changelog').highlight = !this.settings.active?.whatsNewChecked;
|
this.tabs.find(x => x.id === 'changelog').highlight = !this.settings.active.whatsNewChecked;
|
||||||
|
|
||||||
this.eventBus.subscribe(
|
this.eventBus.subscribe(
|
||||||
'uw-show-ui',
|
'uw-show-ui',
|
||||||
|
@ -5,12 +5,15 @@
|
|||||||
<h1>What's new</h1>
|
<h1>What's new</h1>
|
||||||
<!-- <p>Full changelog for older versions <a href="https://github.com/tamius-han/ultrawidify/blob/master/CHANGELOG.md" target="_blank">is available here</a>.</p> -->
|
<!-- <p>Full changelog for older versions <a href="https://github.com/tamius-han/ultrawidify/blob/master/CHANGELOG.md" target="_blank">is available here</a>.</p> -->
|
||||||
|
|
||||||
<h2>6.2.5</h2>
|
<h2>6.2.4</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>'Show UI' button was moved to popup header. Extension popup now defaults to 'crop options' tab</li>
|
<li>[<a href="https://github.com/tamius-han/ultrawidify/issues/264" target="_blank">#264</a>] Fixed issue with white screen that affected <i>some</i> youtube users.<br/>Special thanks to <a href="https://github.com/SnowyOwlNugget">SnowyOwlNugget</a>, who instead of whining provided the necessary information.</li>
|
||||||
<li>Fixed the bug where current extension settings wouldn't be displayed correctly in the popup</li>
|
<li>Minor updates to the settings</li>
|
||||||
<li>Fixed the issue where extension options using the "Extension default" mode would always be disabled</li>
|
<li>Switching between full screen, theater, and normal player now correctly enables and disables the extension according to the settings.</li>
|
||||||
<li>Added the ability to import and export settings (ft. developer mode editor)</li>
|
<li>Does anyone even read these?</li>
|
||||||
|
<li>By default, extension is now only enabled for sites with 'official' and 'community' support for new installs. Extension will need to be manually enabled for other sites.</li>
|
||||||
|
<li>Gussief1, you owe me 5 bucks. Time to put your money where your mouth is. Paypal is <a href="https://www.paypal.com/paypalme/tamius" target="_blank">here.</a></li>
|
||||||
|
<li>Added background to in-player UI due to chrome bug affecting <code>backdrop-filter</code> inside transparent iframes.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -352,15 +352,12 @@ export default {
|
|||||||
return '??';
|
return '??';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
|
||||||
this.forceRefreshPage();
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
/**
|
/**
|
||||||
* Compiles our extension settings into more user-friendly options
|
* Compiles our extension settings into more user-friendly options
|
||||||
*/
|
*/
|
||||||
compileSimpleSettings(component, getFor = 'site') {
|
compileSimpleSettings(component, getFor = 'site') {
|
||||||
|
// console.log('compiling simple settings!', component, getFor, 'site settings?', this.siteSettings);
|
||||||
let settingsData;
|
let settingsData;
|
||||||
switch (getFor) {
|
switch (getFor) {
|
||||||
case 'site':
|
case 'site':
|
||||||
@ -520,9 +517,6 @@ export default {
|
|||||||
|
|
||||||
// we also need to force re-compute all watchers, otherwise UI will lag behind
|
// we also need to force re-compute all watchers, otherwise UI will lag behind
|
||||||
// actual state of settings until reload
|
// actual state of settings until reload
|
||||||
this.forceRefreshPage();
|
|
||||||
},
|
|
||||||
forceRefreshPage() {
|
|
||||||
this._computedWatchers?.simpleExtensionSettings?.run();
|
this._computedWatchers?.simpleExtensionSettings?.run();
|
||||||
this._computedWatchers?.simpleDefaultSettings?.run();
|
this._computedWatchers?.simpleDefaultSettings?.run();
|
||||||
this._computedWatchers?.siteDefaultCrop?.run();
|
this._computedWatchers?.siteDefaultCrop?.run();
|
||||||
@ -533,7 +527,6 @@ export default {
|
|||||||
|
|
||||||
this.$nextTick( () => this.$forceUpdate());
|
this.$nextTick( () => this.$forceUpdate());
|
||||||
},
|
},
|
||||||
|
|
||||||
setExtensionMode(component, event) {
|
setExtensionMode(component, event) {
|
||||||
const option = event.target.value;
|
const option = event.target.value;
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ export class SiteSettings {
|
|||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.raw = settings.active.sites[site];
|
this.raw = settings.active.sites[site];
|
||||||
this.site = site;
|
this.site = site;
|
||||||
this.defaultSettings = settings.active.sites['@global'];
|
this.defaultSettings = settings.default.sites['@global'];
|
||||||
|
|
||||||
this.compileSettingsObject();
|
this.compileSettingsObject();
|
||||||
|
|
||||||
|
@ -699,7 +699,6 @@ class PlayerData {
|
|||||||
let penaltyMultiplier = 1;
|
let penaltyMultiplier = 1;
|
||||||
const sizePenaltyMultiplier = 0.1;
|
const sizePenaltyMultiplier = 0.1;
|
||||||
const perLevelScorePenalty = 10;
|
const perLevelScorePenalty = 10;
|
||||||
let sameSizeBonus = 0;
|
|
||||||
|
|
||||||
for (const [index, element] of elementStack.entries()) {
|
for (const [index, element] of elementStack.entries()) {
|
||||||
element.index = index;
|
element.index = index;
|
||||||
@ -748,13 +747,7 @@ class PlayerData {
|
|||||||
|
|
||||||
// we prefer elements closer to the video, so the score of each potential
|
// we prefer elements closer to the video, so the score of each potential
|
||||||
// candidate gets dinked a bit
|
// candidate gets dinked a bit
|
||||||
// score -= perLevelScorePenalty * penaltyMultiplier;
|
score -= perLevelScorePenalty * penaltyMultiplier;
|
||||||
|
|
||||||
if (element.width === elementStack[index - 1].width && element.height === elementStack[index - 1].height) {
|
|
||||||
score += ++sameSizeBonus;
|
|
||||||
} else {
|
|
||||||
sameSizeBonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
element.autoScore = score;
|
element.autoScore = score;
|
||||||
element.heuristics['autoScoreDetails'] = {
|
element.heuristics['autoScoreDetails'] = {
|
||||||
@ -769,14 +762,12 @@ class PlayerData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let bestCandidate: any = {autoScore: -99999999, initialValue: true};
|
let bestCandidate: any = {autoScore: -99999999, initialValue: true};
|
||||||
for (const element of elementStack) {
|
for (const element of elementStack) {
|
||||||
if (element.autoScore > bestCandidate.autoScore) {
|
if (element.autoScore > bestCandidate.autoScore) {
|
||||||
bestCandidate = element;
|
bestCandidate = element;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bestCandidate.initialValue) {
|
if (bestCandidate.initialValue) {
|
||||||
bestCandidate = null;
|
bestCandidate = null;
|
||||||
} else {
|
} else {
|
||||||
@ -786,22 +777,6 @@ class PlayerData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BUT WAIT! THERE'S MORE
|
|
||||||
// Some sites (youtube) can re-parent elements, causing current player element to vanish from DOM
|
|
||||||
if (bestCandidate) {
|
|
||||||
const observer = new MutationObserver( (mutations) => {
|
|
||||||
mutations.forEach((mutation) => {
|
|
||||||
mutation.removedNodes.forEach((node) => {
|
|
||||||
if (node === bestCandidate.element) {
|
|
||||||
observer.disconnect();
|
|
||||||
this.updatePlayer();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
||||||
observer.observe(bestCandidate.element.parentNode, {childList: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
return bestCandidate;
|
return bestCandidate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user