<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>Dec 15, 2008, Χ 9:47 AM, David Levin ΞΑΠΙΣΑΜ(Α):</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div><span style="font-size: 12px; ">This is how I plan to finish making XMLHttpRequest available for workers</span></div><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="font-family: Arial; font-size: 12px; "><a href="http://docs.google.com/Doc?id=dg7mj9sd_6dvthmdqj" target="_blank" style="color: rgb(17, 42, 187); font-family: Arial, sans-serif; font-size: 12px !important; ">http://docs.google.com/Doc?id=dg7mj9sd_6dvthmdqj</a></span><br></blockquote><div><span style="font-size: 12px; "><br></span></div><div><span class="Apple-style-span" style="font-size: 12px; ">Let me know if you have any comments.</span></div></span></blockquote><br></div><div>As discussed earlier, this looks good to me.</div><div><br></div><div><blockquote type="cite" class=""><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; "><div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "><ul style="margin-top: 0px; margin-bottom: 0px; "><li style="margin-top: 0px; margin-bottom: 0px; ">It may make the code more complicated to handle both WorkerContext and Document in some places (like responseXML)<br></li><li style="margin-top: 0px; margin-bottom: 0px; ">It makes the code a bit more fragile to future changes in which code may be added that uses document() which is executed on the Worker.<br></li></ul></div><div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; ">To alleviate this, it makes sense to&nbsp;<span style="background-color: rgb(255, 242, 204); "><i>divide up the functionality into three classes: XMLHttpRequestBase, XMLHttpRequest, and XMLHttpRequestWorker.</i></span>&nbsp;In general, I expect 90%+ of the functionality to be in&nbsp;XMLHttpRequestBase, but any references to document() will be isolated to&nbsp;XMLHttpRequest.</div></span></blockquote><br></div><div>I'm not much of a fan of this idea, because we want to make Worker functionality closer to main thread one in the future, and this would be a step in opposite direction. On the other hand, this division can be undone later if needed, so it all depends on how much forking needs to be introduced in XMLHttpRequest otherwise.</div><div><br></div><div>As far as fragility is concerned, I think that the right way to avoid it is via extensive test coverage.</div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><div>- WBR, Alexey Proskuryakov</div></div></span></div><br></body></html>