Hello,
We have a bug where the Edit This Page page/panel crashes. It happens when we delpoy a widget that uses an iframe, however, all complex operations are contained within the iframe. After deploying our configuring a group's page and deploying our widget the Edit this Page panel continues to work for a while. However, after a period time the Edit this Page panel stops working. Clearing our browser cache and logging back in has no effect once a group's Edit This Page panel is broken, the only remedy appears to be deleting the group and starting over.
This is what we see on an affected page:

The complete list of symptoms are the following:
- The Edit this Page panel is blank, no functionality is available
- All other control panel functionality appears to work
- The only solution appears to be to delete the group, re-configure and re-install widgets. This works for a period of time, but then the Group works itself into a bad state and the Edit this Page panel breaks again.
Here's the widget's Content file:
<script>
var QuickSightEmbed = {
init: function() {
var dashboardEmbed = $core_v2_widget.ExecuteFile('okta-token.jsm');
console.log(JSON.stringify(dashboardEmbed));
if(dashboardEmbed.error == true) {
this.renderError();
} else {
var embedLink = dashboardEmbed.EmbedUrl;
this.renderUi(embedLink);
}
},
renderUi: function(embedLink) {
var self = this;
jQuery("#quicksight-error").hide();
console.log("embedLink=" + embedLink);
var iframe = jQuery("#quicksightFrame");
var width = iframe.closest(".content-fragment-content").width();
iframe.attr("src",embedLink);
iframe.attr("width",width);
jQuery("#quicksightFrame").show();
this.resize();
},
resize: function() {
var self = this;
window.setTimeout(function(){
var iframe = jQuery("#quicksightFrame");
var iframeBody = iframe.contents().find('body');
if(iframeBody.height()) {
var newHeight = iframeBody.height() + 300;
console.log("resizing quicksight iframe to:" + newHeight);
iframe.height(newHeight);
} else {
self.resize();
}
},500);
},
renderError: function() {
jQuery("#quicksightFrame").hide();
jQuery("#quicksight-error").show();
}
};
</script>
.
<script>
jQuery(document).ready(function(){
QuickSightEmbed.init();
});
</script>
<div>
<iframe id="quicksightFrame" style="display:none;" frameBorder="0" src="" width="600" height="840" />
</div>
<div id="quicksight-error" style="display:none;">Error connecting to Quicksight, please ensure permissions.</div>
Is there anything visibly wrong with the code above? It executes a server-side .jsm file which return a javascript object which contains the link we put in our iframe. Aside from that it's relatively simple.
Inside the iframe is a rather complex charting/graphing application. However, since this is contained in an iframe it should not affect the parent page (unless I'm mistaken).
Chris