| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 // | 4 // | 
| 5 // This file extends generic BrowserDistribution class to declare Google Chrome | 5 // This file extends generic BrowserDistribution class to declare Google Chrome | 
| 6 // specific implementation. | 6 // specific implementation. | 
| 7 | 7 | 
| 8 #ifndef CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ | 8 #ifndef CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ | 
| 9 #define CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ | 9 #define CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ | 
| 10 | 10 | 
| 11 #include "base/string16.h" | 11 #include "base/string16.h" | 
| 12 #include "base/gtest_prod_util.h" | 12 #include "base/gtest_prod_util.h" | 
| 13 #include "chrome/installer/util/browser_distribution.h" | 13 #include "chrome/installer/util/browser_distribution.h" | 
| 14 #include "chrome/installer/util/util_constants.h" | 14 #include "chrome/installer/util/util_constants.h" | 
| 15 | 15 | 
| 16 class FilePath; |  | 
| 17 |  | 
| 18 namespace base { | 16 namespace base { | 
| 19 class DictionaryValue; | 17 class DictionaryValue; | 
|  | 18 class FilePath; | 
| 20 } | 19 } | 
| 21 | 20 | 
| 22 class GoogleChromeDistribution : public BrowserDistribution { | 21 class GoogleChromeDistribution : public BrowserDistribution { | 
| 23  public: | 22  public: | 
| 24   // Opens the Google Chrome uninstall survey window. | 23   // Opens the Google Chrome uninstall survey window. | 
| 25   // version refers to the version of Chrome being uninstalled. | 24   // version refers to the version of Chrome being uninstalled. | 
| 26   // local_data_path is the path of the file containing json metrics that | 25   // local_data_path is the path of the file containing json metrics that | 
| 27   //   will be parsed. If this file indicates that the user has opted in to | 26   //   will be parsed. If this file indicates that the user has opted in to | 
| 28   //   providing anonymous usage data, then some additional statistics will | 27   //   providing anonymous usage data, then some additional statistics will | 
| 29   //   be added to the survey url. | 28   //   be added to the survey url. | 
| 30   // distribution_data contains Google Update related data that will be | 29   // distribution_data contains Google Update related data that will be | 
| 31   //   concatenated to the survey url if the file in local_data_path indicates | 30   //   concatenated to the survey url if the file in local_data_path indicates | 
| 32   //   the user has opted in to providing anonymous usage data. | 31   //   the user has opted in to providing anonymous usage data. | 
| 33   virtual void DoPostUninstallOperations( | 32   virtual void DoPostUninstallOperations( | 
| 34       const Version& version, | 33       const Version& version, | 
| 35       const FilePath& local_data_path, | 34       const base::FilePath& local_data_path, | 
| 36       const string16& distribution_data) OVERRIDE; | 35       const string16& distribution_data) OVERRIDE; | 
| 37 | 36 | 
| 38   virtual string16 GetActiveSetupGuid() OVERRIDE; | 37   virtual string16 GetActiveSetupGuid() OVERRIDE; | 
| 39 | 38 | 
| 40   virtual string16 GetAppGuid() OVERRIDE; | 39   virtual string16 GetAppGuid() OVERRIDE; | 
| 41 | 40 | 
| 42   virtual string16 GetBaseAppName() OVERRIDE; | 41   virtual string16 GetBaseAppName() OVERRIDE; | 
| 43 | 42 | 
| 44   virtual string16 GetAppShortCutName() OVERRIDE; | 43   virtual string16 GetAppShortCutName() OVERRIDE; | 
| 45 | 44 | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 85 | 84 | 
| 86   virtual void UpdateInstallStatus( | 85   virtual void UpdateInstallStatus( | 
| 87       bool system_install, | 86       bool system_install, | 
| 88       installer::ArchiveType archive_type, | 87       installer::ArchiveType archive_type, | 
| 89       installer::InstallStatus install_status) OVERRIDE; | 88       installer::InstallStatus install_status) OVERRIDE; | 
| 90 | 89 | 
| 91   virtual bool GetExperimentDetails(UserExperiment* experiment, | 90   virtual bool GetExperimentDetails(UserExperiment* experiment, | 
| 92                                     int flavor) OVERRIDE; | 91                                     int flavor) OVERRIDE; | 
| 93 | 92 | 
| 94   virtual void LaunchUserExperiment( | 93   virtual void LaunchUserExperiment( | 
| 95       const FilePath& setup_path, | 94       const base::FilePath& setup_path, | 
| 96       installer::InstallStatus status, | 95       installer::InstallStatus status, | 
| 97       const Version& version, | 96       const Version& version, | 
| 98       const installer::Product& product, | 97       const installer::Product& product, | 
| 99       bool system_level) OVERRIDE; | 98       bool system_level) OVERRIDE; | 
| 100 | 99 | 
| 101   // Assuming that the user qualifies, this function performs the inactive user | 100   // Assuming that the user qualifies, this function performs the inactive user | 
| 102   // toast experiment. It will use chrome to show the UI and it will record the | 101   // toast experiment. It will use chrome to show the UI and it will record the | 
| 103   // outcome in the registry. | 102   // outcome in the registry. | 
| 104   virtual void InactiveUserToastExperiment( | 103   virtual void InactiveUserToastExperiment( | 
| 105       int flavor, | 104       int flavor, | 
| 106       const string16& experiment_group, | 105       const string16& experiment_group, | 
| 107       const installer::Product& installation, | 106       const installer::Product& installation, | 
| 108       const FilePath& application_path) OVERRIDE; | 107       const base::FilePath& application_path) OVERRIDE; | 
| 109 | 108 | 
| 110   virtual bool ShouldSetExperimentLabels() OVERRIDE; | 109   virtual bool ShouldSetExperimentLabels() OVERRIDE; | 
| 111 | 110 | 
| 112   const string16& product_guid() { return product_guid_; } | 111   const string16& product_guid() { return product_guid_; } | 
| 113 | 112 | 
| 114  protected: | 113  protected: | 
| 115   void set_product_guid(const string16& guid) { product_guid_ = guid; } | 114   void set_product_guid(const string16& guid) { product_guid_ = guid; } | 
| 116 | 115 | 
| 117   // Disallow construction from others. | 116   // Disallow construction from others. | 
| 118   GoogleChromeDistribution(); | 117   GoogleChromeDistribution(); | 
| 119 | 118 | 
| 120  private: | 119  private: | 
| 121   friend class BrowserDistribution; | 120   friend class BrowserDistribution; | 
| 122 | 121 | 
| 123   FRIEND_TEST_ALL_PREFIXES(GoogleChromeDistTest, TestExtractUninstallMetrics); | 122   FRIEND_TEST_ALL_PREFIXES(GoogleChromeDistTest, TestExtractUninstallMetrics); | 
| 124 | 123 | 
| 125   // Extracts uninstall metrics from the JSON file located at file_path. | 124   // Extracts uninstall metrics from the JSON file located at file_path. | 
| 126   // Returns them in a form suitable for appending to a url that already | 125   // Returns them in a form suitable for appending to a url that already | 
| 127   // has GET parameters, i.e. &metric1=foo&metric2=bar. | 126   // has GET parameters, i.e. &metric1=foo&metric2=bar. | 
| 128   // Returns true if uninstall_metrics has been successfully populated with | 127   // Returns true if uninstall_metrics has been successfully populated with | 
| 129   // the uninstall metrics, false otherwise. | 128   // the uninstall metrics, false otherwise. | 
| 130   virtual bool ExtractUninstallMetricsFromFile( | 129   virtual bool ExtractUninstallMetricsFromFile( | 
| 131       const FilePath& file_path, string16* uninstall_metrics); | 130       const base::FilePath& file_path, string16* uninstall_metrics); | 
| 132 | 131 | 
| 133   // Extracts uninstall metrics from the given JSON value. | 132   // Extracts uninstall metrics from the given JSON value. | 
| 134   virtual bool ExtractUninstallMetrics(const base::DictionaryValue& root, | 133   virtual bool ExtractUninstallMetrics(const base::DictionaryValue& root, | 
| 135                                        string16* uninstall_metrics); | 134                                        string16* uninstall_metrics); | 
| 136 | 135 | 
| 137   // Given a DictionaryValue containing a set of uninstall metrics, | 136   // Given a DictionaryValue containing a set of uninstall metrics, | 
| 138   // this builds a URL parameter list of all the contained metrics. | 137   // this builds a URL parameter list of all the contained metrics. | 
| 139   // Returns true if at least one uninstall metric was found in | 138   // Returns true if at least one uninstall metric was found in | 
| 140   // uninstall_metrics_dict, false otherwise. | 139   // uninstall_metrics_dict, false otherwise. | 
| 141   virtual bool BuildUninstallMetricsString( | 140   virtual bool BuildUninstallMetricsString( | 
| 142       const base::DictionaryValue* uninstall_metrics_dict, string16* metrics); | 141       const base::DictionaryValue* uninstall_metrics_dict, string16* metrics); | 
| 143 | 142 | 
| 144   // The product ID for Google Update. | 143   // The product ID for Google Update. | 
| 145   string16 product_guid_; | 144   string16 product_guid_; | 
| 146 }; | 145 }; | 
| 147 | 146 | 
| 148 #endif  // CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ | 147 #endif  // CHROME_INSTALLER_UTIL_GOOGLE_CHROME_DISTRIBUTION_H_ | 
| OLD | NEW | 
|---|