diff --git a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar index dae0476f3d..ab0401d4a8 100755 Binary files a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar and b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar differ diff --git a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar index 27009b505a..180805bb7d 100755 Binary files a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar and b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar differ diff --git a/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js b/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js index de9cc9a50c..38afed12af 100755 --- a/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js +++ b/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js @@ -3,6 +3,9 @@ if (!window.console.log) window.console.log = function () { }; function startApplet(IP, useTLS , roomNumber, fullScreen, useSVC2) { + var deskshareElement = document.getElementById("deskshare"); + if (deskshareElement == null) { + console.log("Starting deskshare applet."); var div = document.createElement("div"); div.id = "deskshare"; @@ -21,15 +24,40 @@ function startApplet(IP, useTLS , roomNumber, fullScreen, useSVC2) "" + ""; document.body.appendChild(div); + } else { + console.log("Deskshare applet element already exists."); + var div = document.getElementById("deskshare"); + if (div.parentNode) { + // Just rewrite the applet tag to kick off the applet. We don't remove the applet tag + // when desktop sharing is stopped to prevent Firefox (38.0.5) from asking for user permissions + // again resulting in the page reloading. (ralam june 17, 2015) + // https://code.google.com/p/bigbluebutton/issues/detail?id=1953 + div.innerHTML = + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + ""; + } + } } + function removeFrame () { var div = document.getElementById("deskshare"); if (div.parentNode) { // Need to set the innerHTML otherwise the applet will restart in IE. // see https://code.google.com/p/bigbluebutton/issues/detail?id=1776 - div.innerHTML = ""; - div.parentNode.removeChild(div); + // Do NOT remove the applet tag as it makes Firefox (38.0.5) prompt for + // permissions again resulting in the page reloading. (ralam june 17, 2015) + // div.innerHTML = ""; +// div.parentNode.removeChild(div); } } @@ -143,4 +171,4 @@ function checkJavaVersion(minJavaVersion) { } } -} \ No newline at end of file +} diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml index 08d6f34215..7b15d9a882 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml @@ -42,11 +42,8 @@ with BigBlueButton; if not, see . import com.asfusion.mate.events.Dispatcher; import mx.managers.PopUpManager; import org.bigbluebutton.core.BBB; - import org.bigbluebutton.main.api.JSAPI; import org.bigbluebutton.main.api.JSLog; - import org.bigbluebutton.main.events.BBBEvent; import org.bigbluebutton.modules.phone.PhoneModel; - import org.bigbluebutton.modules.phone.PhoneOptions; import org.bigbluebutton.modules.phone.events.WebRTCCallEvent; import org.bigbluebutton.modules.phone.events.WebRTCEchoTestEvent; import org.bigbluebutton.modules.phone.events.WebRTCEchoTestStartedEvent; @@ -115,12 +112,7 @@ with BigBlueButton; if not, see . private function noButtonClicked():void { userClosed = true; trace(LOG + "Echo test failed."); - - var logData:Object = new Object(); - logData.reason = "User requested."; - logData.user = UsersUtil.getUserData(); - JSLog.info("WebRtc Echo test failed.", logData); - + var dispatcher:Dispatcher = new Dispatcher(); dispatcher.dispatchEvent(new WebRTCEchoTestEvent(WebRTCEchoTestEvent.WEBRTC_ECHO_TEST_NO_AUDIO)); onCancelClicked(); diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml index f22cbcc4f8..f61ab9f710 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml @@ -102,6 +102,8 @@ with BigBlueButton; if not, see . [Bindable] private var baseIndex:int; [Bindable] private var dsOptions:DeskshareOptions; + private var calledStopApplet:Boolean = false; + private function init():void { dsOptions = new DeskshareOptions(); baseIndex = dsOptions.baseTabIndex; @@ -342,15 +344,24 @@ with BigBlueButton; if not, see . closeWindow(); } - private function closeWindow():void { - ExternalInterface.call("stopApplet"); - dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE)); - } - - private function restartJava():void { - ExternalInterface.call("stopApplet"); - shareScreen(sharingFullScreen); - } + private function callStopApplet():void { + if (!calledStopApplet) { + calledStopApplet = true; + trace("Calling stopApplet in callStopApplet()"); + ExternalInterface.call("stopApplet"); + } + } + private function closeWindow():void { + trace("Calling stopApplet in closeWindow()"); + callStopApplet(); + dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE)); + } + + private function restartJava():void { + trace("Calling stopApplet in restartJava()"); + callStopApplet(); + shareScreen(sharingFullScreen); + } private function handleDeskshareAppletLaunchedEvent(e:DeskshareAppletLaunchedEvent):void { if (javaTimer && javaTimer.running) { diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRTCCallManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRTCCallManager.as index 1a01fb3eed..0157c83ff1 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRTCCallManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRTCCallManager.as @@ -6,13 +6,13 @@ package org.bigbluebutton.modules.phone.managers import flash.external.ExternalInterface; import flash.utils.Timer; - import flexlib.scheduling.timelineClasses.TimeRangeDescriptorUtil; - import mx.controls.Alert; import mx.events.CloseEvent; + import org.bigbluebutton.main.api.JSLog; import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.main.api.JSAPI; + import org.bigbluebutton.main.api.JSLog; import org.bigbluebutton.main.events.ClientStatusEvent; import org.bigbluebutton.modules.phone.PhoneModel; import org.bigbluebutton.modules.phone.PhoneOptions; @@ -29,7 +29,7 @@ package org.bigbluebutton.modules.phone.managers import org.bigbluebutton.modules.phone.events.WebRTCMediaEvent; import org.bigbluebutton.modules.phone.models.Constants; import org.bigbluebutton.modules.phone.models.WebRTCModel; - import org.bigbluebutton.util.i18n.ResourceUtil; + import org.bigbluebutton.util.i18n.ResourceUtil; public class WebRTCCallManager { @@ -196,6 +196,11 @@ package org.bigbluebutton.modules.phone.managers errorString = ResourceUtil.getInstance().getString("bbb.webrtcWarning.failedError.unknown", [event.errorCode]); } + var logData:Object = new Object(); + logData.reason = errorString; + logData.user = UsersUtil.getUserData(); + JSLog.warn("WebRtc Echo test failed.", logData); + sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"), ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]), errorString); } diff --git a/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java b/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java index 91eb95f8f3..0765c3ab57 100755 --- a/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java +++ b/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java @@ -201,7 +201,9 @@ public class DeskShareApplet extends JApplet implements ClientListener { } public void onClientStop(ExitCode reason) { - // determine if client is disconnected _PTS_272_ + client.stop(); + + /* if ( ExitCode.CONNECTION_TO_DESKSHARE_SERVER_DROPPED == reason ){ JFrame pframe = new JFrame("Desktop Sharing Disconneted"); if ( null != pframe ){ @@ -215,6 +217,7 @@ public class DeskShareApplet extends JApplet implements ClientListener { }else{ client.stop(); } + */ } }