Checking user's homepage in Internet Explorer

JavascriptInternet Explorer

Javascript Problem Overview


Google displays a popup that asks if you want to set your home page as google.com. It's quite normal, when I say OK it sets it as google.com. After that however, I don't get the popup anymore. As far as I know, nobody should be able to retrieve the value of my homepage because it's a private info. But somehow Google is tracking it. I get the popup back when I set my homepage as a different site. I deleted the cookies but even then it is only displayed when I set homepage as another site.

I tested this behavior on IE8 & IE9. The popup never shows up in Firefox and Chrome.

Javascript Solutions


Solution 1 - Javascript

Internet Explorer makes it possible to ask it whether a given URL is the home page, it's detailed on this MSDN page. That links to this example page demonstrating the API.

Solution 2 - Javascript

The code Google uses can be viewed here:

google.promos.mgmhp.isGoogleHomepage = function (a) {
    var b = !1;
    try {
        b = window.external.isGoogleHomePage()
    } catch (d) {
        if (h(a)) return !0;
        var c = google.promos.gpd(a, "mgmhp_hp_url");
        c && g.push(c);
        for (c = 0; c < g.length; c++) {
            var k = g[c];
            if (b = b || a.isHomePage(k)) return !0
        }
    }
    return b
};

They are using the proprietary isHomePage method to check if google.com is your homepage. More info here.

Solution 3 - Javascript

The following css code is the culprit.

behavior: url(#default#homePage) url(#default#userData);

this is why I don't really like IE. The behavior url(#default#userData) tells the browser to store this as session information on the client side or browser memory.

More information here: http://msdn.microsoft.com/en-us/library/ms533015(v=vs.85).aspx

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionUfuk HacıoğullarıView Question on Stackoverflow
Solution 1 - JavascriptT.J. CrowderView Answer on Stackoverflow
Solution 2 - JavascriptchrxView Answer on Stackoverflow
Solution 3 - JavascriptJohn TolarView Answer on Stackoverflow