https://bugs.winehq.org/show_bug.cgi?id=37562
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |urlmon Summary|Skype opens apps.skype.com |Skype 6.x opens |on every start |apps.skype.com in external | |browser on every start Ever confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
according to http://community.skype.com/t5/Windows-desktop-client/Skype-is-opening-a-Brow...
http://community.skype.com/t5/Windows-archive/The-New-Banner-Ad-s-Above-Peop...
https://apps.skype.com/chatadwidget/ has the purpose to annoy the user with ads in the chat window.
Garbage from that site is supposed to be embedded every time unless one takes further action (buying credit, using old Skype version or simply hack it).
The external browser opening is the result of Wine's 'urlmon' handling when the client returns 'INET_E_DEFAULT_ACTION' during protocol binding.
--- snip --- ... 0023:trace:urlmon:BPInternetProtocolSink_ReportProgress (0x39bbb88)->(1 L"https://apps.skype.com/chatadwidget/") 0023:trace:urlmon:ProtocolSinkHandler_ReportProgress (0x39bbb88)->(BINDSTATUS_FINDINGRESOURCE L"https://apps.skype.com/chatadwidget/") 0023:trace:urlmon:InternetProtocolSink_ReportProgress (0x39c14d0)->(BINDSTATUS_FINDINGRESOURCE L"https://apps.skype.com/chatadwidget/") 0023:trace:urlmon:BindStatusCallback_OnProgress 0x39bef58)->(0 0 BINDSTATUS_FINDINGRESOURCE L"https://apps.skype.com/chatadwidget/") 0023:trace:ieframe:BindStatusCallback_OnProgress (0x3b01c58)->(0 0 1 L"https://apps.skype.com/chatadwidget/") 0023:trace:ieframe:set_status_text (0x3b01c58, 1, L"https://apps.skype.com/chatadwidget/") ... 0023:trace:ieframe:set_status_text => L"Searching for https://apps.skype.com/chatadwidget/" ... 0023:trace:urlmon:BindProtocol_Release (0x39bbb88) ref=4 0023:trace:urlmon:BindProtocol_Release (0x39bbb88) ref=3 0023:trace:urlmon:start_binding start ret 800c0011 0023:trace:urlmon:BindStatusCallback_OnStopBinding (0x39bef58)->(800c0011 (null)) 0023:trace:ieframe:BindStatusCallback_OnStopBinding (0x3b01c58)->(800c0011 (null)) 0023:trace:ieframe:set_status_text (0x3b01c58, 0, L"") ... 0023:trace:ieframe:set_status_text => L"" ... 0023:trace:ieframe:WebBrowser_AddRef (0x3affe40) ref=12 ... 0023:trace:ieframe:WebBrowser_Release (0x3affe40) ref=11 ... 0023:fixme:ieframe:handle_navigation_error Navigate to error page 0023:trace:ieframe:WebBrowser_Release (0x3affe40) ref=10 0023:trace:urlmon:Binding_Release (0x39c14d0) ref=4 0023:trace:urlmon:Binding_Release (0x39c14d0) ref=3 0023:Call urlmon.CoInternetParseUrl(03b01c8c L"https://apps.skype.com/chatadwidget/%22,0000000d,00000000,0033df44 L"\d8f8\7a21\df543\df703\e000\7de9\2c48\0017\e0083\0011\800c\4000\7ec6\e000\7de9\e0083\8ace\7de3\fd60\039b\0ec8\03b0\df58\039b\d8f8\7a21\e0443\df58\039b",00000040,00000000,00000000) ret=7a200055 0023:trace:urlmon:parse_schema (L"https://apps.skype.com/chatadwidget/" 00000000 0x33df44 64 (nil)) 0023:Ret urlmon.CoInternetParseUrl() retval=00000000 ret=7a200055 0023:Call advapi32.RegOpenKeyW(80000000,0033df44 L"https",0033df40) ret=7a20008b 0023:Ret advapi32.RegOpenKeyW() retval=00000000 ret=7a20008b 0023:Call advapi32.RegQueryValueExW(0000050c,7a2194f4 L"URL Protocol",00000000,0033df3c,00000000,00000000) ret=7a2000db 0023:Ret advapi32.RegQueryValueExW() retval=00000000 ret=7a2000db 0023:Call advapi32.RegCloseKey(0000050c) ret=7a2000ef 0023:Ret advapi32.RegCloseKey() retval=00000000 ret=7a2000ef 0023:trace:ieframe:try_application_url opening application L"https" 0023:Call shell32.ShellExecuteExW(0033dfc4) ret=7a2001a2 ... 0023:Call KERNEL32.CreateProcessW(00000000,0033cb68 L"https://apps.skype.com/chatadwidget/%22,00000000,00000000,00000000,00000410,...) ret=7dc326a3 ... 0023:Ret KERNEL32.CreateProcessW() retval=00000000 ret=7dc326a3 ... 0023:Call user32.DdeInitializeW(0033aad4,7dc336b4,00000010,00000000) ret=7dc33e26 ... 0023:Ret user32.DdeConnect() retval=00000000 ret=7dc33eec 0023:Call KERNEL32.CreateProcessW(00000000,0033b808 L""C:\windows\system32\winebrowser.exe" -nohome",00000000,00000000,00000000,00000410,00000000,00000000,0033a000,00339ff0) ret=7dc326a3 ... --- snip ---
'BindProtocol_StartEx' calls client's 'IInternetProtocol::Start'
The client returns 0x800c0011 -> 'INET_E_DEFAULT_ACTION' (expected) which Wine handles differently than native 'urlmon'. It stops binding and defers further action to default registry protocol association which in turns creates an own browser process (or reuses existing native browser).
Likely the same issue as bug 24285 or other bugs with applications that make use of embedded browser control but get external browser processes via default registry assoc handler.
'winetricks -q ie8' works around but only 'urlmon' and its link dependencies are really needed here.
$ sha1sum SkypeSetup.msi 7b600669da6d47d9a89b2093fea845daa02c81a8 SkypeSetup.msi
$ du -sh SkypeSetup.msi 28M SkypeSetup.msi
$ wine --version wine-1.7.31
Regards