website-page-frame
Version:
This library provides a way to allow browser based programs to have cross parent to child window communication through code.
70 lines (33 loc) • 1.8 kB
JavaScript
beforeAll(function() {
this.setupWindowWebsitePageFrameClient = function(childBrowsingContextCurrentURL, iframeElementId, responseExpectedByTimeoutMilliseconds, maxConnectionRetries) {
if ( iframeElementId == null ) {
iframeElementId = "nestedBrowsingContext";
}
if ( responseExpectedByTimeoutMilliseconds == null ) {
responseExpectedByTimeoutMilliseconds = 8000;
}
if ( maxConnectionRetries == null ) {
maxConnectionRetries = 5;
}
var childBrowsingContext = document.getElementById(iframeElementId).contentWindow;
var websitePageFrameConnection = new websitePageFrame.WebsitePageFrameConnection(childBrowsingContextCurrentURL, childBrowsingContext, maxConnectionRetries);
websitePageFrameConnection.openNewConnection();
window.websitePageFrameClient = new websitePageFrame.WebsitePageFrameClient(websitePageFrameConnection, responseExpectedByTimeoutMilliseconds);
};
this.waitUntilConnectionReady = function(finishedJobCallback) {
window.waitUntilIntervalId = setInterval(function(finishedJobCallback) {
if ( websitePageFrameClient.isConnectionReady() ) {
finishedJobCallback();
clearInterval(waitUntilIntervalId);
}
}.bind(window, finishedJobCallback), 1000);
};
this.waitUntilWebsitePageFrameResponseReturned = function(finishedJobCallback) {
window.waitUntilIntervalId = setInterval(function(finishedJobCallback) {
if ( websitePageFrameClient.getResponse() !== null ) {
finishedJobCallback();
clearInterval(waitUntilIntervalId);
}
}.bind(window, finishedJobCallback), 1000);
};
});