summaryrefslogtreecommitdiffstats
path: root/chrome/browser/shell_integration.h
blob: 85e1c3cf4aadcab854893fea2cf5ec564646294f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_SHELL_INTEGRATION_H__
#define CHROME_BROWSER_SHELL_INTEGRATION_H__

#include <string>

class ShellIntegration {
 public:
  // Makes sure we are installed as a handler for the types we care about.
  // It should be called once, probably at startup.
  //
  // It will not check everything right away, but will instead do it on a timer
  // to avoid blocking startup.
  static void VerifyInstallation();

  // Like VerifyInstallation() but does the operations synchronously, returning
  // true on success.
  static bool VerifyInstallationNow();

  // Sets Chrome as default browser (only for current user). Returns false if
  // this operation fails.
  static bool SetAsDefaultBrowser();

  // Returns true if this instance of Chrome is the default browser. (Defined
  // as being the handler for the http/https protocols... we don't want to
  // report false here if the user has simply chosen to open HTML files in a
  // text editor and ftp links with a FTP client).
  static bool IsDefaultBrowser();

  // Returns true if IE is likely to be the default browser for the current
  // user. This method is very fast so it can be invoked in the UI thread.
  static bool IsFirefoxDefaultBrowser();
};

#endif  // CHROME_BROWSER_SHELL_INTEGRATION_H__