all-add-trk-prefixes-to-possibly-evil-connections.patch 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  1. From cf98027e6f671068371d33e89db26d8bfcd6caff Mon Sep 17 00:00:00 2001
  2. From: Jan Engelhardt <jengelh@inai.de>
  3. Date: Mon, 3 Nov 2014 10:52:56 +0100
  4. Subject: [PATCH 64/66] all: add trk: prefixes to possibly evil connections
  5. Prefix URLs to Google services with trk: so that whenever something
  6. tries to load them, the developer will be informed via printf and
  7. dialog about this infraction.
  8. If you see such dialog, we know that (a) either the URL needs to be
  9. whitelisted, or (b) the feature that triggered it needs to be disabled
  10. by default.
  11. ---
  12. build/mac/tweak_info_plist.py | 2 +-
  13. .../chromeos/customization/customization_document.cc | 2 +-
  14. .../extensions/file_manager/private_api_drive.cc | 2 +-
  15. .../extensions/file_manager/private_api_misc.cc | 2 +-
  16. .../extensions/file_manager/private_api_strings.cc | 12 ++++++------
  17. .../api/cryptotoken_private/cryptotoken_private_api.cc | 4 ++--
  18. chrome/browser/extensions/install_signer.cc | 2 +-
  19. chrome/browser/media/media_url_constants.cc | 2 +-
  20. chrome/browser/nacl_host/nacl_infobar_delegate.cc | 2 +-
  21. chrome/browser/net/predictor.cc | 2 +-
  22. chrome/browser/profiles/profile_avatar_downloader.cc | 2 +-
  23. .../chromeos/chromevox/chromevox/background/prefs.js | 4 ++--
  24. .../resources/default_apps/external_extensions.json | 6 +++---
  25. .../safe_browsing/client_side_detection_service.cc | 4 ++--
  26. chrome/browser/safe_browsing/download_feedback.cc | 2 +-
  27. .../browser/safe_search_api/safe_search_url_checker.cc | 2 +-
  28. .../spellchecker/spellcheck_hunspell_dictionary.cc | 2 +-
  29. .../browser/supervised_user/supervised_user_service.cc | 2 +-
  30. chrome/browser/tracing/crash_service_uploader.cc | 2 +-
  31. .../browser/ui/views/outdated_upgrade_bubble_view.cc | 2 +-
  32. chrome/browser/ui/webui/ntp/ntp_resource_cache.cc | 8 ++++----
  33. chrome/common/extensions/chrome_extensions_client.cc | 4 ++--
  34. chrome/common/extensions/extension_constants.cc | 2 +-
  35. chrome/common/url_constants.cc | 6 +++---
  36. chrome/installer/util/google_chrome_distribution.cc | 2 +-
  37. chromecast/browser/service/cast_service_simple.cc | 2 +-
  38. chromeos/geolocation/simple_geolocation_provider.cc | 2 +-
  39. components/cloud_devices/common/cloud_devices_urls.cc | 8 ++++----
  40. components/crash/content/app/breakpad_linux.cc | 2 +-
  41. components/drive/service/drive_api_service.cc | 8 ++++----
  42. components/feedback/feedback_uploader.cc | 2 +-
  43. components/gcm_driver/gcm_account_tracker.cc | 4 ++--
  44. components/google/core/browser/google_url_tracker.cc | 2 +-
  45. components/history/core/browser/web_history_service.cc | 6 +++---
  46. components/invalidation/impl/gcm_network_channel.cc | 2 +-
  47. components/invalidation/impl/p2p_invalidator.cc | 2 +-
  48. components/metrics/url_constants.cc | 4 ++--
  49. .../password_manager/core/browser/password_store.cc | 8 ++++----
  50. components/policy/core/common/policy_loader_win.cc | 2 +-
  51. components/policy/resources/policy_templates.json | 4 ++--
  52. components/rappor/rappor_service_impl.cc | 2 +-
  53. components/search_engines/prepopulated_engines.json | 2 +-
  54. .../translate/core/browser/translate_url_fetcher.cc | 1 +
  55. components/translate/core/common/translate_util.cc | 2 +-
  56. components/variations/variations_url_constants.cc | 2 +-
  57. content/browser/speech/speech_recognition_engine.cc | 2 +-
  58. content/shell/browser/shell_browser_main_parts.cc | 2 +-
  59. google_apis/gaia/gaia_constants.cc | 18 +++++++++---------
  60. google_apis/gaia/google_service_auth_error.cc | 2 +-
  61. google_apis/gcm/engine/gservices_settings.cc | 6 +++---
  62. jingle/notifier/base/gaia_token_pre_xmpp_auth.cc | 2 +-
  63. remoting/base/breakpad_mac.mm | 2 +-
  64. remoting/protocol/jingle_messages.cc | 2 +-
  65. remoting/webapp/base/js/xmpp_login_handler.js | 2 +-
  66. remoting/webapp/crd/manifest.json.jinja2 | 2 +-
  67. rlz/lib/lib_values.cc | 2 +-
  68. ui/app_list/demo/app_list_demo_views.cc | 2 +-
  69. ui/views/examples/webview_example.cc | 2 +-
  70. 61 files changed, 101 insertions(+), 100 deletions(-)
  71. --- a/build/mac/tweak_info_plist.py
  72. +++ b/build/mac/tweak_info_plist.py
  73. @@ -209,7 +209,7 @@ def _AddKeystoneKeys(plist, bundle_ident
  74. also requires the |bundle_identifier| argument (com.example.product)."""
  75. plist['KSVersion'] = plist['CFBundleShortVersionString']
  76. plist['KSProductID'] = bundle_identifier
  77. - plist['KSUpdateURL'] = 'https://tools.google.com/service/update2'
  78. + plist['KSUpdateURL'] = 'trk:132:https://tools.google.com/service/update2'
  79. _RemoveKeys(plist, 'KSChannelID')
  80. for tag_suffix in _TagSuffixes():
  81. --- a/chrome/browser/chromeos/customization/customization_document.cc
  82. +++ b/chrome/browser/chromeos/customization/customization_document.cc
  83. @@ -175,7 +175,7 @@ std::string ReadFileInBackground(const b
  84. // Template URL where to fetch OEM services customization manifest from.
  85. const char ServicesCustomizationDocument::kManifestUrl[] =
  86. - "https://ssl.gstatic.com/chrome/chromeos-customization/%s.json";
  87. + "trk:151:https://ssl.gstatic.com/chrome/chromeos-customization/%s.json";
  88. // A custom extensions::ExternalLoader that the ServicesCustomizationDocument
  89. // creates and uses to publish OEM default apps to the extensions system.
  90. --- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
  91. +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
  92. @@ -1730,7 +1730,7 @@ void FileManagerPrivateInternalGetDownlo
  93. IdentityManagerFactory::GetForProfile(chrome_details.GetProfile());
  94. const std::string& account_id = identity_manager->GetPrimaryAccountId();
  95. std::vector<std::string> scopes;
  96. - scopes.emplace_back("https://www.googleapis.com/auth/drive.readonly");
  97. + scopes.emplace_back("trk:208:https://www.googleapis.com/auth/drive.readonly");
  98. scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory =
  99. content::BrowserContext::GetDefaultStoragePartition(
  100. --- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
  101. +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
  102. @@ -78,7 +78,7 @@ namespace {
  103. using api::file_manager_private::ProfileInfo;
  104. -const char kCWSScope[] = "https://www.googleapis.com/auth/chromewebstore";
  105. +const char kCWSScope[] = "trk:209:https://www.googleapis.com/auth/chromewebstore";
  106. // Thresholds for mountCrostini() API.
  107. constexpr base::TimeDelta kMountCrostiniSlowOperationThreshold =
  108. --- a/chrome/browser/chromeos/file_manager/file_manager_string_util.cc
  109. +++ b/chrome/browser/chromeos/file_manager/file_manager_string_util.cc
  110. @@ -19,21 +19,21 @@ namespace {
  111. // Location of the page to buy more storage for Google Drive.
  112. const char kGoogleDriveBuyStorageUrl[] =
  113. - "https://www.google.com/settings/storage";
  114. + "trk:210:https://www.google.com/settings/storage";
  115. // Location of the overview page about Google Drive.
  116. const char kGoogleDriveOverviewUrl[] =
  117. - "https://support.google.com/chromebook/?p=filemanager_drive";
  118. + "trk:210:https://support.google.com/chromebook/?p=filemanager_drive";
  119. // Location of Google Drive specific help.
  120. const char kGoogleDriveHelpUrl[] =
  121. - "https://support.google.com/chromebook/?p=filemanager_drivehelp";
  122. + "trk:212:https://support.google.com/chromebook/?p=filemanager_drivehelp";
  123. // Location of Google Drive root.
  124. -const char kGoogleDriveRootUrl[] = "https://drive.google.com";
  125. +const char kGoogleDriveRootUrl[] = "trk:213:https://drive.google.com";
  126. // Printf format
  127. -const char kHelpURLFormat[] = "https://support.google.com/chromebook/answer/%d";
  128. +const char kHelpURLFormat[] = "trk:214:https://support.google.com/chromebook/answer/%d";
  129. // Location of the help page for low space warning in the downloads directory.
  130. const int kDownloadsLowSpaceWarningHelpNumber = 1061547;
  131. --- a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
  132. +++ b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
  133. @@ -48,8 +48,8 @@ enum class U2FAttestationPromptResult {
  134. const char kGoogleDotCom[] = "google.com";
  135. constexpr const char* kGoogleGstaticAppIds[] = {
  136. - "https://www.gstatic.com/securitykey/origins.json",
  137. - "https://www.gstatic.com/securitykey/a/google.com/origins.json"};
  138. + "trk:273:https://www.gstatic.com/securitykey/origins.json",
  139. + "trk:274:https://www.gstatic.com/securitykey/a/google.com/origins.json"};
  140. // ContainsAppIdByHash returns true iff the SHA-256 hash of one of the
  141. // elements of |list| equals |hash|.
  142. --- a/chrome/browser/extensions/install_signer.cc
  143. +++ b/chrome/browser/extensions/install_signer.cc
  144. @@ -65,7 +65,7 @@ const int kSignatureFormatVersion = 2;
  145. const size_t kSaltBytes = 32;
  146. const char kBackendUrl[] =
  147. - "https://www.googleapis.com/chromewebstore/v1.1/items/verify";
  148. + "trk:222:https://www.googleapis.com/chromewebstore/v1.1/items/verify";
  149. const char kPublicKeyPEM[] = \
  150. "-----BEGIN PUBLIC KEY-----" \
  151. --- a/chrome/browser/nacl_host/nacl_infobar_delegate.cc
  152. +++ b/chrome/browser/nacl_host/nacl_infobar_delegate.cc
  153. @@ -42,5 +42,5 @@ base::string16 NaClInfoBarDelegate::GetL
  154. }
  155. GURL NaClInfoBarDelegate::GetLinkURL() const {
  156. - return GURL("https://support.google.com/chrome/?p=ib_nacl");
  157. + return GURL("trk:143:https://support.google.com/chrome/?p=ib_nacl");
  158. }
  159. --- a/chrome/browser/profiles/profile_avatar_downloader.cc
  160. +++ b/chrome/browser/profiles/profile_avatar_downloader.cc
  161. @@ -18,7 +18,7 @@
  162. namespace {
  163. const char kHighResAvatarDownloadUrlPrefix[] =
  164. - "https://www.gstatic.com/chrome/profile_avatars/";
  165. + "trk:271:https://www.gstatic.com/chrome/profile_avatars/";
  166. }
  167. ProfileAvatarDownloader::ProfileAvatarDownloader(
  168. --- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js
  169. +++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js
  170. @@ -85,9 +85,9 @@ cvox.ChromeVoxPrefs.DEFAULT_PREFS = {
  171. 'position': '{}',
  172. 'siteSpecificEnhancements': true,
  173. 'siteSpecificScriptBase':
  174. - 'https://ssl.gstatic.com/accessibility/javascript/ext/',
  175. + 'trk:152:https://ssl.gstatic.com/accessibility/javascript/ext/',
  176. 'siteSpecificScriptLoader':
  177. - 'https://ssl.gstatic.com/accessibility/javascript/ext/loader.js',
  178. + 'trk:153:https://ssl.gstatic.com/accessibility/javascript/ext/loader.js',
  179. 'speakTextUnderMouse': false,
  180. 'sticky': false,
  181. 'typingEcho': 0,
  182. --- a/chrome/browser/resources/default_apps/external_extensions.json
  183. +++ b/chrome/browser/resources/default_apps/external_extensions.json
  184. @@ -24,15 +24,15 @@
  185. },
  186. // Google Sheets
  187. "aapocclcgogkmnckokdopfmhonfmgoek" : {
  188. - "external_update_url": "https://clients2.google.com/service/update2/crx"
  189. + "external_update_url": "trk:03:https://clients2.google.com/service/update2/crx"
  190. },
  191. // Google Slides
  192. "felcaaldnbdncclmgdcncolpebgiejap" : {
  193. - "external_update_url": "https://clients2.google.com/service/update2/crx"
  194. + "external_update_url": "trk:04:https://clients2.google.com/service/update2/crx"
  195. },
  196. // Drive extension
  197. "ghbmnnjooekpmoecnnnilnnbdlolhkhi" : {
  198. - "external_update_url": "https://clients2.google.com/service/update2/crx"
  199. + "external_update_url": "trk:04:https://clients2.google.com/service/update2/crx"
  200. }
  201. }
  202. --- a/chrome/browser/safe_browsing/client_side_detection_service.cc
  203. +++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
  204. @@ -73,9 +73,9 @@ const int ClientSideDetectionService::kN
  205. const int ClientSideDetectionService::kPositiveCacheIntervalMinutes = 30;
  206. const char ClientSideDetectionService::kClientReportPhishingUrl[] =
  207. - "https://sb-ssl.google.com/safebrowsing/clientreport/phishing";
  208. + "trk:148:https://sb-ssl.google.com/safebrowsing/clientreport/phishing";
  209. const char ClientSideDetectionService::kClientReportMalwareUrl[] =
  210. - "https://sb-ssl.google.com/safebrowsing/clientreport/malware-check";
  211. + "trk:149:https://sb-ssl.google.com/safebrowsing/clientreport/malware-check";
  212. struct ClientSideDetectionService::ClientPhishingReportInfo {
  213. std::unique_ptr<network::SimpleURLLoader> loader;
  214. --- a/chrome/browser/safe_browsing/download_protection/download_feedback.cc
  215. +++ b/chrome/browser/safe_browsing/download_protection/download_feedback.cc
  216. @@ -231,7 +231,7 @@ const int64_t DownloadFeedback::kMaxUplo
  217. // static
  218. const char DownloadFeedback::kSbFeedbackURL[] =
  219. - "https://safebrowsing.google.com/safebrowsing/uploads/chrome";
  220. + "trk:164:https://safebrowsing.google.com/safebrowsing/uploads/chrome";
  221. // static
  222. DownloadFeedbackFactory* DownloadFeedback::factory_ = nullptr;
  223. --- a/components/safe_search_api/safe_search/safe_search_url_checker_client.cc
  224. +++ b/components/safe_search_api/safe_search/safe_search_url_checker_client.cc
  225. @@ -30,7 +30,7 @@ namespace safe_search_api {
  226. namespace {
  227. const char kSafeSearchApiUrl[] =
  228. - "https://safesearch.googleapis.com/v1:classify";
  229. + "trk:238:https://safesearch.googleapis.com/v1:classify";
  230. const char kDataContentType[] = "application/x-www-form-urlencoded";
  231. const char kDataFormat[] = "key=%s&urls=%s&region_code=%s";
  232. --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
  233. +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
  234. @@ -260,7 +260,7 @@ GURL SpellcheckHunspellDictionary::GetDi
  235. DCHECK(!bdict_file.empty());
  236. static const char kDownloadServerUrl[] =
  237. - "https://redirector.gvt1.com/edgedl/chrome/dict/";
  238. + "trk:173:https://redirector.gvt1.com/edgedl/chrome/dict/";
  239. return GURL(std::string(kDownloadServerUrl) +
  240. base::ToLowerASCII(bdict_file));
  241. --- a/chrome/browser/supervised_user/supervised_user_service.cc
  242. +++ b/chrome/browser/supervised_user/supervised_user_service.cc
  243. @@ -84,7 +84,7 @@ namespace {
  244. // The URL from which to download a host blacklist if no local one exists yet.
  245. const char kBlacklistURL[] =
  246. - "https://www.gstatic.com/chrome/supervised_user/blacklist-20141001-1k.bin";
  247. + "trk:272:https://www.gstatic.com/chrome/supervised_user/blacklist-20141001-1k.bin";
  248. // The filename under which we'll store the blacklist (in the user data dir).
  249. const char kBlacklistFilename[] = "su-blacklist.bin";
  250. --- a/chrome/browser/tracing/crash_service_uploader.cc
  251. +++ b/chrome/browser/tracing/crash_service_uploader.cc
  252. @@ -42,7 +42,7 @@ using std::string;
  253. namespace {
  254. -const char kUploadURL[] = "https://clients2.google.com/cr/report";
  255. +const char kUploadURL[] = "trk:109:https://clients2.google.com/cr/report";
  256. const char kCrashUploadContentType[] = "multipart/form-data";
  257. const char kCrashMultipartBoundary[] =
  258. "----**--yradnuoBgoLtrapitluMklaTelgooG--**----";
  259. --- a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
  260. +++ b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
  261. @@ -32,7 +32,7 @@ namespace {
  262. // The URL to be used to re-install Chrome when auto-update failed for too long.
  263. constexpr char kDownloadChromeUrl[] =
  264. - "https://www.google.com/chrome/?&brand=CHWL"
  265. + "trk:242:https://www.google.com/chrome/?&brand=CHWL"
  266. "&utm_campaign=en&utm_source=en-et-na-us-chrome-bubble&utm_medium=et";
  267. // The maximum number of ignored bubble we track in the NumLaterPerReinstall
  268. --- a/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
  269. +++ b/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
  270. @@ -68,17 +68,17 @@ namespace {
  271. // The URL for the the Learn More page shown on incognito new tab.
  272. const char kLearnMoreIncognitoUrl[] =
  273. #if defined(OS_CHROMEOS)
  274. - "https://support.google.com/chromebook/?p=incognito";
  275. + "trk:246:https://support.google.com/chromebook/?p=incognito";
  276. #else
  277. - "https://support.google.com/chrome/?p=incognito";
  278. + "trk:247:https://support.google.com/chrome/?p=incognito";
  279. #endif
  280. // The URL for the Learn More page shown on guest session new tab.
  281. const char kLearnMoreGuestSessionUrl[] =
  282. #if defined(OS_CHROMEOS)
  283. - "https://support.google.com/chromebook/?p=chromebook_guest";
  284. + "trk:248:https://support.google.com/chromebook/?p=chromebook_guest";
  285. #else
  286. - "https://support.google.com/chrome/?p=ui_guest";
  287. + "trk:261:https://support.google.com/chrome/?p=ui_guest";
  288. #endif
  289. SkColor GetThemeColor(const ui::ThemeProvider& tp, int id) {
  290. --- a/chrome/common/extensions/chrome_extensions_client.cc
  291. +++ b/chrome/common/extensions/chrome_extensions_client.cc
  292. @@ -46,9 +46,9 @@ namespace {
  293. // TODO(battre): Delete the HTTP URL once the blacklist is downloaded via HTTPS.
  294. const char kExtensionBlocklistUrlPrefix[] =
  295. - "http://www.gstatic.com/chrome/extensions/blacklist";
  296. + "trk:269:http://www.gstatic.com/chrome/extensions/blacklist";
  297. const char kExtensionBlocklistHttpsUrlPrefix[] =
  298. - "https://www.gstatic.com/chrome/extensions/blacklist";
  299. + "trk:270:https://www.gstatic.com/chrome/extensions/blacklist";
  300. const char kThumbsWhiteListedExtension[] = "khopmbdjffemhegeeobelklnbglcdgfh";
  301. --- a/chrome/common/url_constants.cc
  302. +++ b/chrome/common/url_constants.cc
  303. @@ -228,7 +228,7 @@ const char kSyncErrorsHelpURL[] =
  304. "https://support.google.com/chrome/?p=settings_sync_error";
  305. const char kSyncGoogleDashboardURL[] =
  306. - "https://www.google.com/settings/chrome/sync/";
  307. + "trk:251:https://www.google.com/settings/chrome/sync/";
  308. const char kSyncLearnMoreURL[] =
  309. "https://support.google.com/chrome/?p=settings_sign_in";
  310. @@ -317,7 +317,7 @@ const char kArcTermsURLPath[] = "arc/ter
  311. const char kArcPrivacyPolicyURLPath[] = "arc/privacy_policy";
  312. const char kOnlineEulaURLPath[] =
  313. - "https://www.google.com/intl/%s/chrome/eula_text.html";
  314. + "trk:250:https://www.google.com/intl/%s/chrome/eula_text.html";
  315. const char kTPMFirmwareUpdateLearnMoreURL[] =
  316. "https://support.google.com/chromebook/?p=tpm_update";
  317. --- a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
  318. +++ b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
  319. @@ -40,7 +40,7 @@ namespace {
  320. const wchar_t kIePath[] = L"Internet Explorer\\iexplore.exe";
  321. const char kChromeInstallUrl[] =
  322. - "https://google.com/cloudprint/learn/chrome.html";
  323. + "trk:252:https://google.com/cloudprint/learn/chrome.html";
  324. const wchar_t kCloudPrintRegKey[] = L"Software\\Google\\CloudPrint";
  325. --- a/chromecast/browser/service/cast_service_simple.cc
  326. +++ b/chromecast/browser/service/cast_service_simple.cc
  327. @@ -27,7 +27,7 @@ GURL GetStartupURL() {
  328. const base::CommandLine::StringVector& args = command_line->GetArgs();
  329. if (args.empty())
  330. - return GURL("http://www.google.com/");
  331. + return GURL("trk:255:http://www.google.com/");
  332. GURL url(args[0]);
  333. if (url.is_valid() && url.has_scheme())
  334. --- a/chromeos/geolocation/simple_geolocation_provider.cc
  335. +++ b/chromeos/geolocation/simple_geolocation_provider.cc
  336. @@ -20,7 +20,7 @@ namespace chromeos {
  337. namespace {
  338. const char kDefaultGeolocationProviderUrl[] =
  339. - "https://www.googleapis.com/geolocation/v1/geolocate?";
  340. + "trk:215:https://www.googleapis.com/geolocation/v1/geolocate?";
  341. } // namespace
  342. --- a/components/cloud_devices/common/cloud_devices_urls.cc
  343. +++ b/components/cloud_devices/common/cloud_devices_urls.cc
  344. @@ -14,20 +14,20 @@
  345. namespace cloud_devices {
  346. const char kCloudPrintAuthScope[] =
  347. - "https://www.googleapis.com/auth/cloudprint";
  348. + "trk:197:https://www.googleapis.com/auth/cloudprint";
  349. const char kCloudPrintLearnMoreURL[] =
  350. - "https://www.google.com/support/cloudprint";
  351. + "trk:199:https://www.google.com/support/cloudprint";
  352. const char kCloudPrintTestPageURL[] =
  353. - "http://www.google.com/landing/cloudprint/enable.html?print=true";
  354. + "trk:200:http://www.google.com/landing/cloudprint/enable.html?print=true";
  355. namespace {
  356. // Url must not be matched by "urls" section of
  357. // cloud_print_app/manifest.json. If it's matched, print driver dialog will
  358. // open sign-in page in separate window.
  359. -const char kCloudPrintURL[] = "https://www.google.com/cloudprint";
  360. +const char kCloudPrintURL[] = "trk:201:https://www.google.com/cloudprint";
  361. }
  362. --- a/components/crash/content/app/breakpad_linux.cc
  363. +++ b/components/crash/content/app/breakpad_linux.cc
  364. @@ -88,7 +88,7 @@ namespace breakpad {
  365. namespace {
  366. #if !defined(OS_CHROMEOS)
  367. -const char kUploadURL[] = "https://clients2.google.com/cr/report";
  368. +const char kUploadURL[] = "trk:06:https://clients2.google.com/cr/report";
  369. #endif
  370. bool g_is_crash_reporter_enabled = false;
  371. --- a/components/drive/service/drive_api_service.cc
  372. +++ b/components/drive/service/drive_api_service.cc
  373. @@ -74,10 +74,10 @@ namespace drive {
  374. namespace {
  375. // OAuth2 scopes for Drive API.
  376. -const char kDriveScope[] = "https://www.googleapis.com/auth/drive";
  377. +const char kDriveScope[] = "trk:217:https://www.googleapis.com/auth/drive";
  378. const char kDriveAppsReadonlyScope[] =
  379. - "https://www.googleapis.com/auth/drive.apps.readonly";
  380. -const char kDriveAppsScope[] = "https://www.googleapis.com/auth/drive.apps";
  381. + "trk:218:https://www.googleapis.com/auth/drive.apps.readonly";
  382. +const char kDriveAppsScope[] = "trk:219:https://www.googleapis.com/auth/drive.apps";
  383. // Mime type to create a directory.
  384. const char kFolderMimeType[] = "application/vnd.google-apps.folder";
  385. --- a/components/feedback/feedback_uploader.cc
  386. +++ b/components/feedback/feedback_uploader.cc
  387. @@ -27,7 +27,7 @@ constexpr base::FilePath::CharType kFeed
  388. FILE_PATH_LITERAL("Feedback Reports");
  389. constexpr char kFeedbackPostUrl[] =
  390. - "https://www.google.com/tools/feedback/chrome/__submit";
  391. + "trk:232:https://www.google.com/tools/feedback/chrome/__submit";
  392. constexpr char kProtoBufMimeType[] = "application/x-protobuf";
  393. --- a/components/gcm_driver/gcm_account_tracker.cc
  394. +++ b/components/gcm_driver/gcm_account_tracker.cc
  395. @@ -25,9 +25,9 @@ namespace gcm {
  396. namespace {
  397. // Scopes needed by the OAuth2 access tokens.
  398. -const char kGCMGroupServerScope[] = "https://www.googleapis.com/auth/gcm";
  399. +const char kGCMGroupServerScope[] = "trk:230:https://www.googleapis.com/auth/gcm";
  400. const char kGCMCheckinServerScope[] =
  401. - "https://www.googleapis.com/auth/android_checkin";
  402. + "trk:231:https://www.googleapis.com/auth/android_checkin";
  403. // Name of the GCM account tracker for fetching access tokens.
  404. const char kGCMAccountTrackerName[] = "gcm_account_tracker";
  405. // Minimum token validity when sending to GCM groups server.
  406. --- a/components/history/core/browser/web_history_service.cc
  407. +++ b/components/history/core/browser/web_history_service.cc
  408. @@ -41,13 +41,13 @@ namespace history {
  409. namespace {
  410. const char kHistoryOAuthScope[] =
  411. - "https://www.googleapis.com/auth/chromesync";
  412. + "trk:138:https://www.googleapis.com/auth/chromesync";
  413. const char kHistoryQueryHistoryUrl[] =
  414. - "https://history.google.com/history/api/lookup?client=chrome";
  415. + "trk:139:https://history.google.com/history/api/lookup?client=chrome";
  416. const char kHistoryDeleteHistoryUrl[] =
  417. - "https://history.google.com/history/api/delete?client=chrome";
  418. + "trk:140:https://history.google.com/history/api/delete?client=chrome";
  419. const char kHistoryAudioHistoryUrl[] =
  420. "https://history.google.com/history/api/lookup?client=audio";
  421. --- a/components/invalidation/impl/gcm_network_channel.cc
  422. +++ b/components/invalidation/impl/gcm_network_channel.cc
  423. @@ -41,7 +41,7 @@ namespace syncer {
  424. namespace {
  425. const char kCacheInvalidationEndpointUrl[] =
  426. - "https://clients4.google.com/invalidation/android/request/";
  427. + "trk:264:https://clients4.google.com/invalidation/android/request/";
  428. const char kCacheInvalidationPackageName[] = "com.google.chrome.invalidations";
  429. // Register backoff policy.
  430. --- a/components/invalidation/impl/p2p_invalidator.cc
  431. +++ b/components/invalidation/impl/p2p_invalidator.cc
  432. @@ -21,7 +21,7 @@
  433. namespace syncer {
  434. -const char kSyncP2PNotificationChannel[] = "http://www.google.com/chrome/sync";
  435. +const char kSyncP2PNotificationChannel[] = "trk:191:http://www.google.com/chrome/sync";
  436. namespace {
  437. --- a/components/metrics/url_constants.cc
  438. +++ b/components/metrics/url_constants.cc
  439. @@ -7,12 +7,12 @@
  440. namespace metrics {
  441. const char kNewMetricsServerUrl[] =
  442. - "https://clientservices.googleapis.com/uma/v2";
  443. + "trk:265:https://clientservices.googleapis.com/uma/v2";
  444. const char kNewMetricsServerUrlInsecure[] =
  445. - "http://clientservices.googleapis.com/uma/v2";
  446. + "trk:265:http://clientservices.googleapis.com/uma/v2";
  447. -const char kOldMetricsServerUrl[] = "https://clients4.google.com/uma/v2";
  448. +const char kOldMetricsServerUrl[] = "trk:265:https://clients4.google.com/uma/v2";
  449. const char kDefaultMetricsMimeType[] = "application/vnd.chrome.uma";
  450. --- a/components/password_manager/core/browser/password_store.cc
  451. +++ b/components/password_manager/core/browser/password_store.cc
  452. @@ -229,10 +229,10 @@ void PasswordStore::GetLogins(const Form
  453. // TODO(mdm): actually delete them at some point, say M24 or so.
  454. base::Time ignore_logins_cutoff; // the null time
  455. if (form.scheme == PasswordForm::SCHEME_HTML &&
  456. - (form.signon_realm == "http://www.google.com" ||
  457. - form.signon_realm == "http://www.google.com/" ||
  458. - form.signon_realm == "https://www.google.com" ||
  459. - form.signon_realm == "https://www.google.com/")) {
  460. + (form.signon_realm == "trk:187:http://www.google.com" ||
  461. + form.signon_realm == "trk:188:http://www.google.com/" ||
  462. + form.signon_realm == "trk:189:https://www.google.com" ||
  463. + form.signon_realm == "trk:190:https://www.google.com/")) {
  464. static const base::Time::Exploded exploded_cutoff =
  465. { 2012, 1, 0, 1, 0, 0, 0, 0 }; // 00:00 Jan 1 2012
  466. base::Time out_time;
  467. --- a/components/policy/core/common/policy_loader_win.cc
  468. +++ b/components/policy/core/common/policy_loader_win.cc
  469. @@ -57,7 +57,7 @@ const char kKeyThirdParty[] = "3rdparty"
  470. // The web store url that is the only trusted source for extensions.
  471. const char kExpectedWebStoreUrl[] =
  472. - ";https://clients2.google.com/service/update2/crx";
  473. + ";trk:15:https://clients2.google.com/service/update2/crx";
  474. // String to be prepended to each blocked entry.
  475. const char kBlockedExtensionPrefix[] = "[BLOCKED]";
  476. --- a/components/policy/resources/policy_templates.json
  477. +++ b/components/policy/resources/policy_templates.json
  478. @@ -3463,7 +3463,7 @@
  479. 'dynamic_refresh': True,
  480. 'per_profile': True,
  481. },
  482. - 'example_value': ['gbchcmhmhahfdphkhkmpfmihenigjmpp;https://clients2.google.com/service/update2/crx', 'abcdefghijklmnopabcdefghijklmnop'],
  483. + 'example_value': ['gbchcmhmhahfdphkhkmpfmihenigjmpp;trk:16:https://clients2.google.com/service/update2/crx', 'abcdefghijklmnopabcdefghijklmnop'],
  484. 'id': 34,
  485. 'caption': '''Configure the list of force-installed apps and extensions''',
  486. 'tags': ['full-admin-access'],
  487. @@ -7236,7 +7236,7 @@
  488. 'features': {
  489. 'dynamic_refresh': True,
  490. },
  491. - 'example_value': [ '{ "extension-id": "khgabmflimjjbclkmljlpmgaleanedem", "update-url": "https://clients2.google.com/service/update2/crx" }' ],
  492. + 'example_value': [ '{ "extension-id": "khgabmflimjjbclkmljlpmgaleanedem", "update-url": "trk:18:https://clients2.google.com/service/update2/crx" }' ],
  493. 'id': 135,
  494. 'caption': '''List of AppPack extensions''',
  495. 'tags': [],
  496. --- a/components/rappor/rappor_service_impl.cc
  497. +++ b/components/rappor/rappor_service_impl.cc
  498. @@ -32,7 +32,7 @@ const char kMimeType[] = "application/vn
  499. const char kRapporDailyEventHistogram[] = "Rappor.DailyEvent.IntervalType";
  500. // The rappor server's URL.
  501. -const char kDefaultServerUrl[] = "https://clients4.google.com/rappor";
  502. +const char kDefaultServerUrl[] = "trk:266:https://clients4.google.com/rappor";
  503. } // namespace
  504. --- a/components/search_engines/prepopulated_engines.json
  505. +++ b/components/search_engines/prepopulated_engines.json
  506. @@ -108,7 +108,7 @@
  507. "google": {
  508. "name": "Google",
  509. "keyword": "google.com",
  510. - "favicon_url": "https://www.google.com/images/branding/product/ico/googleg_lodp.ico",
  511. + "favicon_url": "trk:186:https://www.google.com/images/branding/product/ico/googleg_lodp.ico",
  512. "search_url": "{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:iOSSearchLanguage}{google:searchClient}{google:sourceId}{google:contextualSearchVersion}ie={inputEncoding}",
  513. "suggest_url": "{google:baseSuggestURL}search?{google:searchFieldtrialParameter}client={google:suggestClient}&gs_ri={google:suggestRid}&xssi=t&q={searchTerms}&{google:inputType}{google:cursorPosition}{google:currentPageUrl}{google:pageClassification}{google:searchVersion}{google:sessionToken}{google:prefetchQuery}sugkey={google:suggestAPIKeyParameter}",
  514. "image_url": "{google:baseURL}searchbyimage/upload",
  515. --- a/components/translate/core/browser/translate_url_fetcher.cc
  516. +++ b/components/translate/core/browser/translate_url_fetcher.cc
  517. @@ -115,6 +115,7 @@ bool TranslateURLFetcher::Request(const
  518. max_retry_on_5xx_, network::SimpleURLLoader::RetryMode::RETRY_ON_5XX);
  519. }
  520. + fprintf(stderr, "translator: fetching something from %s\n", url_.spec().c_str());
  521. simple_loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
  522. url_loader_factory,
  523. base::BindOnce(&TranslateURLFetcher::OnSimpleLoaderComplete,
  524. --- a/components/translate/core/common/translate_util.cc
  525. +++ b/components/translate/core/common/translate_util.cc
  526. @@ -18,7 +18,7 @@
  527. namespace translate {
  528. -const char kSecurityOrigin[] = "https://translate.googleapis.com/";
  529. +const char kSecurityOrigin[] = "trk:220:https://translate.googleapis.com/";
  530. GURL GetTranslateSecurityOrigin() {
  531. std::string security_origin(kSecurityOrigin);
  532. --- a/components/variations/variations_url_constants.cc
  533. +++ b/components/variations/variations_url_constants.cc
  534. @@ -8,7 +8,7 @@ namespace variations {
  535. // Default server of Variations seed info.
  536. const char kDefaultServerUrl[] =
  537. - "https://clientservices.googleapis.com/chrome-variations/seed";
  538. + "trk:142:https://clientservices.googleapis.com/chrome-variations/seed";
  539. const char kDefaultInsecureServerUrl[] =
  540. "http://clientservices.googleapis.com/chrome-variations/seed";
  541. --- a/content/browser/speech/speech_recognition_engine.cc
  542. +++ b/content/browser/speech/speech_recognition_engine.cc
  543. @@ -32,7 +32,7 @@ namespace content {
  544. namespace {
  545. const char kWebServiceBaseUrl[] =
  546. - "https://www.google.com/speech-api/full-duplex/v1";
  547. + "trk:184:https://www.google.com/speech-api/full-duplex/v1";
  548. const char kDownstreamUrl[] = "/down?";
  549. const char kUpstreamUrl[] = "/up?";
  550. --- a/content/shell/browser/shell_browser_main_parts.cc
  551. +++ b/content/shell/browser/shell_browser_main_parts.cc
  552. @@ -74,7 +74,7 @@ GURL GetStartupURL() {
  553. #endif
  554. if (args.empty())
  555. - return GURL("https://www.google.com/");
  556. + return GURL("trk:183:https://www.google.com/");
  557. GURL url(args[0]);
  558. if (url.is_valid() && url.has_scheme())
  559. --- a/google_apis/gaia/gaia_constants.cc
  560. +++ b/google_apis/gaia/gaia_constants.cc
  561. @@ -24,31 +24,31 @@ const char kSyncService[] = "chromiumsyn
  562. const char kRemotingService[] = "chromoting";
  563. // OAuth scopes.
  564. -const char kOAuth1LoginScope[] = "https://www.google.com/accounts/OAuthLogin";
  565. +const char kOAuth1LoginScope[] = "trk:181:https://www.google.com/accounts/OAuthLogin";
  566. const char kOAuthWrapBridgeUserInfoScope[] =
  567. - "https://www.googleapis.com/auth/userinfo.email";
  568. + "trk:101:https://www.googleapis.com/auth/userinfo.email";
  569. // Service/scope names for device management (cloud-based policy) server.
  570. const char kDeviceManagementServiceOAuth[] =
  571. - "https://www.googleapis.com/auth/chromeosdevicemanagement";
  572. + "trk:102:https://www.googleapis.com/auth/chromeosdevicemanagement";
  573. // OAuth2 scope for access to all Google APIs.
  574. -const char kAnyApiOAuth2Scope[] = "https://www.googleapis.com/auth/any-api";
  575. +const char kAnyApiOAuth2Scope[] = "trk:103:https://www.googleapis.com/auth/any-api";
  576. // OAuth2 scope for access to Chrome sync APIs
  577. const char kChromeSyncOAuth2Scope[] =
  578. - "https://www.googleapis.com/auth/chromesync";
  579. + "trk:104:https://www.googleapis.com/auth/chromesync";
  580. // OAuth2 scope for access to the Chrome Sync APIs for managed profiles.
  581. const char kChromeSyncSupervisedOAuth2Scope[] =
  582. - "https://www.googleapis.com/auth/chromesync_playpen";
  583. + "trk:105:https://www.googleapis.com/auth/chromesync_playpen";
  584. // OAuth2 scope for access to Google Talk APIs (XMPP).
  585. const char kGoogleTalkOAuth2Scope[] =
  586. - "https://www.googleapis.com/auth/googletalk";
  587. + "trk:106:https://www.googleapis.com/auth/googletalk";
  588. const char kGoogleUserInfoEmail[] =
  589. - "https://www.googleapis.com/auth/userinfo.email";
  590. + "trk:107:https://www.googleapis.com/auth/userinfo.email";
  591. const char kGoogleUserInfoProfile[] =
  592. - "https://www.googleapis.com/auth/userinfo.profile";
  593. + "trk:260:https://www.googleapis.com/auth/userinfo.profile";
  594. // Used to mint uber auth tokens when needed.
  595. const char kGaiaSid[] = "sid";
  596. --- a/google_apis/gaia/google_service_auth_error.cc
  597. +++ b/google_apis/gaia/google_service_auth_error.cc
  598. @@ -233,7 +233,7 @@ std::string GoogleServiceAuthError::ToSt
  599. case WEB_LOGIN_REQUIRED:
  600. return "Less secure apps may not authenticate with this account. "
  601. "Please visit: "
  602. - "https://www.google.com/settings/security/lesssecureapps";
  603. + "trk:180:https://www.google.com/settings/security/lesssecureapps";
  604. case HOSTED_NOT_ALLOWED_DEPRECATED:
  605. case NUM_STATES:
  606. NOTREACHED();
  607. --- a/google_apis/gcm/engine/gservices_settings.cc
  608. +++ b/google_apis/gcm/engine/gservices_settings.cc
  609. @@ -29,18 +29,18 @@ const char kRegistrationURLKey[] = "gcm_
  610. const int64_t kDefaultCheckinInterval = 2 * 24 * 60 * 60; // seconds = 2 days.
  611. const int64_t kMinimumCheckinInterval = 12 * 60 * 60; // seconds = 12 hours.
  612. -const char kDefaultCheckinURL[] = "https://android.clients.google.com/checkin";
  613. +const char kDefaultCheckinURL[] = "trk:110:https://android.clients.google.com/checkin";
  614. const char kDefaultMCSHostname[] = "mtalk.google.com";
  615. const int kDefaultMCSMainSecurePort = 5228;
  616. const int kDefaultMCSFallbackSecurePort = 443;
  617. const char kDefaultRegistrationURL[] =
  618. - "https://android.clients.google.com/c2dm/register3";
  619. + "trk:111:https://android.clients.google.com/c2dm/register3";
  620. // Settings that are to be deleted are marked with this prefix in checkin
  621. // response.
  622. const char kDeleteSettingPrefix[] = "delete_";
  623. // Settings digest starts with verison number followed by '-'.
  624. const char kDigestVersionPrefix[] = "1-";
  625. -const char kMCSEnpointTemplate[] = "https://%s:%d";
  626. +const char kMCSEnpointTemplate[] = "trk:112:https://%s:%d";
  627. const int kMaxSecurePort = 65535;
  628. std::string MakeMCSEndpoint(const std::string& mcs_hostname, int port) {
  629. --- a/jingle/notifier/base/gaia_token_pre_xmpp_auth.cc
  630. +++ b/jingle/notifier/base/gaia_token_pre_xmpp_auth.cc
  631. @@ -33,7 +33,7 @@ class GaiaCookieMechanism : public jingl
  632. // These attributes are necessary for working with non-gmail gaia
  633. // accounts.
  634. const std::string NS_GOOGLE_AUTH_PROTOCOL(
  635. - "http://www.google.com/talk/protocol/auth");
  636. + "trk:179:http://www.google.com/talk/protocol/auth");
  637. const jingle_xmpp::QName QN_GOOGLE_ALLOW_GENERATED_JID_XMPP_LOGIN(
  638. NS_GOOGLE_AUTH_PROTOCOL, "allow-generated-jid");
  639. const jingle_xmpp::QName QN_GOOGLE_AUTH_CLIENT_USES_FULL_BIND_RESULT(
  640. --- a/remoting/base/breakpad_mac.mm
  641. +++ b/remoting/base/breakpad_mac.mm
  642. @@ -56,7 +56,7 @@ void InitializeCrashReporting() {
  643. forKey:@BREAKPAD_REPORT_INTERVAL];
  644. }
  645. if (![breakpad_config objectForKey:@BREAKPAD_URL]) {
  646. - [breakpad_config setObject:@"https://clients2.google.com/cr/report"
  647. + [breakpad_config setObject:@"trk:108:https://clients2.google.com/cr/report"
  648. forKey:@BREAKPAD_URL];
  649. }
  650. --- a/remoting/protocol/jingle_messages.cc
  651. +++ b/remoting/protocol/jingle_messages.cc
  652. @@ -25,7 +25,7 @@ const char kJabberNamespace[] = "jabber:
  653. const char kJingleNamespace[] = "urn:xmpp:jingle:1";
  654. // Namespace for transport messages when using standard ICE.
  655. -const char kIceTransportNamespace[] = "google:remoting:ice";
  656. +const char kIceTransportNamespace[] = "trk:100:google:remoting:ice";
  657. const char kWebrtcTransportNamespace[] = "google:remoting:webrtc";
  658. --- a/remoting/webapp/base/js/xmpp_login_handler.js
  659. +++ b/remoting/webapp/base/js/xmpp_login_handler.js
  660. @@ -295,7 +295,7 @@ remoting.XmppLoginHandler.prototype.star
  661. 'auth:allow-generated-jid="true" ' +
  662. 'auth:client-uses-full-bind-result="true" ' +
  663. 'auth:allow-non-google-login="true" ' +
  664. - 'xmlns:auth="http://www.google.com/talk/protocol/auth">' +
  665. + 'xmlns:auth="trk:176:http://www.google.com/talk/protocol/auth">' +
  666. cookie +
  667. '</auth>');
  668. };
  669. --- a/remoting/webapp/crd/manifest.json.jinja2
  670. +++ b/remoting/webapp/crd/manifest.json.jinja2
  671. @@ -24,7 +24,7 @@
  672. "client_id": "{{ REMOTING_IDENTITY_API_CLIENT_ID }}",
  673. "scopes": [
  674. {% if USE_GCD %}
  675. - "https://www.googleapis.com/auth/clouddevices",
  676. + "trk:198:https://www.googleapis.com/auth/clouddevices",
  677. {% endif %}
  678. "https://www.googleapis.com/auth/chromoting",
  679. "https://www.googleapis.com/auth/googletalk",
  680. --- a/ui/views/examples/webview_example.cc
  681. +++ b/ui/views/examples/webview_example.cc
  682. @@ -27,7 +27,7 @@ void WebViewExample::CreateExampleView(V
  683. container->SetLayoutManager(std::make_unique<FillLayout>());
  684. container->AddChildView(webview_);
  685. - webview_->LoadInitialURL(GURL("http://www.google.com/"));
  686. + webview_->LoadInitialURL(GURL("trk:174:http://www.google.com/"));
  687. webview_->GetWebContents()->Focus();
  688. }
  689. --- a/extensions/browser/updater/safe_manifest_parser.cc
  690. +++ b/extensions/browser/updater/safe_manifest_parser.cc
  691. @@ -27,7 +27,7 @@ namespace {
  692. constexpr char kExpectedGupdateProtocol[] = "2.0";
  693. constexpr char kExpectedGupdateXmlns[] =
  694. - "http://www.google.com/update2/response";
  695. + "trk:182:http://www.google.com/update2/response";
  696. void ReportError(ParseUpdateManifestCallback callback,
  697. const std::string& error) {
  698. --- a/extensions/common/extension_urls.cc
  699. +++ b/extensions/common/extension_urls.cc
  700. @@ -32,7 +32,7 @@ namespace extension_urls {
  701. const char kChromeWebstoreBaseURL[] = "https://chrome.google.com/webstore";
  702. const char kChromeWebstoreUpdateURL[] =
  703. - "https://clients2.google.com/service/update2/crx";
  704. + "trk:05:https://clients2.google.com/service/update2/crx";
  705. GURL GetWebstoreLaunchURL() {
  706. extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get();
  707. --- a/chrome/installer/setup/google_chrome_behaviors.cc
  708. +++ b/chrome/installer/setup/google_chrome_behaviors.cc
  709. @@ -44,7 +44,7 @@ base::string16 LocalizeUrl(const wchar_t
  710. base::string16 GetUninstallSurveyUrl() {
  711. static constexpr wchar_t kSurveyUrl[] =
  712. - L"https://support.google.com/chrome/contact/chromeuninstall3?hl=$1";
  713. + L"trk:253:https://support.google.com/chrome/contact/chromeuninstall3?hl=$1";
  714. return LocalizeUrl(kSurveyUrl);
  715. }