[Webkit-unassigned] [Bug 23859] Change worker code to use different proxy class pointers.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Feb 10 01:13:05 PST 2009


https://bugs.webkit.org/show_bug.cgi?id=23859





------- Comment #2 from levin at chromium.org  2009-02-10 01:13 PDT -------
Here's my comments on this patch.  There's a lot here but it is a big patch.


*WebCore/bindings/js/WorkerScriptController.cpp
1. extra blank lines added to the end.  Please remove them.


*WebCore/dom/Worker.cpp
>  , m_contextProxy(NULL)
1. Use 0 instead of NULL.

2. Previously, m_messagingProxy would never be 0.  Now m_contextProxy can be.
It doesn't look like all of this code has been fixed to handle that.  
One quick example, Worker::~Worker calls terminate() and terminate() does
this "m_contextProxy->terminateWorkerContext();"

> // The context is protected by context proxy....
3. This statement is confusing as is.  The statement would be clearer if it
said "worker context proxy" instead of "context proxy".


*WebCore/dom/Worker.h
>  void dispatchMessage(const String& message);
1. Omit param name "message" (as explained below for
"postDebugMessageToWorkerObject").

2. Extra blank lines added at end.  Pls remove.


*WebCore/dom/WorkerContext.cpp
> #include "GenericWorkerTask.h"
1. I don't think this include is needed anymore.


*WebCore/dom/WorkerContext.h
> void dispatchMessage(const String& message);
1. remove "message"
2. Extra blank lines added at end.  Pls remove.


*WebCore/dom/WorkerContextProxy.h
> static WorkerContextProxy* create(const String&, Worker*);
1. Unlike other cases, the param name associated with const String& would add
information here so it should be included.


*WebCore/dom/WorkerMessagingProxy.cpp 
> WorkerDebugMessageTask
1. Why was this added instead of just doing what it did before with
"postTaskToWorkerObject(createCallbackTask"?


> // The worker context does not exist while loading, so we much ensure that the worker object is not collected, as well as its event listeners.
2. I know you didn't add the comment, but it looks like "much" should be
"must".


> ASSERT((m_scriptExecutionContext->isDocument() && isMainThread())
        || (m_scriptExecutionContext->isWorkerContext() && ...
3. Why did this assert get removed?

> WorkerMessagingProxy::notifyFinished
4. The position of "m_unconfirmedMessageCount--;" changes where
hasPendingActivity may become false compared to the previous code.  Is this on
purpose?

> postDebugMessageToWorkerObject
5. "debug" sounds like debug code to me.  Can you come up with a better name
here?

> postTaskToWorkerObject(loaderTask);
6. Should be "postTaskToWorkerObject(loaderTask.release());" since the RefPtr
is no longer used after this.



*WebCore/dom/WorkerMessagingProxy.h

> virtual void postDebugMessageToWorkerObject(MessageDestination destination, MessageSource source, MessageLevel level, const String& errorMessage, int lineNumber, const String& sourceURL) = 0;

1. Don't add parameter names in declarations when they don't add information. 
In this case, leave out destination, source, level, so the declaration would
look like this:

    virtual void postDebugMessageToWorkerObject(MessageDestination,
MessageSource, MessageLevel, const String& errorMessage, int lineNumber, const
String& sourceURL) = 0;


>  virtual void postTaskToLoader(PassRefPtr<ScriptExecutionContext::Task> task);
2. Omit "task"



*WebCore/dom/WorkerObjectProxy.h
> PostDebugMessageToWorkerObject
1. same parameter name comment.


*WebCore/dom/WorkerThread.cpp
1. Extra blank lines were added to the end.  Pls remove them.


*WebCore/dom/WorkerThread.h
> WorkerObjectProxy* m_objectProxy
1. The abbreviation "m_objectProxy" is confusing to me when I read it quickly
it in the code.  Perhaps stay with m_workerObjectProxy;

2. Extra blank lines were added to the end.  Pls remove them.


*WebCore/loader/WorkerThreadableLoader.cpp
  >   if (thisPtr->m_messagingProxy.askedToTerminate()) 
  >        return;      
1. Why was this removed?



*WebCore/loader/WorkerThreadableLoader.h
   >  WorkerObjectProxy* m_objectProxy;
1. Same comment about the name m_objectProxy.
2. This was previously a "T&".  Why did it get changed to a "T*"?


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list