Changeset 56374 in webkit
- Timestamp:
- Mar 22, 2010 7:11:03 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r56365 r56374 1 2010-03-22 Andrey Kosyakov <caseq@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 6 Support creation of fake workers before document is loaded by deferring 7 attaching of fake workers iframe until document is loaded and buffering all 8 messages addressed to worker. 9 https://bugs.webkit.org/show_bug.cgi?id=36445 10 11 * inspector/front-end/InjectedFakeWorker.js: 12 (InjectedFakeWorker.FakeWorker.prototype.postMessage): 13 (InjectedFakeWorker.FakeWorker.prototype._buildWorker): 14 (InjectedFakeWorker.FakeWorker.prototype._attachWorkerFrameToDocument): 15 (InjectedFakeWorker.FakeWorker.prototype._onWorkerFrameLoaded): 16 1 17 2010-03-22 Darin Fisher <darin@chromium.org> 2 18 -
trunk/WebCore/inspector/front-end/InjectedFakeWorker.js
r55771 r56374 60 60 if (this._frame != null) 61 61 this._dispatchMessage(this._frame, bind(this._onmessageWrapper, this), msg); 62 else if (this._pendingMessages) 63 this._pendingMessages.push(msg) 64 else 65 this._pendingMessages = [ msg ]; 62 66 }, 63 67 … … 117 121 var iframeElement = document.createElement("iframe"); 118 122 iframeElement.style.display = "none"; 123 124 this._document = document; 125 iframeElement.onload = bind(this._onWorkerFrameLoaded, this, iframeElement, url, code); 126 127 if (document.body) 128 this._attachWorkerFrameToDocument(iframeElement, url, code); 129 else 130 window.addEventListener("load", bind(this._attachWorkerFrameToDocument, this, iframeElement), false); 131 }, 132 133 _attachWorkerFrameToDocument: function(iframeElement) 134 { 119 135 document.body.appendChild(iframeElement); 120 121 var frame = window.frames[window.frames.length - 1]; 122 123 this._document = document; 136 }, 137 138 _onWorkerFrameLoaded: function(iframeElement, url, code) 139 { 140 var frame = iframeElement.contentWindow; 124 141 this._frame = frame; 125 126 142 this._setupWorkerContext(frame, url); 127 143 … … 129 145 130 146 frame.eval(frameContents); 147 if (this._pendingMessages) { 148 for (var msg in this._pendingMessages) 149 this.postMessage(this._pendingMessages[msg]); 150 delete this._pendingMessages; 151 } 131 152 }, 132 153
Note: See TracChangeset
for help on using the changeset viewer.