[webkit-reviews] review denied: [Bug 26258] Finish upstreaming V8Custom : [Attachment 31101] patch2

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jun 9 17:22:03 PDT 2009


David Levin <levin at chromium.org> has denied Nate Chapin <japhet at google.com>'s
request for review:
Bug 26258: Finish upstreaming V8Custom
https://bugs.webkit.org/show_bug.cgi?id=26258

Attachment 31101: patch2
https://bugs.webkit.org/attachment.cgi?id=31101&action=review

------- Additional Comments from David Levin <levin at chromium.org>
This is a lot better.  Just a few last changes and we'll both be done with this
one :)


> Index: WebCore/bindings/v8/custom/V8CustomBinding.cpp
> +ACCESSOR_GETTER(DocumentImplementation)
> +{
> +    ASSERT(info.Holder()->InternalFieldCount() >=
kDocumentMinimumInternalFieldCount);
> +    // Check if the internal field already contains a wrapper.
> +    v8::Local<v8::Value> implementation =
info.Holder()->GetInternalField(kDocumentImplementationIndex);
> +    if (!implementation->IsUndefined())
> +	   return implementation;
> +    // Generate a wrapper.
> +    Document* document =
V8Proxy::DOMWrapperToNative<Document>(info.Holder());
> +    v8::Handle<v8::Value> wrapper =
V8Proxy::DOMImplementationToV8Object(document->implementation());
> +    // Store the wrapper in the internal field.
> +    info.Holder()->SetInternalField(kDocumentImplementationIndex, wrapper);
> +
This code feels very dense.  It would look better with returns before each
comment line.



Right before NAMED_ACCESS_CHECK(History) there is an extra blank line.


> +// static
I would just delete this comment.

> +Frame* V8Custom::GetTargetFrame(v8::Local<v8::Object> host,
v8::Local<v8::Value> data)
> +{
> +    Frame* target = 0;
> +    switch (V8ClassIndex::FromInt(data->Int32Value())) {
> +    case V8ClassIndex::DOMWINDOW: {
> +	   v8::Handle<v8::Value> window =
V8Proxy::LookupDOMWrapper(V8ClassIndex::DOMWINDOW, host);
> +	   if (window.IsEmpty())
> +	       return target;
> +
> +	   DOMWindow* targetWin =
V8Proxy::ToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, window);
s/targetWin/targetWindow/ (avoid abbreviations).


> +#if ENABLE(SVG)
> +V8ClassIndex::V8WrapperType V8Custom::DowncastSVGPathSeg(void* path_seg)
 path_seg bad casing -- use camelCase.


> Index: WebCore/bindings/v8/custom/V8CustomBinding.h
> ===================================================================
> +
> +#define ACCESSOR_GETTER(NAME) \
> +v8::Handle<v8::Value> V8Custom::v8##NAME##AccessorGetter( \
> +    v8::Local<v8::String> name, const v8::AccessorInfo& info)

These defines that aren't indented are confusing to read.

Here's two alternatives:

#define ACCESSOR_GETTER(NAME) \
    v8::Handle<v8::Value> V8Custom::v8##NAME##AccessorGetter( \
	v8::Local<v8::String> name, const v8::AccessorInfo& info)

#define ACCESSOR_GETTER(NAME) \
    v8::Handle<v8::Value>
V8Custom::v8##NAME##AccessorGetter(v8::Local<v8::String> name, const
v8::AccessorInfo& info)


> +    class V8Custom {
> +    public:
> +
Typically this is no blank line after public:, private:, etc.
> +	   // Constants.


> +	   static const int kMessagePortInternalFieldCount =
kDefaultWrapperInternalFieldCount + 2;
> +
> +    #if ENABLE(WORKERS)
Don't indent the preprocessor directives.

> +	   static const int kStyleSheetOwnerNodeIndex =
kDefaultWrapperInternalFieldCount + 0;
> +	   static const int kStyleSheetInternalFieldCount =
kDefaultWrapperInternalFieldCount + 1;
> +
> +    #define DECLARE_PROPERTY_ACCESSOR_GETTER(NAME) \
Don't indent the preprocessor directives.

> +
> +    #define DECLARE_PROPERTY_ACCESSOR(NAME)
DECLARE_PROPERTY_ACCESSOR_GETTER(NAME); DECLARE_PROPERTY_ACCESSOR_SETTER(NAME);


I'd omit the trailing ";"

> +	   DECLARE_PROPERTY_ACCESSOR_GETTER(DOMWindowCrypto);
> +	   // Customized getter&setter of DOMWindow.location

s/&/and/  This comment doesn't event seem correct as it is just a setter.

These comments appear to be inconsistently done and don't seem to provide any
value.	(They don't answer Why? just What? and the code already answer What?
just fine.)

A blank line to separate the different objects seems sufficient (and delete the
comments).



> +	   DECLARE_CALLBACK(NodeAppendChild);
> +
> +	   // Custom implementation is Navigator properties.
The sentence doesn't seem grammatically correct.

> +	   // We actually only need this because WebKit has
> +	   // navigator.appVersion as custom. Our version just
> +	   // passes through.
I like this comment as it answers: Why?
> +	   DECLARE_PROPERTY_ACCESSOR(NavigatorAppVersion);

> +	   #if ENABLE(DATABASE)
Don't indent preprocessor directives.

> +
> +    private:
> +	   static v8::Handle<v8::Value> WindowSetTimeoutImpl(const
v8::Arguments& args, bool singleShot);
Remove the param name "args" since it doesn't add any information.
 


> Index: WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp
> ===================================================================
> --- WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp	(revision 0)
> +++ WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp	(revision 0)
> @@ -0,0 +1,46 @@
> +/*
> + * Copyright (C) 2007,2008,2009 Google Inc. All rights reserved.
Spaces after commas.


More information about the webkit-reviews mailing list