Hi guys,
I've spent a little time investigating the Vista "blank window" issues
that have been raised on the users list, and come up with a couple of
ideas.
There are two things you can launch from DQSD, a) searches and b) URLs
(and a couple of other things, but let's leave it at that).
Then there's a setting that affects how these launches are performed
-- the launchmode, which can be 0) Use IE or 1) Use default browser.
So there's essentially a behavior matrix for what happens in the
respective cases-
0 1
a form.submit Write out .html
file to submit form in body onload + ShellExecute(file)
b window.open + window.navigate ShellExecute(URL)
Most of these methods have one issue or another with IE's new
Protected Mode, because DQSD runs in un-PM, but launches searches and
URLs that require PM, so there tends to be a lot of intermediary
windows launched that bridge between the two modes.
As if this wasn't complicated enough to follow, all cases with
launchmode 0 happen in script, and all cases with launchmode 1 happen
inside DQSDTools.Launcher.
I'm wondering whether there would be value in moving all this logic
into DQSDTools, and moving the actual logic to a simple class
hierarchy of Launchers. Something like-
class Launcher
{
public:
virtual void SubmitForm(IHTMLFormElement* pForm, VARIANT options);
virtual void LaunchUrl(BSTR url, VARIANT options);
};
and then with implementations for the respective launch modes, say,
IELauncher and DefaultBrowserLauncher.
The primary benefit of having the complete logic in C++ code, is that
we can (hopefully) use new Vista APIs to safely bridge between
un-protected and protected mode.
What's also cool about this is that we can easily select
implementation based on launchmode, and adding a launchmode is as
simple as adding a new implementation...
...which leads me to another thing: we should probably add a new
launchmode called Explicit, which comes with an explicit browser path.
That way, users can launch their searches with a specific browser.
This should please the x64 crowd, who want to use the 32-bit Internet
Explorer even if DQSD runs in the 64-bit version of the browser.
So... Anyone opposed to moving form submittal/URL launching entirely
into DQSDTools? What are the drawbacks I don't see?
Thanks,
- Kim
------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Archive: https://lists.sourceforge.net/lists/listinfo/dqsd-devel