Project

General

Profile

« Previous | Next » 

Revision 229e86f6

Added by jahoti about 2 years ago

Integrate browser.js into exports_init.js, and streamline the result

View differences:

build.sh
150 150
	fi
151 151
    done
152 152

  
153
    echo $FILE
153
    [ "x$FILE" = "xexports_init.js" ] || echo $FILE # exports_init.js is hardcoded to load first; the entire export system depends on it
154 154
    map_set FILESTATES $FILEKEY "processed"
155 155
}
156 156

  
......
194 194

  
195 195
main() {
196 196
    set_browser "$1"
197
    
198
    # placate importers of these, as they are exported by the yet-to-be-created exports_init.js
199
    EXPORTS__browser=exports_init.js
200
    EXPORTS__is_chrome=exports_init.js
201
    EXPORTS__is_mozilla=exports_init.js
197 202

  
198 203
    SCRIPTDIRS='background html common content'
199 204

  
......
288 293
	fi
289 294
    done
290 295

  
291
    echo "\
292
window.killtheweb={};
293
window.browser = this.browser; /* fix for stupid Firefox */
294
" > $BUILDDIR/exports_init.js
296
    if [ "$BROWSER" = "chromium" ]; then
297
	echo "window.killtheweb={is_chrome: true, browser: window.chrome};" > $BUILDDIR/exports_init.js
298
    else
299
	echo "window.killtheweb={is_mozilla: true, browser: this.browser};" > $BUILDDIR/exports_init.js
300
    fi
295 301

  
296 302
    cp -r icons/ copyright licenses/ $BUILDDIR
297 303
}
common/browser.js
1
/**
2
 * Myext WebExtension API access normalization
3
 *
4
 * Copyright (C) 2021 Wojtek Kosior
5
 * Redistribution terms are gathered in the `copyright' file.
6
 */
7

  
8
/*
9
 * This module normalizes access to WebExtension apis between
10
 * chrome-based and firefox-based browsers.
11
 */
12

  
13
const is_mozilla = typeof window.browser === "object";
14
const is_chrome = !is_mozilla;
15
const browser = window[is_chrome ? "chrome" : "browser"];
16

  
17
/*
18
 * EXPORTS_START
19
 * EXPORT browser
20
 * EXPORT is_chrome
21
 * EXPORT is_mozilla
22
 * EXPORTS_END
23
 */

Also available in: Unified diff