You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by Darren Bond <db...@globalcad.com> on 2013/11/11 19:51:26 UTC

Gadget Property Errors - Internet Explorer

Dear All,

 

We have been testing our Shindig implementation under different browsers and
have noticed errors, specifically under Internet Explorer, when moving
gadgets to different positions on the page. These errors appear to reference
back to Shindig code.

 

Below are our test steps:-

 

1- Using Internet Explorer (ideally IE8 if installed) browse to
http://beta.blueg.com/personal/ and click the resulting Create Home Page
dialog's "See my page" button. Initially you will see 5 default gadgets.

 

2- To reproduce the issue most clearly, delete the gadgets 'Flixter Movies'
and 'Facebook for iGoogle'.

 

3- Now try moving each gadget from one column to another and do this a
number of times. For major browsers except for Internet Explorer this
sequence of actions will be completed without error. However, Internet
Explorer will throw various kinds of javascript errors originating in our
copy of Shindig.

 

For example if you drag the Wikipedia gadget to different columns several
times you will get a variety of errors including the following:-

 

a) 'Error: 'unescape' is undefined'

b) Error: Unable to get property 'prototype' of undefined or null reference

c) Error: Unable to get property 'setMessages_' of undefined or null
reference

d) Error: Object doesn't support this action

e) Error: Object doesn't support property or method 'runOnLoadHandlers'

 

Similar errors seem to be grouped together except for d) above (where
'Error: 'String' is undefined') - you can see this particular error if you
drag and drop the Date & Time gadget.

 

Could Shindig Javascript API be specifying a requirement which cannot be
handled by IE?

 

Below is the relevant code snippet that renders the gadget's iFrame inside
the specified HTML item. The necessary js client code you can also see at
gadget.js and gadgetPreference.js

 

CommonContainer.renderGadget = function (gadget, contentHolder,
userPreference) {

    var gadgetURL = gadget.Url;

    var el = $(contentHolder).get(0);

    var params;

 

    if (userPreference == null) {

        params = { userPrefs: cacheDefaultUserPreference[gadgetURL] };

        gadget.SaveGadget(cacheDefaultUserPreference[gadgetURL]);

    } else {

        params = { userPrefs: userPreference };

    }

 

    params["view"] = "home";

 

    if (gadget.ViewType == GadgetViewTypes.Canvas) {

        params["view"] = "canvas";

    }

 

    params[osapi.container.RenderParam.WIDTH] = '100%';

    var gadgetSite = CommonContainer.newGadgetSite(el);

    CommonContainer.navigateGadget(gadgetSite, gadgetURL, {}, params);

    defaultUserPreference = {};

 

    return gadgetSite;

};

 

Any help is much appreciated.

 

Kind regards,

 

Darren


Re: Gadget Property Errors - Internet Explorer

Posted by Ryan Baxter <rb...@gmail.com>.
Darren, unfortunately your team might have to do some debugging here
to figure out exactly what is wrong.  I have no doubt that some of
these may be bugs in Shindig.  I pointed you to the locations of some
of the code below to get you started.  I am sure people on the list
will be happy to help if you have any questions about the
functionality of the Shindig code and as always we are always willing
to accept code contributions that fix any bugs.  It is hard to really
come to any conclusions even with the additional information below
without debugging your container and the best people to do that are
your developers.  I hope this at least gets you going in the right
direction.

On Tue, Nov 12, 2013 at 2:14 PM, Darren Bond <db...@globalcad.com> wrote:
> Hi Ryan,
>
> Please find below further details relating to the Shindig javascript files.
> Does this help?
>
> a) 'Error: 'unescape' is undefined'
> line
> var unesc = window.decodeURIComponent ? decodeURIComponent : unescape;
> within a function gadgets.util.getUrlParameters of the file
> http://shindig.blueg.com/shindig/gadgets/js/core:container:rpc:selection:vie
> ws:actions.js?c=1&debug=1&container=default
Could be coming from
https://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/core.util.urlparams/urlparams.js
or https://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/shindig.uri/uri.js.
 Looks like IE should support window.decodeURIComponent [1], is the
page in standards mode?
>
> b) Error: Unable to get property 'prototype' of undefined or null reference
> within a function gadgets.Prefs.prototype.set of the file
> http://shindig.blueg.com/shindig/gadgets/js/dynamic-height:setprefs:core:min
> imessage!core:rpc.js?container=defailt&nocache=0&debug=1&c=0

Probably coming from
https://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/core.prefs/prefs.js

>
> c) Error: Unable to get property 'setMessages_' of undefined or null
> reference
> line
> gadgets.Prefs.setMessages_
> of the file
> http://shindig.blueg.com/shindig/gadgets/ifr?url=http://gadgetsdev.blueg.com
> /standard/date-time/date-time.xml&container=default&view=home&lang=en&countr
> y=en-GB&debug=1&nocache=1
>

Is the gadget using message bundles?  Looks like this javascript would
be injected into the gadget from the server in
RenderingGadgetReWriter.  It is not clear to me why the Prefs property
is undefined.

> d) Error: Object doesn't support this action
> line
>  String.prototype.capitalize = function () {
>       return this.replace(/(^|\s)([a-z])/g, function (fullMatch, space,
> firstChar) {
>             return space + firstChar.toUpperCase()
>       })
> };
> of the file
> http://shindig.blueg.com/shindig/gadgets/ifr?url=http://gadgetsdev.blueg.com
> /standard/date-time/date-time.xml&container=default&view=home&lang=en&countr
> y=en-GB&debug=1&nocache=1

This looks like an error coming from the gadget.  I don't see this
code in Shindig.

>
> e) Error: Object doesn't support property or method 'runOnLoadHandlers'
> <script>gadgets.util.runOnLoadHandlers();</script>
> of the file
> http://shindig.blueg.com/shindig/gadgets/ifr?url=http://gadgetsdev.blueg.com
> /standard/date-time/date-time.xml&container=default&view=home&lang=en&countr
> y=en-GB&debug=1&nocache=1

This one I am also at a loss for.  The runOnLoadHandlers should be
defined in the gadgets.util namespace.

>
> Kind regards,
>
> Darren
>
>

[1] http://msdn.microsoft.com/en-us/library/ie/91b80x6x(v=vs.94).aspx

> -----Original Message-----
> From: Ryan Baxter [mailto:rbaxter85@apache.org]
> Sent: 11 November 2013 22:43
> To: dev@shindig.apache.org
> Subject: Re: Gadget Property Errors - Internet Explorer
>
> Darren, it is entirely possible that we have some JavaScript in the
> Shindig code that will break in IE.  None of these stand out as known
> issues to me personally and we are using the client side JavaScript
> from Shindig in an application that runs on IE8.  What I suggest is
> narrowing down where in the Shindig code these errors are coming from
> and people on the dev list can make better suggestions as to what the
> problem may be.
>
> On Mon, Nov 11, 2013 at 1:51 PM, Darren Bond <db...@globalcad.com> wrote:
>> Dear All,
>>
>>
>>
>> We have been testing our Shindig implementation under different browsers
> and
>> have noticed errors, specifically under Internet Explorer, when moving
>> gadgets to different positions on the page. These errors appear to
> reference
>> back to Shindig code.
>>
>>
>>
>> Below are our test steps:-
>>
>>
>>
>> 1- Using Internet Explorer (ideally IE8 if installed) browse to
>> http://beta.blueg.com/personal/ and click the resulting Create Home Page
>> dialog's "See my page" button. Initially you will see 5 default gadgets.
>>
>>
>>
>> 2- To reproduce the issue most clearly, delete the gadgets 'Flixter
> Movies'
>> and 'Facebook for iGoogle'.
>>
>>
>>
>> 3- Now try moving each gadget from one column to another and do this a
>> number of times. For major browsers except for Internet Explorer this
>> sequence of actions will be completed without error. However, Internet
>> Explorer will throw various kinds of javascript errors originating in our
>> copy of Shindig.
>>
>>
>>
>> For example if you drag the Wikipedia gadget to different columns several
>> times you will get a variety of errors including the following:-
>>
>>
>>
>> a) 'Error: 'unescape' is undefined'
>>
>> b) Error: Unable to get property 'prototype' of undefined or null
> reference
>>
>> c) Error: Unable to get property 'setMessages_' of undefined or null
>> reference
>>
>> d) Error: Object doesn't support this action
>>
>> e) Error: Object doesn't support property or method 'runOnLoadHandlers'
>>
>>
>>
>> Similar errors seem to be grouped together except for d) above (where
>> 'Error: 'String' is undefined') - you can see this particular error if you
>> drag and drop the Date & Time gadget.
>>
>>
>>
>> Could Shindig Javascript API be specifying a requirement which cannot be
>> handled by IE?
>>
>>
>>
>> Below is the relevant code snippet that renders the gadget's iFrame inside
>> the specified HTML item. The necessary js client code you can also see at
>> gadget.js and gadgetPreference.js
>>
>>
>>
>> CommonContainer.renderGadget = function (gadget, contentHolder,
>> userPreference) {
>>
>>     var gadgetURL = gadget.Url;
>>
>>     var el = $(contentHolder).get(0);
>>
>>     var params;
>>
>>
>>
>>     if (userPreference == null) {
>>
>>         params = { userPrefs: cacheDefaultUserPreference[gadgetURL] };
>>
>>         gadget.SaveGadget(cacheDefaultUserPreference[gadgetURL]);
>>
>>     } else {
>>
>>         params = { userPrefs: userPreference };
>>
>>     }
>>
>>
>>
>>     params["view"] = "home";
>>
>>
>>
>>     if (gadget.ViewType == GadgetViewTypes.Canvas) {
>>
>>         params["view"] = "canvas";
>>
>>     }
>>
>>
>>
>>     params[osapi.container.RenderParam.WIDTH] = '100%';
>>
>>     var gadgetSite = CommonContainer.newGadgetSite(el);
>>
>>     CommonContainer.navigateGadget(gadgetSite, gadgetURL, {}, params);
>>
>>     defaultUserPreference = {};
>>
>>
>>
>>     return gadgetSite;
>>
>> };
>>
>>
>>
>> Any help is much appreciated.
>>
>>
>>
>> Kind regards,
>>
>>
>>
>> Darren
>>
>
>

RE: Gadget Property Errors - Internet Explorer

Posted by Darren Bond <db...@globalcad.com>.
Hi Ryan,

Please find below further details relating to the Shindig javascript files.
Does this help?

a) 'Error: 'unescape' is undefined'
line
var unesc = window.decodeURIComponent ? decodeURIComponent : unescape; 
within a function gadgets.util.getUrlParameters of the file
http://shindig.blueg.com/shindig/gadgets/js/core:container:rpc:selection:vie
ws:actions.js?c=1&debug=1&container=default

b) Error: Unable to get property 'prototype' of undefined or null reference
within a function gadgets.Prefs.prototype.set of the file
http://shindig.blueg.com/shindig/gadgets/js/dynamic-height:setprefs:core:min
imessage!core:rpc.js?container=defailt&nocache=0&debug=1&c=0

c) Error: Unable to get property 'setMessages_' of undefined or null
reference
line 
gadgets.Prefs.setMessages_ 
of the file
http://shindig.blueg.com/shindig/gadgets/ifr?url=http://gadgetsdev.blueg.com
/standard/date-time/date-time.xml&container=default&view=home&lang=en&countr
y=en-GB&debug=1&nocache=1

d) Error: Object doesn't support this action
line
 String.prototype.capitalize = function () {
      return this.replace(/(^|\s)([a-z])/g, function (fullMatch, space,
firstChar) {
            return space + firstChar.toUpperCase()
      })
};
of the file
http://shindig.blueg.com/shindig/gadgets/ifr?url=http://gadgetsdev.blueg.com
/standard/date-time/date-time.xml&container=default&view=home&lang=en&countr
y=en-GB&debug=1&nocache=1

e) Error: Object doesn't support property or method 'runOnLoadHandlers'
<script>gadgets.util.runOnLoadHandlers();</script> 
of the file
http://shindig.blueg.com/shindig/gadgets/ifr?url=http://gadgetsdev.blueg.com
/standard/date-time/date-time.xml&container=default&view=home&lang=en&countr
y=en-GB&debug=1&nocache=1

Kind regards,

Darren


-----Original Message-----
From: Ryan Baxter [mailto:rbaxter85@apache.org] 
Sent: 11 November 2013 22:43
To: dev@shindig.apache.org
Subject: Re: Gadget Property Errors - Internet Explorer

Darren, it is entirely possible that we have some JavaScript in the
Shindig code that will break in IE.  None of these stand out as known
issues to me personally and we are using the client side JavaScript
from Shindig in an application that runs on IE8.  What I suggest is
narrowing down where in the Shindig code these errors are coming from
and people on the dev list can make better suggestions as to what the
problem may be.

On Mon, Nov 11, 2013 at 1:51 PM, Darren Bond <db...@globalcad.com> wrote:
> Dear All,
>
>
>
> We have been testing our Shindig implementation under different browsers
and
> have noticed errors, specifically under Internet Explorer, when moving
> gadgets to different positions on the page. These errors appear to
reference
> back to Shindig code.
>
>
>
> Below are our test steps:-
>
>
>
> 1- Using Internet Explorer (ideally IE8 if installed) browse to
> http://beta.blueg.com/personal/ and click the resulting Create Home Page
> dialog's "See my page" button. Initially you will see 5 default gadgets.
>
>
>
> 2- To reproduce the issue most clearly, delete the gadgets 'Flixter
Movies'
> and 'Facebook for iGoogle'.
>
>
>
> 3- Now try moving each gadget from one column to another and do this a
> number of times. For major browsers except for Internet Explorer this
> sequence of actions will be completed without error. However, Internet
> Explorer will throw various kinds of javascript errors originating in our
> copy of Shindig.
>
>
>
> For example if you drag the Wikipedia gadget to different columns several
> times you will get a variety of errors including the following:-
>
>
>
> a) 'Error: 'unescape' is undefined'
>
> b) Error: Unable to get property 'prototype' of undefined or null
reference
>
> c) Error: Unable to get property 'setMessages_' of undefined or null
> reference
>
> d) Error: Object doesn't support this action
>
> e) Error: Object doesn't support property or method 'runOnLoadHandlers'
>
>
>
> Similar errors seem to be grouped together except for d) above (where
> 'Error: 'String' is undefined') - you can see this particular error if you
> drag and drop the Date & Time gadget.
>
>
>
> Could Shindig Javascript API be specifying a requirement which cannot be
> handled by IE?
>
>
>
> Below is the relevant code snippet that renders the gadget's iFrame inside
> the specified HTML item. The necessary js client code you can also see at
> gadget.js and gadgetPreference.js
>
>
>
> CommonContainer.renderGadget = function (gadget, contentHolder,
> userPreference) {
>
>     var gadgetURL = gadget.Url;
>
>     var el = $(contentHolder).get(0);
>
>     var params;
>
>
>
>     if (userPreference == null) {
>
>         params = { userPrefs: cacheDefaultUserPreference[gadgetURL] };
>
>         gadget.SaveGadget(cacheDefaultUserPreference[gadgetURL]);
>
>     } else {
>
>         params = { userPrefs: userPreference };
>
>     }
>
>
>
>     params["view"] = "home";
>
>
>
>     if (gadget.ViewType == GadgetViewTypes.Canvas) {
>
>         params["view"] = "canvas";
>
>     }
>
>
>
>     params[osapi.container.RenderParam.WIDTH] = '100%';
>
>     var gadgetSite = CommonContainer.newGadgetSite(el);
>
>     CommonContainer.navigateGadget(gadgetSite, gadgetURL, {}, params);
>
>     defaultUserPreference = {};
>
>
>
>     return gadgetSite;
>
> };
>
>
>
> Any help is much appreciated.
>
>
>
> Kind regards,
>
>
>
> Darren
>



Re: Gadget Property Errors - Internet Explorer

Posted by Ryan Baxter <rb...@apache.org>.
Darren, it is entirely possible that we have some JavaScript in the
Shindig code that will break in IE.  None of these stand out as known
issues to me personally and we are using the client side JavaScript
from Shindig in an application that runs on IE8.  What I suggest is
narrowing down where in the Shindig code these errors are coming from
and people on the dev list can make better suggestions as to what the
problem may be.

On Mon, Nov 11, 2013 at 1:51 PM, Darren Bond <db...@globalcad.com> wrote:
> Dear All,
>
>
>
> We have been testing our Shindig implementation under different browsers and
> have noticed errors, specifically under Internet Explorer, when moving
> gadgets to different positions on the page. These errors appear to reference
> back to Shindig code.
>
>
>
> Below are our test steps:-
>
>
>
> 1- Using Internet Explorer (ideally IE8 if installed) browse to
> http://beta.blueg.com/personal/ and click the resulting Create Home Page
> dialog's "See my page" button. Initially you will see 5 default gadgets.
>
>
>
> 2- To reproduce the issue most clearly, delete the gadgets 'Flixter Movies'
> and 'Facebook for iGoogle'.
>
>
>
> 3- Now try moving each gadget from one column to another and do this a
> number of times. For major browsers except for Internet Explorer this
> sequence of actions will be completed without error. However, Internet
> Explorer will throw various kinds of javascript errors originating in our
> copy of Shindig.
>
>
>
> For example if you drag the Wikipedia gadget to different columns several
> times you will get a variety of errors including the following:-
>
>
>
> a) 'Error: 'unescape' is undefined'
>
> b) Error: Unable to get property 'prototype' of undefined or null reference
>
> c) Error: Unable to get property 'setMessages_' of undefined or null
> reference
>
> d) Error: Object doesn't support this action
>
> e) Error: Object doesn't support property or method 'runOnLoadHandlers'
>
>
>
> Similar errors seem to be grouped together except for d) above (where
> 'Error: 'String' is undefined') - you can see this particular error if you
> drag and drop the Date & Time gadget.
>
>
>
> Could Shindig Javascript API be specifying a requirement which cannot be
> handled by IE?
>
>
>
> Below is the relevant code snippet that renders the gadget's iFrame inside
> the specified HTML item. The necessary js client code you can also see at
> gadget.js and gadgetPreference.js
>
>
>
> CommonContainer.renderGadget = function (gadget, contentHolder,
> userPreference) {
>
>     var gadgetURL = gadget.Url;
>
>     var el = $(contentHolder).get(0);
>
>     var params;
>
>
>
>     if (userPreference == null) {
>
>         params = { userPrefs: cacheDefaultUserPreference[gadgetURL] };
>
>         gadget.SaveGadget(cacheDefaultUserPreference[gadgetURL]);
>
>     } else {
>
>         params = { userPrefs: userPreference };
>
>     }
>
>
>
>     params["view"] = "home";
>
>
>
>     if (gadget.ViewType == GadgetViewTypes.Canvas) {
>
>         params["view"] = "canvas";
>
>     }
>
>
>
>     params[osapi.container.RenderParam.WIDTH] = '100%';
>
>     var gadgetSite = CommonContainer.newGadgetSite(el);
>
>     CommonContainer.navigateGadget(gadgetSite, gadgetURL, {}, params);
>
>     defaultUserPreference = {};
>
>
>
>     return gadgetSite;
>
> };
>
>
>
> Any help is much appreciated.
>
>
>
> Kind regards,
>
>
>
> Darren
>