RESOLVED FIXED 87960
Web Inspector: [WebGL] Add WebGL instrumentation support on the backend
https://bugs.webkit.org/show_bug.cgi?id=87960
Summary Web Inspector: [WebGL] Add WebGL instrumentation support on the backend
Andrey Adaikin
Reported 2012-05-31 05:31:19 PDT
Adding WebGL instrumentation support on the backend side.
Attachments
Patch (54.25 KB, patch)
2012-05-31 05:46 PDT, Andrey Adaikin
no flags
Patch (53.27 KB, patch)
2012-05-31 23:44 PDT, Andrey Adaikin
no flags
Patch (53.23 KB, patch)
2012-06-01 00:52 PDT, Andrey Adaikin
no flags
Patch (51.17 KB, patch)
2012-06-01 02:53 PDT, Andrey Adaikin
no flags
Patch (47.86 KB, patch)
2012-06-01 05:45 PDT, Andrey Adaikin
no flags
Patch (47.83 KB, patch)
2012-06-01 06:01 PDT, Andrey Adaikin
no flags
Patch (47.51 KB, patch)
2012-06-01 06:13 PDT, Andrey Adaikin
no flags
Patch (47.59 KB, patch)
2012-06-01 08:05 PDT, Andrey Adaikin
aandrey: commit-queue-
Patch (49.73 KB, patch)
2012-06-01 09:15 PDT, Andrey Adaikin
no flags
Patch (49.60 KB, patch)
2012-06-01 09:57 PDT, Andrey Adaikin
no flags
Patch (50.32 KB, patch)
2012-06-01 10:23 PDT, Andrey Adaikin
no flags
Patch (49.66 KB, patch)
2012-06-04 00:31 PDT, Andrey Adaikin
no flags
Patch (52.87 KB, patch)
2012-06-04 03:02 PDT, Andrey Adaikin
no flags
Patch (51.35 KB, patch)
2012-06-04 03:29 PDT, Andrey Adaikin
no flags
Patch (53.36 KB, patch)
2012-06-04 03:45 PDT, Andrey Adaikin
no flags
Patch (52.87 KB, patch)
2012-06-04 23:58 PDT, Andrey Adaikin
no flags
Patch (54.88 KB, patch)
2012-06-05 00:46 PDT, Andrey Adaikin
no flags
Patch (55.57 KB, patch)
2012-06-05 02:12 PDT, Andrey Adaikin
no flags
Patch (56.09 KB, patch)
2012-06-05 05:16 PDT, Andrey Adaikin
no flags
Patch (56.09 KB, patch)
2012-06-05 05:51 PDT, Andrey Adaikin
no flags
Patch (71.27 KB, patch)
2012-06-05 07:41 PDT, Andrey Adaikin
no flags
Patch (69.26 KB, patch)
2012-06-05 08:17 PDT, Andrey Adaikin
no flags
=Rebased patch (55.45 KB, patch)
2012-06-06 01:21 PDT, Andrey Adaikin
no flags
Andrey Adaikin
Comment 1 2012-05-31 05:46:33 PDT
Build Bot
Comment 2 2012-05-31 06:13:49 PDT
Tor Arne Vestbø
Comment 3 2012-05-31 06:16:01 PDT
Comment on attachment 145064 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145064&action=review > Source/WebCore/DerivedSources.pri:779 > +InjectedWebGLScriptSource.commands = perl $$PWD/inspector/xxd.pl InjectedWebGLScriptSource_js $$PWD/inspector/InjectedWebGLScriptSource.js ${QMAKE_FILE_OUT} $$PWD/inspector/InjectedWebGLScriptSource.js -- > ${QMAKE_FILE_IN}
Andrey Kosyakov
Comment 4 2012-05-31 06:48:18 PDT
Comment on attachment 145064 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145064&action=review > Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:81 > + if (context->is3d() && InspectorInstrumentation::isWebGLInspectorEnabled(canvas->document())) { > + ScriptObject wrapped = InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation(static_cast<WebGLRenderingContext*>(context)); Can we merge isWebGLInspectorEnabled() and wrapWebGLRenderingContextForInstrumentation() into one call, e.g. wrapWebGLRenderingContextForInstrumentationIfNecessary()? > Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:87 > + // FIXME: Implement this! Please file a bug to have this implemented. > Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:62 > +template<typename T> static v8::Local<v8::Object> toV8InLocalContext(v8::Handle<v8::FunctionTemplate> functionTemplate, WrapperTypeInfo* type, T* cptr) We avoid abbreviations in WebKit, please find a more descriptive name for cptr. > Source/WebCore/inspector/InjectedScriptManager.cpp:42 > +#if ENABLE(WEBGL) > +#include "InjectedWebGLScriptSource.h" > +#endif Is this really necessary? > Source/WebCore/inspector/InjectedScriptManager.cpp:182 > + ScriptObject injectedWebGLScript = injectWebGLContextWrapperScript(injectedWebGLScriptSource(), scriptState); > + return executeInjectedWebGLContextWrapperScript(&injectedWebGLScript, scriptState, glContext); Do we ever call any of these two function independently? > Source/WebCore/inspector/InjectedWebGLScriptSource.js:2 > + * Copyright (C) 2012 Apple Inc. All rights reserved. Google copyright, please :) > Source/WebCore/inspector/InspectorWebGLAgent.cpp:60 > + m_instrumentingAgents = 0; This appears redundant. I know we occasionally do this in other places, but I don't see justification for this there either. > Source/WebCore/inspector/InspectorWebGLInstrumentation.h:47 > + if (InstrumentingAgents * instrumentingAgents = instrumentingAgentsForDocument(document)) { InstrumentingAgents * => InstrumentingAgents* > Source/WebCore/inspector/InspectorWebGLInstrumentation.h:48 > + if (InspectorWebGLAgent * webGLAgent = instrumentingAgents->inspectorWebGLAgent()) ditto > Source/WebCore/inspector/InspectorWebGLInstrumentation.h:59 > + if (InstrumentingAgents * instrumentingAgents = instrumentingAgentsForDocument(glContext->canvas()->document())) { ditto > Source/WebCore/inspector/InspectorWebGLInstrumentation.h:60 > + if (InspectorWebGLAgent * webGLAgent = instrumentingAgents->inspectorWebGLAgent()) ditto
Yury Semikhatsky
Comment 5 2012-05-31 07:04:44 PDT
Comment on attachment 145064 [details] Patch r- per Andrey's comments
Andrey Adaikin
Comment 6 2012-05-31 23:40:25 PDT
Comment on attachment 145064 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145064&action=review >> Source/WebCore/DerivedSources.pri:779 >> +InjectedWebGLScriptSource.commands = perl $$PWD/inspector/xxd.pl InjectedWebGLScriptSource_js $$PWD/inspector/InjectedWebGLScriptSource.js ${QMAKE_FILE_OUT} > > $$PWD/inspector/InjectedWebGLScriptSource.js -- > ${QMAKE_FILE_IN} Done. >> Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:81 >> + ScriptObject wrapped = InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation(static_cast<WebGLRenderingContext*>(context)); > > Can we merge isWebGLInspectorEnabled() and wrapWebGLRenderingContextForInstrumentation() into one call, e.g. wrapWebGLRenderingContextForInstrumentationIfNecessary()? Removed isWebGLInspectorEnabled. >> Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:87 >> + // FIXME: Implement this! > > Please file a bug to have this implemented. Filed https://bugs.webkit.org/show_bug.cgi?id=87975 >> Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:62 >> +template<typename T> static v8::Local<v8::Object> toV8InLocalContext(v8::Handle<v8::FunctionTemplate> functionTemplate, WrapperTypeInfo* type, T* cptr) > > We avoid abbreviations in WebKit, please find a more descriptive name for cptr. Done. cptr -> nativeObject >> Source/WebCore/inspector/InjectedScriptManager.cpp:42 >> +#endif > > Is this really necessary? Yes, for the InjectedWebGLScriptSource_js variable >> Source/WebCore/inspector/InjectedScriptManager.cpp:182 >> + return executeInjectedWebGLContextWrapperScript(&injectedWebGLScript, scriptState, glContext); > > Do we ever call any of these two function independently? No. Merged into one injectWebGLScript() >> Source/WebCore/inspector/InjectedWebGLScriptSource.js:2 >> + * Copyright (C) 2012 Apple Inc. All rights reserved. > > Google copyright, please :) Done. >> Source/WebCore/inspector/InspectorWebGLAgent.cpp:60 >> + m_instrumentingAgents = 0; > > This appears redundant. I know we occasionally do this in other places, but I don't see justification for this there either. What exactly is redundant? Only the last line, or both? As far as I see, it is to avoid a circular dependency, and both lines are "symmetrical" in that sense. If this is the case, I'd suggest preserving the symmetry, although it may be redundant. >> Source/WebCore/inspector/InspectorWebGLInstrumentation.h:47 >> + if (InstrumentingAgents * instrumentingAgents = instrumentingAgentsForDocument(document)) { > > InstrumentingAgents * => InstrumentingAgents* Done. >> Source/WebCore/inspector/InspectorWebGLInstrumentation.h:48 >> + if (InspectorWebGLAgent * webGLAgent = instrumentingAgents->inspectorWebGLAgent()) > > ditto Done. >> Source/WebCore/inspector/InspectorWebGLInstrumentation.h:59 >> + if (InstrumentingAgents * instrumentingAgents = instrumentingAgentsForDocument(glContext->canvas()->document())) { > > ditto Done. >> Source/WebCore/inspector/InspectorWebGLInstrumentation.h:60 >> + if (InspectorWebGLAgent * webGLAgent = instrumentingAgents->inspectorWebGLAgent()) > > ditto Done.
Andrey Adaikin
Comment 7 2012-05-31 23:44:27 PDT
Build Bot
Comment 8 2012-06-01 00:25:31 PDT
Andrey Adaikin
Comment 9 2012-06-01 00:52:42 PDT
Yury Semikhatsky
Comment 10 2012-06-01 01:11:02 PDT
Comment on attachment 145219 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145219&action=review > Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:87 > + // FIXME: Implement this! Please file a bug against JSC and put its number after the fixme. > Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:138 > + windowGlobal->SetHiddenValue(key, v); I don't think you need to store the function in a hidden property. As I understand it is called only once to wrap glContextObject and then you use the wrapper. If so the hidden property is not needed. Please explain what the expected behavior is here. > Source/WebCore/inspector/InspectorWebGLAgent.cpp:100 > + ScriptState* scriptState = mainWorldScriptState(glContext->canvas()->document()->frame()); You should pass ScriptState as an explicit parameter. It is known in the bindings, you will need to covert v8::Context into ScriptState though.
Andrey Adaikin
Comment 11 2012-06-01 02:33:06 PDT
Comment on attachment 145219 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145219&action=review >> Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:87 >> + // FIXME: Implement this! > > Please file a bug against JSC and put its number after the fixme. Done. >> Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:138 >> + windowGlobal->SetHiddenValue(key, v); > > I don't think you need to store the function in a hidden property. As I understand it is called only once to wrap glContextObject and then you use the wrapper. If so the hidden property is not needed. Please explain what the expected behavior is here. Removed caching in the hidden property. >> Source/WebCore/inspector/InspectorWebGLAgent.cpp:100 >> + ScriptState* scriptState = mainWorldScriptState(glContext->canvas()->document()->frame()); > > You should pass ScriptState as an explicit parameter. It is known in the bindings, you will need to covert v8::Context into ScriptState though. Done.
Andrey Adaikin
Comment 12 2012-06-01 02:53:32 PDT
Build Bot
Comment 13 2012-06-01 03:18:44 PDT
Andrey Kosyakov
Comment 14 2012-06-01 03:33:29 PDT
Comment on attachment 145251 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145251&action=review > Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:82 > + if (wrapped.jsValue().isObject()) Drop the .jsValue(). Just wrapped.isObject(). It's cleaner. > Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:46 > +#include "JSWebGLRenderingContext.h" This could be replaced with forward declaration for the time being, I guess? > Source/WebCore/bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:94 > + if (!wrapped.v8Value().IsEmpty()) ditto. > Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:144 > + v8::Local<v8::Value> injectedScriptValue = v8::Function::Cast(*v)->Call(windowGlobal, 1, args); IIRC, this will crash if !v->IsFunction(). This might be ok given the assert above, but considering this may result from any JS error in a frequently modified injected script, we may want to fail more gracefully.
Yury Semikhatsky
Comment 15 2012-06-01 03:36:12 PDT
Comment on attachment 145251 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145251&action=review > Source/WebCore/CMakeLists.txt:2602 > +ADD_CUSTOM_COMMAND( Should we check if WebGL is enabled here? > Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:87 > + // FIXME(87975): Implement this! It shouldn't be hard to implement this for JSC, we already do similar things with the inspector injected script. > Source/WebCore/bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:94 > + if (!wrapped.v8Value().IsEmpty()) This code will create ScriptState instance for all contexts even if WebGL instrumentation is disabled. This should be fixed. We should probably check if WebGL inspection is enabled before getting ScriptState. > Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:-60 > - v8::Local<v8::Function> function = V8InjectedScriptHost::GetTemplate()->GetFunction(); These changes are not needed anymore, please revert them if so. > Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:129 > + v8::Local<v8::Object> glContextObject = toV8InLocalContext(V8WebGLRenderingContext::GetTemplate(), &V8WebGLRenderingContext::info, glContext); You should be able to use standard toV8 mechanism here, it will create a binding for you which you will wrap with the instrumenting code. Existing code could probably changed as well I need to check.
Andrey Adaikin
Comment 16 2012-06-01 05:39:11 PDT
Comment on attachment 145251 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145251&action=review >> Source/WebCore/CMakeLists.txt:2602 >> +ADD_CUSTOM_COMMAND( > > Should we check if WebGL is enabled here? Done. >> Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:82 >> + if (wrapped.jsValue().isObject()) > > Drop the .jsValue(). Just wrapped.isObject(). It's cleaner. Done. Using the hasNoValue() method now. >> Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:87 >> + // FIXME(87975): Implement this! > > It shouldn't be hard to implement this for JSC, we already do similar things with the inspector injected script. Will do it in a separate patch. Let us finish with this first. >>> Source/WebCore/bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:94 >>> + if (!wrapped.v8Value().IsEmpty()) >> >> ditto. > > This code will create ScriptState instance for all contexts even if WebGL instrumentation is disabled. This should be fixed. We should probably check if WebGL inspection is enabled before getting ScriptState. Done. >> Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:129 >> + v8::Local<v8::Object> glContextObject = toV8InLocalContext(V8WebGLRenderingContext::GetTemplate(), &V8WebGLRenderingContext::info, glContext); > > You should be able to use standard toV8 mechanism here, it will create a binding for you which you will wrap with the instrumenting code. Existing code could probably changed as well I need to check. Done.
Andrey Adaikin
Comment 17 2012-06-01 05:45:08 PDT
Andrey Kosyakov
Comment 18 2012-06-01 05:54:30 PDT
Comment on attachment 145277 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145277&action=review > Source/WebCore/inspector/InspectorWebGLAgent.cpp:62 > + m_instrumentingAgents = 0; This one still appears redundant. Do we really need to clear this field in desturctor? Also, it belongs to the base class and is initialized by the base class, so it's unclear why it's cleared by derived class.
Andrey Adaikin
Comment 19 2012-06-01 05:59:38 PDT
Comment on attachment 145277 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145277&action=review >> Source/WebCore/inspector/InspectorWebGLAgent.cpp:62 >> + m_instrumentingAgents = 0; > > This one still appears redundant. Do we really need to clear this field in desturctor? Also, it belongs to the base class and is initialized by the base class, so it's unclear why it's cleared by derived class. Good point. Removed the line.
Yury Semikhatsky
Comment 20 2012-06-01 05:59:53 PDT
Comment on attachment 145277 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145277&action=review > Source/WebCore/bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:94 > + if (InspectorInstrumentation::isWebGLInspectorEnabled(imp->document())) { Alternatively you could check InspectorInstrumentation::hasFrontends() here to avoid adding additional is* method on the inspector instrumentation. > Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:138 > + v8::Local<v8::Object> injectedScriptObject(v8::Object::Cast(*injectedScriptValue)); You could do v8::Handle<v8::Object>::Cast(injectedScriptValue) instead to avoid creating additional handle.
Andrey Adaikin
Comment 21 2012-06-01 06:01:05 PDT
Andrey Adaikin
Comment 22 2012-06-01 06:13:24 PDT
Andrey Adaikin
Comment 23 2012-06-01 06:14:29 PDT
Comment on attachment 145277 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145277&action=review >> Source/WebCore/bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:94 >> + if (InspectorInstrumentation::isWebGLInspectorEnabled(imp->document())) { > > Alternatively you could check InspectorInstrumentation::hasFrontends() here to avoid adding additional is* method on the inspector instrumentation. Done. >> Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp:138 >> + v8::Local<v8::Object> injectedScriptObject(v8::Object::Cast(*injectedScriptValue)); > > You could do v8::Handle<v8::Object>::Cast(injectedScriptValue) instead to avoid creating additional handle. Done.
Build Bot
Comment 24 2012-06-01 07:15:08 PDT
Andrey Adaikin
Comment 25 2012-06-01 08:05:16 PDT
Andrey Adaikin
Comment 26 2012-06-01 09:15:39 PDT
Build Bot
Comment 27 2012-06-01 09:51:18 PDT
Andrey Adaikin
Comment 28 2012-06-01 09:57:14 PDT
Andrey Adaikin
Comment 29 2012-06-01 10:23:49 PDT
Build Bot
Comment 30 2012-06-01 12:02:01 PDT
Build Bot
Comment 31 2012-06-01 12:02:40 PDT
Andrey Adaikin
Comment 32 2012-06-04 00:31:11 PDT
Created attachment 145526 [details] Patch Checking build bots
Build Bot
Comment 33 2012-06-04 01:10:24 PDT
Andrey Kosyakov
Comment 34 2012-06-04 01:20:32 PDT
Comment on attachment 145526 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145526&action=review > Source/WebCore/WebCore.gypi:2824 > + 'inspector/InspectorWebGLAgent.cpp', > + 'inspector/InspectorWebGLAgent.h', > + 'inspector/InspectorWebGLInstrumentation.h', Please also add this to WebCore.vcproj.
Andrey Adaikin
Comment 35 2012-06-04 03:02:56 PDT
Created attachment 145551 [details] Patch Checking build bots: Updated project.pbxproj, reverted WebCode.exp.in
Andrey Adaikin
Comment 36 2012-06-04 03:29:14 PDT
Created attachment 145553 [details] Patch Checking build bots
Build Bot
Comment 37 2012-06-04 03:38:30 PDT
Andrey Adaikin
Comment 38 2012-06-04 03:45:48 PDT
Created attachment 145555 [details] Patch Checking build bots: added WebCode.exp.in back
Build Bot
Comment 39 2012-06-04 03:52:20 PDT
Early Warning System Bot
Comment 40 2012-06-04 04:00:34 PDT
Build Bot
Comment 41 2012-06-04 04:41:11 PDT
Andrey Adaikin
Comment 42 2012-06-04 23:58:19 PDT
Created attachment 145705 [details] Patch Checking build bots
Andrey Adaikin
Comment 43 2012-06-05 00:46:25 PDT
Created attachment 145714 [details] Patch Checking build bots
Build Bot
Comment 44 2012-06-05 01:22:55 PDT
Build Bot
Comment 45 2012-06-05 01:33:15 PDT
Build Bot
Comment 46 2012-06-05 01:49:09 PDT
Andrey Adaikin
Comment 47 2012-06-05 02:12:05 PDT
Created attachment 145734 [details] Patch Checking build bots: added WebCore.order
jochen
Comment 48 2012-06-05 02:37:27 PDT
(In reply to comment #47) > Created an attachment (id=145734) [details] > Patch > > Checking build bots: added WebCore.order You need to add those symbols to WebCore.exp.in. WebCore.order is only used for Safari builds or something, Apple engineers will take care of updating it
Andrey Adaikin
Comment 49 2012-06-05 02:42:29 PDT
(In reply to comment #48) > (In reply to comment #47) > > Created an attachment (id=145734) [details] [details] > > Patch > > > > Checking build bots: added WebCore.order > > You need to add those symbols to WebCore.exp.in. > > WebCore.order is only used for Safari builds or something, Apple engineers will take care of updating it I did add those symbols to WebCore.exp.in - no luck so far...
jochen
Comment 50 2012-06-05 02:54:12 PDT
(In reply to comment #49) > (In reply to comment #48) > > (In reply to comment #47) > > > Created an attachment (id=145734) [details] [details] [details] > > > Patch > > > > > > Checking build bots: added WebCore.order > > > > You need to add those symbols to WebCore.exp.in. > > > > WebCore.order is only used for Safari builds or something, Apple engineers will take care of updating it > > I did add those symbols to WebCore.exp.in - no luck so far... ah, indeed on closer inspection, your patch to project.pbxproj looks incomplete. It doesn't list the new files in the PBXBuildFile section
Andrey Adaikin
Comment 51 2012-06-05 03:00:28 PDT
(In reply to comment #50) > (In reply to comment #49) > > (In reply to comment #48) > > > (In reply to comment #47) > > > > Created an attachment (id=145734) [details] [details] [details] [details] > > > > Patch > > > > > > > > Checking build bots: added WebCore.order > > > > > > You need to add those symbols to WebCore.exp.in. > > > > > > WebCore.order is only used for Safari builds or something, Apple engineers will take care of updating it > > > > I did add those symbols to WebCore.exp.in - no luck so far... > > ah, indeed > > on closer inspection, your patch to project.pbxproj looks incomplete. It doesn't list the new files in the PBXBuildFile section yeah I played with it earlier at patch https://bugs.webkit.org/attachment.cgi?id=145551&action=review (my xcode would not add PBXBuildFile section for some reason) and got the following error from the bot: xcodebuild: error: Unable to read project 'WebCore.xcodeproj'. Reason: Project /Volumes/Data/WebKit/Source/WebCore/WebCore.xcodeproj cannot be opened because because an exception occurred.: -[PBXFileReference _setBuildPhase:]: unrecognized selector sent to instance 0x4010c9140
Early Warning System Bot
Comment 52 2012-06-05 03:11:14 PDT
Build Bot
Comment 53 2012-06-05 04:02:17 PDT
Build Bot
Comment 54 2012-06-05 04:40:08 PDT
Andrey Adaikin
Comment 55 2012-06-05 05:16:48 PDT
Created attachment 145765 [details] Patch Checking build bots: tweaked project.pbxproj, removed WebCore.order
Andrey Adaikin
Comment 56 2012-06-05 05:51:03 PDT
Created attachment 145770 [details] Patch Checking build bots: fixed project.pbxproj
Build Bot
Comment 57 2012-06-05 06:05:57 PDT
Build Bot
Comment 58 2012-06-05 07:27:00 PDT
Andrey Adaikin
Comment 59 2012-06-05 07:41:27 PDT
Created attachment 145791 [details] Patch Checking build bots (hoping for the last time)
Build Bot
Comment 60 2012-06-05 07:42:21 PDT
Andrey Adaikin
Comment 61 2012-06-05 08:17:47 PDT
Created attachment 145802 [details] Patch Checking build bots: reverted WebCore.exp.in
Andrey Adaikin
Comment 62 2012-06-06 01:21:54 PDT
Created attachment 145959 [details] =Rebased patch Rebased patch
Andrey Kosyakov
Comment 63 2012-06-06 01:37:42 PDT
Note You need to log in before you can comment on or make changes to this bug.