Skip to content
Snippets Groups Projects
Commit aa04d737 authored by Gabriel Engel's avatar Gabriel Engel Committed by GitHub
Browse files

Merge pull request #5893 from alexbrazier/feature/electron-screenshare

Changes to make screen share work on electron app
parents 6d63ae0f a1a7cc59
No related branches found
No related tags found
No related merge requests found
...@@ -150,14 +150,17 @@ class WebRTCClass ...@@ -150,14 +150,17 @@ class WebRTCClass
@autoAccept = false @autoAccept = false
@navigator = undefined @navigator = undefined
if navigator.userAgent.toLocaleLowerCase().indexOf('chrome') > -1 userAgent = navigator.userAgent.toLocaleLowerCase();
if userAgent.indexOf('electron') isnt -1
@navigator = 'electron'
else if userAgent.indexOf('chrome') isnt -1
@navigator = 'chrome' @navigator = 'chrome'
else if navigator.userAgent.toLocaleLowerCase().indexOf('firefox') > -1 else if userAgent.indexOf('firefox') isnt -1
@navigator = 'firefox' @navigator = 'firefox'
else if navigator.userAgent.toLocaleLowerCase().indexOf('safari') > -1 else if userAgent.indexOf('safari') isnt -1
@navigator = 'safari' @navigator = 'safari'
@screenShareAvailable = @navigator in ['chrome', 'firefox'] @screenShareAvailable = @navigator in ['chrome', 'firefox', 'electron']
@media = @media =
video: false video: false
...@@ -357,7 +360,7 @@ class WebRTCClass ...@@ -357,7 +360,7 @@ class WebRTCClass
return return
getScreen = (audioStream) => getScreen = (audioStream) =>
if document.cookie.indexOf("rocketchatscreenshare=chrome") is -1 and not window.rocketchatscreenshare? if document.cookie.indexOf("rocketchatscreenshare=chrome") is -1 and not window.rocketchatscreenshare? and @navigator isnt 'electron'
refresh = -> refresh = ->
swal swal
type: "warning" type: "warning"
...@@ -396,8 +399,7 @@ class WebRTCClass ...@@ -396,8 +399,7 @@ class WebRTCClass
mediaSource: 'window' mediaSource: 'window'
@_getUserMedia media, getScreenSuccess, onError @_getUserMedia media, getScreenSuccess, onError
else else
ChromeScreenShare.getSourceId (id) => ChromeScreenShare.getSourceId @navigator, (id) =>
console.log id
media = media =
audio: false audio: false
video: video:
......
@ChromeScreenShare = @ChromeScreenShare =
screenCallback: undefined screenCallback: undefined
getSourceId: (callback) -> getSourceId: (navigator, callback) ->
if not callback? then throw '"callback" parameter is mandatory.' if not callback? then throw '"callback" parameter is mandatory.'
ChromeScreenShare.screenCallback = callback ChromeScreenShare.screenCallback = callback
window.postMessage('get-sourceId', '*')
if navigator is 'electron'
fireGlobalEvent('get-sourceId', '*')
else
window.postMessage('get-sourceId', '*')
window.addEventListener 'message', (e) -> window.addEventListener 'message', (e) ->
if e.origin isnt window.location.origin if e.origin isnt window.location.origin
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment