Author: hsaputra
Date: Tue Mar 27 19:01:33 2012
New Revision: 1305953

URL: http://svn.apache.org/viewvc?rev=1305953&view=rev
Log:
Cleanup the sites and holder close flow to delegate removing iframe of the 
gadget wrapper element to the holder from site responsibility. CR: 
https://reviews.apache.org/r/4486.

Modified:
    
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js
    
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_site.js
    
shindig/trunk/features/src/main/javascript/features/container.site.url/url_holder.js
    shindig/trunk/features/src/main/javascript/features/container.site/site.js
    
shindig/trunk/features/src/main/javascript/features/container.site/site_holder.js
    
shindig/trunk/features/src/test/javascript/features/container.url/url_site_test.js

Modified: 
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js?rev=1305953&r1=1305952&r2=1305953&view=diff
==============================================================================
--- 
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js
 (original)
+++ 
shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js
 Tue Mar 27 19:01:33 2012
@@ -81,6 +81,7 @@ osapi.container.GadgetHolder.prototype.g
  * @inheritDoc
  */
 osapi.container.GadgetHolder.prototype.dispose = function() {
+  osapi.container.SiteHolder.prototype.dispose.call(this); // super.dispose();
   this.gadgetInfo_ = null;
 };
 
@@ -129,8 +130,7 @@ osapi.container.GadgetHolder.prototype.s
  * @param {Object} viewParams Look at osapi.container.ViewParam.
  * @param {Object} renderParams Look at osapi.container.RenderParam.
  */
-osapi.container.GadgetHolder.prototype.render = function(
-    gadgetInfo, viewParams, renderParams) {
+osapi.container.GadgetHolder.prototype.render = function(gadgetInfo, 
viewParams, renderParams) {
   this.iframeId_ = osapi.container.GadgetHolder.IFRAME_ID_PREFIX_ +
       this.site_.getId();
   this.gadgetInfo_ = gadgetInfo;

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=1305953&r1=1305952&r2=1305953&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
 Tue Mar 27 19:01:33 2012
@@ -366,14 +366,12 @@ osapi.container.GadgetSite.prototype.upd
  * @inheritDoc
  */
 osapi.container.GadgetSite.prototype.close = function() {
-  osapi.container.Site.prototype.close.call(this); // super.close();
-  if (this.loadingGadgetEl_ && this.loadingGadgetEl_.firstChild) {
-    this.loadingGadgetEl_.removeChild(this.loadingGadgetEl_.firstChild);
+  if (this.loadingGadgetHolder_) {
+    this.loadingGadgetHolder_.dispose();
+  }
+  if (this.currentGadgetHolder_) {
+    this.currentGadgetHolder_.dispose();
   }
-
-  // dispose of our other holder.
-  var holder = this.getActiveSiteHolder();
-  holder && holder.dispose();
 };
 
 /**

Modified: 
shindig/trunk/features/src/main/javascript/features/container.site.url/url_holder.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.site.url/url_holder.js?rev=1305953&r1=1305952&r2=1305953&view=diff
==============================================================================
--- 
shindig/trunk/features/src/main/javascript/features/container.site.url/url_holder.js
 (original)
+++ 
shindig/trunk/features/src/main/javascript/features/container.site.url/url_holder.js
 Tue Mar 27 19:01:33 2012
@@ -47,6 +47,7 @@ osapi.container.UrlHolder.prototype = ne
  * @inheridDoc
  */
 osapi.container.UrlHolder.prototype.dispose = function() {
+  osapi.container.SiteHolder.prototype.dispose.call(this); // super.dispose();
   this.url_ = null;
 };
 

Modified: 
shindig/trunk/features/src/main/javascript/features/container.site/site.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.site/site.js?rev=1305953&r1=1305952&r2=1305953&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container.site/site.js 
(original)
+++ shindig/trunk/features/src/main/javascript/features/container.site/site.js 
Tue Mar 27 19:01:33 2012
@@ -133,10 +133,6 @@ osapi.container.Site.prototype.setHeight
  * Closes this site.
  */
 osapi.container.Site.prototype.close = function() {
-  if (this.el_ && this.el_.firstChild) {
-    this.el_.removeChild(this.el_.firstChild);
-  }
-
   var holder = this.getActiveSiteHolder();
   holder && holder.dispose();
 };

Modified: 
shindig/trunk/features/src/main/javascript/features/container.site/site_holder.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.site/site_holder.js?rev=1305953&r1=1305952&r2=1305953&view=diff
==============================================================================
--- 
shindig/trunk/features/src/main/javascript/features/container.site/site_holder.js
 (original)
+++ 
shindig/trunk/features/src/main/javascript/features/container.site/site_holder.js
 Tue Mar 27 19:01:33 2012
@@ -139,16 +139,18 @@ osapi.container.SiteHolder.prototype.cre
    return params;
 };
 
-//Abstract methods
-
 /**
  * Disposes the gadget holder and performs cleanup of any holder state.
  * @abstract
  */
 osapi.container.SiteHolder.prototype.dispose = function() {
-  throw new Error("This method must be implemented by a subclass.");
+  if (this.el_ && this.el_.firstChild) {
+    this.el_.removeChild(this.el_.firstChild);
+  }
 };
 
+//Abstract methods
+
 /**
  * Gets the iFrame element itself.
  * @abstract

Modified: 
shindig/trunk/features/src/test/javascript/features/container.url/url_site_test.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/container.url/url_site_test.js?rev=1305953&r1=1305952&r2=1305953&view=diff
==============================================================================
--- 
shindig/trunk/features/src/test/javascript/features/container.url/url_site_test.js
 (original)
+++ 
shindig/trunk/features/src/test/javascript/features/container.url/url_site_test.js
 Tue Mar 27 19:01:33 2012
@@ -91,6 +91,7 @@ UrlSiteTest.prototype.testClose = functi
     "urlEl" : el
   };
   var site = new osapi.container.UrlSite(null, null, args);
+  site.render("http://example.com";, {});
   site.close();
   this.assertEquals("removedFirstChild", el.firstChild);
 }


Reply via email to