CLR Browser Source Plugin [OBS Classic ONLY]

Faruton

Developer
Regarding the SingleProcess, it is hardcoded to false in the options so changing it will not affect how the browser initializes. I merely made the option readonly for the property grid control but whatever value was set before you upgraded will remain there.

If this is confusing I can force it to true, but effective now there will be no further support of SingleProcess (or until chromium decide to make it a stable option)
 

ChrisHanel

New Member
I will try and make use of this, but I think I need to make one thing clear: My HTML is not in the template section of CLR Browser, this is a live page on the internet that I'm connecting to through a URL. Will play around and report back.
 

Faruton

Developer
My point was more in how the flash was loaded through the object tag -- and locally was only emphasized as there are many more restrictions placed on local flash running due to risk of local files being affected.

It seems that it is very sensitive (the pepper flash) to how it is loaded. I forgot to mention you can always default to NPAPI flash by deleting the pepflashplayer.dll from your CLRHostPlugin/CLRBrowserSourcePlugin directory.

Unfortunately transparent swf's will no longer work if you do this.
 

Faruton

Developer
This appears to be solved but using an object tag with no embed child. I'll change the template to reflect this change for future versions.
 

bluesatin

New Member
I'm using Nightdev's Follower Alert with some custom CSS applied via the CLR Browser's config window.

However due to the update only injecting the CSS after the page has finished loading, my custom animations and styling don't work properly and runs after the default animations embedded in the page.

Is there anyway to get around this new limitation in the new version of the CLR Browser plugin?

Or do I have to downgrade and keep using the old x64 build?
 

Jack0r

The Helping Squad
Hmm, assuming its not possible because of the changes chrome made, I had an idea. You can copy the html code from your nightdev follower page, and add it as a local html file to the plugin, then add the usual ending part after .html, for example:
Code:
http://absolute/D:\Downloads\test.html?channel=thehelpingsquad&type=stacked&alert=https://i.imgur.com/RnALyHc.png&preview=true
As you see I saved the html file on D:\Downloads, you can then edit every css item right in the html file before its even loaded.
 

Santa

New Member
Hey ran into a bit of an issue.
I patched to the newest build of CLR with OBS 0.631b on 64 bit.
Updated to the 2013 redist and I am getting this in the browser settings:

http://i.imgur.com/AlsKMF5.png

And when I hit add for clr (which shows up as a source option) it does nothing.

Any ideas as to whats going wrong?
 

Faruton

Developer
Can we see the log file? It might show something

Make sure you also update CLRHost as well, as there have been changes to that plugin
 

Santa

New Member
This was the log:

Code:
08:36:33: CLR host plugin strings not found, dynamically loading 4 strings
08:36:33: CLRHost::Initialize() attempting to load and start the .NET runtime (null)
08:36:33: CLRHost::Initialize() Found version v2.0.50727 .NET runtime
08:36:33: CLRHost::Initialize() Found version v4.0.30319 .NET runtime
08:36:33: CLRHost::Initialize() attempting to use v4.0.30319 .NET runtime
08:36:33: CLRHost::LoadInteropLibrary() load the assembly plugins\CLRHostPlugin\CLRHost.Interop.dll
08:36:33: CLRHost::LoadPlugins() attempting to load the plugin assembly CLRBrowserSourcePlugin
08:36:33: CLRHost:: Could not find/load browser settings at location C:\Users\Santa\AppData\Roaming\OBS\pluginData\browser.json
08:36:33: CLRHost:: Exception: System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
08:36:33:  at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
08:36:33:  at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
08:36:33:  at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
08:36:33:  at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
08:36:33:  at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
08:36:33:  at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
08:36:33:  at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
08:36:33:  at System.Runtime.Serialization.DataContract.GetGlobalDataContractNamespace(String clrNs, ICustomAttributeProvider customAttribuetProvider)
08:36:33:  at System.Runtime.Serialization.DataContract.GetDefaultDataContractNamespace(Type type)
08:36:33:  at System.Runtime.Serialization.DataContract.GetDCTypeStableName(Type type, DataContractAttribute dataContractAttribute)
08:36:33:  at System.Runtime.Serialization.DataContract.GetStableName(Type type, HashSet`1 previousCollectionTypes, Boolean& hasDataContract)
08:36:33:  at System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper..ctor(Type type)
08:36:33:  at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract(Int32 id, RuntimeTypeHandle typeHandle, Type type)
08:36:33:  at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractSkipValidation(Int32 id, RuntimeTypeHandle typeHandle, Type type)
08:36:33:  at System.Runtime.Serialization.Json.DataContractJsonSerializer.get_RootContract()
08:36:33:  at System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalIsStartObject(XmlReaderDelegator reader)
08:36:33:  at System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName)
08:36:33:  at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
08:36:33:  at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(XmlDictionaryReader reader)
08:36:33:  at CLRBrowserSourcePlugin.Shared.BrowserSettings.Reload()
08:36:33: CLRHost::LoadPlugins() successfully added CLR plugin [Type: CLRBrowserSourcePlugin.CLRBrowserSourcePlugin, Name: CLR Browser Source Plugin]
08:36:36: CLR host plugin instance deleted; removing dynamically loaded localization strings
 

Jack0r

The Helping Squad
(Fixed the link to VS 2013 btw, the text was correct but the html code linked to the old file)
 

Faruton

Developer
Santa, upgrade your .net installation to 4.5 and this issue should be resolved. I've updated the description with details on how this can be done. (Thanks @ jackor)
 
Last edited:

Faruton

Developer
The update is 6 major chromium versions (31->37) as well as internal changes.
64bit version is no longer experimental and seemingly without the crashes of the previous version.
I noted some of the changes in the overview page as well. For specifics I'd examine what changed between 31 and 37 of chrome (which is very, very long list of things)
 

AlderaaN

Member
Hello.

I'm running OBS v0.631b 64bit.
CLR Browser version installed: http://catchexception.org/CBSP/CLRBrowserSourcePlugin-20140907x64.7z

I'm trying to setup the plugin for TeaBoard, but unable to get past the following stage:
In OBS, I navigate to Settings >> Browser >> Runtime >> SingleProcess >> The entire line is grayed out.
oJk4qz2.png


Here's my OBS log:
Code:
21:04:43: CLR host plugin strings not found, dynamically loading 4 strings
21:04:43: CLRHost::Initialize() attempting to load and start the .NET runtime (null)
21:04:43: CLRHost::Initialize() Found version v2.0.50727 .NET runtime
21:04:43: CLRHost::Initialize() Found version v4.0.30319 .NET runtime
21:04:43: CLRHost::Initialize() attempting to use v4.0.30319 .NET runtime
21:04:43: CLRHost::LoadInteropLibrary() load the assembly plugins\CLRHostPlugin\CLRHost.Interop.dll
21:04:44: CLRHost::LoadPlugins() attempting to load the plugin assembly CLRBrowserSourcePlugin
21:04:44: CLRHost:: Could not find/load browser settings at location C:\Users\USERNAME\AppData\Roaming\OBS\pluginData\browser.json
21:04:44: CLRHost:: Exception: System.IO.FileNotFoundException: Could not find file 'C:\Users\USERNAME\AppData\Roaming\OBS\pluginData\browser.json'.
21:04:44: File name: 'C:\Users\USERNAME\AppData\Roaming\OBS\pluginData\browser.json'
21:04:44:    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
21:04:44:    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
21:04:44:    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
21:04:44:    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
21:04:44:    at CLRBrowserSourcePlugin.Shared.BrowserSettings.Reload()
21:04:44: CLRHost::LoadPlugins() successfully added CLR plugin [Type: CLRBrowserSourcePlugin.CLRBrowserSourcePlugin, Name: CLR Browser Source Plugin]

I tried running OBS in Administrator mode, got the same result.

EDIT:
Please note, that my copy of OBS resides in C:\Programs\Video\OBS (not Program Files) and I haven't used the installation file, just the ZIP file.

EDIT #2:
I'm also running the latest .NET Framework (v4.5.2) and the latest VCRedist 2013 (32 + 64bit).
ZQnbKaz.png



Regards,
//subscribed to thread.
 
Last edited:

Jack0r

The Helping Squad
Have you tried adding a browser source alderaan? It says it successfully added the Plugin, and I think I have the other errors as well in my log, as well as the empty config dialog.
 

AlderaaN

Member
Have you tried adding a browser source alderaan? It says it successfully added the Plugin, and I think I have the other errors as well in my log, as well as the empty config dialog.
Hi and thank you for trying to help.

I've now added a CLR Browser source (tried once as in-scene and once as global) and then checked to see if I can edit the SingleProcess setting, same result - still grayed out.
 

Faruton

Developer
Single process mode is no longer supported.

Transparent flash files are now handled correctly by the built-in PPAPI flash
 

bilges

New Member
Hmm, assuming its not possible because of the changes chrome made, I had an idea. You can copy the html code from your nightdev follower page, and add it as a local html file to the plugin, then add the usual ending part after .html, for example:
Code:
http://absolute/D:\Downloads\test.html?channel=thehelpingsquad&type=stacked&alert=https://i.imgur.com/RnALyHc.png&preview=true
As you see I saved the html file on D:\Downloads, you can then edit every css item right in the html file before its even loaded.

Registered just to reply to this. This worked 100% for me and I think it's ultimately more elegant than the way I was doing it before I had to "fix" it. Thanks a lot for this post.
 

Superretrobros

New Member
I am at an absolute loss here. I had every intention to use Teeboard to try and create a decent overlay. As such, I was required to install CLR. Now, I've followed the instructions very carefully, putting the plugin in the correct location ect ect. I've done it about 20 times now. Including uninstalling and installing OBS, and installing all of the required goods. I've even unzipped the both 32 and 64 bit to their incorrect places to just see if I was going crazy.

I can see in the plugins section that OBS recognizes the CLR plugin, but I CAN'T do anything with it. There is no tab for browser, nor can I add a CLR scene. I am stumped, frustrated, and confused.

HALP!!!

Here are some logs I found... I have no idea what I'm doing:

00:37:55: CLR host plugin strings not found, dynamically loading 4 strings
00:37:55: CLRHost::Initialize() attempting to load and start the .NET runtime (null)
00:37:55: CLRHost::Initialize() Found version v2.0.50727 .NET runtime
00:37:55: CLRHost::Initialize() Found version v4.0.30319 .NET runtime
00:37:55: CLRHost::Initialize() attempting to use v4.0.30319 .NET runtime
00:37:55: CLRHost::LoadInteropLibrary() load the assembly plugins\CLRHostPlugin\CLRHost.Interop.dll
00:37:55: CLRHost::LoadInteropLibrary() failed to load the assembly: 0x8007007e
00:37:57: CLR host plugin instance deleted; removing dynamically loaded localization strings
 
Top