chromium/third_party/blink/web_tests/http/tests/permissions/resources/helpers.js

// This file is using testharness.js coding style.

function get_script_href()
{
    var filename = window.location.href.substr(window.location.href.lastIndexOf('/') + 1);
    return 'resources/' + filename.replace('.html', '.js');
}

function get_current_scope()
{
    if ('document' in self) {
        return 'Window';
    }
    if ('DedicatedWorkerGlobalScope' in self &&
        self instanceof DedicatedWorkerGlobalScope) {
        return 'DedicatedWorker';
    }
    if ('SharedWorkerGlobalScope' in self &&
        self instanceof SharedWorkerGlobalScope) {
        return 'SharedWorker';
    }
    if ('ServiceWorkerGlobalScope' in self &&
        self instanceof ServiceWorkerGlobalScope) {
        return 'ServiceWorker';
    }

    throw new Error('unknown scope');
}

function run_test() {
    var script_href = get_script_href();

    // Run the tests on the Window scope.
    var script_element = document.createElement('script');
    script_element.src = script_href;
    document.body.appendChild(script_element);

    // Run the tests on {Dedicated,Shared,Service}Worker.
    fetch_tests_from_worker(new Worker(script_href));
    fetch_tests_from_worker(new SharedWorker(script_href));
    service_worker_test(script_href);
}