mirror of
https://github.com/tobspr/shapez.io.git
synced 2024-10-27 20:34:29 +00:00
Fix firefox not loading in private browsing mode
This commit is contained in:
parent
d1954b5b36
commit
8779f1d5a3
@ -123,27 +123,16 @@ export class Application {
|
|||||||
initPlatformDependentInstances() {
|
initPlatformDependentInstances() {
|
||||||
logger.log("Creating platform dependent instances");
|
logger.log("Creating platform dependent instances");
|
||||||
|
|
||||||
// Start with empty ad provider
|
|
||||||
this.adProvider = new NoAdProvider(this);
|
|
||||||
|
|
||||||
if (G_IS_STANDALONE) {
|
|
||||||
this.storage = new StorageImplElectron(this);
|
|
||||||
} else {
|
|
||||||
if (window.indexedDB) {
|
|
||||||
this.storage = new StorageImplBrowserIndexedDB(this);
|
|
||||||
} else {
|
|
||||||
this.storage = new StorageImplBrowser(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.sound = new SoundImplBrowser(this);
|
|
||||||
|
|
||||||
if (G_IS_STANDALONE) {
|
if (G_IS_STANDALONE) {
|
||||||
this.platformWrapper = new PlatformWrapperImplElectron(this);
|
this.platformWrapper = new PlatformWrapperImplElectron(this);
|
||||||
} else {
|
} else {
|
||||||
this.platformWrapper = new PlatformWrapperImplBrowser(this);
|
this.platformWrapper = new PlatformWrapperImplBrowser(this);
|
||||||
}
|
}
|
||||||
this.analytics = new GoogleAnalyticsImpl(this);
|
|
||||||
|
|
||||||
|
// Start with empty ad provider
|
||||||
|
this.adProvider = new NoAdProvider(this);
|
||||||
|
this.sound = new SoundImplBrowser(this);
|
||||||
|
this.analytics = new GoogleAnalyticsImpl(this);
|
||||||
this.gameAnalytics = new ShapezGameAnalytics(this);
|
this.gameAnalytics = new ShapezGameAnalytics(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
export const CHANGELOG = [
|
export const CHANGELOG = [
|
||||||
|
{
|
||||||
|
version: "1.1.6",
|
||||||
|
date: "unreleased",
|
||||||
|
entries: ["Fixed firefox not loading the game when browsing in private mode"],
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
version: "1.1.5",
|
version: "1.1.5",
|
||||||
date: "03.06.2020",
|
date: "03.06.2020",
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
import { Math_min } from "../../core/builtins";
|
import { Math_min } from "../../core/builtins";
|
||||||
import { globalConfig, IS_MOBILE, IS_DEBUG, IS_DEMO } from "../../core/config";
|
import { globalConfig, IS_DEMO, IS_MOBILE } from "../../core/config";
|
||||||
import { createLogger } from "../../core/logging";
|
import { createLogger } from "../../core/logging";
|
||||||
import { queryParamOptions } from "../../core/query_parameters";
|
import { queryParamOptions } from "../../core/query_parameters";
|
||||||
import { clamp } from "../../core/utils";
|
import { clamp } from "../../core/utils";
|
||||||
|
import { GamedistributionAdProvider } from "../ad_providers/gamedistribution";
|
||||||
import { NoAdProvider } from "../ad_providers/no_ad_provider";
|
import { NoAdProvider } from "../ad_providers/no_ad_provider";
|
||||||
import { PlatformWrapperInterface } from "../wrapper";
|
import { PlatformWrapperInterface } from "../wrapper";
|
||||||
import { GamedistributionAdProvider } from "../ad_providers/gamedistribution";
|
import { StorageImplBrowser } from "./storage";
|
||||||
|
import { StorageImplBrowserIndexedDB } from "./storage_indexed_db";
|
||||||
|
|
||||||
const logger = createLogger("platform/browser");
|
const logger = createLogger("platform/browser");
|
||||||
|
|
||||||
@ -72,7 +74,36 @@ export class PlatformWrapperImplBrowser extends PlatformWrapperInterface {
|
|||||||
|
|
||||||
logger.log("Embed provider:", this.embedProvider.id);
|
logger.log("Embed provider:", this.embedProvider.id);
|
||||||
|
|
||||||
return super.initialize().then(() => this.initializeAdProvider());
|
return this.detectStorageImplementation()
|
||||||
|
.then(() => this.initializeAdProvider())
|
||||||
|
.then(() => super.initialize());
|
||||||
|
}
|
||||||
|
|
||||||
|
detectStorageImplementation() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
logger.log("Detecting storage");
|
||||||
|
|
||||||
|
if (!window.indexedDB) {
|
||||||
|
logger.log("Indexed DB not supported");
|
||||||
|
this.app.storage = new StorageImplBrowser(this.app);
|
||||||
|
resolve();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try accessing the indexedb
|
||||||
|
const request = window.indexedDB.open("indexeddb_feature_detection", 1);
|
||||||
|
request.onerror = err => {
|
||||||
|
logger.log("Indexed DB can *not* be accessed: ", err);
|
||||||
|
logger.log("Using fallback to local storage");
|
||||||
|
this.app.storage = new StorageImplBrowser(this.app);
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
request.onsuccess = () => {
|
||||||
|
logger.log("Indexed DB *can* be accessed");
|
||||||
|
this.app.storage = new StorageImplBrowserIndexedDB(this.app);
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getHasUnlimitedSavegames() {
|
getHasUnlimitedSavegames() {
|
||||||
@ -83,71 +114,6 @@ export class PlatformWrapperImplBrowser extends PlatformWrapperInterface {
|
|||||||
return this.embedProvider.showDemoBadge;
|
return this.embedProvider.showDemoBadge;
|
||||||
}
|
}
|
||||||
|
|
||||||
onSentryLoaded() {
|
|
||||||
logger.log("Initializing sentry");
|
|
||||||
window.Sentry.init({
|
|
||||||
dsn: "TODO SENTRY DSN",
|
|
||||||
release: G_APP_ENVIRONMENT + "-" + G_BUILD_VERSION + "@" + G_BUILD_COMMIT_HASH,
|
|
||||||
// Will cause a deprecation warning, but the demise of `ignoreErrors` is still under discussion.
|
|
||||||
// See: https://github.com/getsentry/raven-js/issues/73
|
|
||||||
ignoreErrors: [
|
|
||||||
// Random plugins/extensions
|
|
||||||
"top.GLOBALS",
|
|
||||||
// See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html
|
|
||||||
"originalCreateNotification",
|
|
||||||
"canvas.contentDocument",
|
|
||||||
"MyApp_RemoveAllHighlights",
|
|
||||||
"http://tt.epicplay.com",
|
|
||||||
"Can't find variable: ZiteReader",
|
|
||||||
"jigsaw is not defined",
|
|
||||||
"ComboSearch is not defined",
|
|
||||||
"http://loading.retry.widdit.com/",
|
|
||||||
"atomicFindClose",
|
|
||||||
// Facebook borked
|
|
||||||
"fb_xd_fragment",
|
|
||||||
// ISP "optimizing" proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha)
|
|
||||||
// See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy
|
|
||||||
"bmi_SafeAddOnload",
|
|
||||||
"EBCallBackMessageReceived",
|
|
||||||
// See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx
|
|
||||||
"conduitPage",
|
|
||||||
// Generic error code from errors outside the security sandbox
|
|
||||||
// You can delete this if using raven.js > 1.0, which ignores these automatically.
|
|
||||||
"Script error.",
|
|
||||||
|
|
||||||
// Errors from ads
|
|
||||||
"Cannot read property 'postMessage' of null",
|
|
||||||
|
|
||||||
// Firefox only
|
|
||||||
"AbortError: The operation was aborted.",
|
|
||||||
|
|
||||||
"<unknown>",
|
|
||||||
],
|
|
||||||
ignoreUrls: [
|
|
||||||
// Facebook flakiness
|
|
||||||
/graph\.facebook\.com/i,
|
|
||||||
// Facebook blocked
|
|
||||||
/connect\.facebook\.net\/en_US\/all\.js/i,
|
|
||||||
// Woopra flakiness
|
|
||||||
/eatdifferent\.com\.woopra-ns\.com/i,
|
|
||||||
/static\.woopra\.com\/js\/woopra\.js/i,
|
|
||||||
// Chrome extensions
|
|
||||||
/extensions\//i,
|
|
||||||
/^chrome:\/\//i,
|
|
||||||
// Other plugins
|
|
||||||
/127\.0\.0\.1:4001\/isrunning/i, // Cacaoweb
|
|
||||||
/webappstoolbarba\.texthelp\.com\//i,
|
|
||||||
/metrics\.itunes\.apple\.com\.edgesuite\.net\//i,
|
|
||||||
],
|
|
||||||
beforeSend(event, hint) {
|
|
||||||
if (window.anyModLoaded) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return event;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getId() {
|
getId() {
|
||||||
return "browser@" + this.embedProvider.id;
|
return "browser@" + this.embedProvider.id;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
import { PlatformWrapperImplBrowser } from "../browser/wrapper";
|
import { PlatformWrapperImplBrowser } from "../browser/wrapper";
|
||||||
import { getIPCRenderer } from "../../core/utils";
|
import { getIPCRenderer } from "../../core/utils";
|
||||||
import { createLogger } from "../../core/logging";
|
import { createLogger } from "../../core/logging";
|
||||||
|
import { StorageImplElectron } from "./storage";
|
||||||
|
|
||||||
const logger = createLogger("electron-wrapper");
|
const logger = createLogger("electron-wrapper");
|
||||||
|
|
||||||
export class PlatformWrapperImplElectron extends PlatformWrapperImplBrowser {
|
export class PlatformWrapperImplElectron extends PlatformWrapperImplBrowser {
|
||||||
|
initialize() {
|
||||||
|
this.app.storage = new StorageImplElectron(this);
|
||||||
|
return super.initialize();
|
||||||
|
}
|
||||||
|
|
||||||
getId() {
|
getId() {
|
||||||
return "electron";
|
return "electron";
|
||||||
}
|
}
|
||||||
@ -22,6 +28,14 @@ export class PlatformWrapperImplElectron extends PlatformWrapperImplBrowser {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getHasUnlimitedSavegames() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
getShowDemoBadges() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
performRestart() {
|
performRestart() {
|
||||||
logger.log(this, "Performing restart");
|
logger.log(this, "Performing restart");
|
||||||
window.location.reload(true);
|
window.location.reload(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user