google_chrome_distribution.h revision b2df76ea8fec9e32f6f3718986dba0d95315b29c
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This file extends generic BrowserDistribution class to declare Google Chrome 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// specific implementation. 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/string16.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/gtest_prod_util.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/installer/util/browser_distribution.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace base { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FilePath; 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class GoogleChromeDistribution : public BrowserDistribution { 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Opens the Google Chrome uninstall survey window. 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // version refers to the version of Chrome being uninstalled. 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // local_data_path is the path of the file containing json metrics that 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // will be parsed. If this file indicates that the user has opted in to 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // providing anonymous usage data, then some additional statistics will 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // be added to the survey url. 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // distribution_data contains Google Update related data that will be 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // concatenated to the survey url if the file in local_data_path indicates 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // the user has opted in to providing anonymous usage data. 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void DoPostUninstallOperations( 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const Version& version, 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& local_data_path, 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const string16& distribution_data) OVERRIDE; 3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetActiveSetupGuid() OVERRIDE; 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetAppGuid() OVERRIDE; 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetBaseAppName() OVERRIDE; 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetAppShortCutName() OVERRIDE; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetAlternateApplicationName() OVERRIDE; 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetBaseAppId() OVERRIDE; 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetInstallSubDir() OVERRIDE; 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetPublisherName() OVERRIDE; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetAppDescription() OVERRIDE; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual std::string GetSafeBrowsingName() OVERRIDE; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetStateKey() OVERRIDE; 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetStateMediumKey() OVERRIDE; 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual std::string GetNetworkStatsServer() const OVERRIDE; 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual std::string GetHttpPipeliningTestServer() const OVERRIDE; 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // This method reads data from the Google Update ClientState key for 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // potential use in the uninstall survey. It must be called before the 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // key returned by GetVersionKey() is deleted. 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetDistributionData(HKEY root_key) OVERRIDE; 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetUninstallLinkName() OVERRIDE; 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetUninstallRegPath() OVERRIDE; 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetVersionKey() OVERRIDE; 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual string16 GetIconFilename() OVERRIDE; 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool GetCommandExecuteImplClsid( 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) string16* handler_class_uuid) OVERRIDE; 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool AppHostIsSupported() OVERRIDE; 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void UpdateInstallStatus( 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool system_install, 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) installer::ArchiveType archive_type, 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) installer::InstallStatus install_status) OVERRIDE; 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool ShouldSetExperimentLabels() OVERRIDE; 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool HasUserExperiments() OVERRIDE; 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const string16& product_guid() { return product_guid_; } 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_product_guid(const string16& guid) { product_guid_ = guid; } 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Disallow construction from others. 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) GoogleChromeDistribution(); 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) friend class BrowserDistribution; 100 101 // The product ID for Google Update. 102 string16 product_guid_; 103}; 104 105#endif // CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ 106