Skip to content

Commit

Permalink
fix worker detection code
Browse files Browse the repository at this point in the history
  • Loading branch information
srijs committed Jan 4, 2018
1 parent 603ace7 commit db2bb1d
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 13 deletions.
17 changes: 9 additions & 8 deletions Gruntfile.js
@@ -1,4 +1,5 @@
module.exports = function (grunt) {
const browsers = ['ChromeHeadless', 'FirefoxHeadless'];

grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
Expand Down Expand Up @@ -51,7 +52,7 @@ module.exports = function (grunt) {
preprocessors: {
'test/unit/*.js': ['browserify']
},
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
},
fuzz: {
Expand All @@ -61,7 +62,7 @@ module.exports = function (grunt) {
preprocessors: {
'test/fuzz.js': ['browserify']
},
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
},
functional: {
Expand All @@ -74,7 +75,7 @@ module.exports = function (grunt) {
browserify: {
transform: ['brfs']
},
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
},
compatibilityWithVanillaScript: {
Expand All @@ -84,7 +85,7 @@ module.exports = function (grunt) {
'test/compat/vanilla_script.js',
'dist/rusha.min.js'
],
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
},
compatibilityWithVanillaWorker: {
Expand All @@ -94,7 +95,7 @@ module.exports = function (grunt) {
'test/compat/vanilla_worker.js',
{pattern: 'dist/rusha.min.js', included: false, served: true}
],
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
},
compatibilityWithBrowserify: {
Expand All @@ -106,7 +107,7 @@ module.exports = function (grunt) {
preprocessors: {
'test/compat/require.js': ['browserify']
},
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
},
compatibilityWithWebpack: {
Expand All @@ -118,7 +119,7 @@ module.exports = function (grunt) {
preprocessors: {
'test/compat/require.js': ['webpack']
},
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
},
benchmark: {
Expand All @@ -129,7 +130,7 @@ module.exports = function (grunt) {
preprocessors: {
'perf/benchmark.js': ['browserify']
},
browsers: ['ChromeHeadless', 'FirefoxHeadless']
browsers
}
}
},
Expand Down
15 changes: 14 additions & 1 deletion dist/rusha.js
Expand Up @@ -355,7 +355,20 @@ var Rusha = _dereq_('./rusha');
var createHash = _dereq_('./hash');
var runWorker = _dereq_('./worker');

var isRunningInDedicatedWorker = typeof FileReaderSync !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined';
var isRunningInWorker = 'WorkerGlobalScope' in self && self instanceof self.WorkerGlobalScope;
var isRunningInSharedWorker = 'SharedWorkerGlobalScope' in self && self instanceof self.SharedWorkerGlobalScope;
var isRunningInServiceWorker = 'ServiceWorkerGlobalScope' in self && self instanceof self.ServiceWorkerGlobalScope;

// Detects whether we run inside a dedicated worker or not.
//
// We can't just check for `DedicatedWorkerGlobalScope`, since IE11
// has a bug where it only supports `WorkerGlobalScope`.
//
// Therefore, we consider us as running inside a dedicated worker
// when we are running inside a worker, but not in a shared or service worker.
//
// When new types of workers are introduced, we will need to adjust this code.
var isRunningInDedicatedWorker = isRunningInWorker && !isRunningInSharedWorker && !isRunningInServiceWorker;

Rusha.disableWorkerBehaviour = isRunningInDedicatedWorker ? runWorker() : function () {};

Expand Down

0 comments on commit db2bb1d

Please sign in to comment.