Thank YOU. You do a great job. Le mardi 10 mars 2015 21:33:30 UTC+1, Daniel LaLiberte a écrit : > > Some good news. It appears there is another change to the Google Closure > library that should hopefully avoid this problem, with an additional check > for whether window.Window.prototype exists before accessing > window.Window.prototype.setImmediate. Google Charts v41 missed this change > by just a week, unfortunately. > > The next release cycle should start in a couple weeks, though we may be > delayed a bit to ensure we can maintain frozen versions going forward. > > Thanks for your patience and help working through this issue. I'm glad > you have a sufficient workaround for now. > > On Tue, Mar 10, 2015 at 4:19 PM, Constantin FEIER < > [email protected] <javascript:>> wrote: > >> Hello, >> >> I understand. My problem is that i am in the middle. >> They did not make any changes, they have their own chart library, they >> have no interest to investigate on this third party integration. >> For you is the same problem, you solved an issue and there is a problem >> in a third party integration. Without this, google charts works fine on all >> browsers. >> >> I tried your suggestion to deferred longer, still the same issue. >> I thought of an internalization problem and download a VM IE11 Win7 to >> test with an english version of IE&Win (i use the french one). Still the >> same issue. >> As you can not reproduce this issue, i will give up. >> I will use X-UA-Comptible=ie9 with no setImmediate issue >> and hope for the death of IE and a good Spartan browser. >> >> Thank you for your time and investigation. >> >> Le mardi 10 mars 2015 17:24:56 UTC+1, Daniel LaLiberte a écrit : >>> >>> Thanks for trying. >>> >>> Yes, there was a release of Google Charts v41, first announced on this >>> list here: https://groups.google.com/forum/#!searchin/google- >>> visualization-api/v41/google-visualization-api/pmSPOap_2gk/azEKVkXE1ggJ >>> This version went to production around the time you discovered the >>> problem. >>> >>> This included use of the updated Google Closure library that works >>> around a Microsoft bug described here: https://connect. >>> microsoft.com/IE/feedback/details/801823/setimmediate- >>> and-messagechannel-are-broken-in-ie10 >>> >>> I was able to reproduce running the code in IE11, from a local file. It >>> appeared to load the ISC code from local files all fine, and the chart >>> showed up with no problem. I moved the ISC code to the beginning of the >>> HEAD, and it still all worked fine. So I am not able to reproduce the >>> problem. One possibility for why it is working for me is that it takes >>> longer to finish starting up the ISC code in my local environment. Perhaps >>> you could test this by deferring the load longer, by using a setTimeout >>> function that writes script tags. e.g. >>> >>> function addScript( src ) { >>> var s = document.createElement( 'script' ); >>> s.setAttribute( 'src', src ); >>> document.body.appendChild( s );} >>> >>> window.setTimeout(function() { >>> addScript( 'smartClient/ISC_Core.js'); >>> addScript( 'smartClient/ISC_Foundation.js'); >>> addScript( 'smartClient/ISC_Containers.js'); >>> }, 3000); >>> >>> Another possibility for why I am not seeing the problem is that the >>> SmartClient code dynamically loads code that has been updated to fix the >>> problem. I see lots of dynamic behavior after it starts up, but I don't >>> know what it is doing. >>> >>> >>> On Tue, Mar 10, 2015 at 3:28 AM, Constantin FEIER < >>> [email protected]> wrote: >>> >>>> Hi, >>>> >>>> Thank you for your answer. >>>> I tested the delayed solution for setImmediate, without the if >>>> statement, without google callback, and with chart draw after that. >>>> The result is the same but delayed with 3 seconds. I increase the delay >>>> value, but i have the same results. >>>> >>>> One thing is for sure, our application was in production for one year. >>>> The code have not change. The only code that changed is google jsapi. >>>> And that happened around 19-20 february 2015. Was there any release ? >>>> >>>> If you can not test with a real IE, here is a point that may help. >>>> In IE debugger it always stops at the same line, see the attached image. >>>> >>>> >>>> Le lundi 9 mars 2015 20:00:28 UTC+1, Daniel LaLiberte a écrit : >>>>> >>>>> Oops.. messed that up by Sending too soon. >>>>> >>>>> This is the part of the setImmediate.js code you need to remove: >>>>> >>>>> if (global.setImmediate) { >>>>> return; >>>>> } >>>>> >>>>> On Mon, Mar 9, 2015 at 2:58 PM, Daniel LaLiberte <[email protected]> >>>>> wrote: >>>>> >>>>>> Sorry for the delay. We have a difficult time testing on the Windows >>>>>> platform, due to security restrictions. I was attempting to test the >>>>>> following, but got bogged down in irrelevant hassles. So rather than >>>>>> delaying, I'll have to rely on you doing some more work. If it works >>>>>> out, >>>>>> you'll have make a similar change anyway at this point. >>>>>> >>>>>> Could you try delaying the execution of the setImmediate.js code even >>>>>> more? Remove your google.setOnLoadCallback() and just do this: >>>>>> >>>>>> load jsapi and call google.load() >>>>>> >>>>>> load ISC_* code >>>>>> >>>>>> window.setTimeout( function() { >>>>>> >>>>>> // wrap the setImmediate.js code in a function that you load from a >>>>>> file: function defineSetImmediate() { ... setImmediate.js code } >>>>>> // remove the first part of that code that just returns if >>>>>> global.setImmediate is defined. >>>>>> if (global.setImmediate) { return; } >>>>>> defineSetImmediate(); >>>>>> >>>>>> drawChart(); >>>>>> >>>>>> }, 3000); >>>>>> >>>>>> That will give an arbitrary 3 seconds for ISC to finish loading, then >>>>>> define setImmediate again. >>>>>> >>>>>> On Thu, Mar 5, 2015 at 9:49 AM, Constantin FEIER < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> Thank you for this quick response. >>>>>>> It is very easy to reproduce it just by creating a test.html file >>>>>>> with the suggested code and downloading the 3 files in a "smartclient" >>>>>>> directory. >>>>>>> As you suggested, with the same testcase, >>>>>>> - I moved all the google chart scripts after the 3 smartclient js >>>>>>> files, it did not work >>>>>>> - I downloaded setImmediat.js, add it between the 3 smartclient js >>>>>>> files and google chart scripts, still no luck >>>>>>> The error is the same, nothing changed for the two tests. >>>>>>> >>>>>>> >>>>>>> Le jeudi 5 mars 2015 15:09:35 UTC+1, Daniel LaLiberte a écrit : >>>>>>>> >>>>>>>> I see you also posted in the SmartClient forums: http://forums. >>>>>>>> smartclient.com/showthread.php?t=32363 >>>>>>>> >>>>>>>> One other person has reported an issue with setImmediate, but we >>>>>>>> haven't narrowed down the cause, so thanks for posting your additional >>>>>>>> clue >>>>>>>> about the effect of SmartClient on Google Charts. >>>>>>>> >>>>>>>> There is a use of setImmediate deep in Google Closure libraries >>>>>>>> that Google Charts depends on, but this has not been a problem for >>>>>>>> other IE >>>>>>>> users of the same code. >>>>>>>> >>>>>>>> Perhaps SmartClient is applying the workaround for issues with >>>>>>>> setImmediate that is described in http://codeforhire.com/2013/09 >>>>>>>> /21/setimmediate-and-messagechannel-broken-on-internet-explorer-10/ >>>>>>>> which basically sets window.setImmedate to undefined. I haven't >>>>>>>> tried to >>>>>>>> dig through the obfuscated ISC_* code you attached, but you might find >>>>>>>> this >>>>>>>> is what they are doing. >>>>>>>> >>>>>>>> Maybe the load order and execution order of all the code you are >>>>>>>> using makes a difference. Can you move the ISC_* code loading up into >>>>>>>> the >>>>>>>> HEAD, before the Google Charts code? If not, you should be able to >>>>>>>> move >>>>>>>> the Google Charts code into the BODY after the ISC_* code. If you >>>>>>>> have to >>>>>>>> defer the Google Charts loading until after the page is loaded, see >>>>>>>> https://developers.google.com/chart/interactive/docs/lib >>>>>>>> rary_loading_enhancements#enhancedloading and follow the link to >>>>>>>> "dynamic loading" >>>>>>>> >>>>>>>> You might try adding this cross-browser implementation of >>>>>>>> setImmediate: https://github.com/YuzuJS/setImmediate/blob/ma >>>>>>>> ster/setImmediate.js >>>>>>>> Load it after you load your SmartClient code, so that if >>>>>>>> window.setImmedate is being set to undefined, it will then be updated >>>>>>>> with >>>>>>>> this new definition. >>>>>>>> >>>>>>>> Please let us know what you learn. >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Mar 5, 2015 at 6:10 AM, Constantin FEIER < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> I am using Google visualization in a SmartClient app. >>>>>>>>> Since 20 february 2015, charts are not showing anymore in IE11, >>>>>>>>> without any changes in our app. >>>>>>>>> There is a red line with this error >>>>>>>>> Unable to get value of the property "setImmediate" object is null >>>>>>>>> or undefined >>>>>>>>> Here is a testcase with a simple piechart. >>>>>>>>> Without SmartClient js files, chart are showing well. >>>>>>>>> If i add the 3 js files attached, there is no chart and the red >>>>>>>>> line appears >>>>>>>>> >>>>>>>>> >>>>>>>>> <!doctype html> >>>>>>>>> <html> <head> >>>>>>>>> <script type="text/javascript" >>>>>>>>> src="https://www.google.com/jsapi"></script> >>>>>>>>> <script type="text/javascript"> >>>>>>>>> google.load("visualization", "1", {packages:["corechart"]}); >>>>>>>>> google.setOnLoadCallback(drawChart); >>>>>>>>> function drawChart() { >>>>>>>>> var data = google.visualization.arrayToDataTable([ >>>>>>>>> >>>>>>>>> ['Task', 'Hours per Day'], ['Work', 11], ['Eat', >>>>>>>>> 2], ['Commute', 2], ['Watch TV', 2], ['Sleep', 7] >>>>>>>>> ]); >>>>>>>>> var options = { title: 'My Daily Activities', >>>>>>>>> is3D:true }; >>>>>>>>> var chart = new >>>>>>>>> google.visualization.PieChart(document.getElementById('piechart')); >>>>>>>>> >>>>>>>>> chart.draw(data, options); >>>>>>>>> } >>>>>>>>> </script> >>>>>>>>> </head> >>>>>>>>> <body> >>>>>>>>> <div id="piechart" style="width: 900px; height: 500px;"></div> >>>>>>>>> >>>>>>>>> <script type="text/javascript" src="smartClient/ISC_Core.js"></script> >>>>>>>>> <script type="text/javascript" >>>>>>>>> src="smartClient/ISC_Foundation.js"></script> >>>>>>>>> <script type="text/javascript" >>>>>>>>> src="smartClient/ISC_Containers.js"></script> >>>>>>>>> >>>>>>>>> </body> >>>>>>>>> </html> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Google Visualization API" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to google-visualization-api+unsub >>>>>>>>> [email protected]. >>>>>>>>> To post to this group, send email to google-visua...@googlegroups. >>>>>>>>> com. >>>>>>>>> Visit this group at http://groups.google.com/group >>>>>>>>> /google-visualization-api. >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Daniel LaLiberte >>>>>>>> <https://plus.google.com/100631381223468223275?prsrc=2> - >>>>>>>> 978-394-1058 >>>>>>>> [email protected] 5CC, Cambridge MA >>>>>>>> [email protected] 9 Juniper Ridge Road, Acton MA >>>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Google Visualization API" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to google-visualization-api+unsub >>>>>>> [email protected]. >>>>>>> To post to this group, send email to google-visua...@googlegroups. >>>>>>> com. >>>>>>> Visit this group at http://groups.google.com/group >>>>>>> /google-visualization-api. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Daniel LaLiberte >>>>>> <https://plus.google.com/100631381223468223275?prsrc=2> - >>>>>> 978-394-1058 >>>>>> [email protected] 5CC, Cambridge MA >>>>>> [email protected] 9 Juniper Ridge Road, Acton MA >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Daniel LaLiberte >>>>> <https://plus.google.com/100631381223468223275?prsrc=2> - >>>>> 978-394-1058 >>>>> [email protected] 5CC, Cambridge MA >>>>> [email protected] 9 Juniper Ridge Road, Acton MA >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Google Visualization API" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/ >>>> group/google-visualization-api. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Daniel LaLiberte <https://plus.google.com/100631381223468223275?prsrc=2> >>> - 978-394-1058 >>> [email protected] 5CC, Cambridge MA >>> [email protected] 9 Juniper Ridge Road, Acton MA >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google Visualization API" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at >> http://groups.google.com/group/google-visualization-api. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Daniel LaLiberte <https://plus.google.com/100631381223468223275?prsrc=2> > - 978-394-1058 > [email protected] <javascript:> 5CC, Cambridge MA > [email protected] <javascript:> 9 Juniper Ridge Road, Acton MA >
-- You received this message because you are subscribed to the Google Groups "Google Visualization API" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/google-visualization-api. For more options, visit https://groups.google.com/d/optout.
