diff --git a/.eslintrc.js b/.eslintrc.js
index baf6d0e084..d9080d1ac4 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -39,6 +39,8 @@ module.exports = {
'no-multi-spaces': ['error'],
'no-multiple-empty-lines': ['error', { 'max': 1 }],
'no-trailing-spaces': ['error'],
+ 'no-unused-expressions': ['error', { 'allowShortCircuit': true, 'allowTernary': true, 'allowTaggedTemplates': true }],
+ "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }],
'one-var': ['error', 'never'],
'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
'semi': ['error'],
@@ -98,9 +100,8 @@ module.exports = {
},
rules: {
// TODO: Fix warnings and remove these rules
- 'no-redeclare': ['warn'],
- 'no-unused-vars': ['warn'],
- 'no-useless-escape': ['warn'],
+ 'no-redeclare': ['off'],
+ 'no-useless-escape': ['off'],
// TODO: Remove after ES6 migration is complete
'import/no-unresolved': ['off']
},
diff --git a/package.json b/package.json
index 881415c1db..da8c87aedd 100644
--- a/package.json
+++ b/package.json
@@ -76,7 +76,6 @@
"query-string": "^6.13.1",
"resize-observer-polyfill": "^1.5.1",
"screenfull": "^5.0.2",
- "shaka-player": "^2.5.13",
"sortablejs": "^1.10.2",
"swiper": "^5.4.5",
"webcomponents.js": "^0.7.24",
diff --git a/src/bundle.js b/src/bundle.js
index dd1ff6548b..ae2a59f0d5 100644
--- a/src/bundle.js
+++ b/src/bundle.js
@@ -78,12 +78,6 @@ _define('webcomponents', function() {
return webcomponents;
});
-// shaka
-var shaka = require('shaka-player');
-_define('shaka', function() {
- return shaka;
-});
-
// libass-wasm
var libassWasm = require('libass-wasm');
_define('JavascriptSubtitlesOctopus', function() {
diff --git a/src/components/actionSheet/actionSheet.js b/src/components/actionSheet/actionSheet.js
index a68d6a6acd..3f772250e1 100644
--- a/src/components/actionSheet/actionSheet.js
+++ b/src/components/actionSheet/actionSheet.js
@@ -255,8 +255,6 @@ export function show(options) {
});
}
- // Seeing an issue in some non-chrome browsers where this is requiring a double click
- //var eventName = browser.firefox ? 'mousedown' : 'click';
let selectedId;
let timeout;
diff --git a/src/components/activitylog.js b/src/components/activitylog.js
index 2d5a21756f..9834255003 100644
--- a/src/components/activitylog.js
+++ b/src/components/activitylog.js
@@ -3,7 +3,6 @@ import globalize from 'globalize';
import dom from 'dom';
import * as datefns from 'date-fns';
import dfnshelper from 'dfnshelper';
-import userSettings from 'userSettings';
import serverNotifications from 'serverNotifications';
import connectionManager from 'connectionManager';
import 'emby-button';
@@ -69,6 +68,7 @@ import 'listViewStyle';
const minDate = new Date();
const hasUserId = 'false' !== elem.getAttribute('data-useractivity');
+ // TODO: Use date-fns
if (hasUserId) {
minDate.setTime(minDate.getTime() - 24 * 60 * 60 * 1000); // one day back
} else {
diff --git a/src/components/appFooter/appFooter.js b/src/components/appFooter/appFooter.js
index af50ef7bf9..c60aa1a27c 100644
--- a/src/components/appFooter/appFooter.js
+++ b/src/components/appFooter/appFooter.js
@@ -1,4 +1,3 @@
-import browser from 'browser';
import 'css!./appFooter';
function render(options) {
diff --git a/src/components/appRouter.js b/src/components/appRouter.js
index 7af7ed4a95..a86c585759 100644
--- a/src/components/appRouter.js
+++ b/src/components/appRouter.js
@@ -153,15 +153,10 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
};
if (!isBackNav) {
- // Don't force a new view for home due to the back menu
- //if (route.type !== 'home') {
onNewViewNeeded();
return;
- //}
}
viewManager.tryRestoreView(currentRequest, function () {
-
- // done
currentRouteInfo = {
route: route,
path: ctx.path
@@ -309,33 +304,13 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
page({
click: options.click !== false,
- hashbang: options.hashbang !== false,
- enableHistory: enableHistory()
+ hashbang: options.hashbang !== false
});
}).catch().then(function() {
loading.hide();
});
}
- function enableHistory() {
-
- //if (browser.edgeUwp) {
- // return false;
- //}
-
- // shows status bar on navigation
- if (browser.xboxOne) {
- return false;
- }
-
- // Does not support history
- if (browser.orsay) {
- return false;
- }
-
- return true;
- }
-
function enableNativeHistory() {
return false;
}
@@ -535,9 +510,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
if (!document.querySelector('.dialogContainer') && startPages.indexOf(curr.type) !== -1) {
return false;
}
- if (enableHistory()) {
- return history.length > 1;
- }
+
return (page.len || 0) > 0;
}
diff --git a/src/components/apphost.js b/src/components/apphost.js
index f200b9a642..d447c7ea45 100644
--- a/src/components/apphost.js
+++ b/src/components/apphost.js
@@ -257,12 +257,6 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g
features.push('fullscreenchange');
}
- if (browser.chrome || browser.edge && !browser.slow) {
- if (!browser.noAnimation && !browser.edgeUwp && !browser.xboxOne) {
- features.push('imageanalysis');
- }
- }
-
if (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile) {
features.push('physicalvolumecontrol');
}
diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js
index a6d0b10662..4c64c5e06b 100644
--- a/src/components/cardbuilder/cardBuilder.js
+++ b/src/components/cardbuilder/cardBuilder.js
@@ -1163,6 +1163,7 @@ import 'programStyles';
function importRefreshIndicator() {
if (!refreshIndicatorLoaded) {
refreshIndicatorLoaded = true;
+ /* eslint-disable-next-line no-unused-expressions */
import('emby-itemrefreshindicator');
}
}
@@ -1498,6 +1499,7 @@ import 'programStyles';
const userData = item.UserData || {};
if (itemHelper.canMarkPlayed(item)) {
+ /* eslint-disable-next-line no-unused-expressions */
import('emby-playstatebutton');
html += '';
}
@@ -1506,6 +1508,7 @@ import 'programStyles';
const likes = userData.Likes == null ? '' : userData.Likes;
+ /* eslint-disable-next-line no-unused-expressions */
import('emby-ratingbutton');
html += '';
}
diff --git a/src/components/collectionEditor/collectionEditor.js b/src/components/collectionEditor/collectionEditor.js
index 18cc0d311f..70e2083cd3 100644
--- a/src/components/collectionEditor/collectionEditor.js
+++ b/src/components/collectionEditor/collectionEditor.js
@@ -1,7 +1,6 @@
import dom from 'dom';
import dialogHelper from 'dialogHelper';
import loading from 'loading';
-import appHost from 'apphost';
import layoutManager from 'layoutManager';
import connectionManager from 'connectionManager';
import appRouter from 'appRouter';
@@ -248,10 +247,6 @@ import 'flexStyles';
html += title;
html += '';
- if (appHost.supports('externallinks')) {
- html += `${globalize.translate('Help')}`;
- }
-
html += '';
html += getEditorHtml();
diff --git a/src/components/dialog/dialog.js b/src/components/dialog/dialog.js
index 937e96d297..2250dac7da 100644
--- a/src/components/dialog/dialog.js
+++ b/src/components/dialog/dialog.js
@@ -45,10 +45,6 @@ import 'flexStyles';
dlg.classList.add('dialog-fullscreen-lowres');
}
- //dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
- // dialogHelper.close(dlg);
- //});
-
if (options.title) {
dlg.querySelector('.formDialogHeaderTitle').innerHTML = options.title || '';
} else {
diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js
index 38715043e7..358bf04112 100644
--- a/src/components/favoriteitems.js
+++ b/src/components/favoriteitems.js
@@ -154,8 +154,7 @@ define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoad
html += '
';
}
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- var cardLayout = (appHost.preferVisualCards || supportsImageAnalysis) && section.autoCardLayout && section.showTitle;
+ var cardLayout = appHost.preferVisualCards && section.autoCardLayout && section.showTitle;
cardLayout = false;
html += cardBuilder.getCardsHtml(result.Items, {
preferThumb: section.preferThumb,
diff --git a/src/components/filtermenu/filtermenu.js b/src/components/filtermenu/filtermenu.js
index 936e2b0407..a757e3ee19 100644
--- a/src/components/filtermenu/filtermenu.js
+++ b/src/components/filtermenu/filtermenu.js
@@ -39,34 +39,11 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost',
}
function renderDynamicFilters(context, result, options) {
-
- // If there's a huge number of these they will be really show to render
- //if (result.Tags) {
- // result.Tags.length = Math.min(result.Tags.length, 50);
- //}
-
renderOptions(context, '.genreFilters', 'chkGenreFilter', result.Genres, function (i) {
-
// Switching from | to ,
var delimeter = (options.settings.GenreIds || '').indexOf('|') === -1 ? ',' : '|';
return (delimeter + (options.settings.GenreIds || '') + delimeter).indexOf(delimeter + i.Id + delimeter) !== -1;
});
-
- //renderOptions(context, '.officialRatingFilters', 'chkOfficialRatingFilter', result.OfficialRatings, function (i) {
- // var delimeter = '|';
- // return (delimeter + (query.OfficialRatings || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
- //});
-
- //renderOptions(context, '.tagFilters', 'chkTagFilter', result.Tags, function (i) {
- // var delimeter = '|';
- // return (delimeter + (query.Tags || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
- //});
-
- //renderOptions(context, '.yearFilters', 'chkYearFilter', result.Years, function (i) {
-
- // var delimeter = ',';
- // return (delimeter + (query.Years || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
- //});
}
function loadDynamicFilters(context, options) {
@@ -81,11 +58,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost',
});
apiClient.getFilters(filterMenuOptions).then(function (result) {
-
renderDynamicFilters(context, result, options);
- }, function () {
-
- // older server
});
}
@@ -314,13 +287,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost',
var submitted;
dlg.querySelector('form').addEventListener('change', function () {
-
submitted = true;
- //if (options.onChange) {
- // saveValues(dlg, options.settings, options.settingsKey);
- // options.onChange();
- //}
-
}, true);
dialogHelper.open(dlg).then(function () {
diff --git a/src/components/focusManager.js b/src/components/focusManager.js
index f2022cc445..a5dcad38ca 100644
--- a/src/components/focusManager.js
+++ b/src/components/focusManager.js
@@ -272,14 +272,10 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) {
var rect = getOffset(activeElement);
// Get elements and work out x/y points
- var cache = [];
var point1x = parseFloat(rect.left) || 0;
var point1y = parseFloat(rect.top) || 0;
var point2x = parseFloat(point1x + rect.width - 1) || point1x;
var point2y = parseFloat(point1y + rect.height - 1) || point1y;
- // Shortcuts to help with compression
- var min = Math.min;
- var max = Math.max;
var sourceMidX = rect.left + (rect.width / 2);
var sourceMidY = rect.top + (rect.height / 2);
@@ -301,10 +297,6 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) {
continue;
}
- //if (!isCurrentlyFocusableInternal(curr)) {
- // continue;
- //}
-
var elementRect = getOffset(curr);
// not currently visible
diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js
index bb4a36497c..9fd78fdf49 100644
--- a/src/components/guide/guide.js
+++ b/src/components/guide/guide.js
@@ -43,11 +43,9 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
if (guideProgramName) {
if (pctOfWidth > 0 && pctOfWidth <= 100) {
- //guideProgramName.style.marginLeft = pctOfWidth + '%';
guideProgramName.style.transform = 'translateX(' + pctOfWidth + '%)';
caret.classList.remove('hide');
} else {
- //guideProgramName.style.marginLeft = '0';
guideProgramName.style.transform = 'none';
caret.classList.add('hide');
}
@@ -121,7 +119,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
var cellCurationMinutes = 30;
var cellDurationMs = cellCurationMinutes * 60 * 1000;
var msPerDay = 86400000;
- var totalRendererdMs = msPerDay;
var currentDate;
var currentStartIndex = 0;
@@ -577,7 +574,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
html += '
';
if (program.IsHD && options.showHdIcon) {
- //html += '';
var shape = 'MusicAlbum' == type.type ? getSquareShape(false) : getPortraitShape(false);
@@ -1674,14 +1673,6 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
var collectionItems = page.querySelector('.collectionItems');
collectionItems.insertAdjacentHTML('beforeend', html);
imageLoader.lazyChildren(collectionItems);
- collectionItems.querySelector('.btnAddToCollection').addEventListener('click', function () {
- require(['alert'], function (alert) {
- alert.default({
- text: globalize.translate('AddItemToCollectionHelp'),
- html: globalize.translate('AddItemToCollectionHelp') + '
' + globalize.translate('ButtonLearnMore') + ''
- });
- });
- });
}
function renderMusicVideos(page, item, user) {
diff --git a/src/controllers/livetv/livetvrecordings.js b/src/controllers/livetv/livetvrecordings.js
index d5cfe66672..d832ca1339 100644
--- a/src/controllers/livetv/livetvrecordings.js
+++ b/src/controllers/livetv/livetvrecordings.js
@@ -24,7 +24,6 @@ define(['layoutManager', 'loading', 'cardBuilder', 'apphost', 'imageLoader', 'sc
recordingItems.classList.add('vertical-wrap');
}
- appHost.supports('imageanalysis');
recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({
items: recordings,
shape: scrollX ? 'autooverflow' : 'auto',
diff --git a/src/controllers/livetv/livetvschedule.js b/src/controllers/livetv/livetvschedule.js
index a6f509c6f1..2f451e50fb 100644
--- a/src/controllers/livetv/livetvschedule.js
+++ b/src/controllers/livetv/livetvschedule.js
@@ -30,17 +30,14 @@ define(['layoutManager', 'cardBuilder', 'apphost', 'imageLoader', 'loading', 'sc
recordingItems.classList.add('vertical-wrap');
}
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- var cardLayout = appHost.preferVisualCards || supportsImageAnalysis;
- cardLayout = false;
recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({
items: recordings,
shape: enableScrollX() ? 'autooverflow' : 'auto',
showTitle: true,
showParentTitle: true,
coverImage: true,
- cardLayout: cardLayout,
- centerText: !cardLayout,
+ cardLayout: false,
+ centerText: true,
allowBottomPadding: !enableScrollX(),
preferThumb: 'auto'
}, cardOptions || {}));
diff --git a/src/controllers/livetv/livetvseriestimers.js b/src/controllers/livetv/livetvseriestimers.js
index 27daca1983..c5d0da60d7 100644
--- a/src/controllers/livetv/livetvseriestimers.js
+++ b/src/controllers/livetv/livetvseriestimers.js
@@ -3,7 +3,6 @@ define(['datetime', 'cardBuilder', 'imageLoader', 'apphost', 'loading', 'paper-i
function renderTimers(context, timers) {
var html = '';
- appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({
items: timers,
shape: 'auto',
diff --git a/src/controllers/movies/moviegenres.js b/src/controllers/movies/moviegenres.js
index ab410c1bd4..8c86ccf379 100644
--- a/src/controllers/movies/moviegenres.js
+++ b/src/controllers/movies/moviegenres.js
@@ -75,7 +75,6 @@ define(['layoutManager', 'loading', 'libraryBrowser', 'cardBuilder', 'lazyLoader
ParentId: params.topParentId
};
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
- var supportsImageAnalysis = appHost.supports('imageanalysis');
if (viewStyle == 'Thumb') {
cardBuilder.buildCards(result.Items, {
diff --git a/src/controllers/movies/moviesrecommended.js b/src/controllers/movies/moviesrecommended.js
index d948c1cef7..4ffe7888cf 100644
--- a/src/controllers/movies/moviesrecommended.js
+++ b/src/controllers/movies/moviesrecommended.js
@@ -346,8 +346,6 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
function loadTab(page, index) {
currentTabIndex = index;
getTabController(page, index, function (controller) {
- initialTabIndex = null;
-
if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index);
controller.renderTab();
@@ -370,10 +368,8 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
}
}
- var isViewRestored;
var self = this;
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
- var initialTabIndex = currentTabIndex;
var suggestionsTabIndex = 1;
self.initTab = function () {
@@ -389,7 +385,8 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
var tabControllers = [];
var renderedTabs = [];
view.addEventListener('viewshow', function (e) {
- if (isViewRestored = e.detail.isRestored, initTabs(), !view.getAttribute('data-title')) {
+ initTabs();
+ if (!view.getAttribute('data-title')) {
var parentId = params.topParentId;
if (parentId) {
diff --git a/src/controllers/music/musicrecommended.js b/src/controllers/music/musicrecommended.js
index 3f025799f6..0eecef0bfb 100644
--- a/src/controllers/music/musicrecommended.js
+++ b/src/controllers/music/musicrecommended.js
@@ -41,8 +41,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
};
ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
var elem = page.querySelector('#recentlyAddedSongs');
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
+
elem.innerHTML = cardBuilder.getCardsHtml({
items: items,
showUnplayedIndicator: false,
@@ -51,10 +50,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showTitle: true,
showParentTitle: true,
lazy: true,
- centerText: !supportsImageAnalysis,
- overlayPlayButton: !supportsImageAnalysis,
+ centerText: true,
+ overlayPlayButton: true,
allowBottomPadding: !enableScrollX(),
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
coverImage: true
});
imageLoader.lazyChildren(elem);
@@ -90,8 +89,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
var itemsContainer = elem.querySelector('.itemsContainer');
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
itemsContainer.innerHTML = cardBuilder.getCardsHtml({
items: result.Items,
showUnplayedIndicator: false,
@@ -100,10 +97,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showParentTitle: true,
action: 'instantmix',
lazy: true,
- centerText: !supportsImageAnalysis,
- overlayMoreButton: !supportsImageAnalysis,
+ centerText: true,
+ overlayMoreButton: true,
allowBottomPadding: !enableScrollX(),
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
coverImage: true
});
imageLoader.lazyChildren(itemsContainer);
@@ -134,8 +131,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
var itemsContainer = elem.querySelector('.itemsContainer');
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
itemsContainer.innerHTML = cardBuilder.getCardsHtml({
items: result.Items,
showUnplayedIndicator: false,
@@ -144,10 +139,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showParentTitle: true,
action: 'instantmix',
lazy: true,
- centerText: !supportsImageAnalysis,
- overlayMoreButton: !supportsImageAnalysis,
+ centerText: true,
+ overlayMoreButton: true,
allowBottomPadding: !enableScrollX(),
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
coverImage: true
});
imageLoader.lazyChildren(itemsContainer);
@@ -339,8 +334,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
function loadTab(page, index) {
currentTabIndex = index;
getTabController(page, index, function (controller) {
- initialTabIndex = null;
-
if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index);
controller.renderTab();
@@ -356,10 +349,8 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
}
- var isViewRestored;
var self = this;
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
- var initialTabIndex = currentTabIndex;
self.initTab = function () {
var tabContent = view.querySelector(".pageTabContent[data-index='0']");
@@ -377,7 +368,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
var tabControllers = [];
var renderedTabs = [];
view.addEventListener('viewshow', function (e) {
- isViewRestored = e.detail.isRestored;
initTabs();
if (!view.getAttribute('data-title')) {
var parentId = params.topParentId;
diff --git a/src/controllers/searchpage.js b/src/controllers/searchpage.js
index 8ce3e8afe8..ffb7fbac0b 100644
--- a/src/controllers/searchpage.js
+++ b/src/controllers/searchpage.js
@@ -1,4 +1,3 @@
-import focusManager from 'focusManager';
import SearchFields from 'searchFields';
import SearchResults from 'searchResults';
import events from 'events';
diff --git a/src/controllers/session/addServer/index.js b/src/controllers/session/addServer/index.js
index 1129283246..7d3ba7f471 100644
--- a/src/controllers/session/addServer/index.js
+++ b/src/controllers/session/addServer/index.js
@@ -1,6 +1,5 @@
import appSettings from 'appSettings';
import loading from 'loading';
-import browser from 'browser';
import globalize from 'globalize';
import 'emby-button';
diff --git a/src/controllers/session/selectServer/index.js b/src/controllers/session/selectServer/index.js
index 3e36b74859..b7d7b9d221 100644
--- a/src/controllers/session/selectServer/index.js
+++ b/src/controllers/session/selectServer/index.js
@@ -3,7 +3,6 @@ import appRouter from 'appRouter';
import layoutManager from 'layoutManager';
import libraryMenu from 'libraryMenu';
import appSettings from 'appSettings';
-import appHost from 'apphost';
import focusManager from 'focusManager';
import connectionManager from 'connectionManager';
import globalize from 'globalize';
@@ -95,11 +94,6 @@ import 'emby-button';
}
}
- function showGeneralError() {
- loading.hide();
- alertText(globalize.translate('DefaultErrorMessage'));
- }
-
function alertText(text) {
alertTextWithOptions({
text: text
diff --git a/src/controllers/shows/tvgenres.js b/src/controllers/shows/tvgenres.js
index d686a62197..87d3a2e240 100644
--- a/src/controllers/shows/tvgenres.js
+++ b/src/controllers/shows/tvgenres.js
@@ -3,10 +3,8 @@ import loading from 'loading';
import libraryBrowser from 'libraryBrowser';
import cardBuilder from 'cardBuilder';
import lazyLoader from 'lazyLoader';
-import appHost from 'apphost';
import globalize from 'globalize';
import appRouter from 'appRouter';
-import dom from 'dom';
import 'emby-button';
/* eslint-disable indent */
@@ -85,8 +83,6 @@ import 'emby-button';
ParentId: params.topParentId
};
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
- const supportsImageAnalysis = appHost.supports('imageanalysis');
-
if (viewStyle == 'Thumb') {
cardBuilder.buildCards(result.Items, {
itemsContainer: elem,
diff --git a/src/controllers/shows/tvlatest.js b/src/controllers/shows/tvlatest.js
index c08f3d5a15..2f768f352a 100644
--- a/src/controllers/shows/tvlatest.js
+++ b/src/controllers/shows/tvlatest.js
@@ -1,7 +1,6 @@
import loading from 'loading';
import groupedcards from 'components/groupedcards';
import cardBuilder from 'cardBuilder';
-import appHost from 'apphost';
import imageLoader from 'imageLoader';
/* eslint-disable indent */
@@ -24,7 +23,6 @@ import imageLoader from 'imageLoader';
function loadLatest(context, params, promise) {
promise.then(function (items) {
let html = '';
- appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({
items: items,
shape: 'backdrop',
diff --git a/src/controllers/shows/tvrecommended.js b/src/controllers/shows/tvrecommended.js
index 7edd2ab501..4aab69e978 100644
--- a/src/controllers/shows/tvrecommended.js
+++ b/src/controllers/shows/tvrecommended.js
@@ -269,8 +269,6 @@ import 'emby-button';
function loadTab(page, index) {
currentTabIndex = index;
getTabController(page, index, function (controller) {
- initialTabIndex = null;
-
if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index);
controller.renderTab();
@@ -301,10 +299,8 @@ import 'emby-button';
}
}
- let isViewRestored;
const self = this;
let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
- let initialTabIndex = currentTabIndex;
self.initTab = function () {
const tabContent = self.tabContent;
@@ -319,7 +315,6 @@ import 'emby-button';
let renderedTabs = [];
setScrollClasses(view.querySelector('#resumableItems'), enableScrollX());
view.addEventListener('viewshow', function (e) {
- isViewRestored = e.detail.isRestored;
initTabs();
if (!view.getAttribute('data-title')) {
const parentId = params.topParentId;
diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js
index cde5ae5058..1ee70c8f88 100644
--- a/src/controllers/shows/tvshows.js
+++ b/src/controllers/shows/tvshows.js
@@ -1,4 +1,3 @@
-import layoutManager from 'layoutManager';
import loading from 'loading';
import events from 'events';
import libraryBrowser from 'libraryBrowser';
diff --git a/src/controllers/shows/tvstudios.js b/src/controllers/shows/tvstudios.js
index ba7fdfaf78..4be717fb7f 100644
--- a/src/controllers/shows/tvstudios.js
+++ b/src/controllers/shows/tvstudios.js
@@ -1,7 +1,6 @@
import loading from 'loading';
import libraryBrowser from 'libraryBrowser';
import cardBuilder from 'cardBuilder';
-import appHost from 'apphost';
/* eslint-disable indent */
diff --git a/src/controllers/shows/tvupcoming.js b/src/controllers/shows/tvupcoming.js
index a2016279b8..f9df3df343 100644
--- a/src/controllers/shows/tvupcoming.js
+++ b/src/controllers/shows/tvupcoming.js
@@ -1,9 +1,7 @@
import layoutManager from 'layoutManager';
import loading from 'loading';
import datetime from 'datetime';
-import libraryBrowser from 'libraryBrowser';
import cardBuilder from 'cardBuilder';
-import appHost from 'apphost';
import imageLoader from 'imageLoader';
import globalize from 'globalize';
import 'scrollStyles';
@@ -106,8 +104,6 @@ import 'emby-itemscontainer';
html += '
';
}
- let supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
html += cardBuilder.getCardsHtml({
items: group.items,
showLocationTypeIndicator: false,
@@ -116,11 +112,11 @@ import 'emby-itemscontainer';
preferThumb: true,
lazy: true,
showDetailsMenu: true,
- centerText: !supportsImageAnalysis,
+ centerText: true,
showParentTitle: true,
overlayText: false,
allowBottomPadding: allowBottomPadding,
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
overlayMoreButton: true,
missingIndicator: false
});
diff --git a/src/controllers/user/home/index.js b/src/controllers/user/home/index.js
index e7058fd3ac..f811aa52b9 100644
--- a/src/controllers/user/home/index.js
+++ b/src/controllers/user/home/index.js
@@ -1,7 +1,4 @@
import HomescreenSettings from 'homescreenSettings';
-import dom from 'dom';
-import globalize from 'globalize';
-import loading from 'loading';
import * as userSettings from 'userSettings';
import autoFocuser from 'autoFocuser';
import 'listViewStyle';
diff --git a/src/controllers/user/menu/index.js b/src/controllers/user/menu/index.js
index ef4b3b21c8..f44a193a52 100644
--- a/src/controllers/user/menu/index.js
+++ b/src/controllers/user/menu/index.js
@@ -1,6 +1,4 @@
import appHost from 'apphost';
-import connectionManager from 'connectionManager';
-import layoutManager from 'layoutManager';
import 'listViewStyle';
import 'emby-button';
diff --git a/src/controllers/user/playback/index.js b/src/controllers/user/playback/index.js
index 5bcf055cd3..16c50a1980 100644
--- a/src/controllers/user/playback/index.js
+++ b/src/controllers/user/playback/index.js
@@ -1,7 +1,4 @@
import PlaybackSettings from 'playbackSettings';
-import dom from 'dom';
-import globalize from 'globalize';
-import loading from 'loading';
import * as userSettings from 'userSettings';
import autoFocuser from 'autoFocuser';
import 'listViewStyle';
diff --git a/src/dlnaprofile.html b/src/dlnaprofile.html
index e960d97a0f..01636e6019 100644
--- a/src/dlnaprofile.html
+++ b/src/dlnaprofile.html
@@ -5,7 +5,6 @@
${HeaderProfileInformation}
-
diff --git a/src/dlnaprofiles.html b/src/dlnaprofiles.html
index b47b2fd6bf..615bb59ee8 100644
--- a/src/dlnaprofiles.html
+++ b/src/dlnaprofiles.html
@@ -11,7 +11,6 @@
-
${CustomDlnaProfilesHelp}
diff --git a/src/elements/emby-collapse/emby-collapse.js b/src/elements/emby-collapse/emby-collapse.js
index f980f19af0..382b0aa5c8 100644
--- a/src/elements/emby-collapse/emby-collapse.js
+++ b/src/elements/emby-collapse/emby-collapse.js
@@ -7,51 +7,51 @@ import 'emby-button';
const EmbyButtonPrototype = Object.create(HTMLDivElement.prototype);
function slideDownToShow(button, elem) {
-
- elem.classList.remove('hide');
- elem.classList.add('expanded');
- elem.style.height = 'auto';
- const height = elem.offsetHeight + 'px';
- elem.style.height = '0';
-
- // trigger reflow
- const newHeight = elem.offsetHeight;
- elem.style.height = height;
-
- setTimeout(function () {
- if (elem.classList.contains('expanded')) {
- elem.classList.remove('hide');
- } else {
- elem.classList.add('hide');
- }
+ requestAnimationFrame(() => {
+ elem.classList.remove('hide');
+ elem.classList.add('expanded');
elem.style.height = 'auto';
- }, 300);
+ const height = elem.offsetHeight + 'px';
+ elem.style.height = '0';
+ // trigger reflow
+ // TODO: Find a better way to do this
+ const newHeight = elem.offsetHeight; /* eslint-disable-line no-unused-vars */
+ elem.style.height = height;
- const icon = button.querySelector('.material-icons');
- //icon.innerHTML = 'expand_less';
- icon.classList.add('emby-collapse-expandIconExpanded');
+ setTimeout(function () {
+ if (elem.classList.contains('expanded')) {
+ elem.classList.remove('hide');
+ } else {
+ elem.classList.add('hide');
+ }
+ elem.style.height = 'auto';
+ }, 300);
+
+ const icon = button.querySelector('.material-icons');
+ icon.classList.add('emby-collapse-expandIconExpanded');
+ });
}
function slideUpToHide(button, elem) {
+ requestAnimationFrame(() => {
+ elem.style.height = elem.offsetHeight + 'px';
+ // trigger reflow
+ // TODO: Find a better way to do this
+ const newHeight = elem.offsetHeight; /* eslint-disable-line no-unused-vars */
+ elem.classList.remove('expanded');
+ elem.style.height = '0';
- elem.style.height = elem.offsetHeight + 'px';
- // trigger reflow
- const newHeight = elem.offsetHeight;
+ setTimeout(function () {
+ if (elem.classList.contains('expanded')) {
+ elem.classList.remove('hide');
+ } else {
+ elem.classList.add('hide');
+ }
+ }, 300);
- elem.classList.remove('expanded');
- elem.style.height = '0';
-
- setTimeout(function () {
- if (elem.classList.contains('expanded')) {
- elem.classList.remove('hide');
- } else {
- elem.classList.add('hide');
- }
- }, 300);
-
- const icon = button.querySelector('.material-icons');
- //icon.innerHTML = 'expand_more';
- icon.classList.remove('emby-collapse-expandIconExpanded');
+ const icon = button.querySelector('.material-icons');
+ icon.classList.remove('emby-collapse-expandIconExpanded');
+ });
}
function onButtonClick(e) {
diff --git a/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js b/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js
index b1f8c4f4cf..ea9a343e8c 100644
--- a/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js
+++ b/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js
@@ -40,7 +40,7 @@ import 'webcomponents';
this.classList.add('hide');
}
- this.setProgress(progress);
+ this.setAttribute('data-progress', progress);
}
}
diff --git a/src/elements/emby-itemscontainer/emby-itemscontainer.js b/src/elements/emby-itemscontainer/emby-itemscontainer.js
index 1d4a67717a..608449f30f 100644
--- a/src/elements/emby-itemscontainer/emby-itemscontainer.js
+++ b/src/elements/emby-itemscontainer/emby-itemscontainer.js
@@ -18,7 +18,6 @@ import 'webcomponents';
function onClick(e) {
const itemsContainer = this;
- const target = e.target;
let multiSelect = itemsContainer.multiSelect;
if (multiSelect) {
diff --git a/src/elements/emby-progressring/emby-progressring.js b/src/elements/emby-progressring/emby-progressring.js
index 062f64d78b..838816579c 100644
--- a/src/elements/emby-progressring/emby-progressring.js
+++ b/src/elements/emby-progressring/emby-progressring.js
@@ -13,23 +13,22 @@ import 'webcomponents';
import('text!./emby-progressring.template.html').then(({default: template}) => {
instance.innerHTML = template;
- //if (window.MutationObserver) {
- // // create an observer instance
- // var observer = new MutationObserver(function (mutations) {
- // mutations.forEach(function (mutation) {
+ if (window.MutationObserver) {
+ // create an observer instance
+ var observer = new MutationObserver(function (mutations) {
+ mutations.forEach(function (mutation) {
+ instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0'));
+ });
+ });
- // instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0'));
- // });
- // });
+ // configuration of the observer:
+ var config = { attributes: true, childList: false, characterData: false };
- // // configuration of the observer:
- // var config = { attributes: true, childList: false, characterData: false };
+ // pass in the target node, as well as the observer options
+ observer.observe(instance, config);
- // // pass in the target node, as well as the observer options
- // observer.observe(instance, config);
-
- // instance.observer = observer;
- //}
+ instance.observer = observer;
+ }
instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0'));
});
diff --git a/src/elements/emby-radio/emby-radio.js b/src/elements/emby-radio/emby-radio.js
index c8437d77e3..7d53eb6ad4 100644
--- a/src/elements/emby-radio/emby-radio.js
+++ b/src/elements/emby-radio/emby-radio.js
@@ -37,7 +37,6 @@ import 'webcomponents';
this.classList.add('mdl-radio__button');
let labelElement = this.parentNode;
- //labelElement.classList.add('"mdl-radio mdl-js-radio mdl-js-ripple-effect');
labelElement.classList.add('mdl-radio');
labelElement.classList.add('mdl-js-radio');
labelElement.classList.add('mdl-js-ripple-effect');
diff --git a/src/elements/emby-ratingbutton/emby-ratingbutton.js b/src/elements/emby-ratingbutton/emby-ratingbutton.js
index b455495a2e..42cd69775a 100644
--- a/src/elements/emby-ratingbutton/emby-ratingbutton.js
+++ b/src/elements/emby-ratingbutton/emby-ratingbutton.js
@@ -78,7 +78,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) {
icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating');
- //icon.innerHTML = 'thumb_up';
}
button.classList.remove('ratingbutton-withrating');
@@ -87,7 +86,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) {
icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating');
- //icon.innerHTML = 'thumb_down';
}
button.classList.remove('ratingbutton-withrating');
@@ -96,7 +94,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) {
icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating');
- //icon.innerHTML = 'thumbs_up_down';
}
button.classList.remove('ratingbutton-withrating');
}
diff --git a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js
index 239fbcfcda..fcff587392 100644
--- a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js
+++ b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js
@@ -36,6 +36,7 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
}
function updateScrollButtons(scrollButtons, scrollSize, scrollPos, scrollWidth) {
+ // TODO: Check if hack is really needed
// hack alert add twenty for rounding errors
if (scrollWidth <= scrollSize + 20) {
scrollButtons.scrollButtonsLeft.classList.add('hide');
@@ -122,7 +123,6 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
const direction = this.getAttribute('data-direction');
const scrollSize = getScrollSize(scroller);
const scrollPos = getScrollPosition(scroller);
- const scrollWidth = getScrollWidth(scroller);
let newPos;
if (direction === 'left') {
diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js
index e872f6c78b..f634faf1e9 100644
--- a/src/elements/emby-slider/emby-slider.js
+++ b/src/elements/emby-slider/emby-slider.js
@@ -12,8 +12,6 @@ import 'emby-input';
let supportsValueSetOverride = false;
- let enableWidthWithTransform;
-
if (Object.getOwnPropertyDescriptor && Object.defineProperty) {
const descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
@@ -104,12 +102,8 @@ import 'emby-input';
if (backgroundLower) {
let fraction = (value - range.min) / (range.max - range.min);
- if (enableWidthWithTransform) {
- backgroundLower.style.transform = 'scaleX(' + (fraction) + ')';
- } else {
- fraction *= 100;
- backgroundLower.style.width = fraction + '%';
- }
+ fraction *= 100;
+ backgroundLower.style.width = fraction + '%';
}
});
}
@@ -146,10 +140,6 @@ import 'emby-input';
return;
}
- if (enableWidthWithTransform == null) {
- //enableWidthWithTransform = browser.supportsCssAnimation();
- }
-
this.setAttribute('data-embyslider', 'true');
this.classList.add('mdl-slider');
@@ -177,11 +167,7 @@ import 'emby-input';
// the more of these, the more ranges we can display
htmlToInsert += '
';
- if (enableWidthWithTransform) {
- htmlToInsert += '
';
- } else {
- htmlToInsert += '
';
- }
+ htmlToInsert += '
';
htmlToInsert += '
';
htmlToInsert += '
';
diff --git a/src/elements/emby-tabs/emby-tabs.js b/src/elements/emby-tabs/emby-tabs.js
index f3cd9d38cc..ad96290498 100644
--- a/src/elements/emby-tabs/emby-tabs.js
+++ b/src/elements/emby-tabs/emby-tabs.js
@@ -29,13 +29,6 @@ import 'scrollStyles';
}
}
- function addActivePanelClass(tabs, index) {
- let tabPanel = getTabPanel(tabs, index);
- if (tabPanel) {
- tabPanel.classList.add('is-active');
- }
- }
-
function fadeInRight(elem) {
const pct = browser.mobile ? '4%' : '0.5%';
@@ -263,7 +256,6 @@ import 'scrollStyles';
onClick.call(tabs, {
target: tabButtons[selected]
});
- //tabButtons[selected].click();
}
};
@@ -330,8 +322,6 @@ import 'scrollStyles';
};
EmbyTabs.setTabEnabled = function (index, enabled) {
-
- const tabs = this;
const btn = this.querySelector('.emby-tab-button[data-index="' + index + '"]');
if (enabled) {
diff --git a/src/elements/emby-textarea/emby-textarea.js b/src/elements/emby-textarea/emby-textarea.js
index d98cc8c07e..28147c2750 100644
--- a/src/elements/emby-textarea/emby-textarea.js
+++ b/src/elements/emby-textarea/emby-textarea.js
@@ -47,7 +47,6 @@ import 'emby-input';
return;
}
let newHeight = 0;
- let hasGrown = false;
if ((textarea.scrollHeight - offset) > self.maxAllowedHeight) {
textarea.style.overflowY = 'scroll';
@@ -56,7 +55,6 @@ import 'emby-input';
textarea.style.overflowY = 'hidden';
textarea.style.height = 'auto';
newHeight = textarea.scrollHeight/* - offset*/;
- hasGrown = true;
}
$('.customCssContainer').css('height', newHeight + 'px');
textarea.style.height = newHeight + 'px';
diff --git a/src/legacy/focusPreventScroll.js b/src/legacy/focusPreventScroll.js
index 93f53dca29..97d6b0b120 100644
--- a/src/legacy/focusPreventScroll.js
+++ b/src/legacy/focusPreventScroll.js
@@ -1,3 +1,4 @@
+// TODO: Move to external library (https://github.com/calvellido/focus-options-polyfill)
// Polyfill to add support for preventScroll by focus function
if (HTMLElement.prototype.nativeFocus === undefined) {
diff --git a/src/libraries/scroller.js b/src/libraries/scroller.js
index 8c67127eb3..645a8ea85c 100644
--- a/src/libraries/scroller.js
+++ b/src/libraries/scroller.js
@@ -872,13 +872,6 @@ define(['browser', 'layoutManager', 'dom', 'focusManager', 'ResizeObserver', 'sc
if (item === undefined) {
this.slideTo(this._pos[location], immediate);
} else {
-
- //if (!transform) {
-
- // item.scrollIntoView();
- // return;
- //}
-
var itemPos = this.getPos(item);
if (itemPos) {
diff --git a/src/plugins/experimentalWarnings/plugin.js b/src/plugins/experimentalWarnings/plugin.js
index 632e38208c..cab4fcfada 100644
--- a/src/plugins/experimentalWarnings/plugin.js
+++ b/src/plugins/experimentalWarnings/plugin.js
@@ -1,14 +1,7 @@
define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (connectionManager, globalize, userSettings, appHost) {
'use strict';
- function getRequirePromise(deps) {
-
- return new Promise(function (resolve, reject) {
-
- require(deps, resolve);
- });
- }
-
+ // TODO: Replace with date-fns
// https://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php
function getWeek(date) {
var d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
@@ -26,6 +19,7 @@ define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (
var now = new Date();
+ // TODO: Use date-fns
userSettingsKey += now.getFullYear() + '-w' + getWeek(now);
if (userSettings.get(userSettingsKey, false) === '1') {
diff --git a/src/plugins/htmlAudioPlayer/plugin.js b/src/plugins/htmlAudioPlayer/plugin.js
index 8265987e28..a4821fa35f 100644
--- a/src/plugins/htmlAudioPlayer/plugin.js
+++ b/src/plugins/htmlAudioPlayer/plugin.js
@@ -140,8 +140,6 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
xhrSetup: function(xhr, url) {
xhr.withCredentials = true;
}
- //appendErrorMaxRetry: 6,
- //debug: true
});
hls.loadSource(val);
hls.attachMedia(elem);
diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js
index cc312bb956..b1856afbd4 100644
--- a/src/plugins/htmlVideoPlayer/plugin.js
+++ b/src/plugins/htmlVideoPlayer/plugin.js
@@ -1,8 +1,6 @@
+
define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper', 'screenfull', 'globalize'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper, screenfull, globalize) {
'use strict';
- /* globals cast */
-
- var mediaManager;
function tryRemoveElement(elem) {
var parentNode = elem.parentNode;
@@ -17,25 +15,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
}
}
- var _supportsTextTracks;
- function supportsTextTracks() {
-
- if (_supportsTextTracks == null) {
- _supportsTextTracks = document.createElement('video').textTracks != null;
- }
-
- // For now, until ready
- return _supportsTextTracks;
- }
-
- function supportsCanvas() {
- return !!document.createElement('canvas').getContext;
- }
-
- function supportsWebWorkers() {
- return !!window.Worker;
- }
-
function enableNativeTrackSupport(currentSrc, track) {
if (track) {
@@ -50,13 +29,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
}
}
- // subs getting blocked due to CORS
- if (browser.chromecast) {
- if ((currentSrc || '').toLowerCase().indexOf('.m3u8') !== -1) {
- return false;
- }
- }
-
if (browser.ps4) {
return false;
}
@@ -129,11 +101,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
return useHtml ? result.replace(/\n/gi, '