From 7b99ac1f0692747c609cf70d5c858cb15f9fd511 Mon Sep 17 00:00:00 2001 From: Ghazi Triki <ghazi.triki@riadvice.tn> Date: Fri, 3 Nov 2017 16:19:57 +0100 Subject: [PATCH] Improve origin URL setting by adding it to flashvars instead of of calling js from flash client. --- .../resources/prod/BigBlueButton.html | 4 ++-- bigbluebutton-client/src/BigBlueButton.mxml | 14 -------------- .../src/org/bigbluebutton/core/BBB.as | 7 ++----- .../bigbluebutton/core/managers/ConfigManager2.as | 13 ++----------- .../main/views/MainApplicationShell.mxml | 7 ++----- .../org/bigbluebutton/util/browser/BrowserCheck.as | 4 ++-- .../org/bigbluebutton/util/i18n/ResourceUtil.as | 1 - .../bigbluebutton/util/logging/ServerLogTarget.as | 1 - 8 files changed, 10 insertions(+), 41 deletions(-) diff --git a/bigbluebutton-client/resources/prod/BigBlueButton.html b/bigbluebutton-client/resources/prod/BigBlueButton.html index 5c6b3f68a5..c0670b32c1 100755 --- a/bigbluebutton-client/resources/prod/BigBlueButton.html +++ b/bigbluebutton-client/resources/prod/BigBlueButton.html @@ -62,7 +62,7 @@ }; //swfobject.registerObject("BigBlueButton", "11", "expressInstall.swf"); - var flashvars = {}; + var flashvars = {"origin":window.location.origin}; var params = {}; params.quality = "high"; params.bgcolor = "#FFFFFF"; @@ -98,7 +98,7 @@ var fillContent = function(){ var content = document.getElementById("content"); if (content) { - content.innerHTML = '<object type="application/x-shockwave-flash" id="BigBlueButton" name="BigBlueButton" tabindex="0" data="BigBlueButton.swf?v=VERSION" style="position: relative; top: 0.5px;" width="100%" height="100%" align="middle"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><param name="allowfullscreen" value="true"><param name="allowfullscreeninteractive" value="true"><param name="wmode" value="window"><param name="allowscriptaccess" value="always"><param name="seamlesstabbing" value="true"></object>'; + content.innerHTML = '<object type="application/x-shockwave-flash" id="BigBlueButton" name="BigBlueButton" tabindex="0" data="BigBlueButton.swf?v=VERSION" style="position: relative; top: 0.5px;" width="100%" height="100%" align="middle"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><param name="allowfullscreen" value="true"><param name="allowfullscreeninteractive" value="true"><param name="wmode" value="window"><param name="allowscriptaccess" value="always"><param name="seamlesstabbing" value="true"><param name="FlashVars" value="origin='+window.location.origin+'"/></object>'; } }; } else { diff --git a/bigbluebutton-client/src/BigBlueButton.mxml b/bigbluebutton-client/src/BigBlueButton.mxml index d8a87b7da1..423db01d26 100755 --- a/bigbluebutton-client/src/BigBlueButton.mxml +++ b/bigbluebutton-client/src/BigBlueButton.mxml @@ -45,20 +45,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. private function init():void { LogUtil.initLogging(true); } - - public function determineHtmlUrl():String { - var url:String = ""; - if (ExternalInterface.available) { - try { - url = String(ExternalInterface.call("window.location.href.toString")); - LOGGER.debug("HTML URL [{0}]", [url]); - } catch (s:Error) { - LOGGER.debug("Cannot determine HTML URL"); - } - } - - return url; - } ]]> </fx:Script> <views:BigBlueButtonMainContainer id="bbbShell"/> diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/BBB.as b/bigbluebutton-client/src/org/bigbluebutton/core/BBB.as index 279ff41b3b..5bf1f4953a 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/core/BBB.as +++ b/bigbluebutton-client/src/org/bigbluebutton/core/BBB.as @@ -21,7 +21,6 @@ package org.bigbluebutton.core { import flash.system.Capabilities; import mx.core.FlexGlobals; - import mx.utils.URLUtil; import org.bigbluebutton.core.managers.ConfigManager2; import org.bigbluebutton.core.managers.ConnectionManager; @@ -127,10 +126,8 @@ package org.bigbluebutton.core { return logoutUrl; } - private static function getBaseURL():String { - var protocol:String = URLUtil.getProtocol(FlexGlobals.topLevelApplication.determineHtmlUrl()); - var serverName:String = URLUtil.getServerNameWithPort(FlexGlobals.topLevelApplication.determineHtmlUrl()); - return protocol + "://" + serverName; + public static function getBaseURL():String { + return FlexGlobals.topLevelApplication.loaderInfo.parameters.origin } } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/managers/ConfigManager2.as b/bigbluebutton-client/src/org/bigbluebutton/core/managers/ConfigManager2.as index 11ed5370eb..5daa3af642 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/core/managers/ConfigManager2.as +++ b/bigbluebutton-client/src/org/bigbluebutton/core/managers/ConfigManager2.as @@ -26,12 +26,10 @@ package org.bigbluebutton.core.managers { import flash.net.URLVariables; import flash.utils.Dictionary; - import mx.core.FlexGlobals; - import mx.utils.URLUtil; - import org.as3commons.logging.api.ILogger; import org.as3commons.logging.api.getClassLogger; import org.bigbluebutton.common.LogUtil; + import org.bigbluebutton.core.BBB; import org.bigbluebutton.core.model.Config; import org.bigbluebutton.main.events.ConfigLoadedEvent; import org.bigbluebutton.main.events.MeetingNotFoundEvent; @@ -57,7 +55,7 @@ package org.bigbluebutton.core.managers { urlLoader.addEventListener(Event.COMPLETE, handleComplete); var date:Date = new Date(); - var localeReqURL:String = buildRequestURL(); + var localeReqURL:String = BBB.getBaseURL() + "/" + CONFIG_XML;; trace("::loadConfig [{0}]", [localeReqURL]); trace(localeReqURL + " session=[" + sessionToken + "]"); @@ -69,13 +67,6 @@ package org.bigbluebutton.core.managers { urlLoader.load(request); } - private function buildRequestURL():String { - var swfURL:String = FlexGlobals.topLevelApplication.determineHtmlUrl(); - var protocol:String = URLUtil.getProtocol(swfURL); - var serverName:String = URLUtil.getServerNameWithPort(swfURL); - return protocol + "://" + serverName + "/" + CONFIG_XML; - } - private function handleComplete(e:Event):void { trace("handleComplete [{0}]", [new XML(e.target.data)]); diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml index e077f9b4d9..b9c06009e3 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml @@ -623,11 +623,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. } else { mdiCanvas.removeAllPopUps(); removeToolBars(); - var serverURL:String = FlexGlobals.topLevelApplication.determineHtmlUrl(); - var pageHost:String = serverURL.split("/")[0]; - var pageURL:String = serverURL.split("/")[2]; - LOGGER.debug("SingOut to [{0}//{1}/bigbluebutton/api/signOut]", [pageHost, pageURL]); - var request:URLRequest = new URLRequest(pageHost + "//" + pageURL + "/bigbluebutton/api/signOut"); + LOGGER.debug("SingOut to [{0}/bigbluebutton/api/signOut]", [BBB.getBaseURL()]); + var request:URLRequest = new URLRequest(BBB.getBaseURL() + "/bigbluebutton/api/signOut"); var urlLoader:URLLoader = new URLLoader(); urlLoader.addEventListener(Event.COMPLETE, handleLogoutComplete); urlLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLogoutError); diff --git a/bigbluebutton-client/src/org/bigbluebutton/util/browser/BrowserCheck.as b/bigbluebutton-client/src/org/bigbluebutton/util/browser/BrowserCheck.as index 7325903ba6..43645e1802 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/util/browser/BrowserCheck.as +++ b/bigbluebutton-client/src/org/bigbluebutton/util/browser/BrowserCheck.as @@ -23,6 +23,7 @@ package org.bigbluebutton.util.browser { import org.as3commons.lang.StringUtils; import org.as3commons.logging.api.ILogger; import org.as3commons.logging.api.getClassLogger; + import org.bigbluebutton.core.BBB; public class BrowserCheck { private static const LOGGER:ILogger = getClassLogger(BrowserCheck); @@ -87,9 +88,8 @@ package org.bigbluebutton.util.browser { } public static function isHttps():Boolean { - var url:String = ExternalInterface.call("window.location.href.toString"); var httpsPattern:RegExp = /^https/; - return httpsPattern.test(url); + return httpsPattern.test(BBB.getBaseURL()); } } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/util/i18n/ResourceUtil.as b/bigbluebutton-client/src/org/bigbluebutton/util/i18n/ResourceUtil.as index a7e9d072f5..b4ee9c68ab 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/util/i18n/ResourceUtil.as +++ b/bigbluebutton-client/src/org/bigbluebutton/util/i18n/ResourceUtil.as @@ -48,7 +48,6 @@ package org.bigbluebutton.util.i18n private var inited:Boolean = false; private var dispatcher:Dispatcher = new Dispatcher(); - private static var BBB_RESOURCE_BUNDLE:String = 'bbbResources'; private static var MASTER_LOCALE:String = "en_US"; private static var DEFAULT_LOCALE_IDENTIFIER:String = "default"; diff --git a/bigbluebutton-client/src/org/bigbluebutton/util/logging/ServerLogTarget.as b/bigbluebutton-client/src/org/bigbluebutton/util/logging/ServerLogTarget.as index bfc516464b..79f45306b7 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/util/logging/ServerLogTarget.as +++ b/bigbluebutton-client/src/org/bigbluebutton/util/logging/ServerLogTarget.as @@ -24,7 +24,6 @@ package org.bigbluebutton.util.logging import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLRequestMethod; - import flash.net.URLVariables; import flash.utils.Timer; import org.as3commons.lang.ArrayUtils; -- GitLab