Performance degradation when using proxy.pac file with FF ESR 31

With Bug 923458 many people complained about a performance issue compared to other browsers when a proxy.pac file is used.
The issue initially reported with the bug was resolved for ESR25 according to the statistics, but the general performance issue remained.
I had the same issue with ESR24 and ESR31.3 .
I was testing with www.bild.de.
It took about 40 seconds to load the content completely. Without the proxy.pac file it took about 10 seconds.
I added a few alerts to the pac-File in order to get logs within the console for some analyses.
I found the following:
1. the pac.file is executed for every request, no matter if the host changed or not.
With us the pac-File checks for IP-Adresses and host-names only.
It is not necessary to execute the pac file for each and every request to the same remote host.
So the question is, if we are able to disable this behaviour via about:config?
2. the content referenced by www.bild.de seems to be loaded sequentially and with a delay
The overall time consumed by the proxy.pac file executions was about 4 Seconds compared to the 40 seconds of overall load time.
So I checked the delay between executions of the pac-file and found an overall delay of 40 seconds. I expect that the delay between the calls to the pac-file is caused by the retrieval of contents from the remote host.
So why are the requests executed sequentially?
Hint: Due to the times necessary for executing the pac-file and downloading the contents from the remote host, I would expect the logs generated by my alerts to be mixed (especially if myIpAddress took 1 Second). But the log is cleanly ordered by URL. (see attachment)

Hi guigs2,
thanks for your response. As we only use myIpAddress once within our pac-File and only rely on dnsDomainIs(), ==-Comparisons and shExpMatch() and the sum of all pac-Executions was about 4 seconds compared to 40 seconds overall load time, I do not think that dns resolving is our issue.
I checked the seetings of the configuration you mentioned above. It is set to "false", so the client would try the resolve the dns names. Our admin told, that we do not use socks-Proxies, only http-Proxies.
Regarding sequential load of the contents included on www.bild.de from other web sites, I attached a screenthot.
Please note the red highlights. These show the start time in milliseconds of the pac-execution. I added this as a kind of id which represents a unique identifier together with the URL if the log items are mixed. But they are not, instead they are cleanly ordered by URL (for all 360 pac-file calls).
Moreover in the picture you can see the delay between the end of the last pac-file execution and the next one (blue timestamp in millisonds compared to the red timestamp of the next row saying "entered proxy.pac"). The delay sum up exactly to the 40 seconds the FF took to load the page completely.
Alone the fragment shown represents a delay of 630ms between the pac-file executions. If the contents would be loaded in parallel, there should be no such delay.

Similar Messages

  • Using a Pac File with the new Macbook Pros

    I have recently purchased a new Macbook pro and to access the internet at my college, I need to use a Pac File, and My class mate has the drop down option to select it due to their macbook pro is an older model and my new macbook doesn't, how do I get the "Using Pac File" option?
    Thanks people in advance for your help!

    OS X Lion is not being included as an install DVD with new Macs. (It does come pre-installed.) Apple is offering a $69 USB stick with Lion pre-installed for owners would like to own a solid state means of recovery. Lion is strictly internet based with its recovery features - in other words - Macs will need to be able to connect to the internet to restore a computer with HDD failure (or some other issue where you need to restore the system.)

  • Performance degradation when using foreign keys

    Hi,
    I face drastic performance degradation when I add foreign keys to a table and perform insert / update on that table.
    I have a row store table to  which I need to insert around 1,50,000 records.
    If the table has no foreign key reference it takes maximum of 5 seconds but if the same table has references to other tables (in my case there are 3 references), the processing speed reduces drastically to 2 minutes.
    Is there any solution / best practice that can help me in gaining performance (processing speed) in this situation?
    Thanks
    S.Srivatsan

    Hi Sri,
    When you perform one insert in any database table which is having foreign key relationships, it will check the corresponding parent tables to check whether the master data is available or not. If your table is having 2 foreign key relationship, it happen twice per insert. Hence the performance will degrade. This is one of the reasons why ECC  doesn't establish foreign key relationship in the back end database. The case is not just for INSERT, for UPDATE & DELETE the same is applicable.
    Sreehari

  • FF unable to comprehend PROXY.PAC file with IPv4 and IPv6 rules in it

    My intranet setup involves users going through Squid proxy on a server discoverable by WPAD. Everything worked well until I introduced IPv6 into the network. Now I want their FFs to go IPv4 proxied and go IPv6 direct. I wrote proxy.pac ( http://pastebin.com/UFwVBzcN ) but FF8 throws "XPCSafeJSObjectWrapper is not defined" error. How can this be done?

    Hi guigs2,
    thanks for your response. As we only use myIpAddress once within our pac-File and only rely on dnsDomainIs(), ==-Comparisons and shExpMatch() and the sum of all pac-Executions was about 4 seconds compared to 40 seconds overall load time, I do not think that dns resolving is our issue.
    I checked the seetings of the configuration you mentioned above. It is set to "false", so the client would try the resolve the dns names. Our admin told, that we do not use socks-Proxies, only http-Proxies.
    Regarding sequential load of the contents included on www.bild.de from other web sites, I attached a screenthot.
    Please note the red highlights. These show the start time in milliseconds of the pac-execution. I added this as a kind of id which represents a unique identifier together with the URL if the log items are mixed. But they are not, instead they are cleanly ordered by URL (for all 360 pac-file calls).
    Moreover in the picture you can see the delay between the end of the last pac-file execution and the next one (blue timestamp in millisonds compared to the red timestamp of the next row saying "entered proxy.pac"). The delay sum up exactly to the 40 seconds the FF took to load the page completely.
    Alone the fragment shown represents a delay of 630ms between the pac-file executions. If the contents would be loaded in parallel, there should be no such delay.

  • White screen appears when using AS3 wrapper file with Captivate 7

    We had no problems with this in the past but now a white screen appears instead of the captivate running. The file is used when we use Captivate, streaming video, or HTML assessment. It triggers a complete signal to our LMS at the end. Is there anything that we are missing? The file is:
    package  {
        import flash.display.MovieClip;
        import flash.display.Sprite;
        import flash.display.Loader;
        import flash.events.MouseEvent;
        import flash.events.Event;
        import flash.events.ProgressEvent;
        import flash.net.URLRequest;
        import flash.net.URLLoader;
        import flash.system.Security;
        import BrightcovePlayer;
        import flash.media.SoundMixer;
        import caurina.transitions.Tweener;
        import caurina.transitions.properties.ColorShortcuts;
        import pipwerks.SCORM;
        import flash.external.ExternalInterface;
        public class MainWrapper extends MovieClip {
            public var loadedSwf:URLRequest;
            public var contentLoader:Loader = new Loader  ;
            public var contentContainer:Sprite;
            public var xmlLoader:URLLoader;
            public var videoList:XML;
            public var currentLoadedSection:Number;
            public var nextEnabled:Boolean = false;
            public var currentModule:Number = 0;
            public var currentContent:Number = 0;
            public var currentContentType:String;
            public var advanceBehavior:String;
            public var prevBehavior:String;
            public var previousPage:String;
            public var moveAdv:Boolean;
            public var timesAdvanced:Number = 1;
            public var numPages:Number = 1;
            public var furthestPage:Number = 0;
            public var scorm:SCORM;
            public var lmsConnected:Boolean;
            public var lessonStatus:String;
            public var success:Boolean;
            public var suspend_str:String;
            public var suspend_data:String;
            public var arrayToParse:Array;
            public var videoChoice:Number = 0;
            public var vidChoice:Number = 0; // Picks up button selections from loaded swf...default is 0 if only one ID supplied
            public var vidID:Array = new Array(); // Recieves XML supplied video IDs
            public var MC:MovieClip;
            public var swfURLChoice:Number = 0; // Picks up button selections from loaded swf...default is 0 if only one ID supplied
            public var swfURL:Array = new Array(); // Recieves XML supplied swf URLs
            public function MainWrapper() {
                // constructor code
                addEventListener(Event.ADDED_TO_STAGE,init);
            public function init(e:Event):void {
                initializeTracking();
                contentContainer = new Sprite  ;
                addChild(contentContainer);
                exit_btn.visible = false;
                main_HUD.home_btn.visible = false;
                addNavListeners();
                mainMenuVisibility(false);
                textPanel_mc.mask = panelMask_mc;
                ColorShortcuts.init();
                Security.allowDomain("http://admin.brightcove.com");
                Security.allowDomain("http://c.brightcove.com");
                Security.allowDomain("http://brightcove.com");
                BrightcovePlayer.initialize(this,onBrightcoveVideoComplete,onBrightcoveInitComplete,onBri ghtcoveVideoPlay);
            public function loadXML():void {
                xmlLoader = new URLLoader  ;
                xmlLoader.addEventListener(Event.COMPLETE,showXML);
                xmlLoader.load(new URLRequest("playlist.xml"));
            public function showXML(e:Event):void {
                trace("Line 95: Loaded XML");
                xmlLoader.removeEventListener(Event.COMPLETE,showXML);
                XML.ignoreWhitespace = true;
                videoList = new XML(e.target.data);
                numPages = videoList.module[currentModule].listedContent.length();
                trace("Line 100: numPages="+numPages);
                loadContent();
            public function mainMenuVisibility(setVis:Boolean):void {
                main_HUD.visible = textPanel_mc.visible = setVis;
            private function onBrightcoveVideoComplete() {
                trace("Line 107: video has stopped");
                endPageNav();
            private function onBrightcoveVideoPlay() {
                trace("Line 111: player is playing");
                Tweener.addTween(BrightcovePlayer.instance,{alpha:1,time:3});
                updateNav(currentContentType);
                loadMsg_mc.visible = false;
                checkForBeginning();
            private function onBrightcoveInitComplete() {
                trace("Line 118: init is complete");
                loadXML();
            public function loadContent():void {
                if (currentContent > furthestPage) {
                    furthestPage = currentContent;
                    trace("Line 125: The furthest page so far: "+furthestPage);
                saveCoursePos() //SCORM Bookmark
                var loadedContentType:String = String(videoList.module[currentModule].listedContent[currentContent]. @ type);
                currentContentType = loadedContentType;
                switch (loadedContentType) {
                    case "cap" :
                        trace("Line 133: loading a Captivate swf");
                        advanceBehavior = "next";
                        prevBehavior = "prev";
                        loadMsg_mc.visible = true;
                        BrightcovePlayer.stopAndHide();
                        mainMenuVisibility(false);
                        swfURL = videoList.module[currentModule].listedContent[currentContent].pathToContent.split(",");
                        loadedSwf = new URLRequest(String(swfURL[swfURLChoice]));
                        contentLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadProgress);
                        contentLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);
                        contentLoader.load(loadedSwf);
                        break;
                    case "swf" :
                        trace("Line 146: loading an interactive swf");
                        advanceBehavior = "next";
                        prevBehavior = "prev";
                        loadMsg_mc.visible = true;
                        BrightcovePlayer.stopAndHide();
                        swfURL = videoList.module[currentModule].listedContent[currentContent].pathToContent.split(",");
                        loadedSwf = new URLRequest(String(swfURL[swfURLChoice]));
                        trace("XXXXXXXXXXXXX "+(String(swfURL[swfURLChoice]))+" XXXXXXXXXXXXXXXXX");
                        contentLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadProgress);
                        contentLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);
                        contentLoader.load(loadedSwf);
                        break;
                    case "quiz" :
                        trace("Line 158: loading a quiz");
                        advanceBehavior = "next";
                        prevBehavior = "prev";
                        BrightcovePlayer.stopAndHide();
                          loadMsg_mc.visible = true;
                        swfURL = videoList.module[currentModule].listedContent[currentContent].pathToContent.split(",");
                        loadedSwf = new URLRequest(String(swfURL[swfURLChoice]));
                        contentLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);
                        contentLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadProgress);
                        contentLoader.load(loadedSwf);
                        break;
                    case "bcVid" :
                        checkForBeginning();
                        advanceBehavior = "next";
                        trace("Line 172: loading a Brightcove video");
                        //vidFrame_mc.visible = true;
                        //videoBG.visible = true;
                        //setChildIndex(vidFrame_mc,numChildren - 1);
                        vidID = videoList.module[currentModule].listedContent[currentContent].videoID.split(",");
                        trace(vidID);
                        BrightcovePlayer.instance.alpha = 0;
                        BrightcovePlayer.playVideo(this,0,vidID[videoChoice],140,112.5,"");
                        break;
                    default :
                        trace("Line 183: unrecognized type. check the node's 'type' attribute");
                        break;
            public function contentFadeOut():void {
                if (currentContentType == "bcVidBranch" || currentContentType == "bcVid") {
                    trace("Line 190: fading BC vid");
                    Tweener.addTween(BrightcovePlayer.instance,{alpha:0,time:.5,onComplete:doLoadNext});
                } else {
                    trace("Line 193: fading something else");
                    Tweener.addTween(contentLoader.content,{alpha:0,time:.5,onComplete:doLoadNext});
            public function movePanel(moveDir:String):void {
                switch (moveDir) {
                    case "up" :
                        if (textPanel_mc.y != 145) {
                            Tweener.addTween(textPanel_mc,{y:145,time:.5,transition:"easeOutSin"});
                        break;
                    case "down" :
                        if (textPanel_mc.y != 645) {
                            Tweener.addTween(textPanel_mc,{y:645,time:.5,transition:"easeOutSin"});
                        break;
                    default :
                        trace("Line 211: WAT. That is not a valid direction");
                        break;
               public function getSWFChoice(e:Event):void {
                   MC = MovieClip(contentLoader.content);
                   swfURLChoice = MC.swfURLChoice;
                   contentLoader.content.removeEventListener( "getSWFChoice" , getSWFChoice );
                   trace("YYYYYYYYYYYYYYYYY swfURLChoice="+swfURLChoice+" YYYYYYYYYYYYYYYYYYYY");
                playOn();
               public function getVidChoice(e:Event):void {
                   MC = MovieClip(contentLoader.content);
                   videoChoice = MC.vidChoice;
                   contentLoader.content.removeEventListener( "getVidChoice" , getVidChoice );
                   playOn();
               public function playOn() {
                   timesAdvanced++;
                   moveAdv = true;
                   contentFadeOut();
                   hideNavControls();
            public function loadComplete(e:Event):void {
                loadMsg_mc.visible = false;
                contentLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,loadComplete);
                contentLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,loadProgress);
                contentLoader.content.addEventListener("endOfContent",endContentHandler);
                   contentLoader.content.addEventListener("getSWFChoice",getSWFChoice);
                   contentLoader.content.addEventListener("getVidChoice",getVidChoice);
                Tweener.addTween(main_HUD.progBar_mc.progFill_mc,{scaleX:(currentContent) / int(numPages - 1),time:.4,transition:"easeOutSin"});
                if (currentContent == 0){
                    main_HUD.pgNum_txt.text = "Welcome";
                } else{
                    main_HUD.pgNum_txt.text = "Page " + currentContent + " of " + int(numPages - 1);
                switch (currentContentType) {
                    case "cap" :
                        contentLoader.content.addEventListener("quizAdvancePage",quizNext);
                        break;
                    case "swf" :
                        contentLoader.content.addEventListener("quizAdvancePage",quizNext);
                        break;
                    case "quiz" :
                        contentLoader.content.addEventListener("quizAdvancePage",quizNext);
                        var loadedContent = MovieClip(contentLoader.content);
                        var xmlQuizContent = videoList.module[currentModule].listedContent[currentContent].question;
                        var numQuestions = int(xmlQuizContent.length());
                        var questionArray:Array = new Array  ;
                        var choiceArray:Array = new Array  ;
                        var correctChoiceArray:Array = new Array  ;
                        var responsesArray:Array = new Array  ;
                        var passedImageArray:Array = new Array();
                        for (var i = 0; i < numQuestions; i++) {
                            questionArray.push(String(xmlQuizContent[i].questionText));
                            var tempString:String = "";
                            for (var j = 0; j < xmlQuizContent[i].answerChoice.length(); j++) {
                                tempString +=  xmlQuizContent[i].answerChoice[j] + "%";
                            choiceArray.push(tempString);
                            tempString = "";
                            correctChoiceArray.push(xmlQuizContent[i]. @ correctChoice);
                            passedImageArray.push(xmlQuizContent[i]. @ dispImage);
                            responsesArray.push(xmlQuizContent[i].responseText);
                        loadedContent.populateQuiz(questionArray,choiceArray,correctChoiceArray,responsesArray,pa ssedImageArray);
                        break;
                    default :
                        break;
                addContent();
                checkForBeginning();
            public function endContentHandler(e:Event):void {
                //here, we will enable navigation again
                trace("Line 295: END OF CONTENT");
                mainMenuVisibility(true);
                loadMsg_mc.visible = false;
                endPageNav();
                updateNav(currentContentType);
                Tweener.addTween(main_HUD.next_btn.bg,{_color:0xffffff,time:.4,transition:"easeOutSin"});
                nextEnabled = true;
                //checkFurthestPage(e.target.currentFrame);
                checkFurthestPage(currentContent);
                if (currentContent == int(numPages - 1)) {
                    setCourseToComplete();
            public function checkFurthestPage(evalNum:Number):void {
                if (isNaN(furthestPage[currentLoadedSection])) { trace("Line 312: furthestPage[currentLoadedSection] is NaN"); }
                if (evalNum > furthestPage[currentLoadedSection]) {
                    trace("Line313: currentLoadedSection is a Number");
                    furthestPage[currentLoadedSection] = evalNum;
                    trace("Line315: furthestPage[currentLoadedSection] = "+furthestPage[currentLoadedSection]);
                saveCoursePos();
            public function endPageNav():void {
                trace("Line 321: On page " + currentContent + " of " + int(numPages - 1));
                setChildIndex(main_HUD,numChildren - 1);
                if (currentContent < int(numPages - 1)) {
                    main_HUD.next_btn.visible = true;
                } else {
                    exit_btn.visible = true;
            public function hideNavControls():void {
                main_HUD.next_btn.visible = false;
                main_HUD.prev_btn.visible = false;
                exit_btn.visible = false;
            public function loadNext(me:MouseEvent):void {
                timesAdvanced++;
                moveAdv = true;
                contentFadeOut();
                hideNavControls();
            public function quizNext(e:Event):void {
                timesAdvanced++;
                moveAdv = true;
                contentFadeOut();
            public function loadPrev(me:MouseEvent):void {
                timesAdvanced--;
                trace("Line 350: loading prev");
                moveAdv = false;
                doLoadPrev();
                hideNavControls();
            public function doLoadNext():void {
                switch (advanceBehavior) {
                    case "next" :
                        currentContent++;
                        break;
                    case "noAdvance" :
                        break;
                    default :
                        for (var i in videoList.module[currentModule].listedContent) {
                            if (advanceBehavior == videoList.module[currentModule].listedContent[i].contentTitle) {
                                currentContent = i;
                        break;
                trace("Line 372: loading next");
                contentLoader.unloadAndStop();
                if (contentContainer.numChildren > 0) {
                    contentContainer.removeChild(contentLoader);
                loadContent();
            public function doLoadPrev():void {
                switch (prevBehavior) {
                    case "prev" :
                        currentContent--;
                        if (currentContent < 0) {
                            currentModule = 0;
                            currentContent = 1;
                            timesAdvanced = 2;
                            numPages = 2;
                        break;
                    default :
                        for (var i in videoList.module[currentModule].listedContent) {
                            if (prevBehavior == videoList.module[currentModule].listedContent[i].contentTitle) {
                                currentContent = i;
                        break;
                trace("Line 400: loading prev");
                contentLoader.unloadAndStop();
                if (contentContainer.numChildren > 0) {
                    contentContainer.removeChild(contentLoader);
                loadContent();
            public function addContent():void {
                contentContainer.addChild(contentLoader);
                navToTop();
                textPanelListener();
            public function loadProgress(pe:ProgressEvent):void {
                var percentageLoaded:int = (pe.bytesLoaded / pe.bytesTotal) * 100;
                trace("Line 415: Loading..." + pe.bytesLoaded + " out of " + pe.bytesTotal);
                loadMsg_mc.loadText_txt.text = String(percentageLoaded) + "%";
            public function updateNav(contentTypeCondition):void {
                trace("Line 420: Checking nav. On Page " + currentContent);
                if (currentContent == 0) {
                    main_HUD.prev_btn.visible = false;
                navToTop();
            public function checkForBeginning():void {
                trace("Line 427: Check for beginning");
                if (currentContent != 0) {
                    trace("Line 429: Is not beginning");
                    main_HUD.prev_btn.visible = true;
                } else {
                    mainMenuVisibility(false);
                if (currentContent < furthestPage) {
                    main_HUD.next_btn.visible = true;
            public function textPanelListener():void {
                if (videoList.module[currentModule].listedContent[currentContent].panelText != "_noText") {
                    trace("Line 443: should move up");
                    movePanel("up");
                    textPanel_mc.panelText_mc.gotoAndStop(videoList.module[currentModule].listedContent[curre ntContent].panelText);
                } else {
                    movePanel("down");
            public function addNavListeners():void {
                main_HUD.prev_btn.mouseChildren = false;
                main_HUD.prev_btn.addEventListener(MouseEvent.MOUSE_OVER,beginGlow);
                main_HUD.prev_btn.addEventListener(MouseEvent.MOUSE_OUT,fadeGlow);
                main_HUD.prev_btn.addEventListener(MouseEvent.CLICK,loadPrev);
                main_HUD.next_btn.mouseChildren = false;
                main_HUD.next_btn.addEventListener(MouseEvent.MOUSE_OVER,beginGlow);
                main_HUD.next_btn.addEventListener(MouseEvent.MOUSE_OUT,fadeGlow);
                main_HUD.next_btn.addEventListener(MouseEvent.MOUSE_UP,loadNext);
                exit_btn.addEventListener(MouseEvent.MOUSE_UP,navHandler);
            public function beginGlow(me:MouseEvent):void
                switch (me.target.name)
                    case "next_btn" :
                        if (nextEnabled == true)
                            Tweener.addTween(me.target.bg,{_color:0xffffff,time:.4,transition:"easeOutSin"});
                        break;
                    default :
                        Tweener.addTween(me.target.bg,{_color:0xffffff,time:.4,transition:"easeOutSin"});
                        break;
            public function fadeGlow(me:MouseEvent):void {
                Tweener.addTween(me.target.bg,{_color:0x666666,time:.4,transition:"easeOutSin"});
            public function determineSkip():void {
                if (contentLoader.numChildren) {
                    var thisContent:MovieClip = MovieClip(contentLoader.getChildAt(0));
                trace(currentLoadedSection+ "Current content: "+thisContent.currentFrame);
                trace("Line 486 - Furthest page is "+furthestPage[currentLoadedSection]+" and the current page is "+thisContent.currentFrame);
                if (furthestPage[currentLoadedSection] >= thisContent.currentFrame) {
                    trace("can skip this page");
                    Tweener.addTween(main_HUD.next_btn.bg,{_color:0xffffff,time:.4,transition:"easeOutSin"});
                    nextEnabled = true;
                } else {
                    nextEnabled = false;
                    trace("can't skip");
            public function navHandler(me:MouseEvent):void {
                    switch (me.target.name) {
                        case "next_btn" :
                            if (nextEnabled == true) {
                                nextEnabled = false;
                                main_HUD.next_btn.addEventListener(MouseEvent.MOUSE_UP,loadNext);
                                Tweener.addTween(main_HUD.next_btn.bg,{_color:0x666666,time:.2,transition:"easeOutSin"});
                                determineSkip();
                            } else {
                                trace("can't proceed yet");
                            break;
                        case "prev_btn" :
                            exit_btn.visible = false;
                            main_HUD.prev_btn.addEventListener(MouseEvent.MOUSE_UP,loadPrev);
                            determineSkip();
                            break;
                        case "exit_btn" :
                            contentLoader.unloadAndStop();
                            ExternalInterface.call("closeCourseWindow");
                            break;
            //HERE THERE BE SCORM CODE
            public function exitCourse(me:MouseEvent):void {
                ExternalInterface.call("closeCourseWindow");
            public function initializeTracking():void {
                scorm = new SCORM  ;
                lmsConnected = scorm.connect();
                if (lmsConnected) {
                    lessonStatus = scorm.get("cmi.core.lesson_status");
                    if (lessonStatus == "completed" || lessonStatus == "passed") {
                        scorm.disconnect();
                    } else {
                        success = scorm.set("cmi.core.lesson_status","incomplete");
                        scorm.save();
                        suspend_data = scorm.get("cmi.suspend_data");
                        if (suspend_data.length > 0) {
                            arrayToParse = suspend_data.split(",");
                            currentContent = parseInt(arrayToParse[0],10);
                            furthestPage = parseInt(arrayToParse[1],10);
                } else {
                    //connectionStatus_txt.text = "Could not connect to LMS.";
            public function saveCoursePos():void {
                trace("Line 554: Saving position at " + currentContent);
                var suspend_str:String = String(currentContent)+","+String(furthestPage);
                scorm.set("cmi.suspend_data",suspend_str);
                scorm.save();
            public function setCourseToComplete():void {
                trace("Line 561: Saving complteted course");
                success = scorm.set("cmi.core.lesson_status", "completed");
                scorm.disconnect();
                   lmsConnected = false;
            public function navToTop():void {
                setChildIndex(main_HUD,numChildren-1);

    You'll have to do two things.. Elaborate on exactly what you mean by a white screen appears. What is turning white? Are you generating a SWF from captivate of a screen capture session, then trying to load that SWF with a wrapper and when you do so it turns white? (In that scenario, if Captivate was looking for external assets it can't find, that'd be why). Please include more details on that.
    Second, code of this size pasted into the forum really doesn't help. You'll need to do the work to isolate exactly what part of the code you're seeing this white box appear. Run it in a debugger line by line until you witnesss it turn white and only share that small portion of code. And if you do choose to share a ton of code, please use a site like pastebin.com which will retain formatting and color coding, making it much easier to read, and then share that pastebin link.

  • Performance hit when using a FirePro GPU?

    Hey there!
    I'm interested in purchasing a cheap ATI FirePro V4900 or similar GPU in order to take advantage of my 10 bit TFT when using Photoshop. I was wondering if I have to expect a performance hit when using PS 6.0 with such a card as opposed to a normal "gamer" GPU like the NVidia 670 GTX when :
    - performing normal file handling, opening PSD files, paning, zooming, brushing, etc.
    - applying some of the newer GPU-enhanced filters like Liquify, Oil Paint, Iris Blur, 3d enhancements, etc.
    - actually applying/rendering a more demanding fliter such as Iris Blur?
    Does anyone know about this? I'm afraid I could not find any benchmarks at all except for the one on Tomshardware regarding OCL, but that one does not include professional GPUs...
    Thanks for any info in advance!

    There will not be synchronization when the method of A
    is being called. The method 1) certainly saves memory
    space, but will the performance be hurt since there
    will only be one object accessed by multiple threads?
    Or maybe it doesn't matter?If there is no synchronization, it will not matter. Threads execute methods. Methods do not run on Objects. The Object is just data that is implicitly linked to the method.
    Just make sure it's safe to keep the method unsynchronized.

  • Use System Proxy Settings - when this is selected in FF v3.6.6, does it adhere to the same local IE proxy setting? We use a pac file configured in "Use automatic configuration script."

    Does anyone know what Firefox looks at locally on the PC when the "Use System Proxy Settings" setting is selected? It appears to be the default setting, recently changed from "No Proxy" of versions past...
    Our company uses a pac file specified in IE under "Use automatic configuration script" - with this new default, does it adhere to the same setting in:
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]

    I may be wrong but I think that the "Use System Proxy Settings" makes sense only on Linux and generally speaking "other OSes". As far as I know there is no generic proxy settings in Windows operating system.
    The one I know is in the registry part of Internet Explorer.
    So in my understanding in Windows, Use System Proxy Settings = No Proxy

  • Proxy.pac file not working for using proxy for selected websites

    After changing my ISP, i cant connect to Bluenest.org directly but with proxy. I can also connect by setting manual proxy server for all websites. But I dont want to do that as there is a bit security problem. I just wrote Proxy.pac files to use proxy sever for that particular website & put its location on Automatic Proxy Configuration. But its not working. I va tried with two types of .pac files. Given the code of the files below.....
    First one..........
    <pre><nowiki>
    function FindProxyForURL(url, host)
    if (shExpMatch(url, "http://bluenest.org") || localHostOrDomainIs(host, "http://www.bluenest.org"))
      return "PROXY 204.45.138.4:80";
     else
      return "DIRECT";
    </nowiki></pre>
    Second one......
    <pre><nowiki>function FindProxyForURL(url, host)
    if(!isResolvable(host))
    return "DIRECT";
    return "PROXY 204.45.138.4:80";
    }</nowiki></pre>
    but none of them working. Please help.
    Can you please tell which proxy server is fastest & safest.
    Thanx in advance

    I submitted a bug report to Apple. The problem is present since 10.9.2, now with 10.10 and iOS. I hope they will take this problem seriously.

  • I started to learn HTML, and I'm using text edit and everything is going fine, when I save the file with a .html extension and open it with safari I only view the code and not the webpage that was supposed to be created.

    I started to learn HTML, and I'm using text edit and everything is going fine, when I save the file with a .html extension and open it with safari I only view the code and not the webpage that was supposed to be created.

    That is because you don't have a web server configured and running to serve the html page. In order to see the page in a browser you need to access it using a url similar to http://localhost/~yourUserName if you are serving the page from your user account.
    Prior to Mountain Lion you could go into web sharing and turn on the web server. With Mountain Lion there is no option, other than using terminal, to turn on the web server. The web sharing menu item has been removed in Mountain Lion. Apache is still on your computer but it will take a little searching these forums or the Internet to find how to turn it on.
    If you want a graphic user interface to turn on/off the Apache server you could download and install a server application like xampp, http://www.apachefriends.org/en/xampp.html. I use this and it works well.

  • When using i-Cloud PAGES with another shared person, how to you shift ownership control of the file to the other who started as a collaborator?

    When using i-Cloud PAGES with another shared person who is a collaborator, how to you shift ownership control of the file to the shared person who started as a collaborator and needs to take over file ownership responsibilities?

    Thanks, but I have searched here but have not found or heard a direct answer to my question as stated above...

  • How do I stop having to frequently reload proxy pac file on Windows 7?

    I have recently had my laptop upgraded to Windows 7. I'm using Firefox 6.02. I use a corporate proxy.pac file. Now I find the frequently when I return to my PC it says it can't find an external web site. It's immediately fixed by reloading the proxy.pac file

    We don't technically support downloading videos from Flash.  RealPlayer hooks into Flash without our permission.  The security mechanisms designed to prevent malware from taking over your system prevent RealPlayer from doing its thing in Chrome and Firefox.  I expect that newer versions of IE will also impact RealPlayer's ability to inject themselves between Flash and the browser.
    So that said, it's probably something to do with corrupted settings.  You might reset IE to default. 
    Change or reset Internet Explorer settings - Windows Help
    If that doesn't work, you can try blowing away all of the Flash stuff manually.
    Before I did that, I'd make sure the filesystem is in a good state.  If files are getting corrupted, there's usually an underlying cause:
    Check your hard disk for errors in Windows 7
    If something is corrupted, you'll probably hit something that you can't delete. 
    https://helpx.adobe.com/flash-player/kb/clean-install-flash-player.html

  • Lync 2013 client doesn't read proxy.pac file Lync exclusions

    Hi all,
    I have a very annoying issue where by the Lync 2013 client ignores the proxy.pac file exclusions set below:
    (host == "lync.test.domain") || (host == "lyncdiscoverinternal.test.domain") ||
    (host == "lyncwacdca.test.domain") ||
    (host == "lyncwacdcb.test.domain") ||
    (host == "lyncwebintdca.test.domain") ||
    (host == "lyncwebintdcb.test.domain")
    IE is set to use automatic configuration script of
    http://proxy.test.domain:8083/proxy.pac This file can be reached through and IE browser, downloaded and it's syntax read.
    If I set my proxy server and exclusions manually within IE9 then they are adhered to. That is Lync 2013 is able to read.
    My thinking: that some application may be iterferring with Lync 2013 getting to
    http://proxy.test.domain:8083/proxy.pac or reading in the exclusions set within the file.
    If I enter https://lync.test.domain into the browser URL search field I can see that it is being sent straight out to the proxy as opposed to bypassing it.
    Does anyone have an example of their proxy.pac exclusion set for Lync 2013 just in case my syntax is not looking the best.
    Cheers

    Update to this issue - solution was to move the proxy exclusions to the top of the proxy.pac
    Outcome resulted in Windows WinHTTP processing the the Lync proxy exclusions prior to the Lync.exe firing during logon. I don't believe you would see this in a typical infrastructure. Since initially looking into this issue I  have been
    able to show through packet traces, large periods of latency in delivery of desktop profile items due to backend profile storage issues.
    In eddition this moving the exclusions to the top of the pac file I made use of substrings. I don't believe the use of substrings is any better or worst, but just easier for others to understand what the exclusion allows specifically.
    Example of pac exclusion now:
    if (url.substring(0,39) == "http://lyncdiscoverinternal.testdomain.") { return "DIRECT"; } //matches 31 characters including last . or period
    I entered similar entries for all required exclusions. The result was Lync signing in within 6 seconds as opposed to the 40 second (through the user of legacy SRV records).

  • After installing latest update Realplayer recording no longer works, I think Mozila is using a library file with the same name

    After installing the latest update to Firefox onto Vista operating system the record part of real player no longer works, I think Mozila and Real are using a library file with the same name and the Mozila update is overwriting a Realplayer library file.

    I was giong to say, "Help me, Adobe Joe Kenobi", but it looks like you're growing a beard waiting for an answer, too.
    The same thing happened to me today. I trusted the "update" message since it was from Adobe, and apprently did so at my own peril. Now I get the "failed to load Core dll" message with a secondary reference to a memory address.
    Just an observation, but what good are these forums when there are no answers? I see this problem as "Caused by Adobe Update", and would expect them to troublshoot and offer up a remedy. Since you've been waiting over two months with no response, I suppose it's time to trek off wasting more of my precious time to fix their problem. If I find the solution, I'll post it back to you.
    May the Force be with you.
    Mark

  • Proxy.PAC file not working after upgrade to 10.9.2

    I have a local proxy.pac file and it was working happily before 10.9.2.
    It was loaded under "Network > Proxies > Automatic Proxy Configuration" and effective for all browsers (Chrome, Safari and Firefox).
    After upgrade to 10.9.2 seems like it's being totally ignored. I have a CNTLM proxy in my machine and can see the traffic coming in. Looking at logs, no traffic really comes in and all browsers try to access internet directly.
    If I set the proxy.pac directly in Firefox, it works but I want all my browsers and application. I want the same functionality as of 10.9.1 and before.

    I submitted a bug report to Apple. The problem is present since 10.9.2, now with 10.10 and iOS. I hope they will take this problem seriously.

  • My links don't work when I combine another file with the pdf

    My internal bookmarked links don't work when I combine another file with the pdf.
    The external links continue to work fine, though.
    This doesn't make any sense to me at all ... but I'm hoping one of you kind folk can help?

    I opened my file and instead of merging files I used insert pages and inserted all of the pages from the file I wanted.  Then I saved the file with
    the same name.  Attached is a rough draft of some helpful hints I put together.  This has been a very painful process for us to discover how to handle
    this and there really is not much help from Adobe.
    Instead of merging files you inset pages. In Acrobat select Document - Insert pages -From file. You can select all pages or some and where you want them inserted. After you do that save the file not save as and all of your links should work. If you combine files or merge files all of the links will break.
                                                                                    GillHarley <[email protected]>                                                                              
    05/07/2009 09:54 AM                                                                                To
                                                                        "Christine Salmon" <[email protected]>                                                                              
    cc
                                Please respond to                                                                              
    [email protected]                                                                                 Subject
                                    dobe.com                            Acrobat Windows My links don't work when I combine another file with the pdf
                                                                        29k833-1Kp0-8ahk                                                                              
    I think it's something to do with naming, but I can't figure out what. This is because it asks to be saved and gives me a Binder no as the name. If I
    press Cancel at that point, I keep the file and the links. But as soon as I need to close it, it asks me again 'Do you want to save this file' and if
    I say 'Yes', I lose all the links, and if yet if I say 'No', I lose the whole file. So at some point it has to be saved but whether I keep the Binder
    no name when I save it, or use the original name, it makes no difference ... it is in the saving of it that it looks the functionality, and yet, if I
    don't save it, I lose the file.
    This makes no sense to me....I hope it does to one of you.
    For instance, Christine, how did you keep your file if you couldn't save it?
    Or have I misunderstood?

Maybe you are looking for