Author: rbaxter85
Date: Mon Feb 11 22:23:13 2013
New Revision: 1444982
URL: http://svn.apache.org/r1444982
Log:
SHINDIG-1902
Switching the buffering site should happen later in the container once we know
the gadget DOM finished loading
Modified:
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_site.js
shindig/trunk/features/src/main/javascript/features/embeddedexperiences/embedded_experiences_container.js
shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js
shindig/trunk/features/src/test/javascript/features/container/gadget_site_test.js
Modified:
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_site.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_site.js?rev=1444982&r1=1444981&r2=1444982&view=diff
==============================================================================
---
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_site.js
(original)
+++
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_site.js
Mon Feb 11 22:23:13 2013
@@ -79,6 +79,13 @@ osapi.container.GadgetSite = function(co
*/
this.loadingGadgetHolder_ = undef;
+ var self = this;
+ var listeners = {};
+ listeners[osapi.container.CallbackType.ON_RENDER] = function(gadgetUrl) {
+ self.onRender();
+ };
+ container.addGadgetLifecycleCallback('gadget_site_on_render_' +
this.getId(), listeners);
+
this.onConstructed();
};
@@ -329,8 +336,6 @@ osapi.container.GadgetSite.prototype.ren
this.updateSecurityToken_(gadgetInfo, localRenderParams);
this.loadingGadgetHolder_.render(gadgetInfo, viewParams, localRenderParams);
-
- this.onRender(gadgetInfo, viewParams, renderParams);
};
@@ -395,6 +400,7 @@ osapi.container.GadgetSite.prototype.clo
if (this.currentGadgetHolder_) {
this.currentGadgetHolder_.dispose();
}
+ this.container_.removeGadgetLifecycleCallback('gadget_site_on_render_' +
this.getId());
};
/**
Modified:
shindig/trunk/features/src/main/javascript/features/embeddedexperiences/embedded_experiences_container.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/embeddedexperiences/embedded_experiences_container.js?rev=1444982&r1=1444981&r2=1444982&view=diff
==============================================================================
---
shindig/trunk/features/src/main/javascript/features/embeddedexperiences/embedded_experiences_container.js
(original)
+++
shindig/trunk/features/src/main/javascript/features/embeddedexperiences/embedded_experiences_container.js
Mon Feb 11 22:23:13 2013
@@ -165,7 +165,7 @@
*/
function gadgetRendered_(rpcArgs) {
var gadgetSite = rpcArgs.gs;
- var renderParams = gadgetSite.currentGadgetHolder_.renderParams_;
+ var renderParams = gadgetSite.getActiveSiteHolder().renderParams_;
var eeDataModel = renderParams.eeDataModel;
return eeDataModel ? eeDataModel[ee_data_model.CONTEXT] : null;
}
Modified:
shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js?rev=1444982&r1=1444981&r2=1444982&view=diff
==============================================================================
---
shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js
(original)
+++
shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js
Mon Feb 11 22:23:13 2013
@@ -49,8 +49,10 @@ GadgetHolderTest.prototype.testNew = fun
},
id: '123'
};
- var site = new osapi.container.GadgetSite(null, null, {gadgetEl: element});
+ var container = this.createContainer();
+ var site = new osapi.container.GadgetSite(container, null, {gadgetEl:
element});
var holder = new osapi.container.GadgetHolder(site, element);
+ this.assertEquals('gadget_site_on_render_123', container.getCallbackId());
this.assertEquals(element, holder.getElement());
this.assertUndefined(holder.getIframeId());
this.assertUndefined(holder.getGadgetInfo());
@@ -70,9 +72,11 @@ GadgetHolderTest.prototype.testRenderWit
var service = {};
service.getCountry = function(){return "ZH";};
service.getLanguage = function(){return "cn"};
- var site = new osapi.container.GadgetSite(null, service, {gadgetEl:
element});
+ var container = this.createContainer();
+ var site = new osapi.container.GadgetSite(container, service, {gadgetEl:
element});
var holder = new osapi.container.GadgetHolder(site, element,
'__gadgetOnLoad');
holder.render(gadgetInfo, {}, {'view' : 'default'});
+ this.assertEquals('gadget_site_on_render_123', container.getCallbackId());
this.assertEquals('<iframe' +
' marginwidth="0"' +
' hspace="0"' +
@@ -111,9 +115,11 @@ GadgetHolderTest.prototype.testRenderWit
var service = {};
service.getCountry = function(){return "US";};
service.getLanguage = function(){return "en"};
- var site = new osapi.container.GadgetSite(null, service, {gadgetEl: element,
moduleId: 123});
+ var container = this.createContainer();
+ var site = new osapi.container.GadgetSite(container, service, {gadgetEl:
element, moduleId: 123});
var holder = new osapi.container.GadgetHolder(site, element,
'__gadgetOnLoad');
holder.render(gadgetInfo, {}, renderParams);
+ this.assertEquals('gadget_site_on_render_123', container.getCallbackId());
this.assertEquals('<iframe' +
' marginwidth="0"' +
' hspace="0"' +
@@ -176,3 +182,15 @@ GadgetHolderTest.prototype.setupMockPubs
};
return gadgets.pubsub2router.hub;
};
+
+GadgetHolderTest.prototype.createContainer = function() {
+ var container = {};
+ var callbackId;
+ container.addGadgetLifecycleCallback = function(id, listeners) {
+ callbackId = id;
+ }
+ container.getCallbackId = function() {
+ return callbackId;
+ }
+ return container;
+};
Modified:
shindig/trunk/features/src/test/javascript/features/container/gadget_site_test.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/container/gadget_site_test.js?rev=1444982&r1=1444981&r2=1444982&view=diff
==============================================================================
---
shindig/trunk/features/src/test/javascript/features/container/gadget_site_test.js
(original)
+++
shindig/trunk/features/src/test/javascript/features/container/gadget_site_test.js
Mon Feb 11 22:23:13 2013
@@ -60,9 +60,14 @@ GadgetSiteTest.prototype.tearDown = func
GadgetSiteTest.prototype.testGetId = function() {
var site;
- site = new osapi.container.GadgetSite(null, null, {});
+ var container = this.createContainer();
+ site = new osapi.container.GadgetSite(container, null, {});
+ this.assertEquals('gadget_site_on_render_' +
(osapi.container.Site.prototype.nextUniqueSiteId_ - 1),
+ container.getCallbackId());
this.assertEquals(osapi.container.Site.prototype.nextUniqueSiteId_ - 1,
site.getId());
- site = new osapi.container.GadgetSite(null, null, {});
+ site = new osapi.container.GadgetSite(container, null, {});
+ this.assertEquals('gadget_site_on_render_' +
(osapi.container.Site.prototype.nextUniqueSiteId_ - 1),
+ container.getCallbackId());
this.assertEquals(osapi.container.Site.prototype.nextUniqueSiteId_ - 1,
site.getId());
};
@@ -130,7 +135,19 @@ GadgetSiteTest.prototype.newMetadataErro
};
GadgetSiteTest.prototype.newGadgetSite = function(service, navigateCallback) {
- return new osapi.container.GadgetSite(null, service, {
+ return new osapi.container.GadgetSite(this.createContainer(), service, {
'navigateCallback' : navigateCallback
});
};
+
+GadgetSiteTest.prototype.createContainer = function() {
+ var container = {};
+ var callbackId;
+ container.addGadgetLifecycleCallback = function(id, listeners) {
+ callbackId = id;
+ }
+ container.getCallbackId = function() {
+ return callbackId;
+ }
+ return container;
+};