Sunday, November 16, 2014

Open URL Links from Omea Reader in Firefox by Default

Every now and then I score a major, minor victory. This is one of those stories.

On my Windows 7 laptop “Tatiana” I have been using the free RSS reader Omea Reader. There are a lot of client-based RSS feed readers and believe me, I have gone through many of them.

In the end I settled on Omea Reader; it was free, it was very fast, it supported all kinds of tagging, highlighting, filtering, and sorting. However one of the strongest features it offers is an incredibly robust (for my needs) search engine that lets me go back and rediscover feed articles I knew I saw somewhere.

What makes it super convenient to me is how it integrates in my blogging process.

I sort though the feed links and view the article in the embedded window pane. That uses the Internet Explorer browser. Nothing special there.

I’m running Mozilla Firefox, Portable Edition in the background as it is my primary blogging platform.

Now I also use Chromium and have just been fiddling with Mozilla Firefox Developer Edition, Portable.

Yet I still have Internet Explorer 11 set as my system default web browser.

With me so far?

When I want to save a feed article for later blogging or reference, I click the link – in Omea – and it opens as a new tab in my Firefox browser. I then drag the tab into its place on my bookmark sidebar and it is thus categorized and saved for a future blog-post or other usage.

It is very seamless.

So when I got around to setting up my new Win 7 laptop “Alister”, I copied my portable Firefox folder over to the new system and my browser system was set.

I then decided to try out an alternative RSS feed reader again for kicks and grins.

I settled on trialing QuiteRSS Portable and the portable (ZIP) version of Feedreader (v3.14) instead of going for Omea Reader.

I really liked the simple layout of Feedreader and the search worked fine but there was no way I could work out a way to get it to open URL links in Firefox. I would have to copy/past the link from Feedreader into Firefox, or open the link in IE and again copy it into Firefox. Not smooth. However, for simple RSS feed needs it still works great after all these years.

I then gave QuiteRSS a workout. It is actively being maintained and it shows. It is very polished and devoured the OPML file I gave it. It has AdBlock integration which was unexpected and good. I can flag, tag, and bag just about anything I want with a feed article. It has some basic filtering and sorting options.

And, in the options, there is one where I could set a third part external browser to be used. I pointed it to my portable Firefox install and – happy day – any URL for a feed or embedded in the feed article would open in Firefox. Great! It is a strong and viable RSS feed reader.

What made me give it up? Well, despite it running on an i7 processor with 16 GB RAM and off the SSD disk, it kept locking up and was particularly good at doing so (APPCRASH) when I was searching for a word or phrase within my feeds. Not being able to run any searches in my feed reader was a deal-breaker.

So I just installed Omea Reader on Alister and was done with it…or so I thought.

It installed great, I tweaked it out with all the same settings I had on Tatiana and I thought I was good.

Except when I clicked on URL’s they wouldn’t open in Firefox like on Tatiana.

(To be clear…the Firefox web browser has to be open already for it to open in a new Firefox tab. That’s the way the process works. If no web browser is open, then IE gets the default call and the URL link opens in an IE tab.)

I fiddled with settings, I scoured and compared Omea Reader’s key “omniaMea.ini” file between both systems looking for some kind of hidden config setting. I didn’t find any.  I went through all my notes and blog posts trying to find out how I got Omea URL’s to open in Firefox and I just couldn’t do it.

I also tried setting Firefox as my default system web-browser on Alister but even then, URL’s launched from Omea Reader still launched in Internet Explorer. I then reset IE back to be the default web browser again like before. I was stumped.

Google was surprisingly unhelpful.

What gives?!!  How did I manage to get Omea Reader URLs to open in Firefox?

In the end I turned to Process Monitor and did a controlled trace run on Tatiana.

I had Firefox running in the background, with just a blank tab open.

I set filters on Process Monitor for OmeaReader.exe and firefox.exe and firefoxportable.exe process names.  I had scrolling turned on and I cleared the list of events showing.

I then waited for an event to show up and bookmarked it as my starting point.

Then I switched to Omea, selected a feed URL and watched it open in Firefox.

I then stopped the trace.

I was focusing on OmeaReader.exe events after my bookmark right before a Firefox process took over.

Examining the filtered events (3,861 of 14,964) and the sequence, I quickly found a possible area to focus on in the registry.

There were a whole series of RegQueryKey operations to HKCU\Software\Classes\http\shell\open\ddeexec (and subkeys

image

Jumping into the registry from ProcMon I dug around and found all kinds of interesting registry keys/values. I exported the entire “HKEY_CURRENT_USER\Software\Classes\http” branch as a REG file.

When I then cross-matched those to the same ones on Alister I found that Tatiana’s registry keys held clear differences; the important parts being the following which were present on Tatiana and missing on Alister.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\ddeexec]
@=""
"NoActivateHandler"=""

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\ddeexec\Application]
@="Firefox"

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\ddeexec\Topic]
@="WWW_OpenURL"

So basically what I did was to clean up the REG file and remove the values that didn’t need to be modified/added to result in the REG key (above).

I then exported the entire “HKEY_CURRENT_USER\Software\Classes\http” branch on Alister s a REG file for backup purposes.

Then I merged the new REG file (above) into Alister’s registry.

I then opened Firefox, then Omea Reader, and tried launching a URL link.

Success! It opened as a new tab in Firefox just the way I needed it to as as it does on the Tatiana system already.

Again, if Firefox is not running already, then Omea Reader (or any other URL from any other app) still launches in the default system web-browser IE (just like it does on Tatiana).

Here is my final (full) REG key export for the curious; “HKEY_CURRENT_USER\Software\Classes\http”

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\http]
"URL Protocol"=""
"EditFlags"=dword:00000002

[HKEY_CURRENT_USER\Software\Classes\http\DefaultIcon]
@="C:\\Users\\Alister\\Tools\\FirefoxPortable\\App\\Firefox\\firefox.exe,1"

[HKEY_CURRENT_USER\Software\Classes\http\shell]
@="open"

[HKEY_CURRENT_USER\Software\Classes\http\shell\open]

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\command]
@="\"C:\\Users\\Alister\\Tools\\FirefoxPortable\\App\\Firefox\\firefox.exe\" -osint -url \"%1\""

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\ddeexec]
@=""
"NoActivateHandler"=""

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\ddeexec\Application]
@="Firefox"

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\ddeexec\Topic]
@="WWW_OpenURL"

Don’t use this full one on your system, I’d recommend trying after careful consideration and modification (YMMV…paths and filenames are certainly going to be different, here be dragons, etc.) the shorter REG key text earlier above. I just want to show how it all looks.

There are probably just the entire sum total of one (1) person who is a Omea Reader user in the entire online world who cares, but it bothered me and I’m glad I could figure it out.

One other interesting tidbit; Omea keeps a running activity log file. The name/location on your system may vary but I was able to find and correlate the URL launch in Firefox from Omea Reader I was tracing to the following log entry on the Tatiana system:

16.11.2014 13:58:11.768 [U] ResourceListView2.HandleActiveNodeChanged
16.11.2014 13:58:11.768 [U] Displaying resource 474367
16.11.2014 13:58:11.770 [U] [OMEA.MSHTML]: ShowHtml has been invoked for content-length=520, words-to-highlight=<Null>.
16.11.2014 13:58:11.959 [U] [OMEA.MSHTML]: OnDocumentComplete: loaded document "about:blank".
16.11.2014 13:58:57.207 [N] [UIM]: Error making a DDE conversation to the Browser at "Firefox" on topic "WWW_OpenURLNewWindow" with command "http://www.nirsoft.net/utils/passwordfox.html",,0. Could not start the DDE conversation. A client's attempt to establish a conversation has failed.

In there was a reference to a DDE conversation in Firefox for "WWW_OpenURLNewWindow" .

That corresponds to what I found present in Tatiana’s registry and missing (now added) from the Alister system registry.

In case you want to go deeper on what is behind the activity…

DDE stands for Dynamic Data Exchange. Here’s a Google search on it.

And here is a Google search for “WWW_OpenURLNewWindow”.

Whew! Score one for Claus this weekend—even if it took me about an hour to trace out and then another two or so to blog…

Cheers!

--Claus Valca

No comments: