I try to inject several SIMBL plugins (e.g. Afloat and FScriptAnywhere) into Chrome and other applications.
It works fine on all other applications but not on Chrome. There I get this output on console:
01.09.11 13:30:15,911 SIMBL Agent: Google Chrome started
01.09.11 13:30:15,912 SIMBL Agent: app start notification: {
NSApplicationBundleIdentifier = "com.google.Chrome";
NSApplicationName = "Google Chrome";
NSApplicationPath = "/Applications/Google Chrome.app";
NSApplicationProcessIdentifier = 87543;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 30412031;
NSWorkspaceApplicationKey = "<NSRunningApplication: 0x40092c060 (com.google.Chrome - 87543)>";
}
01.09.11 13:30:15,913 SIMBL Agent: checking bundle /Users/az/Library/Application Support/SIMBL/Plugins/Afloat.bundle
01.09.11 13:30:15,913 SIMBL Agent: checking target identifier *
01.09.11 13:30:15,914 SIMBL Agent: send inject event
01.09.11 13:30:15,956 SIMBL Agent: eventDidFail:'tvea' error:Error Domain=NSOSStatusErrorDomain Code=-1708 "The operation couldn’t be completed. (OSStatus error -1708.)" (the AppleEvent was not handled by any handler ) UserInfo=0x400877940 {ErrorNumber=-1708} userInfo:{
ErrorNumber = "-1708";
}
01.09.11 13:30:15,957 [0x0-0x1d00cff].com.google.Chrome: Google Chrome: OpenScripting.framework - can't find entry point InjectEventHandler in scripting addition /Library/ScriptingAdditions/SIMBL.osax.
I think the eventDidFail:'tvea'
error can be ignored because I get it on all applications (although I wonder what it is).
However, I think the last error Google Chrome: OpenScripting.framework - can't find entry point InjectEventHandler in scripting addition /Library/ScriptingAdditions/SIMBL.osax
is 开发者_C百科the relevant one.
What does it mean? What could it be?
Ah, it seems it was introduced as a feature by Chrome itself to blog SIMBL plugins because of stability issues.
http://www.conceivablytech.com/8990/products/google-stabilizes-chrome-for-mac-os-x-lion-adds-pulseaudio-for-linux
This is the patch for Chrome. And this is the bug report. Interesting, btw.; it uses mach_override from mach_star to patch the internal function _CFBundleLoadExecutableAndReturnError
to add a check for blacklisted libraries.
I filed a bug report about a way to disable that CFBundleBlocker here.
I found a way to workaround the CFBundleBlocker in Chrome:
I patched SIMBL to work in /System/Library
rather than in /Library
. The patched version can be found here. Also, that patched SIMBL searches for SIMBL plugins also in /System/Library/Application Support/SIMBL/Plugins/
. The SIMBL plugins must be installed in that directory because otherwise Chrome would also block them.
精彩评论