Bug 116345

Summary: Add a way to pass WebKit2 WKTypeRefs in Objective-C style user data messages
Product: WebKit Reporter: Sam Weinig <sam>
Component: New BugsAssignee: Sam Weinig <sam>
Status: RESOLVED FIXED    
Severity: Normal CC: rniwa
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch andersca: review+

Description Sam Weinig 2013-05-17 13:09:22 PDT
Add a way to pass WebKit2 WKTypeRefs in Objective-C style user data messages
Comment 1 Sam Weinig 2013-05-17 13:15:26 PDT
Created attachment 202143 [details]
Patch
Comment 2 Sam Weinig 2013-05-18 15:41:08 PDT
Committed r150343: <http://trac.webkit.org/changeset/150343>
Comment 3 Ryosuke Niwa 2013-05-18 16:11:08 PDT
This patch caused a build failure on ML 32-bit build:
http://build.webkit.org/builders/Apple%20MountainLion%20Release%20%2832-bit%20Build%29/builds/400/steps/compile-webkit/logs/stdio

CompileC /Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/WebKit2.build/Release/WebKit2.build/Objects-normal/i386/WKTypeRefWrapper.o UIProcess/API/mac/WKTypeRefWrapper.mm normal i386 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2
    setenv LANG en_US.US-ASCII
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -arch i386 -fmessage-length=0 -std=gnu++11 -stdlib=libc++ -fobjc-gc -Wno-trigraphs -fno-exceptions -fno-rtti -fpascal-strings -Os -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wreturn-type -Wno-implicit-atomic-properties -Wno-receiver-is-weak -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wformat -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-enum-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -Wno-c++11-extensions -DNDEBUG -DENABLE_3D_RENDERING -DENABLE_BLOB -DENABLE_CANVAS_PATH -DENABLE_CHANNEL_MESSAGING -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_EXCLUSIONS -DENABLE_CSS_FILTERS -DENABLE_CSS_REGIONS -DENABLE_CSS_SHADERS -DENABLE_CSS_COMPOSITING -DENABLE_CSS_STICKY_POSITION -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED -DENABLE_CURSOR_VISIBILITY -DENABLE_DASHBOARD_SUPPORT -DENABLE_DETAILS_ELEMENT -DENABLE_DOM4_EVENTS_CONSTRUCTOR -DENABLE_FILTERS -DENABLE_FULLSCREEN_API -DENABLE_GEOLOCATION -DENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING -DENABLE_ICONDATABASE -DENABLE_IFRAME_SEAMLESS -DENABLE_JAVASCRIPT_DEBUGGER -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_NOTIFICATIONS -DENABLE_LEGACY_VENDOR_PREFIXES -DENABLE_LEGACY_WEB_AUDIO -DENABLE_MATHML -DENABLE_METER_ELEMENT -DENABLE_MOUSE_CURSOR_SCALE -DENABLE_NOTIFICATIONS -DENABLE_PAGE_VISIBILITY_API -DENABLE_PDFKIT_PLUGIN -DENABLE_PROGRESS_ELEMENT -DENABLE_REQUEST_ANIMATION_FRAME -DENABLE_SHARED_WORKERS -DENABLE_SPEECH_SYNTHESIS -DENABLE_SQL_DATABASE -DENABLE_SVG -DENABLE_SVG_FONTS -DENABLE_USERSELECT_ALL -DENABLE_VIDEO -DENABLE_VIDEO_TRACK -DENABLE_WEBGL -DENABLE_WEB_AUDIO -DENABLE_WEB_SOCKETS -DENABLE_WORKERS -DENABLE_XHR_TIMEOUT -DENABLE_XSLT -DFRAMEWORK_NAME=WebKit2 -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.8 -g -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-sign-conversion -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/WebKit2.build/Release/WebKit2.build/WebKit2.hmap -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/Release/include -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/Release/usr/local/include -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/Release/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/Release/WebCore.framework/PrivateHeaders/icu -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/Release/DerivedSources/WebKit2 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/WebKit2.build/Release/WebKit2.build/DerivedSources/i386 -I/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/WebKit2.build/Release/WebKit2.build/DerivedSources -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -F/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/Release -F/Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/Release -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks -F/System/Library/Frameworks/Carbon.framework/Frameworks -F/System/Library/Frameworks/Quartz.framework/Frameworks -F/System/Library/Frameworks/CoreServices.framework/Frameworks -include /Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/PrecompiledHeaders/WebKit2Prefix-epchccwddwrjhoffqzlrkhsyounq/WebKit2Prefix.h -MMD -MT dependencies -MF /Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/WebKit2.build/Release/WebKit2.build/Objects-normal/i386/WKTypeRefWrapper.d --serialize-diagnostics /Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/WebKit2.build/Release/WebKit2.build/Objects-normal/i386/WKTypeRefWrapper.dia -c /Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm -o /Volumes/Data/slave/mountainlion-32bit-release/build/WebKitBuild/WebKit2.build/Release/WebKit2.build/Objects-normal/i386/WKTypeRefWrapper.o
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:31:12: error: cannot find interface declaration for 'WKTypeRefWrapper'
@interface WKTypeRefWrapper () {
           ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:37:17: error: cannot find interface declaration for 'WKTypeRefWrapper' [-Werror]
@implementation WKTypeRefWrapper
                ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:41:13: error: 'WKTypeRefWrapper' cannot use 'super' because it is a root class
    self = [super init];
            ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:45:5: error: use of undeclared identifier '_object'; did you mean 'object'?
    _object = object;
    ^~~~~~~
    object
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:39:33: note: 'object' declared here
- (id)initWithObject:(WKTypeRef)object
                                ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:45:13: error: explicitly assigning a variable of type 'WKTypeRef' (aka 'const void *') to itself [-Werror,-Wself-assign]
    _object = object;
    ~~~~~~~ ^ ~~~~~~
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:52:12: error: use of undeclared identifier '_object'; did you mean 'object'?
    return _object.get();
           ^~~~~~~
           object
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:39:33: note: 'object' declared here
- (id)initWithObject:(WKTypeRef)object
                                ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:52:12: error: reference to local variable 'object' declared in enclosing context
    return _object.get();
           ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:39:33: note: 'object' declared here
- (id)initWithObject:(WKTypeRef)object
                                ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:52:19: error: member reference base type 'WKTypeRef' (aka 'const void *') is not a structure or union
    return _object.get();
           ~~~~~~~^~~~
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:37:17: error: class 'WKTypeRefWrapper' defined without specifying a base class [-Werror,-Wobjc-root-class]
@implementation WKTypeRefWrapper
                ^
/Volumes/Data/slave/mountainlion-32bit-release/build/Source/WebKit2/UIProcess/API/mac/WKTypeRefWrapper.mm:37:33: note: add a super class to fix this problem
@implementation WKTypeRefWrapper
                                ^
                                 : NSObject
Comment 4 Sam Weinig 2013-05-18 17:07:02 PDT
I fixed that in https://trac.webkit.org/r150345.