Pass set-ar-persistence
between CommsClient and pageInfo
This commit is contained in:
parent
cda5d87735
commit
854bc05d14
@ -92,6 +92,8 @@ class CommsClient {
|
||||
this.pageInfo.setManualTick(message.arg);
|
||||
} else if (message.cmd === 'autoar-tick') {
|
||||
this.pageInfo.tick();
|
||||
} else if (message.cmd === 'set-ar-persistence') {
|
||||
this.pageInfo.setArPersistence(message.arg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -575,6 +575,9 @@ class PageInfo {
|
||||
}
|
||||
|
||||
setArPersistence(persistenceMode) {
|
||||
// name of this function is mildly misleading — we don't really _set_ ar persistence. (Ar persistence
|
||||
// mode is set and saved via popup or keyboard shortcuts, if user defined them) We just save the current
|
||||
// aspect ratio whenever aspect ratio persistence mode changes.
|
||||
if (persistenceMode === CropModePersistence.CurrentSession) {
|
||||
sessionStorage.setItem('uw-crop-mode-session-persistence', JSON.stringify(this.currentCrop));
|
||||
} else if (persistenceMode === CropModePersistence.Forever) {
|
||||
@ -590,7 +593,7 @@ class PageInfo {
|
||||
}
|
||||
}
|
||||
|
||||
setDefaultCrop(ar) {
|
||||
updateCurrentCrop(ar) {
|
||||
this.currentCrop = ar;
|
||||
// This means crop persistance is disabled. If crop persistance is enabled, then settings for current
|
||||
// site MUST exist (crop persistence mode is disabled by default)
|
||||
|
@ -134,16 +134,16 @@ class Resizer {
|
||||
const siteSettings = this.settings.active.sites[window.location.host];
|
||||
|
||||
// most everything that could go wrong went wrong by this stage, and returns can happen afterwards
|
||||
// this means here's the optimal place to set or forget aspect ratio
|
||||
if (this.settings.getDefaultCropPersistenceMode(window.location.host) > CropModePersistance.Disabled) {
|
||||
if (ar.type === AspectRatio.Automatic ||
|
||||
ar.type === AspectRatio.Reset ||
|
||||
ar.type === AspectRatio.Initial ) {
|
||||
// reset/undo default
|
||||
this.conf.pageInfo.setDefaultCrop(undefined);
|
||||
} else {
|
||||
this.conf.pageInfo.setDefaultCrop(ar);
|
||||
}
|
||||
// this means here's the optimal place to set or forget aspect ratio. Saving of current crop ratio
|
||||
// is handled in pageInfo.updateCurrentCrop(), which also makes sure to persist aspect ratio if ar
|
||||
// is set to persist between videos / through current session / until manual reset.
|
||||
if (ar.type === AspectRatio.Automatic ||
|
||||
ar.type === AspectRatio.Reset ||
|
||||
ar.type === AspectRatio.Initial ) {
|
||||
// reset/undo default
|
||||
this.conf.pageInfo.updateCurrentCrop(undefined);
|
||||
} else {
|
||||
this.conf.pageInfo.updateCurrentCrop(ar);
|
||||
}
|
||||
|
||||
if (ar.type === AspectRatio.Automatic ||
|
||||
|
@ -30,23 +30,14 @@ class ExecAction {
|
||||
// set-ar-persistence sends stuff to content scripts as well (!)
|
||||
// it's important to do that BEFORE the save step
|
||||
if (cmd === 'set-ar-persistence') {
|
||||
let message;
|
||||
if (scope === 'site') {
|
||||
message = {
|
||||
forwardToContentScript: true,
|
||||
targetFrame: frame,
|
||||
frame: frame,
|
||||
cmd: cmd.action,
|
||||
arg: cmd.arg,
|
||||
}
|
||||
} else {
|
||||
message = {
|
||||
forwardToAll: true,
|
||||
targetFrame: frame,
|
||||
frame: frame,
|
||||
cmd: cmd.action,
|
||||
arg: cmd.arg,
|
||||
}
|
||||
// even when setting global defaults, we only send message to the current tab in
|
||||
// order to avoid problems related to
|
||||
const message = {
|
||||
forwardToContentScript: true,
|
||||
targetFrame: frame,
|
||||
frame: frame,
|
||||
cmd: cmd.action,
|
||||
arg: cmd.arg,
|
||||
}
|
||||
// this hopefully delays settings.save() until current crops are saved on the site
|
||||
// and thus avoid any fucky-wuckies
|
||||
|
Loading…
Reference in New Issue
Block a user