Summary: | postMessage() spec now supports sending arrays of ports | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Andrew Wilson <atwilson> | ||||
Component: | WebCore JavaScript | Assignee: | Andrew Wilson <atwilson> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | ap | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Mac | ||||||
OS: | OS X 10.5 | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 28460 | ||||||
Attachments: |
|
Description
Andrew Wilson
2009-07-01 13:43:59 PDT
Splitting this bug into two parts - part 1 will get the WebCore infrastructure working with passing multiple ports around, and part 2 will hookup the JS bindings. Created attachment 35162 [details]
proposed patch
Comment on attachment 35162 [details] proposed patch A few things to consider but nothing that couldn't get checked in. > diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog > +2009-08-19 Drew Wilson <atwilson@google.com> > + > + Reviewed by NOBODY (OOPS!). > + > + postMessage() spec now supports sending arrays of ports > + https://bugs.webkit.org/show_bug.cgi?id=26902 > + > + Added OwnPtr to VectorTraits so we can store OwnPtrs in Vectors. Nice. In WebCore/ChangeLog "No new tests, " needs an indentation fix. > diff --git a/WebCore/dom/MessagePort.cpp b/WebCore/dom/MessagePort.cpp > + // Passed-in ports passed validity checks, so we can disentangle them. > + MessagePortChannelArray* result = new MessagePortChannelArray(ports->size()); "result" seems as generic as "i" to me. portArray? > + for (unsigned int i = 0 ; i < ports->size() ; ++i) { > + OwnPtr<MessagePortChannel> channel = (*ports)[i]->disentangle(ec); > + ASSERT(!ec); // Can't generate exception here if passed above checks. One space before end of line comments. Want to do a patch to cpp_style.py? :) > > +PassOwnPtr<MessagePortArray> MessagePort::entanglePorts(ScriptExecutionContext& context, PassOwnPtr<MessagePortChannelArray> channels) > + MessagePortArray* result = new MessagePortArray(channels->size()); Personal nit: "result" |