@@ -26,6 +26,7 @@ var PATHS = {
2626 TARGET : {
2727 ROOT : "target/" ,
2828 CHROME : "target/chrome/" ,
29+ FIREFOX : "target/firefox/" ,
2930 EDGE_ROOT : "target/edge/OneNoteWebClipper/edgeextension/" ,
3031 EDGE_EXTENSION : "target/edge/OneNoteWebClipper/edgeextension/manifest/extension/"
3132 } ,
@@ -207,6 +208,10 @@ gulp.task("bundleChrome", function () {
207208 return bundleEntry ( PATHS . BUILDROOT + "scripts/extensions/chrome/" , "chromeExtension.js" ) ;
208209} ) ;
209210
211+ gulp . task ( "bundleFirefox" , function ( ) {
212+ return bundleEntry ( PATHS . BUILDROOT + "scripts/extensions/firefox/" , "firefoxExtension.js" ) ;
213+ } ) ;
214+
210215gulp . task ( "bundleEdge" , function ( ) {
211216 return bundleEntry ( PATHS . BUILDROOT + "scripts/extensions/edge/" , "edgeExtension.js" ) ;
212217} ) ;
@@ -219,6 +224,7 @@ gulp.task("bundle", gulp.series(
219224 "bundleRenderer" ,
220225 "bundleLogManager" ,
221226 "bundleChrome" ,
227+ "bundleFirefox" ,
222228 "bundleEdge"
223229) ) ;
224230
@@ -235,6 +241,7 @@ function lowerCasePathName() {
235241
236242var targetDirHasExportedCommonJs = { } ;
237243targetDirHasExportedCommonJs [ PATHS . TARGET . CHROME ] = false ;
244+ targetDirHasExportedCommonJs [ PATHS . TARGET . FIREFOX ] = false ;
238245targetDirHasExportedCommonJs [ PATHS . TARGET . EDGE_EXTENSION ] = false ;
239246function exportCommonJS ( targetDir ) {
240247 if ( targetDirHasExportedCommonJs [ targetDir ] ) {
@@ -342,6 +349,31 @@ function exportChromeLibFiles() {
342349 return exportCommonLibFiles ( PATHS . TARGET . CHROME ) ;
343350}
344351
352+ function exportFirefoxJS ( ) {
353+ var targetDir = PATHS . TARGET . FIREFOX ;
354+ var bundles = [ "appendIsInstalledMarker.js" , "regionOverlay.js" , "contentCaptureInject.js" , "renderer.js" ] ;
355+ var bundleStreams = bundles . map ( function ( name ) {
356+ return gulp . src ( [ PATHS . BUNDLEROOT + name ] ) . pipe ( concat ( name ) ) . pipe ( gulp . dest ( targetDir ) ) ;
357+ } ) ;
358+ var backgroundTask = gulp . src ( [
359+ targetDir + "logManager.js" ,
360+ PATHS . BUNDLEROOT + "firefoxExtension.js"
361+ ] ) . pipe ( concat ( "firefoxExtension.js" ) ) . pipe ( gulp . dest ( targetDir ) ) ;
362+
363+ return exportCommonJS ( targetDir ) . then ( function ( ) {
364+ return streamsToPromise . apply ( null , bundleStreams . concat ( [ backgroundTask ] ) ) ;
365+ } ) ;
366+ }
367+
368+ function exportFirefoxSrcFiles ( ) {
369+ var targetDir = PATHS . TARGET . FIREFOX ;
370+ return Promise . all ( [
371+ exportCommonSrcFiles ( targetDir ) ,
372+ exportCommonWebExtensionFiles ( targetDir ) ,
373+ streamToPromise ( gulp . src ( [ PATHS . SRC . ROOT + "scripts/extensions/firefox/manifest.json" ] ) . pipe ( gulp . dest ( targetDir ) ) )
374+ ] ) ;
375+ }
376+
345377function exportEdgeJS ( ) {
346378 var targetDir = PATHS . TARGET . EDGE_EXTENSION ;
347379
@@ -443,18 +475,24 @@ gulp.task("exportChromeSrcFiles", function() { return exportChromeSrcFiles(); })
443475gulp . task ( "exportChromeLibFiles" , function ( ) { return exportChromeLibFiles ( ) ; } ) ;
444476gulp . task ( "exportChrome" , gulp . series ( "exportChromeJS" , "exportChromeCSS" , "exportChromeSrcFiles" , "exportChromeLibFiles" ) ) ;
445477
478+ gulp . task ( "exportFirefoxJS" , function ( ) { return exportFirefoxJS ( ) ; } ) ;
479+ gulp . task ( "exportFirefoxCSS" , function ( ) { return exportCommonCSS ( PATHS . TARGET . FIREFOX ) ; } ) ;
480+ gulp . task ( "exportFirefoxSrcFiles" , function ( ) { return exportFirefoxSrcFiles ( ) ; } ) ;
481+ gulp . task ( "exportFirefoxLibFiles" , function ( ) { return exportCommonLibFiles ( PATHS . TARGET . FIREFOX ) ; } ) ;
482+ gulp . task ( "exportFirefox" , gulp . series ( "exportFirefoxJS" , "exportFirefoxCSS" , "exportFirefoxSrcFiles" , "exportFirefoxLibFiles" ) ) ;
483+
446484gulp . task ( "exportEdgeJS" , function ( ) { return exportEdgeJS ( ) ; } ) ;
447485gulp . task ( "exportEdgeCSS" , function ( ) { return exportEdgeCSS ( ) ; } ) ;
448486gulp . task ( "exportEdgeSrcFiles" , function ( ) { return exportEdgeSrcFiles ( ) ; } ) ;
449487gulp . task ( "exportEdgePackageFiles" , function ( ) { return exportEdgePackageFiles ( ) ; } ) ;
450488gulp . task ( "exportEdgeLibFiles" , function ( ) { return exportEdgeLibFiles ( ) ; } ) ;
451489gulp . task ( "exportEdge" , gulp . series ( "exportEdgeJS" , "exportEdgeCSS" , "exportEdgeSrcFiles" , "exportEdgePackageFiles" , "exportEdgeLibFiles" ) ) ;
452490
453- gulp . task ( "exportJS" , gulp . series ( "exportChromeJS" , "exportEdgeJS" ) ) ;
454- gulp . task ( "exportCSS" , gulp . series ( "exportChromeCSS" , "exportEdgeCSS" ) ) ;
455- gulp . task ( "exportSrcFiles" , gulp . series ( "exportChromeSrcFiles" , "exportEdgeSrcFiles" ) ) ;
491+ gulp . task ( "exportJS" , gulp . series ( "exportChromeJS" , "exportFirefoxJS" , " exportEdgeJS") ) ;
492+ gulp . task ( "exportCSS" , gulp . series ( "exportChromeCSS" , "exportFirefoxCSS" , " exportEdgeCSS") ) ;
493+ gulp . task ( "exportSrcFiles" , gulp . series ( "exportChromeSrcFiles" , "exportFirefoxSrcFiles" , " exportEdgeSrcFiles") ) ;
456494
457- gulp . task ( "export" , gulp . series ( "exportAllCommonJS" , "exportChrome" , "exportEdge" ) ) ;
495+ gulp . task ( "export" , gulp . series ( "exportAllCommonJS" , "exportChrome" , "exportFirefox" , " exportEdge") ) ;
458496
459497////////////////////////////////////////
460498// PACKAGING TASKS
@@ -465,7 +503,13 @@ gulp.task("packageChrome", function() {
465503 . pipe ( gulp . dest ( PATHS . TARGET . CHROME ) ) ;
466504} ) ;
467505
468- gulp . task ( "package" , gulp . series ( "packageChrome" ) ) ;
506+ gulp . task ( "packageFirefox" , function ( ) {
507+ return gulp . src ( [ PATHS . TARGET . FIREFOX + "/**/*" , "!" + PATHS . TARGET . FIREFOX + "/OneNoteWebClipper.xpi" ] , { encoding : false } )
508+ . pipe ( zip ( "OneNoteWebClipper.xpi" ) )
509+ . pipe ( gulp . dest ( PATHS . TARGET . FIREFOX ) ) ;
510+ } ) ;
511+
512+ gulp . task ( "package" , gulp . series ( "packageChrome" , "packageFirefox" ) ) ;
469513
470514////////////////////////////////////////
471515// PRODUCTION-ONLY TASKS
@@ -513,6 +557,7 @@ gulp.task("watchSrcFiles", function() {
513557 PATHS . SRC . ROOT + "images/*" ,
514558 PATHS . SRC . ROOT + "renderer.html" ,
515559 PATHS . SRC . ROOT + "scripts/extensions/chrome/manifest.json" ,
560+ PATHS . SRC . ROOT + "scripts/extensions/firefox/manifest.json" ,
516561 PATHS . SRC . ROOT + "scripts/extensions/offscreen.html" ,
517562 PATHS . SRC . ROOT + "scripts/extensions/edge/edgeExtension.html" ,
518563 PATHS . SRC . ROOT + "scripts/extensions/edge/manifest.json"
0 commit comments