Changeset 81799 in webkit


Ignore:
Timestamp:
Mar 23, 2011 1:13:22 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-03-23 Tyler Close <tjclose@chromium.org>

Reviewed by Jeremy Orlow.

Fix ambiguous method call in V8 IDL generated code for DOMStringList callback parameter
https://bugs.webkit.org/show_bug.cgi?id=56950

  • bindings/scripts/CodeGeneratorV8.pm:
  • bindings/scripts/test/CPP/WebDOMTestCallback.cpp: (WebDOMTestCallback::callbackWithStringList):
  • bindings/scripts/test/CPP/WebDOMTestCallback.h:
  • bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: (webkit_dom_test_callback_callback_with_string_list):
  • bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
  • bindings/scripts/test/JS/JSTestCallback.cpp: (WebCore::JSTestCallback::callbackWithStringList):
  • bindings/scripts/test/JS/JSTestCallback.h:
  • bindings/scripts/test/ObjC/DOMTestCallback.h:
  • bindings/scripts/test/ObjC/DOMTestCallback.mm: (-[DOMTestCallback callbackWithStringList:]):
  • bindings/scripts/test/TestCallback.idl:
  • bindings/scripts/test/V8/V8TestCallback.cpp: (WebCore::V8TestCallback::callbackWithStringList):
  • bindings/scripts/test/V8/V8TestCallback.h:
Location:
trunk/Source/WebCore
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r81795 r81799  
     12011-03-23  Tyler Close  <tjclose@chromium.org>
     2
     3        Reviewed by Jeremy Orlow.
     4
     5        Fix ambiguous method call in V8 IDL generated code for DOMStringList callback parameter
     6        https://bugs.webkit.org/show_bug.cgi?id=56950
     7
     8        * bindings/scripts/CodeGeneratorV8.pm:
     9        * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
     10        (WebDOMTestCallback::callbackWithStringList):
     11        * bindings/scripts/test/CPP/WebDOMTestCallback.h:
     12        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
     13        (webkit_dom_test_callback_callback_with_string_list):
     14        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
     15        * bindings/scripts/test/JS/JSTestCallback.cpp:
     16        (WebCore::JSTestCallback::callbackWithStringList):
     17        * bindings/scripts/test/JS/JSTestCallback.h:
     18        * bindings/scripts/test/ObjC/DOMTestCallback.h:
     19        * bindings/scripts/test/ObjC/DOMTestCallback.mm:
     20        (-[DOMTestCallback callbackWithStringList:]):
     21        * bindings/scripts/test/TestCallback.idl:
     22        * bindings/scripts/test/V8/V8TestCallback.cpp:
     23        (WebCore::V8TestCallback::callbackWithStringList):
     24        * bindings/scripts/test/V8/V8TestCallback.h:
     25
    1262011-03-23  Cris Neckar  <cdn@chromium.org>
    227
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm

    r81265 r81799  
    28472847    return "RefPtr<MediaQueryListListener>" if $type eq "MediaQueryListListener";
    28482848
     2849    return "PassRefPtr<DOMStringList>" if $type eq "DOMStringList" and $isParameter;
    28492850    return "RefPtr<DOMStringList>" if $type eq "DOMStringList";
    28502851
  • trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestCallback.cpp

    r76277 r81799  
    2828#include "Class2.h"
    2929#include "Class3.h"
     30#include "DOMStringList.h"
    3031#include "KURL.h"
    3132#include "TestCallback.h"
     
    3334#include "WebDOMClass2.h"
    3435#include "WebDOMClass3.h"
     36#include "WebDOMDOMStringList.h"
    3537#include "WebDOMString.h"
    3638#include "WebExceptionHandler.h"
     
    116118}
    117119
     120bool WebDOMTestCallback::callbackWithStringList(const WebDOMDOMStringList& listParam)
     121{
     122    if (!impl())
     123        return false;
     124
     125    return impl()->callbackWithStringList(toWebCore(listParam));
     126}
     127
    118128WebCore::TestCallback* toWebCore(const WebDOMTestCallback& wrapper)
    119129{
  • trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestCallback.h

    r76277 r81799  
    3838class WebDOMClass5;
    3939class WebDOMClass6;
     40class WebDOMDOMStringList;
    4041
    4142class WebDOMTestCallback : public WebDOMObject {
     
    5253    int callbackWithNonBoolReturnType(const WebDOMClass3& class3Param);
    5354    int customCallback(const WebDOMClass5& class5Param, const WebDOMClass6& class6Param);
     55    bool callbackWithStringList(const WebDOMDOMStringList& listParam);
    5456
    5557    WebCore::TestCallback* impl() const;
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp

    r76277 r81799  
    3838#include "webkit/WebKitDOMClass3.h"
    3939#include "webkit/WebKitDOMClass3Private.h"
     40#include "webkit/WebKitDOMDOMStringList.h"
     41#include "webkit/WebKitDOMDOMStringListPrivate.h"
    4042#include "webkit/WebKitDOMTestCallback.h"
    4143#include "webkit/WebKitDOMTestCallbackPrivate.h"
     
    118120}
    119121
     122gboolean
     123webkit_dom_test_callback_callback_with_string_list(WebKitDOMTestCallback* self, WebKitDOMDOMStringList* list_param)
     124{
     125    g_return_val_if_fail(self, 0);
     126    WebCore::JSMainThreadNullState state;
     127    WebCore::TestCallback * item = WebKit::core(self);
     128    g_return_val_if_fail(list_param, 0);
     129    WebCore::DOMStringList * converted_list_param = NULL;
     130    if (list_param != NULL) {
     131        converted_list_param = WebKit::core(list_param);
     132        g_return_val_if_fail(converted_list_param, 0);
     133    }
     134    gboolean res = item->callbackWithStringList(converted_list_param);
     135    return res;
     136}
     137
    120138
    121139G_DEFINE_TYPE(WebKitDOMTestCallback, webkit_dom_test_callback, WEBKIT_TYPE_DOM_OBJECT)
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.h

    r76277 r81799  
    5959webkit_dom_test_callback_callback_with_non_bool_return_type(WebKitDOMTestCallback* self, WebKitDOMClass3* class3param);
    6060
     61WEBKIT_API gboolean
     62webkit_dom_test_callback_callback_with_string_list(WebKitDOMTestCallback* self, WebKitDOMDOMStringList* list_param);
     63
    6164G_END_DECLS
    6265
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp

    r76277 r81799  
    2727#include "JSClass1.h"
    2828#include "JSClass2.h"
     29#include "JSDOMStringList.h"
    2930#include "ScriptExecutionContext.h"
    3031#include <runtime/JSLock.h>
     
    111112}
    112113
     114bool JSTestCallback::callbackWithStringList(DOMStringList* listParam)
     115{
     116    if (!canInvokeCallback())
     117        return true;
     118
     119    RefPtr<JSTestCallback> protect(this);
     120
     121    JSLock lock(SilenceAssertionsOnly);
     122
     123    ExecState* exec = m_data->globalObject()->globalExec();
     124    MarkedArgumentBuffer args;
     125    args.append(toJS(exec, listParam));
     126
     127    bool raisedException = false;
     128    m_data->invokeCallback(args, &raisedException);
     129    return !raisedException;
     130}
     131
    113132}
    114133
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h

    r76277 r81799  
    4646    COMPILE_ASSERT(false)    virtual int callbackWithNonBoolReturnType(Class3* class3Param);
    4747    virtual int customCallback(Class5* class5Param, Class6* class6Param);
     48    virtual bool callbackWithStringList(DOMStringList* listParam);
    4849
    4950private:
  • trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestCallback.h

    r76277 r81799  
    3434@class DOMClass5;
    3535@class DOMClass6;
     36@class DOMDOMStringList;
    3637@class NSString;
    3738
     
    4243- (int)callbackWithNonBoolReturnType:(DOMClass3 *)class3Param;
    4344- (int)customCallback:(DOMClass5 *)class5Param class6Param:(DOMClass6 *)class6Param;
     45- (BOOL)callbackWithStringList:(DOMDOMStringList *)listParam;
    4446@end
    4547
  • trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestCallback.mm

    r76277 r81799  
    4646#import "DOMClass5Internal.h"
    4747#import "DOMClass6Internal.h"
     48#import "DOMDOMStringListInternal.h"
    4849#import "DOMEventInternal.h"
    4950#import "DOMNodeInternal.h"
     51#import "DOMStringList.h"
    5052#import "DOMStyleSheetInternal.h"
    5153#import "DOMTestCallbackInternal.h"
     
    110112}
    111113
     114- (BOOL)callbackWithStringList:(DOMDOMStringList *)listParam
     115{
     116    WebCore::JSMainThreadNullState state;
     117    return IMPL->callbackWithStringList(core(listParam));
     118}
     119
    112120@end
    113121
  • trunk/Source/WebCore/bindings/scripts/test/TestCallback.idl

    r76277 r81799  
    3939      long callbackWithNonBoolReturnType(in Class3 class3Param);
    4040      [Custom] long customCallback(in Class5 class5Param, in Class6 class6Param);
     41      boolean callbackWithStringList(in DOMStringList listParam);
    4142    };
    4243}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp

    r81789 r81799  
    2828#include "V8Class2.h"
    2929#include "V8CustomVoidCallback.h"
     30#include "V8DOMStringList.h"
    3031#include "V8Proxy.h"
    3132#include <wtf/GetPtr.h>
     
    131132}
    132133
     134bool V8TestCallback::callbackWithStringList(PassRefPtr<DOMStringList> listParam)
     135{
     136    if (!canInvokeCallback())
     137        return true;
     138
     139    v8::HandleScope handleScope;
     140
     141    v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
     142    if (v8Context.IsEmpty())
     143        return true;
     144
     145    v8::Context::Scope scope(v8Context);
     146
     147    v8::Handle<v8::Value> listParamHandle = toV8(listParam);
     148    if (listParamHandle.IsEmpty()) {
     149        CRASH();
     150        return true;
     151    }
     152
     153    v8::Handle<v8::Value> argv[] = {
     154        listParamHandle
     155    };
     156
     157    bool callbackReturnValue = false;
     158    return !invokeCallback(m_callback, 1, argv, callbackReturnValue, scriptExecutionContext());
     159}
     160
    133161} // namespace WebCore
    134162
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCallback.h

    r76277 r81799  
    5151    COMPILE_ASSERT(false)    virtual int callbackWithNonBoolReturnType(Class3* class3Param);
    5252    virtual int customCallback(Class5* class5Param, Class6* class6Param);
     53    virtual bool callbackWithStringList(PassRefPtr<DOMStringList> listParam);
    5354
    5455private:
Note: See TracChangeset for help on using the changeset viewer.