User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:126.96.36.199) Gecko/20100316 Firefox/3.6.2 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:188.8.131.52) Gecko/20100316 Firefox/3.6.2 This code works usually to capture a URL from Firefox: DDEClientConv.SetLink('Firefox', 'WWW_GetWindowInfo') if DEClientConv.OpenLink() then Result := DDEClientConv.RequestData('0xFFFFFFFF'); Now, if you create a second profile, lets call it testprofile and launch firefox with the new profile: firefox.exe -P testprofile -no-remote The code stops working. When calling DEClientConv.OpenLink() Firefox will open a new window with the default profile instead, with a blank page, and that's it. If the new profile is not launched using firefox.exe -P name -no-remote, but instead you use firefox.exe -profilemanager and launch it there, the problem does not occur. Reproducible: Always Steps to Reproduce: 1. create a new profile with the name testprofile 2. load firefox using firefox.exe -P testprofile -no-remote 3. use DDE and WWW_GetWindowInfo to try to capture the URL from firefox Actual Results: Firefox launches a new, blank window, with the default profile. Expected Results: Firefox should launch no new window, but return the URL of the current window.
I can reproduce the part that firefox does not return any data on Nightly 40.0a1. When running firefox with -no-remote switch it disables DDE functionality, to be precise, when running from external software, DdeConnect returns 0. When -no-remote is NOT used, DdeConnect correctly returns handle to the estabilished conversation. -P switch doesn't matter.
DDE is no longer used by shell integration and the DDE code is part of toolkit -> startup
-no-remote disables this functionality intentionally. We're not going to fix this.