I have a problem with Firefox 4 Beta.
It seems that firefox somehow ignores all LSP providers installed. But it does use winsock.
What's the problem? Is it my LSP problem and I can fix it or not?
I have a problem with Firefox 4 Beta.
It seems that firefox somehow ignores all LSP providers installed. But it does use winsock.
What's the problem? Is it my LSP problem and I can fix it or not?
If your LSP has already worked with older version of Firefox and other browsers, it is likely nothing wrong with your code.
In Vista or above, there is a newly introduced concept called LSP categories.
Firefox 4 Beta installer calls WSCSetApplicationCategory() when Vista detected. It sets LSP category for firefox.exe as LSP_INSPECTOR, LSP_REDIRECTOR, LSP_PROXY,LSP_FIREWALL, LSP_INBOUND_MODIFY, LSP_OUTBOUND_MODIFY, LSP_CRYPTO_COMPRESS.
It means only LSPs that categorized themselves as one of the above are allowed to hook in firefox.exe process.
It only happens in Vista or later, your LSP should work fine on previous Windows. Once Vista detected, your LSP installer should call WSCSetProviderInfo() and classify your LSP to match firefox's permitted LSP categories.
For more details, have a read at: http://msdn.microsoft.com/en-us/library/bb513664(v=vs.85).aspx
I had the same problem and solved this. I installed my LSP as a BASE_PROTOCOL instead of LAYERED_PROTOCOL.
However, you have to be careful if you choose to write your own BASE_PROTOCOL. Your provider must work well with other LSP's.