网站如何知道它们不是默认的主页或搜索引擎提供商?

据我所知,浏览器的默认主页/搜索提供商没有公开 API。那么,谷歌是如何知道如何显示这一点的呢?只有当 Google 不是我浏览器的默认主页/默认搜索引擎时,它才会出现。

Google on-page popup: 'Get to Google faster. Switch your default search engine to Google.' Googe on-page popup: 'Come here often? Make Google your homepage.'

我只能假设他们是从许多变量推断出来的,比如引用者。我无法成功地深入研究 Google 编译的 JavaScript。我甚至不确定它是在客户端还是在服务器端被检测到。

我用的是 Firefox 44,但我也在 Chrome 浏览器上看到过这些横幅。

6167 次浏览

In my Firefox (v42), the "Come here often?" box appears even when I have Google set as the default search provider.

In Safari I get a box in the same location that says "A better way to browse the web: Get Google Chrome"

In Opera and Chrome I get no box at all, even if I change my default search provider to something other than Google.

So, I believe all they're doing is browser detection in the JavaScript, using the UserAgent object.

I don't know what Google does, exactly, but what I would do:

  • set the homepage URL with some special parameter and check it - 'http://www.example.com/#!homepage (prevents false negatives)
  • check for Referer field:
    • if it's NOT there, assume user has typed it in manually
    • if it's very similar for each user visit (and perhaps at what looks like the beginning of a browsing session - inferred via GA on eeevery page out there), assume user is coming here by always clicking through from somewhere
  • set a cookie, e.g. visitedHelpAboutHomePage when the user visits the "yes, show me" page (might prevent false negatives, but might also generate false positives)

Note that the "special parameter" does happen in the "searchbox-initiated search" scenario: there is a parameter sourceid which likely means "source of search."

Simply there is no way to do that with JavaScript because the "default search/homepage" is a user's preference and you do not have access to that without user's permission because that would be a security/privacy issue.

What Google does at every user visit is show a promo ad with a close icon and a go button with instructions on how to set it as the default homepage. On click of any one of them, it creates 2 cookies so that next time it will check your cookies and make the promos disappear. Even when Google is your homepage and you clear your cookies then a banner is still there to promote Google as your homepage.

I have checked this with Firefox, not aware of Chrome.