diff --git a/CHANGELOG.md b/CHANGELOG.md index 66a610c1fb688b7da255f86c178aaa3c55570e86..5a045bb87498a304da7b5ee731acb5ffb843433f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,37 @@ +# 79.0.3945.123 +* updated User-agent version +* increase minimum DoH timeout to 400ms (fixes https://github.com/bromite/bromite/issues/437) + +# 79.0.3945.111 +* automatically disable video decoding acceleration on Android 10+ and arm64 +* restore enable-horizontal-tab-switcher flag +* remove non-working contextual search settings +* disable QUIC by default +* remove logging for DoH timeouts + +# 79.0.3945.107 +* always show cookies, javascript and ads site settings (fixes https://github.com/bromite/bromite/issues/133) +* remove global ads and javascript menu options + +# 79.0.3945.100 +* log timeout values for DoH +* enable DFM (fixes https://github.com/bromite/bromite/issues/441) +* updated User-agent version + +# 79.0.3945.94 +* removed patches which do not apply anymore (Widevine version punting, always show homepage settings, network errors UMA recording) +* removed split APKs support (Play integration) +* disabled password reuse functionality (Play integration) +* re-introduced minimal headers for DoH +* removed Startpage +* disable feed support +* updated User-agent version + # 78.0.3904.130 * support user-specified subresources filter URL (fixes https://github.com/bromite/bromite/issues/2) * revert removal of flag for disabling pull-to-refresh effect * fix crash when entering no DoH URL (fixes https://github.com/bromite/bromite/issues/430) * added Peter Lowe's Ad and tracking server list (fixes https://github.com/bromite/bromite/issues/423) -* removed Startpage * enabled dav1d_decoder # 78.0.3904.119 diff --git a/README.md b/README.md index 0bed5f147bf7b4f93ed99c62ec415fa78fe28fee..e1485c4c480112926edb0824092f959ba30ede5b 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,8 @@ No. ## Is Bromite de-googled? Yes, although this has not been verified (and hardly can be) under all situations; if you were to find connections to cloud-based services please report them via the issue tracker. +Bromite uses [ungoogled-chromium's python script](https://github.com/Eloston/ungoogled-chromium/blob/master/utils/domain_substitution.py) to disable URLs in the codebase since version `78.0.3904.93`. + Projects which follow a strict approach on this are [Iridium](https://iridiumbrowser.de/) and [Inox patchset](https://github.com/gcarq/inox-patchset). ## What is the SystemWebView? @@ -48,6 +50,8 @@ It is the core component of Android for all web page visualizations. For example See also [the wiki page](https://github.com/bromite/bromite/wiki/Installing-SystemWebView) for community-contributed installation instructions. +Ad-blocking was present and always enabled in the SystemWebView from version `72.0.3626.120` till version `77.0.3865.104`, when it stopped working due to [upstream NetworkService changes](https://docs.google.com/document/d/1TZEuPvr2KAbP4_TZpuuwtEEArQsyAkc2HDu68l66YwU/edit?ts=598244df#heading=h.ougoi5i6508y). + ## How to enable DNS-over-HTTPS? See [this wiki page](https://github.com/bromite/bromite/wiki/Enabling-DNS-over-HTTPS). @@ -69,17 +73,30 @@ You can use F-Droid client to install and receive updates via [the official Brom ## Does Bromite support WebRTC? Yes, since version 69. While the desktop version of Chromium has an option to disable it (video/audio site settings), the Android version cannot. +## Using Bromite will favour the monopoly of the Chromium/Blink engine, why do you develop and maintain Bromite? +In short, to show what a Chromium-based engine could do **for the user** if the user experience and needs were the main focus of modern browser design. + +For a browser using an alternative engine see [Fennec F-Droid](https://f-droid.org/en/packages/org.mozilla.fennec_fdroid/). + # Features -* native adblock engine +* customizable adblock filters via user-provided URL * remove click-tracking and AMP from search results -* DNS-over-HTTPS support via Google, Cloudflare, Quad9 and AdGuard servers -* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support -* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines -* chrome flags to disable custom intents and clear session on exit +* DNS-over-HTTPS support with any valid IETF DoH endpoint * always-incognito mode +* all field triels permanently disabled +* [QUIC](https://en.wikipedia.org/wiki/QUIC) disabled by default +* always-visible cookies, javascript and ads site settings +* removed Play integration binary blobs +* uses CFI on all architectures except x86 +* disable media router and remoting by default +* disable dynamic module loading +* enable site-per-process isolation for all devices with memory > 1GB * completely removed safe browsing and other privacy-unfriendly features -* anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs +* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support +* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines available by default +* chrome flags to disable custom intents and clear session on exit +* flags to toggle anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs * use fixed User-Agent to conceal real model and browser version * privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects * security enhancement patches from [GrapheneOS](https://github.com/GrapheneOS) project @@ -89,13 +106,25 @@ Yes, since version 69. While the desktop version of Chromium has an option to di * allow playing videos in background tabs and disable pause on switching tabs * all codecs included (proprietary, open H.264 etc.) * [AV1 codec support](https://github.com/bromite/bromite/wiki/AV1-support) +* [dav1d](https://code.videolan.org/videolan/dav1d) decoder enabled by default * built with official speed optimizations +* increased number of autocomplete matches +* allow changing default download storage location +* do not ignore save prompt for users without SD cards +* disable articles and increase number of icons on new tab page + +You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md). + +### Flags + +Flags which have been retired from upstream Chromium but are still available in Bromite. -You can inspect all functionality/privacy changes by reading the patches: https://github.com/bromite/bromite/tree/master/build/patches +* `#enable-horizontal-tab-switcher` +* `#pull-to-refresh` # Privacy limitations -Bromite's privacy features, including anti-fingerprinting mitigations (which can be easily circumvented), **are not to be considered useful for journalists and people living in countries with freedom limitations**, please look at [Tor Browser](https://2019.www.torproject.org/projects/torbrowser.html.en) in such cases. +Bromite's privacy features, including anti-fingerprinting mitigations (which are not comprehensive), **are not to be considered useful for journalists and people living in countries with freedom limitations**, please look at [Tor Browser](https://www.torproject.org/download/) in such cases. # Releases @@ -118,8 +147,6 @@ arm64_ChromePublic.apk: OK arm64_ChromeModernPublic.apk: OK ``` -If you prefer an UI-based tool, you might want to look into [GtkHash](https://github.com/tristanheaven/gtkhash). - You can verify authenticity, e.g. that the author ([csagan5](https://github.com/csagan5)) released the file, by using gpg2: ``` $ gpg2 --quiet --verify brm_68.0.3440.54.sha256.txt.asc @@ -130,8 +157,6 @@ gpg: Good signature from "csagan5 <32685696+csagan5@users.noreply.github.com>" You can download csagan5's public GnuPG key from here: [csagan5.asc](./csagan5.asc). -**NOTE:** releases before v68 did not have published signed hashes files. - # How to build The [Bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git). @@ -163,6 +188,7 @@ Bromite uses an unindexed filter file, which is periodically published at https: * [EasyPrivacy](https://easylist.to/#easyprivacy) * [uBlock Origin](https://github.com/uBlockOrigin) * [Peter Lowe's Ad and tracking server list](https://pgl.yoyo.org/adservers/) + # License The patches published as part of the Bromite project are released under [GNU GPL v3](./LICENSE). diff --git a/build/GN_ARGS b/build/GN_ARGS index 15be7a74d65998b1f0b5460a70b07e9c56fd883d..c790211259f71d1d5a714d2d0fd8e4f3c60ecf87 100644 --- a/build/GN_ARGS +++ b/build/GN_ARGS @@ -2,12 +2,16 @@ android_channel="stable" blink_symbol_level=1 dcheck_always_on=false debuggable_apks=false +dfmify_dev_ui=false disable_android_lint=true -enable_ac3_eac3_audio_demuxing=true enable_hevc_demuxing=true enable_iterator_debugging=false +disable_autofill_assistant_dfm=true +disable_tab_ui_dfm=true enable_av1_decoder=true enable_dav1d_decoder=true +enable_feed_in_chrome=false enable_gvr_services=false enable_hangout_services_extension=false +enable_iterator_debugging=false enable_mdns=false enable_mse_mpeg2ts_stream_parser=true ffmpeg_branding="Chrome" proprietary_codecs=true enable_nacl=false @@ -16,18 +20,15 @@ enable_remoting=false enable_reporting=false enable_resource_whitelist_generation=false enable_vr=false -exclude_unwind_tables = true fieldtrial_testing_like_official_build=true +icu_use_data_file=true is_cfi=true is_component_build=false is_debug=false is_official_build=true -remove_webcore_debug_symbols=true rtc_build_examples=false safe_browsing_mode=0 strip_absolute_paths_from_debug_symbols=true -strip_debug_info=true -symbol_level=0 symbol_level=1 target_os="android" use_debug_fission=true diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 23f44f0607659307542b74294b08a46754423e4e..312ae4690e69745730d21dfafb424bd51cb6003c 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -1,10 +1,8 @@ Disable-third-party-cookies-by-default.patch Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch Restore-classic-new-tab-page.patch Always-use-new-tab-page-for-default-home-page.patch Always-allow-partner-customisation.patch -Always-show-home-page-settings.patch battery_status_service-disable-more-privacy-nightmares.patch Battery-API-return-nothing.patch google-cloud-messaging-disable-experiment-status-check.patch @@ -14,7 +12,6 @@ Remove-EV-certificates.patch promo-disable-Google-promotion-fetching.patch Disable-omission-of-URL-elements-in-Omnibox.patch Modify-default-preferences.patch -Disable-contextual-search-by-default.patch Do-not-store-passwords-by-default.patch Disable-NTP-remote-suggestions-by-default.patch Disable-references-to-fonts.googleapis.com.patch @@ -45,7 +42,6 @@ Remove-background-sync-and-translate-menu-options.patch Hide-passwords-manager-link.patch Disable-Omaha-update-checks.patch Disable-update-scheduler.patch -Add-StartPage-search-engine.patch Add-English-only-search-engine.patch Add-DuckDuckGo-Lite-search-engine.patch Add-Qwant-search-engine.patch @@ -61,13 +57,10 @@ Add-flag-to-control-video-playback-resume-feature.patch Open-YouTube-links-in-Bromite.patch Add-exit-menu-item.patch Remove-help-menu-item.patch -Add-menu-option-to-toggle-global-Javascript-preference.patch -Add-menu-option-to-toggle-ad-blocker.patch User-Agent-anonymize.patch AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch Add-flags-to-disable-device-motion-and-orientation-APIs.patch -Punt-the-Widevine-version-string.patch Disable-metrics-on-all-I-O-threads.patch Always-respect-async-dns-flag-regardless-of-SDK-version.patch Add-flag-to-configure-maximum-connections-per-host.patch @@ -102,7 +95,6 @@ Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.locatio Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch Remove-dependency-on-com.google.android.gms.cast.patch Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch -Remove-play-dependency-for-module-installer.patch Remove-SMS-integration.patch Allow-website-sign-in-without-account-sign-in.patch Offer-builtin-autocomplete-for-chrome-flags.patch @@ -113,14 +105,6 @@ Do-not-ignore-download-location-prompt-setting.patch Disable-previews-by-default.patch Use-4-tile-rows-never-show-logo.patch Disable-metrics-collection-for-NTP-tiles.patch -e-set-package-name.patch -e-set-icon.patch -e-set-app-name.patch -e-set-popular-sites.patch -e-enable-donottrack.patch -e-enable-search-suggestion.patch -e-share-search-engine.patch -e_async_dns_disable.patch Enable-site-per-process-isolation-for-devices-with-enough-memory.patch Use-64-bit-WebView-processes.patch Add-option-to-use-home-page-as-NTP.patch @@ -135,12 +119,11 @@ disable-payment-support-by-default.patch disable-background-sync-by-default.patch disable-sensors-access-site-setting-by-default.patch Disable-media-router-and-remoting-by-default.patch -Do-not-record-UMA-for-network-errors.patch -Disable-unified-consent-on-Android.patch Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch Disable-search-ready-omnibox-by-default.patch disable-AdsBlockedInfoBar.patch Bromite-AdBlockUpdaterService.patch +Add-option-to-configure-the-ad-blocker-filters-URL.patch Revert-Merge-to-M78-Enable-AImageReader-by-default.patch Replace-DoH-probe-domain-with-RIPE-domain.patch Increase-number-of-autocomplete-matches-from-5-to-10.patch @@ -148,6 +131,26 @@ Disable-HEAD-requests-for-single-word-Omnibar-searches.patch Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch Disable-some-signed-exchange-features.patch Add-flag-to-disable-WebGL.patch +Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch +Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch +Revert-flags-remove-disable-pull-to-refresh-effect.patch +Use-dummy-DFM-installer.patch +Disable-password-reuse-detection-on-android.patch +Allow-building-without-feed-support.patch +Disable-addresses-autofill-by-default.patch +Always-show-site-settings-for-cookies-javascript-and-ads.patch +Automated-domain-substitution.patch +Do-not-enable-QUIC-by-default.patch +Restore-enable-horizontal-tab-switcher-flag.patch +Use-a-minimum-DoH-timeout-of-400ms.patch +e-set-package-name.patch +e-set-icon.patch +e-set-app-name.patch +e-set-popular-sites.patch +e-enable-donottrack.patch +e-enable-search-suggestion.patch +e-share-search-engine.patch +e_async_dns_disable.patch e-set-search-engines.patch e-set-informations.patch e-disable-autofill.patch @@ -155,6 +158,4 @@ e-rebrand-translations.patch e-fix-settings-crash-issue.patch e-enable-custom-tabs-by-default.patch Fix-About-Chrome-regression.patch -Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch -Revert-flags-remove-disable-pull-to-refresh-effect.patch -Add-option-to-configure-the-ad-blocker-filters-URL.patch +0001-Launcher-icon-updated.patch diff --git a/build/chromium_patches_list.txt b/build/chromium_patches_list.txt index bd5b435dedeb8f0a4d251877e048ca4a5500e7b6..daa4e582052a427a48fb5ae9410dc6d415717327 100644 --- a/build/chromium_patches_list.txt +++ b/build/chromium_patches_list.txt @@ -1,7 +1,6 @@ Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch AV1-codec-support.patch Switch-to-fstack-protector-strong.patch Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch -Disable-safe-browsing.patch -Disable-sync-services-menu-entry.patch +Disable-password-reuse-detection-on-android.patch +Allow-building-without-feed-support.patch diff --git a/build/patches/0001-Launcher-icon-updated.patch b/build/patches/0001-Launcher-icon-updated.patch new file mode 100644 index 0000000000000000000000000000000000000000..45e349dea5c8df12cf04694ff3754e9d32a442a8 --- /dev/null +++ b/build/patches/0001-Launcher-icon-updated.patch @@ -0,0 +1,1949 @@ +From 5f3a3043a5c9a91be887aff047362bbf7702ca81 Mon Sep 17 00:00:00 2001 +From: mmali +Date: Fri, 10 Jan 2020 08:39:43 +0530 +Subject: [PATCH 1/1] Launcher icon updated + +--- + .../res_chromium/mipmap-hdpi/app_icon.png | Bin 4212 -> 6844 bytes + .../res_chromium/mipmap-mdpi/app_icon.png | Bin 2522 -> 4011 bytes + .../res_chromium/mipmap-xhdpi/app_icon.png | Bin 6161 -> 10032 bytes + .../res_chromium/mipmap-xxhdpi/app_icon.png | Bin 10214 -> 17202 bytes + .../res_chromium/mipmap-xxxhdpi/app_icon.png | Bin 14761 -> 22337 bytes + 5 files changed, 0 insertions(+), 0 deletions(-) + +diff --git a/chrome/android/java/res_chromium/mipmap-hdpi/app_icon.png b/chrome/android/java/res_chromium/mipmap-hdpi/app_icon.png +index 7c125813be77f0933635aaf680660996ddef1271..c057b0771cef8c1074cc9a1d5bba2dfd2a49b652 100644 +GIT binary patch +literal 6844 +zcmV;t8bjrYP)}xIGumz0mUk?HWm^`B6P6^#CnN+2U;>yB@JY@A90(*1CxAoX +zK(N6;SiC@NKwe^D$tD&^wj__%*+;W)J=1&t?*2>Vy!zd;mXT&!3jtH-%#mjL|Nd3C +z-n;L;TUDRo>`ew>6hC%&KK!qn9TivHR=M$}jd7K?fH5B!lyltw+w&2J4$f0S7dt+? +z_l3RrxqZ)M{{0g>0pyFFJbA3A^qZY!6r~$n{!c#n?ya|OdC!#OS|7~-(Ubw4?XKS* +zNEYr12O>Th5f4yfs$EY%``m-c&))G602RQ3Ae}x``duQ+ao_u+t?zi-TmNlPQ&x`7 +z1Ib*0gE13KqH9V&zwMBm+&>P0gPRab2;U +z4A2R1!uRj`2unYD;i}y_v{Own!k6`XHN&| +zWPpT;edxuxFLm3(_jHY^CXQnRgURSatg8;C=`S@eE+--nq{y&6GiFe%Z-(wtjWq1F +zanmJ3x~)#>|N7PPs)N_H}Ailh3?z&A2k~{e{eosFs!M&c&&ssxlzFcn%xY4 +z)*|6gTV*u4%X>~=isL`~3_LN)F_-7CU&^eEn?~4cm#6mb{3=_uo$sB?6s`gzau!+i +z1vkO`49FUQY5+W!1=k8#Qy)Uu&Tu5bF&CW$W{1FIQ$WG`97X{!i{+ne17sVR+Yc71 +z1*>QR3su96O+yJ+BcNPTZZg3kRe0<#v+754Q(&yRm|kD7i&0#R<^Xf}RWOG~3=sZm +zR66OaY33OkJ(f$=xqwOsL%_k{Q6P9mVN8%VQ4LXI&IHmL5HE1#4UVkA@IbdAu615i +zdq2f4=wG43pSgg)y&UKf$JJxxN{k0px6Ps3kXyTayL`6kV17 +z5p}YvM=l&7BCc3$9!7i`N~8hi@h)h+d&IO#b|)lv04!VwR?#eY#OL*+#sx%N3{~V} +zcEGDxE<=N~Gl(>R2CAAsRxb%cpXwI(d#mRbq57sYYQv+aZiRDW*{HkTLfV(wJlH@tTB1p`D3 +z6CdfrPw!fdTWc5Q8_IpU=1h^#45c}ar#VKm9OD^|S<>^=q~&6{B%l?*ydfx&Mqxda +zl_^EHAyW3*Bw=mU4j@EcrvNQ(hE+ict3wPe9;*+|@8{rAi1?Wx_VeW>3!opV=fy$9 +zIq_@(n;V??!5i%OhkY7;I&LC5G5~YHFX$y6)ZXo=5&Kk55dU9VHR=#@s=wH +z)UALLsD$irfrT3oa7gFHOXm#`%~MJP3WNJ07cwv>`yf@fLTcZLtLweEu1dx=5eXY3 +zlHi(hoAXQEsBLata8M2j7#`@up}$^@75-DLmiXz_c@qa?9EW2jy5b!Bjz`7ggW+)5 +zAe|RL)TLzJ0G}Jdu0QX@HA@KPDIKE2eMw*}V`4N5OlCPIRTJcbl;fpI2!ufDQSh3$Om*s92KtC+c#VA9L +zj}2htgR4>Hv}}WFrX78))2HN5k|8^sVBQKaZy4}Zg83@I +zTwcK8fx~8pO985#K$S}pNg_9`Xjb4rR_7w;p=hRRCd{E%z()>2SJU9SF8ZMat01qv +z8FIK5tsaId7x3xzHasZ}m;hGM +z2v_rJkwz@Fl?{+^ujrH@+IAnqTUun?wM-HJU#tglM#6{5v~JvhOm<%WP@<4<$i`%pM+&z2A`FeVj#t_=D{8zliang8V_Dy +z`~bi&CQWR6cs~NmRtt@3DXlDk2>8UzB(7|)$1iVpobmlHPMO#>W#E}{69;B<;KPSt +zPWHe^&cUPvuGl1-1B%N7cq>p)oRBLT!4w60HVuc&AXT@43vGx4hAwm>UdRLa43LeB +z?3)*I&~jOzvK4l>SGX^82LQzeS8XeDnh9Bw@!1Uut_VxGvBol+H$9uj?!hPmp|GgT +z7i$8b$PcpA`$bC)dPH)16#sGiGK8EG?%7ko%+Z%&^zDJ3%ZN_eDx1I>*CN!q64zEq +zxH4=djq5`an!RUQ+26ga;cLGhK~sG_j`#N>_lb3j_4$;~-48|~J3VkK7SYqc)aXg1 +z-sH*s^BE}IfLy-ZgNDptUf)ARVzENxkkc-3Q;OlI!kUQ2?F=q$kl+=K^aMn +zW7A_3Q2b%>Y?5q+OnZ|1kb0>bTv$swuL-X7C{j6*Y-s=y7bK>~aP^8N?AlrkU8kWz +zdC@N>3>-~x?3p#tmo#zw_%Mu~-O!V>Rx}eL0uu?HWOu>VvJO(!GAqHeyM;bvrlO+w +z%7GODOY2!`+wi1{?wJg#0v=H^oZg7%^NBe;cxx@}GQ%rT +z1HB23LopK*i7fcsD9m&Wx?#e!xgfiJu=ykK_ybGr!qNbuZ_5@8m?H;~Kl&obNR_sY +zsK5LMyro&fpR_8tDq<1g!~Ht$etHaCQ!(^`PSm*0gd}eO6CzRMn9o~67%7kRcb!`m +zJ-NzSPx!YLZkgwZuQ1JE)FWZqYM&H+=N_SC3>os$N3Od2pUNqBw!rMMaa +zls+d1(eOw*<=G_eyFP+Qn4?ETEoN#tm}C`9f}v(0C#PVeQm3K; +zp}HnqTP0&tje_f|C0rIhGw}(2KLah3hS%p^to$gj$bX$1ATr(P#3*iC+l(i-So|}k +zay;Ct<2(HthL3i^=-rJ%CMgE!Y+em{D)U~vUjG3A&F%)#G5~q?iKQoHVM>|hg3QZa*0)r_NN8%<9&6{|2&P4B20(|6E +z7?XV{B&<5j=JrBvy#n=XufZ2KI&j~CJo;x-@OZt8wGw=O8t&hqu0ci7vK?1(CHA|4?$ar7eKFS1P!r?(Ay$ +zD^U|KM@_sispFMd1C!A>%&9($Fq1RT^D4NIFKCUj=w`ucI2%_Ax1wavR^NHXvJP=i +zcJLr%Ju3=WMslmE!JIj6$tbnU;jgO46%~>wb*`yaa8ofsJRR?U*jK<8c66hrxn0zE +z=V%2M`CjUr9OO_K#=8&U=kLA>+Zta3=DBeL4|QwUKCD7Nyc60)H;kMrLbk&n2CHd@ +zRM&~R+8R-lwfQA1_seMUGBkM^8a&d1xfA6{D<0Sne{;tf{6OSPp_;s~psHX-0e^pO +zC5BTRyJvI^&8A?E9fdhFi2VE%q{?PEYukmk)K*`OYpP`2ztMpQjui0u9eoJZH7{1Y +zE)EbGbS9O+RZSsGtH9v)hs48Wy92gm8xUBx8Cx3_{86)vH`OabTRxvg6G;I4cu2=P +zf7}gkZOd5+l&(v~X3^PDjeUP~_7%v>|2vEBp%KX53h1dQv`h-nvT)TbgF6sjqKhqJ +zK{Qx0ZzDQ_U~Mx#vf76CcG}M%+7c)Hde~Grb@!=vu=8HaI-D-GCG4xceC4` +zQt`iobEpW1gsX_m`5YWX3gh(HaooRkIX<%1;>3IR6!7I2`cYNid?K$QkW@_x&mMv)dV$f<1nTdWla&dT8-ykfp +zyMGXHcp-U0kQGbbpea)1Q`G~KItctSV!+Y?Qq`=;UX$+*o&bR=@y7>sJUXah&qxeL +z&r8sz2B537VT9J@9kBZ3%E+OMVzWalQpoE~t>&{H!o)s&zFQ?h|84xu>OTpq}7KV(N) +z5lmz_tm5ItEvV#XYJ3JOnrhLre=pR-J3$+;?Owl-J|Zix!sc2TTN)JHP^&B`u`cHD +zrO!Q|dj)}}j#D^^^y<<6ZhYyF*PU>!vwa__l~lOyoY1j<&cwcH9qH(}Sj{C;FJq(O +z(g7+ZjOO@JeDIdbu(d(Prn+;7%CQV})WETrfn#xwzJ!UPq=95Q1D=?MnIREA3FH!D +zhZ!9MQFFBWpv~IyQj$KH1Xr*U?r;_Isd+4~t$^3Y5OGTI+8H|h3>_f}>q0VCoP+#s@x#b`>bet?M+NC4gPMqB!$Siw23|%!Iu4Vz +z)KO6>%W(KYkOEa=ot(nCD-cGlhoRObA>?2PI<2K0s^sZ+7ir1d;tO&Ya=%9g3OF(v +zh2#w*7aa#TG-%N=xOq-w=lS_bm|~BS0cNwoL5qkj>k)2WkH6}$V||5;cmC)Q9JOsr +zHRO_ul>rdxGE~nP1(@+^WcL140N{+&L+-c{?XAtYsZPP>IvLm2D5w(K?k-N7&2iLx +z?j0L0p`0wb2++5e +z4iMcT1hmm1ym5USp4oP4=N5v3-0aA_A@Y@;gefA~SlYx?mLr=^0BRg&K4zA)?h~)lQ7046#P9 +z&yGMpwo3^2T&L}O)<#KkX}NwCJgaWN-D~Xl;;(0gyHgHSMu;z2P<+W8bb^a0FG|K> +z&>o%4JPH$iuvfQ0>9_%x)dz5W4H38vmq(=H?$+~jv+wp6@ZQIdU`2Zyy1Tpa*U +z?M-J747BugXx_k!6B_nM4GgC__U?WO{`SjZcR0!grwGuu$_I$AE8TgVKyTH>?n8`WlnFKW2zE|3OP6E9*2-o%RKtp8!14p~yZCQJM +z=4;(`VE~n$oEYhW9-l^d-A!T##xkFTO?5J^u2!(N!rJ6?sT;W$Stl(I-SXH3GVytY +z>s!htzo^pU;Bl(%@gRf8%&%Sa^1pd8i*Nnx`LltLcIE6o3QPkgoN +z%3JTAPh~FpfjTNnXj7Ax&kLD>0J)(hfPcQ$jWyxL_0E$AMeFciJDkHek5Ei`Eg!xl +z$293cozElByz=bVnB%SY-G1GBKDE7TB+4O|p_G&{C8hIUbPHwRT5J+7i9@PvK~uyp +z51FlGkDIWfss0Z*h3va+NVi86Y4+NFlh*EdDj?gu}! +zjr#7o`H94VV{xodHCmCnv~OA{9d6cjUGS8qW{d0fnw9Vg4M-9eM?1xAE;sD7@kvpv +z9UtXvbUrVLxaqPfY-I?&JMIWvE)od;{X_SxS=I2R?upoM_E^4``jQ?ICx?mM5$bnP0=FUuRmj2GwZ>IHT5 +z|L11YAv0-Hqhs)gTRiJaFBTB5rtrV->$lzf_V+!#t8ZF|{CoOp3PUqCEw5H~Job&P +z$#1;>nbNB%Xs#@fzCHTst7;qW+uu8)GpG0W>HQs?=hDW86-~;^lVkTK-_`h!B}`7P +zA_Yj>ej59C)gJiJfq@Bw*+i9jQF8YGACFnmQ%$br_~mVNva68z%Jx4DeR!eQZT(LLd6!wk_M<{BKdy-O)XjKrXMnu3pjQbl6yDO#l%o+wee4$eXV +zm29%~!ZVNO?(ea4YO7?>?KmEN_4&Q| +q(f()hkA3|4;@j^|1gVAQ{Qm$Ro5P$k!YNNklhh@!%{ooLThl@;tw1cyOLG^Zoq4?^mXb +z`Tw66gRw*Le_4bYqK=G5G?57u6DcN8Xi)c2N7VjF#Zf{i8H@D(s{J3%Ck<9OUv^&M +zlNW2|RdChJyGUTRy;N-GbN_dO>9(>iQ}057sYgMknP*nCnbQR)Q@dk^3zluvAwnr> +zYA?1dIwcbftRr++x@Ud4-1~0ThubQ_(6by2JSg0UMqdW$eNB8SVYydfg{gD;UV~3U +zbjh{pbiG(&#=m8-dgf}6bT`v&cOM#i(Lxxw4_6Wm*R323Ju1M|`_4lXr}OR$Og`43 +zQ}vvSdHvtl&R*q}6KLX9@w*`k7{ovhiVKou>1XAS&77_Ty~Wuu=Xn%078$3bvvBGf +z&&)4A^r;*mLKv_wh$+gWeBeW;^E<|j(V0q~6EgOBNR7to&2f6meTwUiJS%`OT7n21 +z*K%0qbGuG&ZQx>R7E~KeIg?g-=k8yI&69{xUJ!edP!K}(DCg9DC}8qvNE)|D&rEy8 +zXSZ`GDGWiQlp>TP%Tl-NISUpn(;+4IztwNl^;WshHSsF0rKK<#eL*zFt_6Y*j5q%a +zwImp;QaMKEJLfO)EN(OQssQAL5JWI`E^2wp(DrpzN*cF#rR&_K9!2fOxX?55Du1B_ +z>ABuRNrf%%nL5lUT4BhSs-gv`!7MqgPkjW;V +z1$l;UWhek2#Qh%1Ap+P=kLm>xjJM|Hpnxfe8XJ9Q!ZO$Ng9a!E1>pdQAR>U0gh?8m +z@={(9!NC3pvINi^X+Kiud=jE>*y^78y7fp`aqrcPT+JBuR(|qtq0TGx~xEhE8_`W5!IMu1u+oMKo=K3wLZy +z=mj&+e9(9PFEDT^1btVMqEbew8Q|@UB?xiBBw3%@PPQb9mYUiJORQgZi0gj5C7~be +zBU^xLmk9<=MABU_#F8VDNP;NHfXJ<)a!^1SN-qQx&pTkg<1YMVS0SwMxeZI)Z&BQa +zrBAWM?FrmzjNRm8M?@*?h$NK37t!}%C$gJg +z0lQ<%;mf!R@FgTv!q*A+VP9eu>_@&y7J%Qk0`Nak2VX@OgpkQ-xG7T8<$nB<6TkZp +zsUS*HY$q(XNdb;S7I3lDxI_@5k8%tM?o3HcIrqTAw-i$H8ljDdkV88Sv~_et?ww}v +zOR9wJkrl8bsuD$1qKGOKaUb^Zt6)!DH6nnoj?{wh(OTGx>`SVJ{mFGGqaOTD3c>%B +z5CXnygrM&mA^7_y2>ziN4xMd*@N>-ry1Lw#hMOXdO@23BC^57kWZi*M;MiUQu0sx{ +z=q?H>k)}u@Nv6~oa*RDnA?jQmw03kcWZW0_Kvr=NT(~6#ea2_ +zg#Se7gu@8$Vkh|WuDg)252w7Q+VMpXXgM@aN5o)ke-SvFF9XLhUz#GfGHHt3Wl|&~ +zXT|3wkW<*gkP@BN12!>YSQXeS!%7Nk{I{6&9;j-N6;*U!1P7DrQHl`0Nkk#Zjo^2@ +z5du%QLhzY32>lTyoa=zYDad)Lgb0a@E{M3$g+d735Q#)x>W1jcJ-|EHUPs3MKb6@y +zQ`?YtXemsrLLY$M=2YxQ8Nl88Gw4$(qDzfNB4>Lk+%6aWLrjwhpA-)IqhLx1Lk<)3 +zkY0(XrgmCVMO`NZW4Q$X&<C8uyF~|B@W~^=S_ZvdmQ8YfiPr>aN0L@%fwPk1CD(raJSr)_96nNi9qD&yGzOn +zlhZ1bnym?RV&n^Af(e#MQ)w*`(Lu?e6Csg-#K;Pfkr7A8=!N*d^+5u~fn&FJGFR8k +z@~R|qn9!0Oqgo`rNY6e)(zH2Se?c*&z$Jp*2~tT>DfKdPtfQ5cg9J#iijtL-Rn&n( +zhzv@?AeauhLNfay;c7n|$?AurSAT`0S-(O;YFmlCGE-aluGuRxQsjs--+2pr(G@JU +ztJsfnvD^xtNDpsn#Z?Qh8-D{Pc=4JBO%uG38j +zI$k}P9x|0HC5I`9NlZGOqU_=xNivd&lqZD{0oR@&Prjg#)8(Pm8z{y;El6wQ;fI+H +zC;%C@B%6o^Oc6@5&%uU`W#)Jj(r(h_h3g!Z$XS8d#Pt3{P+46!5ke%$LB1RU?|j1* +zs!=lp&9IJaucibsV923FZi(*$Q}3Tak2GtCeBhuU!9&qtd9g2t7KG4c*3j0C3F=c& +z4pUHUMn^finEtdNHAKfQQYVfo7}p2kXKDupk;R-+VwiH6@acsjEC(Sw +z`Uv7;C_$4~d7p760!E7Wu}<8mN(GUfw|NNra@LToMgzUo`0hq8D}p``PH`eGh7zR7 +zU3cH&cjV3lqi`s_?OPN!=Y?)0n-mlZjL?T1o*i352@t`pxd+N4i}u!Uz*Ka|wb{eqMmIRY^c9=;fC +z$fV~`WhJGsvK?QgXk?+ZX!K1ta%7J>n5ZK!Z#pcjV_6cNB#J7bw0Yaa$Y1C1hj`g1 +zzoZSe#Z|(|eD>ta_13EgdE*S3X^WzYmk3PQ=MhjqH)VAaOk_MY! +z-UGEwOer;uxH>NFg!r@;aODeOLr^WO4-mjc|9g;--N%|7!uGH$!6-o9d#Rb{(=+D& +zo31q@MXHfSUPf|D>?6`7xE<}4Y+02VCJ!o}RLtjQs`??1kCnCW3o +z`C~LSUtb?CtW&KRCY$+~9-as`9%=;3AWTp|Eqr>Q5<*j&S(Ou&A{1z9YR+e*M}ZX0 +zSZHjw$}YB7l~S03qID{c!A$SFz^&{&ZCElONY}m;BPxjx< +zWmyUnzBE17kzJDVvIrK!TK`(`Jt2hSEXoNyQF4`x37Mpv9A>Fa)0jNt?e!rw0>vdL +zo*t`+cGw^(uX?Zwx(`RQds&kccK%`YlqoZG$(Y#uID$H&t^KEWxR#;KZIl4k<&bTM +zbyN?QS1Zn34Y2ND4fy}q%$l6Yi!IG_<}TDD$IFO1+aHA*kIb4qf3cB8NPP>dau8dI +z98AyQE@^rK>%o~PfNygjjaUqUccHoY^@WR#sN;ani?WN +zQEa27joFIV4VK{|$<+SM>E;p12|rg~!!cR+5qWNi7CRrqRDKCC37IoSLqpftAz{B2 +zuk{gAg#7eaM|MlobEp~YL+i=^zEWcNmqm}Z?1}f)z~@4q6Ebo1J~z)SxoOC}iCS|w +z%U!?cZ3t_5ELRZ!iS$I^!Z1vPJ9Z%ipKDWCOhQKcfLFlT2rcb79P%8HX>>_FUtfVU +zfvWe{#!u4LGqB?AS{qPZznL!{Iz3UC9wH~a6D&hoz>SY9=KSIJn6R^T4>s?J-mRsj +ztw$b{dh7}8riOh{m6n^f)rL>2btQ4c%csR8;#X7Ut~?Pd{e2gTHIp +zYO8fxS~I!i8q~FBQP0000< +KMNUMnLSTYuDcsEf + +diff --git a/chrome/android/java/res_chromium/mipmap-mdpi/app_icon.png b/chrome/android/java/res_chromium/mipmap-mdpi/app_icon.png +index 005468fa2ece06bd3685f4792fc7d3270088f15f..263371c5cdb015bcbf244846007b25de8b652058 100644 +GIT binary patch +literal 4011 +zcmV;c4^;4pP) +zVh9yuR{|sk5{$7WFa`-CkhsB|IshFYX|;z|+H+=i?wRg>sn;_rwA#ZfQc!tSTf1A+ +z{oeQgj{kSO5sY0rU;%F5<$rT|aMfR35o(-sQre;piTdoTTLLSn(>v1h*$3&3|GqZ2 +z?*4T^5ga*`jLs5ANaTFrzv9-5R(|i6yNZFx(ylZNWvsDJeRU8(LNuV$90YeJxn=W% +z_uP?P`;+I61fc+^A595gd+)nbWAKrE5*-LMK_0y~+43|I%O=)19oxVyKN1iXGEzOer +z=3Kx2@=IIp9{Axh2ZZB7fs6n4yl>xi-}C>oGh@0uUfr}EU`Kh_u}OZUZ>l#(WjVH8 +zJ~xE=%g{7gD&(zm7X*x_?)bs^nLqr?3+f#2m77x^Y{~i-ByyIG5ML-*9Y3r{ZA-|Q +zP^w7n65!UstsGT>k^cukQd-qMU0dqU?R;Wo)k(s4!I~>izx7{#y}c)Iqv@3+j$Kbf +zMUcr}$fv>WMfgMD4VE`5N)#)>RQyY7UhP!A1`q_KK-quG|@6W)2JQ0J9oN{}dlEEYgk +z=-P1OaT!EB5H>VAvXVlvMAT<|(b!OW6G21k5w*X|7eKhD<1`Ls2^h!}SyAWV*)v^4 +zruF9d-D`hWWY~mw<$YZflx&HLA9c?3f?gIy&69bvLZwq +z+5n0+JaU4^6xL)3F4s-X0#lpoMGN%0%^1Lb7GZX3LP|lcY^|7W#5FY2}fnJXj@AjO_MP<@4gwg#+4e +zK(!k@8uVl(QIB9=SP_8EwQm+l@7ad8Wf38-%SpnH)h1t-sQFE9N*7XWlN=gC_UtCI +z_*6!Q1~IB)EUMO69@AJB)0kTYZ6S?D-}sYm+hX$Lr{2KRvbYRPCHPDNf#lGd#T>{< +zwhc+P4BDhkNvb5-&~1}VB?(6&f6ASv2B37E%;Z?s5a6xz$3|<~g!cw)wh!5SJS^Ea +zA~~3sB=VBs64<4p*vC?aSL3Yr5Nbv`hr +zMaJ;qpk&9eO@B^u>)XQ=w!DC+X+EL0MWhCLk;NR5#+EW4OuQ^nGYJ5t{o#=mCpLxo +z=`xq2sph~~$@Zos+Y>f>M{IT`p(|^n)G;S4oZmZ>HtlJNWm=$VP8Qt~ +zov+twoKmB4%ljqnd*&@3z5aBrZYyWFYhEw$)V3}{H4T%2utfaV6I(!OKhgOa_g}J* +zd0~y8ZZGjhuZ7*;iUB~Q*m&H+yrBOk%UvNTHV=yl{=Yf|gnik)^_)H!=&2?CJ +zN|VaHh6-iAU$QnyZr6JlRUwSpR>I*hBdIioKgcCBbyRe&-!n`o7^FhPN83RGP=&zw +zZY!s#ypZLj#vn_hI#;yne4}oBskC*-X6LZ&#DEIOoe7)QH?GG*;G4CC`K>dYQe#D2 +zQ0LR|84&ZpqKM8NTMBI3--nqUaV(^}eF&EqY!kbXL#v7r3kAqoa!luS1PV*UA0H3E +ztqTSYbnw@ww{hPJH*fUXJkf5lq0^!_IRcpkc5gc(+Qb=4=Fk$(821vJOiPL7v> +zD%VYy%9Uv3o)5|A^XOiGnHg<~D->s8Qw=vPFnF`qVp~G8D^WuBwPRZ}r$%7g8EZAJ|LwhbK6i?9NDjyRXFB4x8=$dF$tj7YjO +zHV3oP85!L9Y7g0t9r$N2AyyqBZ%H!Q95W(*o?YcbH90{Sq)ITmYCP|LoUnPW(_~|h +z#XFrz{K3#fM5+L!##lgYl`|zWJ3{(~8O}?JF`nLUvUb18D+f(R`VKnDNT|l8dImGA +zG$#i%2ViDUqu!@+Voc-2sK!n26nOZZE~;wk9Y41q(ek-U6x_w+cBBoa*nvaJd~iRe_$`vxOgB`Zexe?ncGH#%_ys +z?IpGyOyTzjCIVrJ_yhnvx}dLpH$S`dcy3%&&ZNpUp6M{1zgcg>~<0M>*cxU&Ux%Ou*+MlTK3@?7_}w +zFoeVvZNL|6n7o*aKRPl#4*+@7MhuOG6we|v$CdXo5pp~?E96iz)QOC{%hy{45#QNgN47k4c8aQ!Pep7@}HP)*|$0Dd(w +zfYI4TF*A%S5XLl1v{ie!sKwySMuSso4X3}IYN>ouu*->Xbo}!DH}m}B`S)=90(e4E +zM%J_*-asIZUp%ooMTPtVwEVHIx>y$pBPl?y5I+1tTP`FQ@Wn_M5!e +zUE-}?i@k{g_TT}q)V+g17^+(jg4c)U4&c|-K(=g+j%|OWP$=N7oyiGvXE}XC&)^6$ +zn*iHF3pX&c+Q(VVF77?m%c}KR-r3iWKU_U^M;7~4a`L9WG88DLhp~J2(7gC$j*seG +z(Bk5hI^Ah>rn_1nAE9I0I|Th+QvYzqgs-)yY~Js)xb~MDkacsYs-005e)1O860!fB +z0zl;$<=&|Sd)WA$C7jV<@W97KUhFD5$!1_EiA?o7rGrpqobCdbYD_#%&QAk@9dwERJ@jQfhI1Q#x>b*5}v2W`BXnsG`7GbN+w_N_Y!ssx>FX0uF>EZbaZv2h3oLTT@Kf8K^sl6_OUI+P)238pB?JOOeb*JCWhM$iivC+ +z%mSrik)jl6{s{hf11`l*m2U6YPE;?M_Oh8V?X`Qqf3Hoy|M1j?_E&X{Lu4$t +z7cIE$)m?`ybVE2b?*FGHZ5zv!-<)5sZ~kQGKMk*0_@mK_Zs&?uB?Sdy^$81Zd#fu& +zGL^Gcx8;1*VA9FnmyA%ItZq4Mn@E*UJFU5jXSaVYyo!b+X;Xo){TJQ5`uM-R{jOlZ +ze`5Pko@BQ0B}+N=_7T5_Sy3kKKJo_PL)uTT!@EqaMxsqhDq5xX)U1g>U6` +zSNQ8^om4Qby7GO|=&jwCifQy_(DE31Z}w382f59UtSxT(`C2vcIr{51{|l@}!0pt2 +R{$KzA002ovPDHLkV1lVF&+q^M + +delta 2513 +zcmV;?2`=`lAKDX;BYz2@NklV +z2sOqUwZVm99gt;MOexXYXpL17WL<_C7L^eUiEE-pQ8p39AR>YSA}ADOWY~ro22gwA +z?Y%Sa2)qOOW-v5=lyg1@&M-6Y^S!@&hu?dT*Z%)CfDtkdF@Hu(7)%*V7>t?c82yN( +zN$Q>P_HOCsOE+bEE)rc%u@{w=*aua%Eex)FLfGQZ_M+?8?Yu81FY-7mw0BE3f9;XJH#qp|RbR8*RN-Jeye^qcIa-=9Tg8 +zV*i_0YyxY*I)6Ziz5y)#2_}qhY0-iW(szI8AVz;&82B^$fZ`*zL3bJP(FI^*>s5Hf +z(!pZ}&B?2lH-6veOP-B?xzZ-^E+DTw0MAbc-{+Qco>L;9j`^zOO&tAm-R**O;y-i% +zf{%f$Tuyk>u}3Yx%s)TWE~o~j$0`7We>K>8p58K=5P!xFeiwu`0r*CNV;{i6uUZ?z +z#^tD|A?-BI&ie~%8&MU?;hT^oh8XJrge8Vpur}6OpTRboYqNej->_z~GjX$z>jl)`lFP +z=at$AYkxnl0?SP|FhnJVU;>a_H3xYN>|X&6A(gN^v;yn{%E3;A1Pov+8j6koV6H#2 +z@GJY?%CGc4^L?*B<@uEK&l8qttk*T06R-Q>oI@)~HyjA +zNuB|mBOU&xiyE%oRcWbfp~rNz;&YDY +z$$w#+wl%oYgGdIaG|TOsOr8$_LGgP4=;5c_op#C+Wa +zo}XpR9%&U!1pDj42M6#@?S&=2Ik*yeVCh?d?Q}=i9ta;>iR2e;u7>QAR;{?aLk)*6 +z^?<8H1CIL!cpst14i)skqjt46NNIHkR)4n{b{&>OSe63zA8Uu`6I~E{3i(C}am49v +zh(FT}31?K0_^k@W$llD_h~Z~p)~ufhrD_d{55_IA4S25SfhQ~gD-40Hgj8V=nu#iu +zS7_zS>eS#O?m=OeJPT)hPFcM!M0s5o#GfX*5tUB#tQtj;b81LJB-uS6xzGd27k@O6 +zlG6*)i`^Quoy68Ra`Z`^EllYHHeSe|J}m*Bdk*kCui!jXY6I{^RoFI7&*eXg(hM)p +zCQJjXqBPG#T)d%#BovmA?D-y$W+Nz@d{HNyO62uHT7DlK$nS@P1^wW;HRUaK8yP$O +z^E+1(9yUaBH}G7}VSqy5d0zv*Z+|5?{;h_3p4x_~Jcj^b0|=5d_~XAVUscehOi-(v9pLtEnL3UJ}WU#K*g9aTRj0m5RX9 +z`#KFRRUZ$)NuC{mKr!7a6x>$9!F-f0AW)d3FQYKZ9v+66WA*XmJUGBamw(8X5)vJe +zR1H{p7id?(!s|P@TA`qW<8T@#Pta>Az`bTQ$WU47?)m2AC(5nJ22F@s6f$)0Sfy^lxGJ>&Q;6Fd2oO!f&}H0mjw`} +z^uprc5?CrKruL!Fc$PQ^d4E=bYqh#I$|&sRQhfqjO!Wkve>x<9OM>z-NxlqsaVG}2 +zG7!LUd3FF!)hE*ORej_;a@ +z^apYtdc|$Z6f;4rN`K>lVqBqtE~-{P4zPkr~XAHNc +zp1ktYJTZysgU^9JD6GejJ;2t4yx8Xh%))ez +zjXR&D^hKE3hvFJ&VfOk2eLT`DMJX9^e(TLB(155Q^fJxIz?>n$IVbvGX!r@!dDc%r$z +zmxG72mxK()6QPqK(ZOCVLTn#Fj2zZSG=Wpteb|}VqPKiH&Weqr+hTN_@WKmP$j?`8 +zFaByY0o +zaFg_cb6h7lMLdL$_uhx_;|jgylP+|1n3>HoCpWG)F{aE};=9^is?l4TjcbwyoTFPY +zKr{G?AK>8XCr>9gw#!{VBqx1tei&0LEp!owxJ!CT#D5^D`ho-%tc#SxU&0z7{;X0j +zdFp$?=D1*TG32I)Df0Rf-^|^Hgm6RXT-iCc3)Y1c?aI?3cstqY6&qL{fHJhn2&Ik5FJ1$-kb30VD@P7uaD)Lze#aTwNZ;)1Mc)66XBSlru&JL8!1&^O;$uzJ<%o#j`D3qq|! +z)!!JWgmn?E5OJ#WrQ&-sZxzm4xaQ9&@LM_t_kV#kyrrfi=D(P`Y=uMcHz`h$@*bQK +zU4TRl2(Wdi`oZxH&tyfz4`|}qc1=jc8OhrV96msS*~oOmTE_6zn1D<}-azKhoV)Zx +z%k?o^978TePAKo%JVXK)$8?$%bPody-VTNJgSN3j)cds=Nk +zY0>VsRUB;Segp?a5eSg5BoG2gsyrJtkDqH@dCjG*S6sU>k=K@SNX-E302Bc9{XfLT0n`8# +z8T3fNDIXaB?ISzY{f|9W{Kb7Q1JLU?E!RKO_fNTILMS?zLHOqGCjVC+x$&y?%ibT> +z +zgCsZp{STekGZhAd8M?+TvMjgzWUTaH&%-bGe>(lq6;IZgV0`DeH5CCHf8&9>_kC{b +zg)6_hbGRavbxwq*9q|^?Pt6u$gl>_Tys^`)KmGjvFC;#(>g$u}b_^4aC+39Yf9kp1 +zw|3W@xAeuzoJlhMh=~8znmGk@u4`;X$imhu`EP&cZLUvGwG$>YV8YY6?M3z5j}WJNDuuhsrBzkjQO%OXn{f1L#P)0$sYc +z$I|z`^`T8byg*(NF+gmG;6KN1U%EK(<)N6WK~m^%Z>@!VK@k6Zc2N +zefYn*^RJelciuOTL`nMPH8vt2Ag7ppl=dpXf|1rE^funpI)R~%xqVG +zbkp1Jxc}MLh6|>;`Z=qSZl(%ov0?Ch60kX8Y3;_=CK*?@N!S=*=y5W%*rwk9=?ZWt +z&#^1P@kCh1wkSs;d=yO01FjI9UZ2<{XL)f_L+5lls?UA-W1E@pv;XWTRp+qDz`HvnEOIam=7F6F9fxxq$zmCx9YHUlW-8!> +z#`2n>erRzWV0DH`3YgUiIDBCKHgx+e2wE79hcW4# +zI#RbVB6o^CPA4$S4Bc(K`k2xN_l{5P%IX}YzMP@#5;(nCJSJ) +z1BwEsm;k1LN%d@zQ1T4CRtB^xP%eU(3t(!_U=A^+Whwl2%h}xl#s*}Z>#woqpI0IP +zZ#okUAi@`_9N9y=!8+DpO~8yc8_?wdmbw_)>@u$d;( +zR||cP862;kLt#*>4@QahPq3CsO19AY)<&rY+_6p(ME-7n4Qg^6JT?HHO`t{u6@;vd +zq(G?Z5g0jUj6qRMU}OhK@0-jZ#m^KorA5VO@zQI?acWg?`Yh~L`{~AT(bL4H=ITWkh_;Z@*0+{UWfAnzy`mBbG!`8JQ5b2c8fDV +zX3?*IF{0yrKktWc(bCfxL7yfDkOqnFdIDej<9Fb;H8YFtC;}cWa7618I$q>RRyf8> +z07bYYvAHUQDl67F$~sWixWIr2KOyZ!XQKb7*uttXm}Ln4?~nnf3GkZ%pP3G8&zY!67!gF~VifJu-{W>g`;(!LC^ +zI1NK=L}kWj!iBgFuG32sFAC&%MTH(86Kc^YsNpbKZD6hdSa2~sO|8hp!!Y|=;8Xy) +z4g?aD7ua!HSOzqrTS6&sSR&(}4r$Q)pF@RiwsG~sxYlpj*9sO~1e3Q}*Z}fW+8w|m +zJK;SHej%YuNUu|2aGRI_)+`c9IYi_FSvl#47_bK%??Fs_;Xr(ead|;&)T`mc` +z6FNqV^a9eE3=kiJo(>BzkIN=#U|?peFw{!ZVquRKkO>RN03v>s1G%9-VQ6dd5tw~V +zkh<1mX~2n1K?&yuB&;Ai;Fd)2wNT6cqny|@9_y)tE3rG1Ni1m%VE?;M9p#M`fdg3` +zhjJXRBy}9f0M8x@12z{t4(meMg@s`N5nm;pJlc<2E?CgOJQ9YKu=|%2j*`BC?OKvzYAY`&xQExnyK%G2)Qq9fNQTN$rf-N +z%IOGaOVE>JKx!0vA%j{)HEcm6BC4x&Lsw5CsQ~d9V6ng)>@b2c17a~M1{?aCek1(; +zdaNMH&?%TphD8oRGAU4OPB2#x2y`MC@T1Ggu+q(Nj$cBri(#!_LPy-b$*!*fv`1LFzsqkB=N7=TX_8v@Ww +zCYW4)z~2tZ*9wo*iB=oXN?wTtXm?2Pmq6LNNeGLN#{T(IN+VTj632JRK3bznY0bZdxKXgkDu4a}9bn4jDS6 +zo(pkVw;#_&bR)?#*;$y$7CP}e^Jf6b8{MSC#E=>~fbzjzh6K}p5{J2E38aqI=nc8C +z&TmN5Di6a_mxLuQCJgGEX^~N1`QveTd_KX{WF`j_>3s`Btp640sW6zQ2~uk>+%DIA +z4f6aMK!8?Z^dOj40c-BY<_-t0q3l)AumdEmvt4w|WEmnRNR_$J{lW%RfqaFdP~(QQ +zb3^KDy5YSlb@YOy)5IWR0n+glLIzrm`XESUF~H%1;td&Q!Pr{DpVt#%fWX`d|9=`*PvA=o7Jn0% +zy9prt$L@vV^k9WY5_U>2<>7HVk*(+=@l*PUcgh1>zw|V`%Qwv@P*Yj(r*pFbMEq=Q +z9Lqb~vHLie?&T!Mi!mMB!Wyn@lF0|4aWo6Q#m%v}8AlVsJkMxju;^YO*%Vtu3;^O{QBhmE%B;VFl +z#Au2K2qTgh6U23!nZSj<|4Ix_k5~MyL9mH;ZdBEg^iuRIOcANl$OuqK3d2uQ%_(_r +zvOu=jpqR->dmvk^0$H7`sum!7Ha7-Ts1PkVhT<(ff|CyoYWU@dhF^|q$R62)^6*}8 +zN(eBc7eTSxp-?8u6@t5MiIBKVB8D5*x8RmlW_Zj52{ZBc`L1{WR>fnl4Z+{C=%kTq +zL$4E)ve8le(fNyU??q<3oX|yZb|}NKFQcO`t>a)$M=2Et&xFCtMO4X&Fxwzo9Z;Np +zC=S9oUP~7tWtCy-8Zhv!Q5~-pT(j6S_>XfX?AGF=Q$_uKra?=o5#T(v5Gd$;@r2 +z6tWf31G^Fb{KfDco2s7jx&)k_(D7VU!?uWqgYgpd=n>(;IlY0o1ZBj4{G5z%fwrwy +z!Sdc-yr)aS740%E44pcx{n)c*{P?9obS&z`cr1xax&!z~uL)0wYZ%Du7%c#!c@5=4 +z4m_U_>WVxMsvD}7Rp`0~Gew~`r}%7`-ukwo9ItGGrF}W<))Vu&g;d=5W?lbNO%XK! +z)k+0$*^G~_w2P9*9*=}Br-U9CL(n?2EqURiDqcN2D)I=kthAUt14wETgZ;Sm$~E}v +z#*>RpT;+Hrq2q;^hL;l@+ha9kkL(5WwxFgKp;uJYVn+cox}=qv0qBshsEiE)Y1#3wMRhdmozIlFUYVlC=2(wv7V0Txb)ubXkT@%$kNSXsVw;8 +z+3f&gK)i1k3jb@%1dh|6<@nv0hF=U-@ytj8+L2vQqr-22Z*D)jI{XyGHMlnTc%$Qo#dyyRTmcuq(-0N;Ia3=V(jm}K4z7%_VW +z&_PT23~pQ-%zNxa;%0|#&ggPJ`Xh+ +z2fWP)ZMbxfHei-JfG(C?x$Mqg!=jg72?11bbch!EGNA5wW)b}Uz~L(H_}vg3!M52lfp$P{ +zRz{eR$7*5}55KP$SGAuSfTIex*OD4`#&qn6X?QKgk&28%j~qrd9fnq+3g>zh)QE_r +zy6bAOK(RT%tZu;K0CW0;`zJZQBC;m5(`%71k}QB#i?EXyauW5+z))0Gqex5Fpw;NS +z9OZNzJUV0~=NmzRNNjUh-F`@+#ZcOp;atBYFrf28x4Lora`OmCA<{F+F*YVVN6^{&S=o^VbAJ_$z0xgk*p|U{z;9SKEZ` +zrK*jA9OZs>9L{pVSaLD7*dQv*3dz?b06WS$Qw$&l7GY_V7dLb(xV%ll+aHdK>TL?} +zW?_bB#{jw+m2`cjgdbkv!%q*_@S9hUKt1q0G>XmyRII_)(gkVBMyzjj;Nm6;n?f>H +z`y{ONo}TQB;76BEj|ASiyMnu(96+G8LwGsGsxDMx +zC7(vEkcDDWU|+OSMCY?yvu8kq3Hg^E6XCn9a|MDc&&PFLGOlTtv8hQG5M{Ga?4l?8t^a~sgGlbHj%pniGlG3O$b^O$N8xsH=^@{l|MsaSV!n$$72M*Wp +z;RpA?-?_|aIhrl?Cm9Bc6$l)pLm03IP^;BMXN^`?QKO>bQl84Qz=+v4CuEyTMB}9I +zsiRZ4!*ja^VnB9Q{Q<(Q3lHJWck~MU<&K?YF7Z~HyU-BNrtVh2lC?e*cdWl +zbBm0%0kQ!ymU|_UyPeOX2z%4rFCfr;&TK>f8J)Iau*JQm;`sATt-^jiJg8w$QbRHx +zg`PNyYPAAQw!q%91a_Bu4syU}&w$1*NFLmc+HgMbE^Lx# +zm4wOHfZ?2uNQrd6E(&tT3e>P+*Z@k}k?ks}s!LF%3=*#S=wand&J_YZ +zB(=0IAfd-CW0_Zib^0on6KLzYXGFjW4vS@$TYZA}qFPQHKZwHTHym?(`_Lf +z=}T&rO~=CcvrX;z$OOf|U~VoD#kF-6 +zG&=?eJCI4Cv)PYV-|L)_S3~M)e_F%7q%LBD{4pJkY +z)dsV_#VE~ULZQ?o)L(&qhTCj$#2SaiJ;- +zYS56)HkfP~=uI70rhSarxSA5Dc_^*KVl8`=HS@ +zjCzT<+2Md`(P}u_dvI=0#)crFi44oUM({@AIxYtlH=H)(y%M01Ic|!j+bZs-zpud4vU3fOMIPbLlfjQ8OC#2r+$P +zRKxJNVH-}Si784gWs+Fb9Kd~BY@&J3V`2!|W}f$*d>_NqNM6wK_Fv?LDm0tsVt~aF +zi2<28?SRHE$R0g{-+km9T--dpTeCN1NY$RWhS!rC4vIou9a?+@S|%!Df(qq}X>SX_ +zg<^wx#nc1^j2<(?r6t?ofb0vs(b!jS;t&W0Q($rj;A-g-d$O30p%fj0%yp1nR~SdF +zkb-QsL-I5Um$=*h8HY +zm2ZumQi=?NIlM+EeRKeNCJMEXGng+FeEmA9DJ0kmdC_VtZVlm2ms{}7SIbC7#^4II +z&J_om{|;zKL^(EsruI%m`d$`6iy;z*p|!ePP})|&-rg$;b4ju&9$4a*(e0LmAwAv8 +zdFS(xJ625$Y9hhOM8~jc*&=Ma?$~ZYQgMShO3LWMW80mq;njqONH`2_WG{+^JmBwu +zv#nb=5hopsKC_!rS>T`Nu7VopAQEQB2jOX3Ed1)NZ3;HGC|Dnq1;##?MMYQCoSjs; +z(EGWnQEE=5=%oKCF+|3n5+n_YCLh1iu0%*>ms`U9`zv^S&k$Tq?T}@Ln#M&ekV+)5 +ztRsk*-*Y0)Gu`!i?@x(Y6J~i<>Bp%KyD$test*q1{`alMpDa6dF7ZHG$Du4?L%PTl +zP#MTzRzoI}61`Y@YE0n$6mjY_Y-4i6-sCFTsrX70QapZ0F2CsCqL+>pN=^Wf{mymY) +z$9yb|mey8W*enafPo4Yml8%a65ItXddAgf_C +z&#^D13EfY-G?p%ignS{Jg0pSuoHB4Hxi6Ikez-6UsGD6>MK&pqe|uLOLN>~D8OY{* +zmSF>cys!hti}XL$1Pc_K8$&v%lktt!Os +z7SP;K+DSAaORE_JS%p41Rks8UboDer_J)LaLJb;BmPI08j}Ac6D`Jw0$?gJk_`w_= +z0bw*bE$DDcSn4r!|8lP^nzhMOqpq6IKd<5&4{t+o)ddSl{JI;ufIDEal&AJ=!%f#; +zA+VeW4_7c2iJ=xbf^uRMHMMNS0}Yo&Of;mzToWt~H{kG#G83`~)WuFCC*5XhHIiU6 +z(Fhs_t4T6q0n*dP&xJQc(y3A#t7g3C#f~BG$-sV!gkj~A&~r)fLK4+n3Kf;6?$)QY +zG?Kfr40~$_lwhZD2*`~-4Qt_dK;t6CJ)Kbh000K-NklVvq_6NZvM> +z+j@m(v6AXVeTuLHZ4M^vz)Z`*7n%^H-bVAZ19ed*Nl*wmm|x$S6}!jkbj>H&I@RT> +zEbs%e0er#c1x=idL6qrb(@9*tEQANIUYPMH6d#c9Pkd&Xn}O$K^tsjiJqH6y$b$WP#e=_IwFXKlvmA>$WWPW;^b9XMh0>?b~kb=2D!>%E{Rs}*Le-7u6kmoW+5>J&AZ4n-1!G6)YM-=E;%2F)8y +zbE?ikcAItyjk>H*cTFh^P-PwY{xqRW&7-QSMlk?QWArwO;ww6q$z=p@3+U~fgpq;) +zsWURTl~jXTEE=Q3sw%Eq+lDJTOrq?B+|*8|Y)nb983~v(v53HQU8L47d?<^7qzWsw +zH&F-YX;C>R+*Oen5aArBZFF%R`xIwxG&`4zSuAhy;>Gv6&jg)Mc@Ao&y7-|iB9RD8 +zULwOJWP2V(chlUMsJmedQRe@C{53Fn&6$`T-MA=n8}son%0sVV@da1no~=#{Wi|9= +zG>qkq;@p9ZjuJKNk=iIwKXG2nbfCf9dbJ8ot3t02n&-IOI(Z0jz3b%?9zIxrOlT-Y?2|@O&XtOD +z{vAEQ!EKkKPe1&5X4?FL3%1_=z_Yss#ucVm>otLMKJiqzQZ*Z;{G_V +zsqDNZt+l7`ykRo~&NE&A`1T#ojug(V=^`MXKDoOPmvM??G-mUW?_bVmpi&QSr3gkX +zLX1O^Wg*GNqWrNYO3Z7zE=mc-Lwqa_SX^FMonDyCCSx{u{p+Xs@~1nzrbv)BFLJ#6 +z@KqOIB>X+k7k+bV&-q)vF%ZpZB64|?tVUs!s6t~9_`XQj)--TR*3_4nib71G{sU5F +zG81`w8rXD(b^G*`({*i0lS@AI(zefLzIx@~84maPH?`dO5BKbS?A4<_X10+UnteUV +z^rv3XZyX;foEf)$-nXFhN{L;wu08eBzqoldUb;6d>=6l-`+pz2qjyQ?mj|geNx$!8&`e+@$>%-e3JAbi1)eA{}>tUV?&jcO1CSAAE +zcko}fG;aiw^t}0rQMAUhguk@y?Qgs2lEok)iR$9vHopg+(VL7%I-$PH7Bxv5gSC6^xmXat +zG0JYjX`4#NPr&P*f9(6>#XUV=d0~)-Dxp??)a_e#;nbYw0wn~L3l;~k{m`Mm&U|vk +z-%hfp$9T*qBc_OfXeTuP!+|TV+OXtX`;+?WBT;(H2+e^M{hf{1n@sS|%H} +z`~Lmy=P>w2<6C?Sb`0JlLt>Eg{96IKM>tCu?Sm3U`+|HcfRk(36krj;GPlzt(Y^GMnd-i0CB685w(&PKA>sl9!PT=lTBNLt+kt~t3TiU#ezRK +z1CVyuqI{DDaFVW_b@4s9`NPg1CtcZ-P3fH?xt19+36@YiQP;dj*BIP7gU)25M8g6e +ztXt5$_oEf77CcrDKsd$tMhM^}ef-p4<>nrL;U%U~a7$PiBLX1_A~?}40i0kA@VGc! +zvh@pY9h}p+d+A%N-hHgjDaO}T0H#6%pijR2&C}o>dVfHqUDy_sofD`E^sq>rxIPbu +zhg#k<{p%lD`rP%O0jK!|9O&l??cj|YZe0BQH7it& +zkSdNP0c?*y?fdr+C>n9ub1jzl0@IREI0^-@p>c+EqkhT3ivOKa@!?+%INFG#Tmai{ +zj45|4y{?%TJz<8pW)nb35FnKz*dlq{%yNe}&s_4%B`*L7+qRTE@Dx~%e)h!M@-Muj +zVo`%N@F_+9G1+YhhDdM0@TVvIqI}VaGcL;mpeLI%o@C20Cf+h{w0p!2oBgKeTuI0N +z&|DJG9LzW;@0{QK=fAF;eHs8m@y7aE04Mpb$#;BkmFXT+9+Y}!hlLr#v4~L6m2LLF +zc=d!E-ntrqD_J7&WRXAZmn-gV7R7T-i|}JB?3ySpeKU6@mAd{5w}a(h$zLRZ0eY{RObw1yOkG#9Nm=+*3Q! +zdgS?cee&yuaMqmwi(Dl2*Ea=Wq>UYZ`ef|-Y~IT5juUt{1<)tmw(zRPaPF^(7%29= +z_Rrs#n&8(;etrJ+uU*mIE-LR1`4fINcXTri{=1L_FaijWL_j1GTM>QDY)VQX;2Sx2 +z+_YJzDG^wz1YiKP;b;FaH<&hRktL%kAf>8z6e~nMa-m~U9@Eko3Mald=!6M*%GOyb +z1mFPN#i!l=nh3iyi6p=n7?ENv-ikn!n(U{eQ$UlsvX49ecP|6*0N}|MfJdz7#)a3m +zhTZ27WYhpj0x{Yd#n%EHjlH7O-cktJ-#z>K*RJVGd%(Y{^_+Y8gGD^A&YBY=D7SD3_V0QhQs#i^X^|2VdZZvDQkpSH +zNnlJ>4t4A?NPuJrI+sXK)8KV8xOIVGNTMYmU|O;7w-3>C`#MqL*;k^3l&McrwOkdI +zWD*mQl1NyROjD4RmOFYjfO7x{743p`W<5W7VEKhc@fq*H213mTuyw;mFg+JA(!ihr +zj7KBFfg&L$fVyQc*5$+|8Ah&;Fy=%rMh#6zX|WrH**Z9P_QwegEn!sEgs@|O8@BIh +zg+C|}%K`=trfMi-44kp(eQ|(C?w!B^5MvR7!CCBABgg0^7A>QGFH({*FwVdc{akP! +zxvuFNs`pl0`saJ5y{FcgsjC8L0K7BiG_ED?DvkRGCb9MNkKy;5;I3Ri_W?`?XUcdO +zk8*8u?i8VO@+pMVhZ&eUJ{PB!dcnKsP((N^L=c~DYR0bpAuy%{-~i`#qD0QYz*+PX +zXHnuMV-b-#sWObg7DEZZc$9puL_6}45p_VaZTqjT8a5h0prcyA5@rANd;dAM-;fKI +zqaDal3pT7?35~nJjBLR0f+8X~YJvTuvLcq4d=e-tlDK*50F)NHk}^ElUl+#GPn%KQ +zAi%kHB(tGNCM7_GH;R%AFfh%&U#@C}#yObAVnRhDTE$dJC9o1|-`1t)&c1tkc}KN? +zCGdXlbx&8l%3ax$+AY9s&e&)^wcv|Gf02K+Ws6E1T9>%p7W@GBOOmu`= +zKSO0bP}2eg%_un@gHVtT49W#^)2Ks%KHJ=im0tuQi7WCH*`&zi46sR6+0CKrTGXl{ +zD#a7d+Ou00Evpjs-P?aqGF{aInOFe(nl^sYZABxeJ-jF3HVzp?#qwnUcLACK=E_nc +z#H@(@e=AbwPAkgxn)vNciZHC$fD?NgfaPCutl0_Fwy=cRUyx21GZZ*)xI}RloIrKG +zg@1nHN66&h+_oSnA~nvy4GlVH;E_z{HY+j0ZL-z1XxQ~dowMlYy*TT-fvZ1!^Ps(` +z-?;$pA3ePGC!XBl&vw>FZ92FMySDBGm;uIhFjpoR_keZOAh%;hg&8IuoG}oESsH8r +zRgJ*Qt2ox}W!9iTQ^`2!u2+&Y>F|S|rmI;fi1<;ZkKc5KlN` +z?RCEFvWNC|hy_Vyx&l!a5+0a1ez-4C;rkpC{DqTx}@a|_J2aQ=x1GYQ}KzH&fewt{0?FH +z>+qko>j7>6TvsAwMjB`W99G1RSdqakJbFXC?F230iGOpf-=~;J(g1GsV8YA`2rk{0 +ztgeNyq{0MXv~MTQ4n#Z|afCC6O~sXEz~6rV<3Z)i=2ypTD3Ji}EAC%9IepN$*Wo}% +zVrY!8ecfub_`?9xKoL9QfR+xfyKE~`sTQjfGcHb74X#c8!|!rzJ(yhbV<;;G?wus# +zMA%$up<*`&V_HHxfqgxWaFtMwvg$zg2W_iZcFDtcd~c!J;6+f-+p7Vd>>-o7GGS#A +zL&?Zd*jT<=4R|a-Y5)bI+0PB70RhB7j4-?iapX%xGC!&0JF&GIcwz~|T^A7)Zx~*z +zV|Ps${*ac?PGA%6tO@ai$1XX<8F2jYivg&OzljAf3~#{{bP<{>4MhWsP+fU2HrfH0 +zh|U`!O^Lvi2og6awH#V9eHs0H3d58i2b21mg&IX8(xqTv{~l+IhRt4RD09e#LTtxue=L4bU_I8n~Vo +zJ!cGKN_9N&Q(J(_M&O<|Gzi%RUVBhb*MM192o&1xhYvTIXbgD4+9TXyCn~$`?lswj +zGjg;M3IyPhJ13WXv1V~K083p0cXC*K(!@dCPdFEbju@$CM}@i@0*F8&0FVFyn0$78 +zzwnh+ym!b~umtc*Igh(GqSydP0-Qxhx;!#Yhz3(*g2+giMcX$PEyq~&TvO#3w|h>` +zTN!)a#l=p}b*BJXd1b?TQsdKe3SoG6zziN)q_-DjWDt4%JQzL96F10G{rr@Y@5Gv& +z4Eq~_B9#jTnSi00Agb&dCCZ6!9#YOad4+B;ApTT_QiJh07h^U683J-XbL1WGAa1;OiIRR!b-V +z*S&)iKl$7_1Q-UEod5|FL;_q8xFisO(m|fMiM84m*30DE#cG-v>issunLY+0D`k6V +zG`DZCb2lP)mVssrfQ@cHj?Q#11`Zvhx?~arg053!F(rn|dh`|facxixX>I~YrmPq2 +za(jw9s{!25U0KQ6U65Z?0)hmQ1SBEdt7ae-YFZKq+)KN;YMSGx*fot(_MK$0><$G` +z;A9Cek_16I%1$Z+L4aVv>xuumpvij9CH1UmARK=WhK7_u^N=r|bNhtFf(%ATBD|S- +zNb?!d4^QyXlydTu2 +z6bs90+po@&x{to7bQnTr7}fRRBm51_Nj3SM7ca5z0j(wjfu~G(5eii~|5Fg|gCWBPVr!-CaC!X*1?kjh^)W-cAZC(XYRr)MQgy8W<2+@y*H~Y-!(I{VK!8xw{vAjW +zEND1n=0lQA&v#FdNC--uOPx1d#*JHQn^W64YO34cxd3&0Dt01;2y5xsu)Pg249o^j +zAKYG*NiF$fhZ2gipb*{e5)wvI8(t@NY+BW^01BdN^ZQjuAp~)(sdB|#yXrd3#S)sJ^B-e?fP#*|ZK +zWa~(3d!pS63T +zH?v?kQjDxL;O6tJxB(FnB3no1uVJuc&$3?EqMkq5u{H5vgNc7vv?4Em04P=DD>NOd +z+IZU~L#6%diQunf6bu}No +zTwuy*C;1j$T5=G1c?C}LQ-V!vm%pHhw_@5Q5WB_5eB4ref-AcKI;rxzk+ADb?4`$UQU4tw8mAdJW6SEHynAH=kjPi;$*c<04G +zex!Cr%fuFBi{b^){|66loRgk^`~>t8JUVdU$pYht*%|9Zy`M#v5o?;&Vv3qlF35;X +ztl3uP01>dX!jE^#TTqzAF=o_puw?4j754Ahvgn>4kNUZ?pFrZ>(e^b1K+dV(yZ!9Z +z)Bf-VdJ&8P$K?{ff2zRX96~a%v)aV`l`Ys&ZGp@HE*f6~x5t-q@`(ulcxvXQOWt^P +z6@dCgjj$6MfOG(bSN>`5LZ2`1IP@}f4wUwn7*{G$T0qb^x&$GCEmbC#Z44YfTCgku +zAuWs=?8UGl10Yi{!RJKdp{i{&qmAzY0Db`Ct3Ier%Cr1?K7QdL^Z_ghY(Bs-_Y)oe +z^DhJQKhv;oAIHJw_E)WhK;+*(-!1XViU5B9Ml=4pqz#)YEeJs%0(_dp;FA2*ldrJs +zoxeY%hz|phU42SY1CRk=z?F~gTHs6XKLmXY^%yP;9&Il?2C2pUXoLk2Zfk*MSpW!9 +z5J)}IZ3vzpf{JO*0f9EAbrU9r1(A?2~`l=@oT&k{9%a`vzasTM456uH( +z=t~d*LPR4FcH|EMQd$sFsAqHmFhb;y0QzSD0}FFtiPV!%QexqYf4C1oi{emrq$BS{ +zcoTrXV&UWKnrgOugrfjN(Qtwg&GwiqL#mFL1<xjSHF^YIhx6^ZFe(kT8=*I8pbjJR~7<5CSrCs%nD_ +z;gr&BFilJOJ}+T~G57IXW;E37uL00v&-(z$5x};hHUN!VSG>CE%awn-he&prXcb9= +za{s6pOxY2D;!GVy`PnHaUrK?+^Pjr2{Qdb`RQ9)Zr`6LOSEr0v*!@mC(fI}+#)u=Z$?+>7u +z6#=M!|LLpe)@=FkMIwn_1w{prAONw^t^`O#u8$bxL3Vn2iu~RlY;F8>@$*mrX8KD2 +z>J=v;Th~+xV7CWN0O}V$G5N{EBD|E^wF74rBoJT^v?2mT1<|w+h91{(x0BFwNRrrC +zzG&`acTagnk>6yGcvB~UbJZ*WpfM&w<%YMOB59?Pc>6>VA2|pKDFi?gBm_g-HVa>8PpLpz7)1Fqg)9CDSrcwZ>2yFlw033S%FF$%=%SUtWkwHHtlXU86(52b{ +zK@tprl!PoVp`?Efh>~nM3Z@yt!k1_N@|oZM=p_gFR(JK~J>>(AY{RFU7H63`y)_M!kz +z5n5v+>@0t4)7!s4{j&P1FIE%DuSR$mw|Lk+AOe#DBnTxrItp_#lV~@#-|yMBZpHoA +zj=ps5@&%g#)Fp*{1(xKOw|Ue`S{8uJ@mJ6OUhx@M-Rt#b>dEVN5qzhkj#XdCS*W{70y%#+wo3gw4QDog5CynM$$7ya>^ +zNlle&KPF)&anJ?T=vt8s9XZ4cpD#(|tC8)lFV`%)?`PvCA0~eRfLZ``2^!o!7r?oQ +z)2u|OZLZy3`Sycn-(5a$=JjodcJ2a+9!)twN=T_j0Fq#^5QY?ILneU^DFv!4ckKN8 +ztQ&v&z>M+t)b86}smMQM_w$qcPDzH;fGbOK0Z3D})DJ+~$rERuR(9S^zevk08p<@| +zD-OD3%=;sxOG|*H1uGoDm=nAhke>zWQO297t=_xygLmf4Ui|9g>j1PWtMRL!!z%0L +zvGh7yri9P|c$5(R)X_J5?A2vu=ihuydg1W%bi)TQmax$!Awhy5Nk*q0go!Lq5a*08 +zf+W_hS``kpqH5RX50}3AyIS?oDH<0gz%|I1K>%^8I(Ed +zf|=t6oHXHbZ)Wib&G3RT<&4tKeklo%5<*Hqn2_Nh#-Eaotc-qLnm!1J+fZLuwPoX~ +zC9f}h?N2M~YxXq(2q?l^)iLCFsdLJ}`rtkChI#{?SA|cVyAO+zKJ=_BM;4Db|Ln~C +zvh#FLdJf|Tz%-DIdNibf5CX^L3ydnwgOG`>#j-*OG&VIFLGF+WZOzpUwfpzh9oV~X*QQmwHg7DiX|6vIP{f8+ +zgkprN2s^BXdXJF40dq9gIsijOOca+o*X%OTV!vaHY4^ZXh<3tqkZr249E~gWJ`sHn +zW``|^9njkOnX7OJU=!{*igpMmJNga`M;DlVR0P|NIClhVZye$X;aEtbM4A4r0EzF9 +jIRtWo5=?*+j#B&|%zWMku!{zj00000NkvXXu0mjfXQ*|T + +diff --git a/chrome/android/java/res_chromium/mipmap-xxhdpi/app_icon.png b/chrome/android/java/res_chromium/mipmap-xxhdpi/app_icon.png +index bb216c1a0a5262530fad2dd95bd6e06d24e35a17..fc99ea6825826cef16732ae16c1e260497b62e7e 100644 +GIT binary patch +literal 17202 +zcmV)2K+M01P)IMRX^7?*GRjwGiTm&pXYtb +z{oId2a}EW-0AS5{yWXBJ?pl&ux#+_2Ty3>7jdP$?7l1gF4rmPz0RG+CPbLJxP7QwAdKq*=!zJBIs&G&QX`u)zd*Uz*l +z{I`bICbR_;3T+-QmMu{`cI}${$+q9!drST^uX@T|pm|%Q`CQ0p#QH9K$@y>l>h15^ +zlJnmVSo4Q(4-EBd%nJAqbt$h3IZ-4c_ +zR3HA&29V}#jphQN1{iF-^XACwUjE+q~o3nn-QJ4Cpe1WB{y4fD`VfhmE;PAGozkK-Rt@qDxH;(FL&jvu#;8}O) +z#5+4XTR*d5ARmF>Z_&YV5qnau&e@Zi)e6{v)~Hm>bxR`o(b35dY;ycNd{NzOzbqXF-fTDh|)>#l%O8g*y;>$ZRB>0SJn<7wN1c@{jUFJ=z< +zW}0Djd%`e>26z4A)SJ%vD>qO&D0_V<05PJnF28H)9r2FjmpAUI5+THofjk`->czhZ->+_sp@M$~%lg8AZgu}ALu_{VR^-hOl1T@C@!OaRH&b?wh4Kfb#f{%F3U>QIUm^Rvg9 +zz5-g;BYy2!Z>Fo|YrZ{oL1ru6XjsmM0oMkVIY` +zx9Z$~X(4*%pJ&B%o%Two*Uv8g@b8CZIac43f3wPazCK=2P)e5Ow6Z|_GG0^3T~W0)3U#1VsX>=> +zKq(K@ihykcb{#Oi?&E*})T#qk&3PCez%T$`7zl)+0#OA0UW7eBz*MMfpk|R8b=n=8 +zN4sA`N9u3ebY0|IQnq;WRHy&B_tb^x^sRQn<% +zBTfFW=AQao-_3$mH=ng6wE3=Qsq0kN7j|A9U)Fa|x@Z{=KkU@rzW5EYw4(}mey74; +zt@hxmj`{7#v>Y||1~9{_A(q5rI1VDM8-1c99e3^3`0^GD4^7(epFUnCiTX%{Ogpn< +z?{#X;&-8o8v(?W-Nl(`)o%`YSELuQsNa3ax2CnQdkgEevr8J&M+1QZ>MoK`Deo#%z +zYisp7bfqMuJlGbX>Fd~n8clykJQ@CnB|#f7+$G|({H(#tBtlHU>qj^m#j==z+F=dPsGzdj0K<*H(JurBU@3cR-gMU-HYPgawoT?b6oKcDAlljn +z-{}J$u8KtJTIpL<=WW$rLFsGu-D-2)5|8iexpfdX`8rUuLB;`ett|eAJnA)o|7TQX +zN?)1-0?Br1CwlVupnO3{xyJB8`}{DJ39kupp1lh2n1Ej?m~KjpZ$n^KX`Ec()@+SR +zU4uI&&xPkCn6s)ttqP|98MW!$BvjWqXbGC9iv@DbvR3!1&f6+aLt)ja03e^KFj3a1 +z@7@G>1Ax~Hgj-++!f5j=bO(X1ph8Cw=npC+dFA!$bf0W%KG*Y68X47oTPX{rqI3P@1%EyLRRc&*rJ*Nw +z;d8IJ1n)X`_Cex!85l2XOjLleipFFG7%$nFr~>J#My>{At3b|85|-*fv2KH<47y5n +z`d2J#xIT~A4BLjH4@Gb*fH>w>D51Rq!X5)b4-hthFn3oISP}t#J*M%@&H*HP7CYOQ +z8`v%Q8ZPt)Xq{8-|6a-hCm(=lfihJKT|o~9Ug?viU^aMDMq_VLV@F=&nVgNG09AHQ($3ZRwjhRszopK&7fE*OL +zuaW4@hL#7TIF>P-XWO#ijkO@z*6zHVe|IGR%gGE(A1C)_caj5$QO#wo3K6fuFLttS +zl>w?H=voEZwovDlVCXF1Z~#F5Kd+Rb7(~0v&nrih!5j}?$9zvCI`jJ7u!_JkByw}E +zuk&xo`w$d{yKmYx=kd@p4{E5l7IcmSpqJbou4 +zWOV593Ap{HQ@E9crJ+zgDgCCC5J2>KJcdG@H6#G(OcvG25w}0mxjrVYF +zTXVO{8ZcGS$W(!mvW-*)NYyk(%D_;;v7Ff&P|jt6N*<_|rLIQsSybXmb|TTTG&(M&m7awO!Y(=C@~T%7oe*}@hQM(Wxy5(+7#bH +z9ArA%?z2Q;jVQ~lR~U3|>G<;X;&|^LBZ-4dM_C+cI?S$9&G?@+GuxJ}SW$nA8xTJ$ +z6bF1kD1Qhl7)OiWKwD4=7pX6#&=&-j#!M^=1B)XHpW9T&*MGMS@!n-8TNeAo0*Dbt +zdT19ua_utw^@aPggR~B;o^P1ccq(IKOIBl7UJF2UAx&>n0HG~Q0AWd4M!0d)fRF;J +zL}^+gGKr8H7hmFO<J4yWM69*tJH@6HX;l6x@ +z7eC%(;qGA@g{g7q+!SC{piRGo*6zIvOYU|T2v$v$W(@w{^tut5ABqbeio;`?5^1qU +zmhdatLfQgOO^n+Lw-?sL_=x(HY(FfdhCE6t=R7ag)t<>}T>0M>p}!`g(PMIACAXDH +z3m{f^#<8btBVPq{wFFhpN_v8z){Md!fjPp4@P*@0tnLQl@C1UgO*#ooCsA<%L;Mp5 +zphi`lch%(Hov2rF9bvq@WeaC#P>%P7Kap;h832?4D3Q?6W06TPvU>opx@0MSaP|Ci +z4&1`FW;LEpYivx}cy!9f&mVsV-p*x`&pOT^I{p9>zh`tWLhXIHs>8&ktqPa58Mvs` +zKxbfKA;QJYGYYE#IVSn)WF|sbi)B76r(=W3KyC{mQ(;5O!uQwjhS}OD+ueLGkXWFK +z1zjm(@Qv+gZQ>2_u?=;6@;`o!jW7 +zxC9IqH1-s13>JZLZUZG?qHLpJ1LblBD7sl*`WQm=s*68m*Xz@zkZDJ^(b+^t)*nQq +zXSsyx;)5T;SDtOAiX9^3g$i_P1g*V`5cM)M&g~cI2r4WJ0gECAx`Rq?CT7n0yV)Fl +zw^uN_Ya6yEwQ`_DY~Ss{62rvU3#-WUzC15GuGwZeKd+*APzTtPYKN-nkU9E4m`7ec!DhNchj +z(A;StoP>(Bpg*LrB4%J&)M-OnlT=ufG$c@H9D#34LHPoR`;6mbi8PKcfTp%TiJ!gc +zV*EkRJ}xr1lZPiPJTz|O!Er4F_@Q(bIy(+jif$Cfter;|#a0To6epbr;}C|uj7XH5 +zvw=VCL}MnYs{!}}KG}{KiLw3_^((1~MOh2;IMJ7n5g4BhzJ^p*=jW`=5gr~|BgF(G +z>r>9pSnneJqssc1r6tU#Wo-13@!w2fk~)$qJ6k3@Mk>{s14;tFT866RolsszL@-oW +zQ2rpioy!GmvJSNp>{>-0r0$xgf?^Ri+=^Ih8~$XeiTfusHjI=I5BrZNfQk!lfp~-F +zsv3UN!0p%i@XKKvcMQ}qIGKSxH3YkqL*3xT_QUk}p-cm|Y&90_N)aXj!Ydg}0Ff31 +zqH*cG=nk7$9CDIv{b8pz)(G9%9C)%5&lpKfRUq4NwyK45)CKsudU>kA(c(iv2w+q;M=`fZ6PO$NCz_0xdj%c%FV!$rqg*-h*;x +z%E{fBCOq73SU8nwMJ7}r0wdmmCGj9uCloGhRag@@aBjlDl8DnWdZrwI{F^H7c=#E# +z^evsXdMvqEqdV}d)hiJ7D%>|}p`0Fr&Zl5k3QlO>xfHQbaN$98yZ|I&`}hbdnQ?e% +zO~P^6+Y^Z-E=U@jRd$Ydch3gfoK-ga(9+_LE7Fe>Bs +zkS$FfO1d|AW3b#$(M#{a}ZMKmPs(^sYP~6^j{lU~1PEeEbD#@S(N) +zmwlMMrz=1g;3JRKU==fn$KuD7_&n;3db|LXn;JuRM<=fDF>rOKi3?i|oELX|ieo(p +z05TM(Bnbx$6l_eCG=^9cE0WG?OW2;RFnrf2S1Zs}`W58e6os=Y{)qS>6~}*;lTt7Y +zkHai8&v`y@4cAXB=a9&@6g;SOjNM+rUv9Ud`u_I$+w4zZg7NIHy=?jzY +zQkxlU3vBD-cF0ENE}DFJU$4UJ!WnVja#r& +z0Cvq#qrf^XXd+#|Zbarpb<*(4^AX3ysl9o80oTW)pI3unTVTOPTBW(QN0QK`0#vdG +zv1oW2JhW_+qr+ISs0UBH^vG$DWp|XZch7Eg^(_*{!GatFP#b-q1**n#T_>KnAK!iJ +z)p*^q!&ll_VSjAO#zPYt4~KO#$CPYw4RA@1 +zJU>nhkCv8YZh5lZ+0JvmYD+Sb*3n5!YT;)y|D^0HbTKE+F#+Ka_#HdPf6Mz=7JOb) +zw#EaMJ^0mf<3p0hP%V9EPsXq|Y2b=Bg=cq|Sli;{j&|lW&i&G3NGv%|4CVqsXyE|F +z?J1j@LRWhmcD~BFTeuj^?L0Vc;l5E@fU-NOVz?(3Mqc +zQ`caU20P$?A#QrYDw-^ +z5pyEH*)(C&jN7EiYk)L{Xcv-+7*@oXI5Tm6(h%Q(kr*G%I0Bz}41xYt)7Hf`T$tGQ +zI5xif3Y?#4&gUHJTzmh$gvp69w6}N8J9FGPU*@hz%Bx!%Wm>^PPApzD+1iX{I?{VI +z0Hha$P{zBNHK+34Esj4z6J%8-Dd!0WVT2O!Cp)n!<`hmZY2(8bpe(c;%4eUb;UoX` +z1Y(O;?PuO;IdiE=gc5Do`icNr{Eos#g9ON}OkAL2yfmRN4T!H3@q3$^^y7Iof|G?O +zE~EDSJqUPA7@bS8w4)VQbeMQvw~2Kv23E%%2eugpeGy?JR)EQ}E!5TF +zJZoh(*kqWgYfP1Zie}x+!qD!Wh;}cP#XfMW;2k}gN<*iHB_k{X2`>3e*o#u$pwt~p +z6m0+TK$`(5MqC~*gvIC&BOnciN{X=DO4%tw*5MDfmY_>nL|fXL3Z7=Hy@ +zHf&N@Sumx2m)p|q{W3fVG76LauG+Mu3p3x1J}!e!d%cDlOARv`4C(HA10i^lT~7Hy +z)Hs~NEadN5Vqr8`lYTHVCi%XSEoP&mwh?UWL-YW0JkO3fB_1q^NMX0p);8aTTkyXl +zfWFHpta)1)mq4PDZI7UI^YiBP6&R{NI$`5sMq()oPp5%WY7BOEOnA-WAyMGc<9D2C +z(?o^bX90Kw6 +zNkO`8ERQ^uvZ2!>h;?)y6u~ua6X{*!XV18A8pf8ik(tpIU&0J?bz-la6IqAwg7iy7a%> +zxd~L65ixx*yncB6A(*i?7=a*yjZ_W*pGRRTUxhusQ$pE5FpRDclXF04&_rLDR961m +zKv&4AiN(C^hHxV?HWMD5zkkGqTzN+kdxu65ZS6d!Y%h&qzF3CNOyIl~i!jM;nA;~U +zYB3GFoJU=ounBsvA0~^e!H84x@dX874QG1h2_GNpwGaR@74~l5j8Fd28vM;VFZL8P +z{&Tm5dkK~?TOtpgpG2)v5$BW@b8auD;ekP_g;j+?X*q`S!GtWNw|j+fmL=R(K!Fmy +z*$Mpq4NIjIaw3jfHrMg?+a5*Vste|wsGGLdd$-|tZ@WOsIWrIDkR*|sv+;DA4>A#L +zY|FXa@ywW`3~TzJy+Ig0KRi^R4MyN`trv4mT)2g41zG?AaRG`|8|NlW>?&v!cW#tB +z)HeMNVCXkkb;-$a%RsahD&C2eG16BVt^=30nz*RV6tdM9pRVKmKY1GAp5+1_TDZO2 +zx8R-Etj3p~J%4KGv4Sq~-4d$#ETXaKyd7a)+iW%i6^Nm5)y2!CO_@PNVr-*nbCKe8Kv&c%3cry&s;I~hu) +zB6Nj%iEJpWK-Ef4^rMwD5=vf#O@a;QmeHA8*YeP>XfztSwKIn3B9wW+VMY=N`<#-> +z;SL6U?26@UnA2+Hj`(i830wggandDMHuMbqUFRSX0NQ;D%i;#Qg23`96Q~B3#~eD# +ze2?(gMx+He5{=B;VjkkNn+qT=T7GI0ogJ;%@#?voWS$^>Cf+%8vbpE~_^AOzLA2Ss75|9SLiZ>_y6~utvs;c>ubSho3we +zAHn7<6{DR)9gVux;VvdGbADo&iy>RK#jw7?lx0_JLzc#L)MHJbU!t#SF)vM!Od;^^ +z$h2fPtE$(WdN4;TMB9-_B(Rdn*H#0Uwwbu3)x^rUI-+j%sym7p*gJ%HM|YC}^quBe +zAb#(ufo*vGmFMBs=N-9P%$nHalNKHrv#@@`aT2TJ1JL<2s-$)rY!>t**vhJT5Oyhp +zdZh@fQg&#dR!!z#Fw_;r)krH;C@xBGz^ToUYi?lRs2+lADxy886%N +ze=-wm<&r46vWbxlgIcXF(U&$oFi6i8sbaQSlY-*b2x}E7${L{6}lEomDAIpC?R +zg|TcIIz1#RY)oX@$^-532|K`cd-0h$_bBZYR>MiGUD}JfWn>3=BFHDPK8-CPX)h^JfJUQ_6s$9nMY+m<0y(ZWzc +zW1zrZato6sN0F7jg|6m-QqF0ep%ZGAg%xPC3?MQu`xG-IQcAQT+SVmPR}PENIY{Cs +zDCRP)o%`yp9#KGt<;>RWlN%Rlq)n-8GkFzyrQ001BWNklK|z+Elp^=l$6Q4ZVV+8KqhXTH +zs-1e79CS?OchvB41Uq?wSpYTL`Vo#N=A=<5v&zhU;+PFkvWJWXUI8{^tU?Oqd=>_4 +zXJYYK%i|!5x=>vui@+>>I0>ET6luS6<0dX@Q9^yWxXqk(_iE^q_rts7!e&~boND_w +zDmyl(Gqqf^V2^G`;e!{?3gw&AHa4Y5Wwr3gxQ(YXHZqgrQmCwzi>OJllQV#Q@?iMQ +z%D0F(*_1)4NSMn)CySTjOL2l=D2ZS=;%pOMXZvUgD0y!60YQ&KGT_iGr~n)DD2eEp +z9jA%sgP}hu7)(k&=dLVJ&LR|RnUf`Iq>v6}bDgc;iMZ(hAu|eH%)+Wwz~Ehcc%g>) +zq-f0VFHSQI0Dn27M1~{dN5g3!SGmr3R9)r=b3_)+xW_C0W +zKwP8}0W`h~h4-&L2tWkN-Gkhh>v(wFMk&Dg;Jlnno4K44}F#4Q}~&Efz=apPs1V7ef|C_6)$z +zPr)+1u;>-Y?&9!f=ok1r22?NxMA{IKMsZHUp|3Jzr;~k7+?aP3yBQ1h`6sLRt2-Y* +zCV7{c=fQ53!KWX`?QgmquUa~HS^#rr&%Y}LW!DgnIAqcWpNI@4CS0k!Z&&iL%0<)* +zImv{FdzUx+25TOG#Eo#r9@)h#DuY{4g9$SfbIJ+T5{z0Ie&!}xd(qy}fs0!VJh#gf +zIx97R`i~)1e>9-5jhImvUSU53bSJg +zLLN~$Jm!N2AU!sSi_ckv`(HA@cBh~2spDn0K8lv5s}C8PA4u_7ApTHu0n}L8^w0oM +z&V%;G2q)0iw-ncQn|MK=iEFy&UlW^o;M(BO@*j7n_mn-@mKmXrJ5U-!~sXrF;$-^d#`| +z#U^g(^I~1={KIx`gHNU`JUL}cW8tQhgB*8mlC=I77&25FGMYmr}z!Qo=#k!l^5J1_cjeDYDNblN$&%X2my!Qehel$?Wf9|T|XM5|&j_i_3bDcFY +zvJ+i_Zbo8EnE4DX!%|pPR`GVMh??S9vo=OP%*v$m|6}Dc9}QGL*j~fyzxycKmYqMh +zoX^qTxJkdKRkDY+;Ig&n3D^6+5gYaN2<$={^>SVU7q%FALJ{~QaS3ARzb%YrkZvx3 +zxJFK~psFPV8Me3fA<@=}b!}c;-mY+QJLh9K#HpjrV{gW_ +za8$&c$cuR>`a5hHddZ#RQo9I+_K6xaV5Z$4ab=+1Q=8u{Uo^_L#z(V`U4elEMTjtfZ}0=yVe?CC6cv5eN<~ +zg4<)YT7$1^IYQw`lNb76_%uR`**fQqtt_?eaqRlQb0l#(n}ZZyR_tGMPf5f^!@*|C +z-!&OP{7OROtd?=zqA;%Q@!*Dj6RQ&QtBG-exBzS@l(NT^g)LcfV>AXcMNzr13mKqR +zl(n?k62yqiol3~ewvey*bD_32X2ClVnI{-RpsjCu@?elr*BlF{v$==|zDBxXT}1`1 +z8J%It#vkR)8V#FWU0vAm+PN`46W`9GmYYH(F~@Su5znc~01`q~m9i`Y$iMHxS+DI- +z(IHKd%DQpN#uJk^wq-5YsX=Mqsnu%2Z6R@rtUL-o8EhkV)jOD>v1{xEWi)0>1>8|Q +zwV}KrsgJRzO6Vn_xI|ceVFNp}8r87@M7ozuOQ0O>BF_3t9p;4uOm1utc6vlo2V|3w +z85Qn3XI7Svw<6_TR4E0swO>j*tbuW|Bi(@WT>kXTk7p7!@wdN&(Z2>E?~%FObNhY- +z(6^iDM7w=kQ(M;KuD4%_Kk7d?mM017oYNYZlAxHIarwa_ +zz{I*30V29T0VsbMMxqOyVUNs(Um7*h9|0Ccoi^$Ym(H5>8%P`>BD?mdB|Px-01{pO +z!s=VdLoCSXUR!9v +z6bfszL>ZWWy6g)NpmXKA1&UPmT{B9r*dx!N@WFKlT}W=rt3LMtqDv1hL?7y^H=Js2 +ze+^k{Zi6hzknU=+qqRsK?UD>@33n_y>J~Y7bS(gYcoM_}r|Tg#j8ZNQ+Z%w%zH};k +zkq}=iJ1x1fE`&S#uqNpcz%OGYmY|sS{PQ?-U4)B&Siq(ogGhAsEVuo0RF@ +zMgkQ_7)`K%YGFrCBPA_BDd{vI#X_8HVJNynPOjjSRMlN|d$JW7jnS`i7>g8d;NMY# +z*O7;jag!p!%f>=Kyru^-)6Fns>;Z{sF+VVn)yNM%gHZ2^d96Heo6O)2cq%z(3ui>h +z)PfX$-5K&;*7+RPrRn9vFEW3u{gEAcAT?v=iJV}tEewDfU$F4hZ&CcrA04#t)YrLp +zu#N{@FLOLra7qXB#SJvYHx~GIYAKr#!ucH`0+d~G-?A?y*)~&=(Ul@{p +z{o$gM=;W5l>@nxYbGscZIh2$kvJLWC=-ikn)KZ|Tt|@uraSF=*fXKQ?L!~zW!|xX* +zG-n^jHXM9*AUS-ipRxbezW_|x;e_~iNu9-u7$$PS6bYKk>6 +zudCSMkjZH=Jjxa_x(Y;v+w6@d(IXrgU`5=(1+5w4SqW +z))$7~zf>-Bs0DKGzu;&eame4ZxnOJB5^5{U6qI?{mUg!9Vs=V$WENFg+568nZGQ-! +zKp4JoRD{hr#c&}H4J;ghc;do$86QM>azsqBwC0khBPE2AaC1GeHkchtMGl6M7&UTM +zC7o6lwzr%N#}z-!W5YAMom|l@EfBvu{hs>njTrv$l?&2jNQIGY847ec9lwu_J6nHo +zd^g|?!k_3^(B)fj0P*a3CrZ?_cN2_A3)(umaCNT-&+YO^ZH!i>*$3}jlG6tzB6IrC +zr&t%`PFdARb2?7VX+tj6wLJ42E4D4gRne2DhLLFs*^65V!9(rBLme}JI&ST_u +zz-n1zEP*@Az+F=b=qm%LkMl|sBp=QH{@WHi9pcNENXy?mZ)6Jqd30TX)q+m +ziN#x~+}V(hHZ~Ll;!uH*tkvQOv+4>H?cZt;L>)FjKbnH!$x~JS)FS?ekWQldHzCZel{?i;r7`w0u{$8GGG%nK3RxSY#7i<@AmIh#erGZv +zTWm;Dn`>ltxVv-xgoSIry;)k60>R*6w+|uJj|{-mwg}7OCU#~m=-h;Cm($7{lp0nJ +zyTA$i8`BzH)ihUygTAB@Ny-SV3wx5-n6hBy(g@D6oAziH=fK||7XURZ5&1#SS-n&g +zB*u1Z7C|RYDYSUk3Ee_^lV{{^AOlAfXNCsj2uCC0RMVvQMIemDm2p#OtOQB305I1@ +zJk;wy^iUa}{_iKyzhc!PWnx4_Xlw-MFYUqlS4Iwc3u*`r7i>I}A&tcn(XH(ncAroS +zz=Fz8$dpIU7pd7w8c#?V%d%ay_63al}*>koS|@yaou#9W#oZ7&ilX{n2{T^;A9s_=|rM4r*1~}qc5C5 +zxTRfAmEV~e;%O`Fj=YlJk!?9K3RTL$+j$PcKA>GhHJJl5v6u}7El&S`U&NS|qDJ&1 +zzk=#ng+M5L`TcA|M6$lKUFW#jQFjy$liH)mrqn|Bnr +z$^}%aRnZT0T7k$^oKDQrZB_~-s0k7u?#jqYWu7D!b5V54_jEl}g* +zc~?$6@jLw8A76_PT^zu-w^Z>kg|bCx(?TsXE&>e{)MO+k#Z!sKT%{-NO1ZdNKB8jk +zmOx}qsnAxF(mxjQn`jRiX!k)T<+KJ2dFE(rO24o!7V|r;LYx`TekyKBG#V5%r(@0l +z&~$S?{0=0t@%68|yNI7Wv>CDf6$eihq`=hZAlkb7@Tn{OB7#LBO(ri{0~6AJ!NwFh +z{w#MC#+~R(SOL;63(I8^a1N`}L)#eB=!jA_Ar_T_qzmZs9E2bjKBqZ-yo<4W$P29N2OZuX0b?oT9%j&M*K2^Yl-QSf48A@52? +zV=SIFS;FmzZb|HOo1ud-1ZQj+(pXR`0+k%He?B)gFmBCsf_LRC86HeaOv}3?udzF4 +z$=1v?2a~1MYF%!WKxZH9Y6bovTc?iIi<;Zt?*ou-E+6Qqr{Q*5lB`8rU*7d3ysWgh +zEk`V#)~j7Y4}?!zsP4*6HtkD*?x$z;Pr +z-S~x}?YMgFO8m?7LXxUrFFw`Kn#JYjcYE#K1^j6JcEr192!kF+1f5U-@q6;3WOr}D +z2VQsqK5^OHbaHsn*wwHr$4IP>!2&>C<=r`l(mGzUkuKGs3mI3Spy2ozbWmM(qC{j8 +zL%Bo3#PQyLthe*u1Ck7eDFf>wv8bqcG=5F1(>T~LkQ*C<&QGw}*h$Q=>=KBHIzDHY +zc_ImP1f8sTZ^Xo+sFJOCNtAS7XInm8EB6b2Qozsu=U%k0eeQ9IxDJKOlLA0o+llqR +zzOvT6oP)^K)N4}vqRNPeqe3G|s8~DNB0=;=sdVcRKG64n +zaX(@!FO&B>-o8%*OeY*bVui??VeM=1X%v6zqJ4mga?5KSP85O9m~ +z8ivqY>5wyz)37Uy%E-^=MWcnOamG8hySgnABdH*HCMT($QPIfP9TGoSD%BWh~XI?BR$BwuAUn$=t&a$P*ZC=$Jk7qn11o1O5a08j%&T%YXN +zUa=aKEGbTn3W$XAU}*SxMg38za9r-n?tnsf*c34a*2a25q(C?_dF*x|Ku(2&A`hgw +z4zjPGVw(9nMv8QlZS2Ww`5i?dSZU8!HB8eHznU$vZ6Vj-qybO^M7-NMA*Wia;T7kE +z(B^iPu5EMXVhG21o+G0cav_h$d%yd)C4BvX0Yp1`PMFVg;P-R@^v%=>iNX%I=rTie +zbPwM52P^Q2%jf1;&-Fq!7>Tm=)U`<2k)gg +zrX|6sB;w+BNavS{%4QsIxTk>s`1PX*EWSXrtWT8Bb4mcHVU4D?JdB>zmt)V3@uOY? +zO1g{`ZR}-K#wvB*l1#6NZn6u4)4;0~CNDv=MkdmDHK(*8W4k$)+Y#FookgdS#`)X> +zBd}=?(hc7EGI#v9(`Bro43gX&r8Oz3cmgm2ZR*-10E`#Mr#qhB|EZG5FtD$7s +zNc63kbvMZIgx5(8AT9)puj#1?l*jjoS}Fm;CctSYfNJcVd*KYhaH24wt~$J9k#`Y# +zsuPtl2g7;n%)$75rX#%RWh7=u1jhQ8L(foBdgC*=v8@DhzvE1qyebqH1 +zFK6B=qcF~4rFur*od`tklde^TM2AwwksD?~R=TN8r?p9$2zM=pHx!XUbMP6WTLAYo>}Root5BEdfKiF6#BV$h$E5Vno&xB=v#O8Rx~5 +zsYv~0B{MHhrh`D^q(Xj&v7#-C8hv3Cf49DbUv8a1FqW7;-J?mpoXGE`fsAVXR%!?~ +zx@YjcPUJZq^0Q}N{!)4zH(t_-^z7&!*dyDKSbH_@d3hA;+B~ACIGDGbhQcC~aL(w1Q5kaU%#6>lh*|?m`tjXI@qkH^1*10GsH+VcAaaMOd3&|>tl)2E*jVLxjfKRQ8U@g9+Yf% +zQilIhElr^#q@*F>t4~$1EJUd(x%q%w<2?bvx;PKP{cR +z?-qeBHGJfu5;l)!MK$B}IkZj$eLA~);5yz5eJ{JmzUQ~w +zCsxAnun>IwS9*a~mN$1bJuVV^-QC@|q2GrWF7e{B4v**sHS-_`>4D)I?i#4!Cj(WK +zwm*u3Z6esY2*GHwnICnc-^+$wH?CUVw)L*-3;~ew+WYjk?|y3hPhfhO+n?o}ofG{% +zX7~AYQ>v8;3aN3}`3zJwk4V4^BhiDF&TawI>ZFPDT1?R^>CvI2l +zB}rRFFu_ +zr0gciT;!#>;tJxRxV13LuEUb)H;!5uM|UzSZU)0JeL?tw5%~RncnQ1(oH4dQOElZJ +zl?J%DDDZ`D+VYy1ocDIO`PK<4d%u!j+tn3#Xy@pZ +zZ@MepGU330RzVfTz{OakkxQw1WjY9f`T-r0>y=|(z +zU3*?f=0D$l_0`qQzj@L%K9sDGqu~o#SKX2QyB+!Zhf5VUV3UAz_Bi8LKx-@LH_T-b +z&)@&{m9f8eD;5%I%-q5xff&8+e<%OHzyFtC{P=-^i;Qs062{ZnV_zJi41{Ba&I0Mo0uozstsbAxvp1c6Px`&R +zUv#%FmrTCT_c;Oo0s#GRS@h$JcK`qa;Ymb6RHk!7Z`!H<>Bn~ty%&)Hw=#z%e)c#M +zR)FBKkuRGseRi_%5ue0wR +zq)?_Z&RV0>4Oa@3_BVU|eq4HW?4Q5&?c3jvn_tra&tb4)?9M;GeC^^- +z{r<`A0W+Lnp6IM!bm{|1IxDS0+Pq@T^72C)cYP@RzNMd^;qM-iGdUXo?FXV&-x|N> +zvh&(L`^!z~OG%4>$+E}UT+u0tBMVmD^auQS{_4ad4?jKezRhoLzjwCaIaD6#NbAt> +zeeC2-pN=oN?j0Xk-Vy(^-|a{xDiq3LbGg&jd)7xfdC}wuvPrwPGW=c>S1wDYw~uB1 +zb>N<_d?t0v2QzN8HEYGi*;=5POCrfe{=j$1A6@V#pS}Gro=WN06)ZEbcW8u)sy38r +zaEi`?>BNJn0R~F48Fo2u^!0QhY+B{>lj{55dEcx5sk;8Zo^Vfd`r6L+wC4k$nN~)C +z6#mn1t!sbo%ighWaq@=8c1QkkSlJock_>ns-ngUuKRfUK$6uCy@HfuX8|Rp_ +z)oCVx8t*k-&7bk+{cWFmYHk^ER!Wzk +zRazT*L|3cNbhag*oZPwP@re&zv>m`q&@=`-AM;)P{{sTv{=AN4LDB#K002ovPDHLk +FV1h*fI643T + +literal 10214 +zcmV1Un?$H +zzd)sn>_Qk5KTeu+`hXb+zk5uoYSegBHfUnHta4HmG1hqgIF;1!K+OPymW!k+BNK@q +zY9Ug|DYnrgzfnxEfk@XxLDPybY(jBFHpSHn7A}GHB-`uopI@`boG>zRR*0I +zX{t6`uw)BLWEGNV*LTdG5h~I`dD`H6!5Ycc|E011^}8Oq^^%vUe>0zu$;L}xzd${g +zHYP63yUw`sATxOKIiXh0%?9eX7(L!fOpJUKc6ye+=1uhbjN@@2&9TjPC +z6&vl=7tXuq*B^ZV2$Lf93sk&Z`Ny7l<-{SA-}k%vZ2I6#-lD3sPhT%%#ecrC+%U+` +zKD%w@U1!g~_1i0fu$0Q0UqY$l|GQir`}rHcnz2K^v98_%mj84zIZKAJ18XLq_VS5e +zKJ15gU;W`9y0R7mwznH>Qwrh$>Gz*=-HdmgclV;rnVN4jv{>SZ$bbBTMqN`xT{!0J +zCw~3$myS5?idjG!@M8<9LNDO;qC6f>o>MM<>Pz{GnK#!pQ)9IRd?-<@g_gWmJz&_Z +z&(1pV#Qf5yZ+Nb^OPJ}+&!p*8bEyS;qP)gvzFdibE$K_k))XJN=5;uB3TA +zEs;l0kmz^jUi6Q-wsNog8=6fe{p=Chf~godblN%7_kQ=Q%b&k#+1s&%#n*Pyr+j0< +z1x;FeLvzLm{d7@DGm@*AeZvV~yzk;z5}BSzBGZ$}^O0{Xyk={5$fdc0rJt@Pleg6C +z#BYA!!ui(%W%0hKuL=}f-eY!=|X7fKKlEjExDm*zyB)>{ts%(dqN`9 +z6Y?DW`CEQppQ$({jOb?i2_t1&Zt#acaKQtA>IsQVcbBcBK6C4DwzO1y(Cr391yH5? +z=qIwuru={py#M@rf79LN%yeVJochqk&;MjwzWgIj9s~syROqJ%79F<*gFkZO1@o=} +zQr*>9n{HYpOwGM$-i2E;m1jrsEm3iatkV7TC(+izu(OXp|A7mERCg>kn(kO6{J@v* +zn_CwQ`)(L1h$~$&i&T5El=b&SO?LcukN(t+C&!XV+$gC8GJt>7$A2{|D`WpyC|ES^ +zmx7|G_H-%hCm$%bYM(zHdg>2m$NHhtNT7JrJoA9LgUd#}^MOp>7XYlH7AKCNHc`sx +zcnWEMTI~^;(3rB(C*3=4ufuA(vZ*#*Sh~^^-u2zvnp(UesDcOp3ZN7%WvFypDO37M +z(o!(PW*vXcEkIdUl`_*+eb0$snfJw}oOdXy#3d2cVx=rGE9+06o}xaedgr^(yW_v( +z{ZQ{EkSkrsoO<DiZ5MJuXn{ +zq_5q5ZBtGsiYlTJq83C^B=(Q5J4=~pJEd&TTM +z8t2*r&-zU!5NfARCCYCEjZiG=dLXeDi<1Zt)ee<1wYFzVi_+&&l+KbXSVl}eaxWd{S`l`&!B2yCzwG(>FV-cW?7lcJk%HjgBlOBLn1*% +z5CB}WEyQyQM4eyK%>pUd0JVA4hLok0nt?tQWkPw%`_~A`1tHmj($Ex;4`@X|c5&}c +z>BwY25~oFbAc-B+ol5)fUE(JiyDV5+(4Zh85``K{LA8(@S)KXb->*64_dp(q0PRYF +z#EsOLG1CWr=(2^&bCIbgfp08JpLvXyT!cs^lvRVYN-g-P7>se#d=(HO{{G^wD1zXG +z>tcBn3t@%|KhLa*RqQ)$FjL1?GIn^1VS~JO_8*6A+LmYimMm|q&hXZTERl6WVNd~M +z;=f!23StyNaQ}7BO6(wr0g3%01oxa60QbDa+;Bs|2q<90J!`pI#ZXyS!`K8{El@v1QCA*c~V +z42p+wFCN9E5IZH3#Q$@Jcna;gJhniJW)7WQ&9Mg#WB(}?7_(;;&st^0+ANEgHL~>0 +z7DDwwz$DW}*eQ_2{thEoDjvhze9!W|@2B2u?U;2o-7RmIk^ID9^px#8XQe$rTJ}>=!8F +z2B7RP%y~h~j~)NG>aJr1!3m>)lioOq#9bqva3UB4W299c5pdVtsgqR^5mbaSv0J|V +zsTq4UHa50&G=-!yz0W7U`{;40+Jpa2JNTOC`NtjtuMEM1RE6t_1jR>OETanSekoJh +zK_e=>X3jir6ek=yn3N|yGW&`m<+;~dn76o*$of0qlS>lRC4s}3c&`Iu0Nq*E6v0&? +zOd`bu*2IB$7>?~!(e>Ty-#h){+5^Z_o`49czg7-ey(OyV8I&B9kKX-lI6Cq`L +z(+(oguwgkXUtIy7=aQ%r(t}%V$H$-@DrIe@kg{vkW;kk2Ip=<041))l-k82`?*$)z +zu94+yLNHz|aas*fG}bQ}1W;GTcBE1)r9~7`X-y=-C5%D*))qmEh?O`XBE^&5^+-0# +zzj(oiMjr)afDo{IB9J(N%1$`I(LyO9U^5S7R`H@$QlF#;(=F*NmsiRioMBB +zmNMP7IaGSheDRcV96qOtjknNQFP??4i)i9=7nKBZFRw*6j +zwN*JDe71?mregh%lfuv{g-ZcMcRc5=y0W7f0pt02o?tw)Lo!VWQ%n{}3gZM#bmT^0 +z!JWU{=g-%DeFczr0_mOzHi)S~2Q;I)xkt3%J`rsvtRz;p)Mknx%vh?{UXlg1T;-TV$@i1OF;#Z@t(LeJw{$S3GamP4?|iHn5@2;JMmG +z>^%!$JP*$Zo@elUgUGJSk;bpJBaD!^CPgF=!6VFFcS +zV8L?X#-|M1TDqtA89G2Y^AP3WDQzcGWR<%YG_hu@akDam@0;yq$xnGmC(DsVc9||o +zVT1%CMWtH){QbvW^^H>&wAV~a2b$-K&-`@t&$VpmnId!=&%lOdi&?jB6G#f7RUn|X +zvG%Gl(sn6RH_dEwR;J4A@d1~8dP1A>Y-tgG{h08|8tIYddGA`~vqvjKDz#0C?plzc +zF7K1_Qn7l|`EsP4NSEX^oTM +zr0p=i1T1{wA)tK6#~X-;2&k#Tqy`{}lgRZsXrh!!v4(nk&vV6j6Wc6Xi&hE0eALjK +z>)B8D2b9Bk$6EFqrxc?Q!oAOAXb#FSZrz6tl_QA>)qXhw+7>2$P2v(kNDy2!w{~oE +zb92+K%9ylQzCQG&KO9gq`;^Ct(@Bv;AhY=`mM&R_7$5KuF{p78d6gKiiq;1tN|^v! +zRH7+mW_~U$o_VB0f@dd=QkF>mdmQswSta8^gS;VVARRB6xj)Vkl +z36qeeO<{^J7`^nwUk|(Xl20w(RT-0ZW?z*bzw*@!(}N~_tD~Z{-B4RzUhp`DJm9(N +zD25&D{!)QS#U+ZDvSjZAO2EaZ4d?K^t0>0b78-7SR&eyZKrv1|NcrG9EX8~*P1=!qH +zUU_B_7!Soqi~-|2NqoelkW^K?lp#>GlpQ(S@YT~tx0yVDm~VPto*19nMG`&nN`ZBC +zDU2~4E=L*@rUU5`GbG`TCM9x5gs6~N{+ag}v6F#(wV`ark+ETd8yn +zz9=hRdYbzB3?ja3s13Nr8ueNwN>}Z&lvSk)T=$iU@fGHH&%>4X8I;{eyTLpGzIvkF +zzIK!(TTt$LI*0g`MT9AyF52;OloY0zEJdYI5w85ou@hc-e*TuW78U(n^+3~({P;Ab +z>j+htG +z$_9=&k}k$7jGQo)HE*s#)PPt}18QAEt)PO{0Ex1QDc>oPD07dfF1p^cV7Xi8De=9| +zFRm7zULhPZMMEDj3UlBo*65r4R+E7(~(lq)o{C4;f67(6W7nnG)-J+Tza( +zg#VhT_#VWWI@<8cssi|_Hq*r&5EDx%CDC9D@ls}N5m`D&Syk0hu|GZ}iL@b4`LsF5 +zjy&>YKZhaeb<*<=Lq+))Gr7!kJt%?;@Sc^tF%fA6qZ3F}x7R55(gC!>bs?(2;}L +zy1AKF;tjRNegl^Bw6g!ya*{0D2pj7AmOKiqtAiDrWcyZ-IKu~l*Z?Etv2xUYv)i52 +zPM$diSOy4=b`z*<;JAt1{blBng>lp7pf&&tSeK4!!77Nlz!YXpD90Ef$^50JPstN! +z-s?gVBQR{RX+4qHUTBv>@pS1a29F#w9xxpdNZc^#%E9A_q1_~tnldI%n}Ej4myP{# +zp%Jjkep3cgj2GARt-mGI_-kJ)6k}wy4>n4cqh9+q>Z$?5C&UDj4keJ6sv1ihXmae~ +zw0_8#$rwLEQB-xu#xb$2LxCx^6(rfzEN&-Z56h!;0j;HXTeFa)rc$s`NU2a!SuwiP +z31t1Uv2+66gArPfz2?kDu>ejUivp;k0%M1#NwRVieM%k$lC0PaNh-@BvQdw}PNg`$ +zS5ey$fh2Y`sq(UsJsIoe)x#K2l}6P9kt<;qi&B;rhFAL}S>GUiTAsGvLuFd=P)Y?a +zT|O#N!leBY7WsqeK|*VoGG}kxwBCsXpbV)p6k}rp?V=?hPdjC-DCxA8%xjgjKe*E+ +zEJP~kVNAM;kzpl2JO6Ha|YVCl|HqnxjsGJ@q +zvM^@KUSJC-7Sy61RHQtLkqaq`mbg4|vTX>I@=7QvQ&a%bUIN7t>!b7n5h*6mm`W>( +zL>ACaHS(0cJSBBwb#2d|oZ5su?I)16euiE^6>3I|A?;Zd1yQoOh+>rc>_GeIZOAIp +zZS{nu^O|$Mv~>CoWl@;V(MyEZWBQyKh+0s{wo$7p)1W0PkJ2$J(`}V=Et%W(`H^Ni +zBai|rYMbaK6i5#o!occsES9>aLeWw+q8jL{@;F8frYQN)luTlVL7};`38Z0=-+^eX@l|WIpX?@Wp<{rfO +z6^yMNffdV|jd_wx9?^&8aZD-l9-4C?n3Cz&LfgE)Edxv&6B(N?G;JVBcM7GD9Fc`l +z6DH%^kmYMKBpEh98M&urOnXnB(Su<~l@{GQZ9KnQ +zYWMDS`y*0JnLU}sOB?veF(XK_Z>{oRgRom@FNT+U?Zw#A6k)t_N`?BZ>)rxvdkLg* +zfm-U{Ttf+<3Il6Kv2<-SHd2xtHeGurb-Ka9!;8FjtFWzEOCx<88&|!tDv?0iZV9Vj +zy<{ULLTC-+_nOYaWlbcRIzky;O~=vFXq(0khRGw8BwL$>P*ao=tCqhMFJT>OqV0xd +z^S4k!q{^##>eUvK2(34FY8NdLc^n_u-y%Sgb#)QqrAsD#RF$PKKfVpHoob>tt$8_< +z&*w9xlR~gD8bLN6k>tqf%FqGYzBnZ!&xnD_Vbhc(K_qOb7eu7@<#FV*nWl}aS7Z|< +zto;N6qNsVp)07Z_mhgjHCyVGu!RNpkQMW$#*zi&K*F>^Dw1aFUWFQeo9rMT}okuYKd%<Z?=D^)F}gaVJe;b~JIk_@TT?YET^I!e#>-d}jPrKS>+)HjE`wmw9~r%kly<+p12 +z=Yu!C2}HZo1BF}Gzt)`3Hmoi+f%3Tuxo5H0W{LRZ5w@gubg05-j#Tz(W8v_Hl`W`L +zmX17*mWHh>>o>1W-ej}mB@74}*1mG9(tBuP;8?uM@ZuUnF^-$9oO+O!j6A0wsvJAZ +z7MEv5BY_!;ilNkaYxxT|0|5}WSHhC06DVBs%H8t-G&y=e7Hwx*f5$?zec`PL+wVzu +z_7N88t&-(9=P2dm{Vc`UxGm4hEgqq!N-KRF3!nJ=d?1M5V6(FV1+PBx+vSC9OGpv4 +zi$`Z^%n5&a+9w~-W)fX=f@MH?52jA6VZQi8+h+2#0vp)E~$n(~dg2X6cMYq17e0e0)F4uFBckmE0U22gJMeW+8|y=UcmHNqY|L@Y0i&s@ +zsX?{GvL%TM3C45$OLK(I$&_XJb}Lr?qRlA9}QCeEM_koI8T@s{J~L=3E; +zSEy^T+`gcJMav6h!w7;5CmlHjudK2J_G1@k%jUOU{>q1^o$k`75yuckxC6c{qkk^mJb{;oVO{eyT0v8m}^AUwmw!x +ztzy-J1+ZA#nm&_8c^tU!1oA-%%H!CwZR7f{pECKRc=~j-gc%$iY^DpY7s|Z$BD8!F8%!67`1yNVEA}nCTkiEv1F{yS0p)E~$tXdZQ<1d## +z@Yide0-AtkAQ#{F)13*FOrbo`0<=7O-6wCUTl?yBeK%>^Pan04S_>L`4vVVYe%)xE +zIa5ZG4@*!U$LeJ-E%@E#pS=Spl0H2kPz<|cUC2rF$S>!9wWVo8eP5R*Ic?V+kHek4 +z59)fK)+07z|Cu#->9UfQXWO>*o36O<_={umU*Oa4O0x(NYq}5fpOV +zchis0fBf$Md)dj;lt>@#tppNwqVBO-x8%`{L&nd^4;nuGAjHt;&_w#6sEx2Ta3u>+ +z_j#8M7+YhQJ#7?0RC@A6VZc)l-+a}LKfUmQSn_0Ii-rk$t_Lc%Hk5HMu=&wne*Djy +zmOge18queSHO^MRww|I^Ap)!-R(CvM!vg#5<)-bWB#%qXB?}+@>-Cp^`c|O1h&<{> +zuL)FqR_0#peb=0H&6YQwzF*bSXV6&La%Dq@{vDTuhh$LTKe4kHg3RI-2c5mdtYfk>j>P2__%m&$#k*4UPp+j&6X$Y~D(lB7Z +zy+#mNDVaOc74jLLeCWojetgl%KLeT*@&qw?N>?CCF-u(H0{@fY)y7l#__O3L5YHY8MCS+pg)(sRQn`7^(!^j1_FOFKv=1r?N +zUw7FjPQB|-KYYqb(+D(myF3oB2SdQd8@T!n%UYH__t(2>XC5=FtZL{OF<$R{hNQ9M +z4pG!Oq@WRM!`39SA^T3KVAQa|Snc_8mF#!kTDJJRv}W#Bw+gZ +zkpxjMiQ~w$)brHCH~r`jSN+dDE@@g~BiDY-?0e980wSnZ@~bR$07vOVdyPtT!6hILYf+ea9NPh5ZY4I`!< +z^3WltUHzRwBd6`_r7GzbiY*$dMdLr95m-wU<=AKXFmfS1PCnPdx;I~Y?)O)J>HBZK +z`pjl0N;cN(2XX1=0V$viCeiwtL?Ko~Y(8MpDCK}zW5@^e7(tL{^Om(6AGzt8OCJ8)uU-LiZe-j@-UOkz +zJf&E|y5Y04cwf}uM$?i9e)jy|E1*fW8wq9oGC-5h}^BC;WbdG?u7#^l;zgi-geB-d?Tzje`* +zcmC{_Uw`xQFbwlR-la}9QLciRH~>m7A(RFZD{FpSq_{-ehwrCnAA8&CKoGL@m@#iW&9G`0~i4sYpjFV#{Je*3d6Ej9=P_|e~lN$&OCDD%%eVk +z;*d%EpPH%|TIQ!JL8Jpa4c!BEL)=4Q=lrk!zL%~*#EZ+5OrO@r?x-4}*8Pc26ft~2mZJ_BM>go1{WZw9d!Kpu +z*1H!xbi;};41*ow#N~0)#Keg@x)jzgP?5406DgIDDNS4?@bP_r%Kj&htKH{)hgOf@ +z|M;q^5#vp&9N(`%#l(7_*nNH65sk1m!WJ^T=b#~!msg^@C(QPqCdlV$Xxy}B)$5Dy +zS@ihr|6KUbd)9>iB9X3fdGfLAQQP0s)i2O)iR6YKOQlpyq*QG9Zg^!?L(0a@eqZgV +znMdwdJ!U5acJ5Je$T6c82y +zvbm;~x-A=C*t}-x3rn7Te9;R}-@B%zaa*4FS{KAqCrC&Wx?#IWoPL2El90)Zjkq{* +zk^Hzwu_QD9k}5rP;sHYjj+s7u(2$9>m4n9ArczbIrL1D8Z_S8z9aKBW_~J>*lzV}v +zA%(0}a#2voWHODLqg>18mZs*d4ck_)UB7n4>J2NGZGCh3!n($7oAa^7QJWAajEj>P +zksIAqs`>?rBgs@s$mFDP=LwPAFm6cl7#r>FEJ&VPHzGH}q&$gZyhPca6Q^IG;;EF7 +z$qhewj7yXlk~k-J)WooEv@K7uW82aYJJK&uX~>k6%EaYqXCzZd0g}QLA8|>Nva~Nv +zzd)rY6A3Aj=WUfRY3IY>w!}!D(-CR<1uFgbC%X_#l8-yGgQ&=3lE=O+O}{|Jkan)M +gD^NRPDE~qHe;PAH+jCH182|tP07*qoM6N<$f*geH#sB~S + +diff --git a/chrome/android/java/res_chromium/mipmap-xxxhdpi/app_icon.png b/chrome/android/java/res_chromium/mipmap-xxxhdpi/app_icon.png +index 13497911dc1373aebc6f88d8a42667cfbc22ad73..3ffe26f2cb1abaffb0edc62eca95d7ed8326cfe1 100644 +GIT binary patch +literal 22337 +zcmV)kK%l>gP)?h3Eoef8cw_nf0)4!1vj%#M8b +zczF#BeZ2*HJ)oTjpcS?jgJy>Scx)SP0NNa$X8q7pZvk7=PzF$ft!1Fu2>?BSeNczC +z3#PT}^^4tmzwiPrHT6SG@0+#lShlUb_o?#5nTq?ST*bcW@d5k7qGfkX?-J_YUdS!r +z)wRwm8?~(gm-d^GtNfdPztsH;xsjA_5TvO)Xw``2l|ndvK@(E#}89rlJN687e;N&EHnjz814 +z>fGJma3Dmr?_LqpHvh#2ZO2Tt#*75O=6h||0YCogsebFj855!Uh(A-er@o(&Eg*ql +zAaiMx{;8FDe0KAVT4lN|H0=PmZHImS9mmWs4i&ZQ3-vkvbni#~`x9sZpP?b{wI6un +z65~A|+Mw;6z*oln$g~3BA9mVr{^lX`-v`QQFs*tbYt+XD~$L4 +zzw@>4Ozzt!KRx9D_~dr;6Sp6=KQd4P>Yab8&0qiCbXq`yzyrK#srJc_Twr{3D*Kvr +z0BqS}yFZmP|7TYU?-(l8NByZZdi^^y+X8WqhV>DA^}_+xp4{p?UjrEN&1K^GwwrBGp^S(q0SJgZJ_zhnF#QbXkCkP(hyux_l8#idB(avzp +z0C>ZL=7%5aw?0{4^v=HJ#8C4_iNcsMmZ|y{dD5-q8A4O|Au4MS5+E@uP2D +zqrdv}Z$2*oKC!j@;%^?tuj(n!$u)BQ)APFpBsIDmFZt+&?t4a_=_vuQd9$tm@QTWB +zdJDLrzVMyjH?)3slWPGkh+BNP|J6^pZrZ$Av#Q@dB>>+2MEOO(IDvcem3q#9a?M-+ +z^g?I>ze~eQ7vaVKb%p!aqXxhmAFzJ(XutVe^~}#gxSjQLoNNm)BXm`h@#8zL*I)I# +z0J!a0d(GF6R<;cmZO>$PT>pH%1r|yRG +z?A=OEJUP3xZGb;lCz_&(!<(T2E=~Ph-)5%;m=U_Z86W?~b?(i>0YFmwcQciz`wI5P +z**WaFv)7yj6v`Itd>SZbfKm}C3>697D3 +zz#D?*55woy5vWJUv^!I?PuuqTkn0kX>g5UWCy$pdyQ@okJYTl!%{z(aEm}afSO(Jl +zKz0yzDGvnV(Bkb_8V_PkM8o+JU~NRlk^s=?1Dd@Wf^NWXsL`Gqp9*;s$d-Y=qK$z9 +za4ZMxNm@3wENPk+X5$Dxu5JJAa}*$d6kp|`KaRjpp!y4b)=+BIy7k6U0n{z1<0 +ziLFC6e${2;r=2Dq=`O-Lu^TqECZjFTVl9Y!jA`xvT=+7lK{vE%ANu;$?!TA2_38&I +zzj~_QdT~AbGy3fxDpX+i9f6%0gxHTD1Ml<7>zE||c-?lSSM +zBNmQi?0FHO(`~ES_`c7j_ukUvTBoi2Uiq4gWj!<-2U*Db%$n4s)bYNxI$pV0N5BQ_ +zO9RggSU8*kPUJ0_s}GieWZ4F#AQL4UxeAae17@WN6tk+A+g#XIV6$6S%BpwEf|mjY +z)nE7{Bftb)v_x?Ju5+say8{&f;+v?5=|@AXx%ZJ)N*qy?~~xj;C`4>yh8V-}y8Drn{iA +z^Rkn&bLs|kU6)SCjc**ut6TL)c2GVAPVcBAQ>E4KoSs58VV!8aezM1FZVH?uN#Bkqqyg=sWMa21C=pzi_(bt@r;kc555j +z=d{*4ia&sc=aq?`YXQMdTrq(XJFi($QMcpUj2=~bF(ejmMJbDwrxS<6TlmQ +z=JKlizTt)K_Cn)J(_}8sv?r%gE}bt;QkNdi>kVx<4&3rTo`VXgYJV?PY)}Q3^ZSZr +z%eq0*rkq(Z)+`HJB?pvw-bL7)Miq1NMDQ+NCu!IEHcAWF_#p$}QD}I}EhGeT%++(84=^vync0t3sNw@9-{K8;Yr=YSoY+8#= +zF<@~}$9W+QE5krXKuFYQ-S#(6oA{^u_oHFSinH$8rhP#+c55wn6gxEyi>AG^dAx(6 +zq6KTuBUpU#wb=VA4>;90SGIe*ZM^hr&!OSG^Usw_p73?rHcn_QcNF?;4NVjN)&l!r +zvhy&IP2fM?a5>(&`W)){&VAZ+R~frI`w(qxTwr%@_D@%{(XTb%Q5b}V`0O99wnxa7 +zfx@20(7N#j=zN`b#tuGI0)~n<`ij6n(Z*m=;Q)!E4gN31(x9@9lnI3iRDgViKU=c6 +zW!=v(0A{PqQFUVuhznYSsZ(cZBAHeKVKhy4e&$+(2z1D;%lgBo17Q~sb!!N@)p~_% +zlmFUh;>h7ch;}TWvFkspc4T8nYrefO2%JR$paZF*4ZG(cK7Z?4ynF4~^#JUQomm?P +zGq!+RommSs7bIeX9`o(<&AF8nr=XIx#V480J=(1 +zvZ_`K|#leCa1RDg6ZtW-b14y~(> +zOi)XAdjWa*q?@Yxo}%XXRn~6@P(nV#@_9f +zsRO4KBR77ZH973S+=tZZa~~{qCKgaGs1dkQ7Q~eSB=6FBZD{PcoWfK~7^+VL`MW#< +z)Zq-b`YeNuqc}g$r$u#yC+5K4%S8x)CS?>Q^>umd@SW%{U)IUb@ChKFA6YWtAlQOZ +zJIHl4xZPg3_%w2Yh?vDWw4HqcAOoud8WDUNxe-VbQyX?FA*y7hL)+yNY<9v*NzGE& +zDG6$^lLn%2g=1*&0C5k{;ML`4VgkemVjdlFFA((rVK)%rJe>1#nWJm+&euc=*(TfZ +z7^GZhq$@z7Vhd1~WId9}x+L}LFIX~->n#9XT(jhX!HR`+2^cKeK(Y&Vsi1<;G-ax1 +z8!YMYD1eVoKu-XgHz+@cJ;s<%zsa8eJox^@Y`l +z8*V~NG>CS;j-^3hby&lSu#P1`V3A*eT?Dz#rNNNMa!=kycOE#Nv!#-Bf6B(8jE!UR +zHw(qo5Ujxy&=;>q4Yv7tydhq)9nKeVcjM~7J3+*Bc+nBL*ZaC{iIfLUulxuS?SG>%sN*T4Yo^a}p +zxUL|g9d_%8xPgEhvi1nOHALMIe1K~ZmUqnb`s3S&OuXZ}I}ls8wsu{0c8;|00)UyB +z^tK1_o>#sQU$}DSIzJbTeFYmQayE_&7GTMHXI_C`eFY2jM9wmWnjL`6><~#WvUn~_ +zRVcWau9hfQvqAiwKg+uz)uF1)v-&>b&W?ox4CntuB);9YGCC0veWv_ztuNbhP16Dd14flFnXC +z_QTF4fO1*NpDi-Bm;rGzA;P|rYzT1yW=EWoXU&kZW*MEw!3Jt~KTjTs0|nzoI12L4 +z#}0uqrgG_S&Qk9JY=UP}{;jTGGfik7pCbNHeIne1rbrMgLpmD$z}<)PKt6$3W9wOf +zuW1V_08%~2@#c${;w#skTDHk)#jb>fZ3!Ds_E~r)!3>6l#83iA_emDWV%pP9V9O6( +zQhR>D7lLNE;c~mBBUh&zr*~L(Ccy@TE1;NHHUmXchfe3=yJf=SJ4a#LR$Kw@j2S3J +z9ykepRY5S98(Q;n#KPg4bttwMHwNx#d4FCnc?M;v*#ANQIRB1!2p(A6~bPCcy&1)2}O>NiCU4fG$u-K8&zW}Fx(haE +zWo{pIKJnOwoJKjwIIrjI$b60rj|CI}GGb}KQ1@|Ig$#7wpg;_oKM1$sI%V|cjV_v& +z19s(rLK=*&;nsJ`(2VET^i6777);}I6y)Suq3FX!K*s)Y;OMl +zI0i(TWDz?X8-qT7Y!CkS<_-AJCbf2A;a+dv#<84@uHkhL*FZLoWo;bE+Q=44uv7i8 +zGb|gSdYul71A@n|?g0k`w-<)T2R9eyvvc~h(Io5z3u_8AvK4qk3*`#zd{#QRMFg`{ +zfG#68ptEzw+GK&ZF|K1{1UN6EV@*`U>WD5Clk;i2@W(~$?H)oT8k?2VN)7hm1uI%{ +z-^-@P`XLRIfw3oPV{g(H)w&&gPg)qt=7E9ZunQS^qF9;%Bi4#Y8ycEiOxfK-*v0;*~@1xb9VX_QHq7KF+`AWKWyU3oqG{kylS?aZW{Za=K+u|lwfu5 +zhZb9e=7t!qYBq3fi;hbgHC)y-KUCSqYW-@R4sii0?kVk0TMF!|H~?o0U3nYte3+#h +z8APJdY23^+e>GiTmZyxuI~!*07^m;J +zSr@}J=?T7PNq(`=T~I}3oHtX%mOg6i*cGNw%SCAUl++$cEmBoMf*61-re)=!Dmc0D +zWEMy_z{RKDvI4Q7f7Y`=sbm70uH#)B<5(O}Ya0^(+x?0kO``uu-J+RjbMI|WK<`+G +zuy1NpubDW9vG*~L17PsE2k_NDcoFUHXRHl~)E-LP*qN|!Fm2-ii@kET{H-@{syS?C +z0Cv{Njxd!;(u;^*8PHiBDzYbTg$qb&G0U1A!i!!PaUWTMw``ymr={omi9;lk@? +z>^{!iju-&no_|1CvhyI8E?urQQiCZh{>W=N&~ +z47VD29qk@!`oQg%&TSZO$!3g2dSPFw>Ut{D%W2qva0G}II3ig5|1et1zp2!!0(Vc- +zej7=U8Hoym>@l&>7#0f^F2M+dS@8)}pbC&DQK(exszE85L}QS7q)J?}XHM>)=f)r@ +zWd%dw6HYQ{Oc4_(i?j+zwk)X0y6eK2hE0vStiu+c<}Uq~`%C!#_AW#kTW7BC&d8qT +zVE~X%YaiQz!iO#!^AfqpdZgFF6aDJ7Jz>Kh>V}o<5rorn^4EsfFXj@;Xu>CT`6JVG +z(wVCq0d`#C0%B@W5JY$wA$0&RW|(;MZFWd0F<@u&0)YrLUr2KOIgT0H~_`699)1GsswP=xT^RJ_V7ZUwNF(pLy7f71gUJMF>Qx$Y=fW4loc01 +z)*TedDx_6eIIoM~omqxvmIbWi*e_2nqTBLha|;F_GLLL8w+Aj=t+P%a?S*y6eU!`4 +zifLH+G^|n{TBQV?Kwzj5TBHe!8l!mQG8e*L;1f@z5DEq+{N$LC{ypwaBmi>riW8hV +zaTs5H%^JLEg@M5ma8IX+2YO6A)MH_9Ul#V@F#&KamtSi8jX+chT6ui%xQtW48l|LW +zIY?$srZ^UnO>zWE1=YdmzCxyyFA6=@jCQ}`0<;ke@M~BUV6BWU>yT!@E;TgtoFxHf +zqSJtJ??Vkfz|oykK$2hv3$_4o%-VG4ESUlxF8~913q1uJgV`c%4kncn>|$1s>S!c7 +z;Wdh^i-@}vbFgwr=z%Dr@x}>%zXr`wJ;eMA05;x54LY`T=j2IXLKo!K2*zckb$R`# +zfKvRt$s#o308En#+ba*fQgG1QfZzd(B7PygtPTU~qY4k;!tZPq#G0v2bU0(_{(Cwt5pl)Nr|K7(WPF93MsGWnwLYP}x!aN}`)Z*oqW9fCA9H(#TbQ)SQ +zi+5kXSQvSa^jX+5RE9m&DG3F$qSUH&Ul4lZVv%#1C)@lB0M2cTr4sC1T9{r|F$;rp +z*HBy@#T()-x_jW776Vr{sge9_*hE#@(F_umhk15c{x2m(kveo*AzY?n!|p$Z{GX4` +z4d68ExdBtwY|jqb_~rfqz#l@0i=(;U=0^Z)H%l +z-=i&;=H-PsOHXnc||toe7U~>BuPv!TF98HzD876OdA!JYEVsrm;j0A +zl5!j=o$jbT2tH8N8WP!ullnpOv%?=?3Rb)_9RC3ii`CSEl~awNvj~s4fS_9!f(� +z%{~hH0xfIr!p +z7M&k+X_Y-;g{WD9DORU$#S5U+3P~m+fnq2@ERh{?gt5dxLkVUnou89}SaR+xyb8E7JwWvYd~Ly!@nEVHCO%crSjs*2Alzk%i9!A1l^A+%8x +zz)zPMRaUY$Y2p7K*$1uVJjrl9Z~BwXAsPyx`%M!k$ArF_hnea}I6mi!oO2%lysbmq +zAH`4q=mxxW@yvi;lq)3IwJ&93>!5|5NgMmq7P`_!*n=mO%9~jd1ed~BO#dkv5T*kC +zQVJ}9m&>g*a~xU1YG)l*GaTt}aR#xh(SnuzHIt>Le_s8&YK~F;uoz!B+psZ4)eOU# +zJ~%ovFVZKx;j)h^?l*LZr +z2w^EJB1Jva*?|lfEZqgyqBY{%JKiRF^rJfvTD}2suO`POK0%;LiYB-YqCtiu(#6rA +z=f@mBPtU53`oi!cC6kGNY8;gu5ibTf%f2ni_uEvy3Nj~Q&Cv);r +z9ws|9=jCKMSrzE))b#lBN5q7hJOi)WBlG2sfQ}C006tAbu!sk+Zbs(Teho{58h(Dv +z#M^#+7<#n%j6uMToH@J`pMUKp{NdW!SqKX8#Z>E-1atodRkxHX*|=?61)WC^Bh65;ZPngtK84h$QFbsigUWFxuB(Q-g*-S?9(tPnh`5jsb*bsr-9_XFj(9 +zkS&q4l0*Jo&2qk+oB!&BiC-PJ@SAQEdwUZyqFa0%8(!#vuz)ITOpp7d&VQBRC8IRO +zu!=dDbZ8`ePw1Z06FR@d+u`#Eu`7PYV@$hABKEEi!crMxiJ?XF`MUiDGkXKX(0zYpM;su$h=iX7|!FHmI;A- +zeN5G+P!MZFT$A6K5vj%IyKM_XD>jTdw`BlC!Xfm$dE$%4nLh9T++D$+{%AX5OBcMX +z$#k2B0g#>3QV4;~DYqAl!|nA8&@wz_$qq@KiJ4DH8j%Z9#M%*R=@7-Y>sxhP*kIt2 +zMqMft=X$&CxiU8YY%8M6){l8Af^!_%iQ9f_6W+gJ{Pn_YT+>T_S-^ukk09K-WHxrc +zkoGzE0ZcnqCYPY%$27 +zSqA6Vzvwjat%tV3v*i47$>Ut$mXGd)-f_OHDa2-#N({~kGK)j7R44;d3F;VRI6}Jt +zZe$ihQEEPg#Wy6D}u|OpVOa-_E}*2 +znA-qIbshjRgV6n9c$TcgjV%UlSwi5;kh=3)Z0yW5$vBXxaekK*^QJP+?)@5aXX +z>~!{YSpi;8514`rQ0aJglGTqE>`W5K^uo#}9U?c=g$}{Ra0^#J%rf{lsvi*WVj59E +zuQQuuu%WAIRr#5H(fOPFK62&fbnNHd9E~z6$|`9lHcq|HWb82$$5?>-7}A=)S^G6W +zHcxf2403-m{Zt&0+h+$%5yaX$WMRvIh3-TacDi5WJWQgcf_l24dwe40A(ALUhVjW% +z<8&#HVbY6KE;wpxj%hYWTTAlq9Bs+7RYF*b1jAgbDrwMl4f?Q2hGUmhb$xL_E+v!b +z%ymXW!VbfXrNlMibc)RpANVA^utU275mn<)K`fX1j8hU$LCh4D>E3!451dX?%Biu%0pf15#>lj%9D^!K$>K@+|UizoUg+s(z7S{nYjso#NI9V{_kCb +zS1ubp>HgfHjk}Lla9_8Hhk8xey@z0>2VipKq`<2`1f47_PXK<8>!i9e%VA8#xEfEO +zDRbf=^ycNbuGKB|FRLONRzxU_rOWRv{`n!b{<&>seBiEah%K94FY`>#F|>9p#Xnu) +z5%mf_O^>9NS>TBrFd#CM0|F#kg)A)I_Y&(h001BWNklP +zfo!!806`1;k0SSebwfF_|M0MhyN*}zP{`(2US6(>L +zuT1)L*-Q#9Uj(V&IgQLa%AT0Eri&(v2oIZsor?`mD}wa +zcVL?I$xrVKwGRNIy_|Pn+Nk4!0|T&n_Q5nf(1S4;p*VDZba(_IU$;zZT_KG!3GHNh +zmGgob2+OM}F8d*a?8;^x7c>|`XJnPb? +zN|AE9GTufBzYD+cIKt;$cuFRP0gyhp6?^~u${7RCI4Wk!iloj$HyYJtE4CQX)VYP1!w;3(IWoyft`pfS@XOGV>inV_DKNhEz4mgdVykEI<#q4 +zMAAo*TO7MkM>@nHafDhsB8sJmFj8{uC|56Zv+8u$VFgU`+Ih{PW_aSwLXe?@3~Q=3 +z#0{*8Xd*PsD%hFY=+M*hcfUgP{F*YwY8wFT{Pw_cJpA_6BA_&r8v!r+1&{#q{i9{< +z-o724WgE`8=#uj(=9QI@i#j-?gGE(Pi&Gbo3UN#^B=66FVOciu2BuLRBvuJv0UnOx +z4Yd)3;`FOLcmh_X2xempw_}Vgf?00mbKof3RfBaj421g;vL@GG<-7=ESrx}mS!5rJ +zaJw8mp-3yjO|3XDtYKqJ$ED2%E^MHFt3D}IoNX2O$7i6otrk6{8f~==fLtakkbK4| +zf1d0`vR>xVUJFn6nP86m=^+z6g9+GuN2K#r#9_`4SGWP8ruNZ=dmIONWgBFl%=@%OJCEMxEP-3Tt3 +z-O9^+*@V@(2UlORQMd{xSjJIeof05r=L}rd=jU0@kycy?7EI_AN32Ra@`*7_(PH58W*tqw +z(K~qPOM`;R1j3QYc8#fien@NjM(w6Rxq%)m>1f05*NvZUV`ckrGN4MeLKfD50woL5F${Hw&{PIOE +zH0z#N6U7=R8U(UzBte0!LJIa!m-0`eY6aIe%-RuEXZwrlo)<2n>JG>!PfQ`!G3YX= +zP_Kz4?8U5@nP`z_#1}2aRZRw7zQn-Ii^&+%aN|$&c;av`0z-gQaU%e0UXsd +zvjl@2eeXKO$A2x2QQn(9b(#_#2l +zDvPu44dV|iQ#}DzzfzKt`Tv7798BAIZqUTBj0tnF2X^9wBmqn=?D+&C1I!l!yg|6V +zs^p}a0j!AZO%mlyLIT8PSD?4AM>rCa>{t!0m}(mUsS}5A+soGCFE_ez+p{J7;E0Kx +zN4sJ59af#)ABH>J2#pGGZY7E(<XnRkSyvzuvumkylI4OnTkI;T$&{rBcpvaE^5$lQ=1{eSeG>$^Qx1Nb%Y%25Q%7UPWG +zf(54Sx(hZ^MIguOP%23j^2$1ui$O8aF3Q5()3FwQ@5CfSrgNR?V|!t+J}2Cy(wH6( +zB5t)vZ}I`HUR?+{B>Gb%i^dr30Ue8+H4lsRYPoTN{=kU}esxJa^ZSitJAhLsT= +ztD?FH3N((9#hLDPQiyl$KRt}ds*9()tBHQUwgHe!C$X|MhBvKnbyv2}>pfQjQtqRt5=r9#PWmq(mm#7M%WEIx(&QYF5)d}pjEt@;WGU`E3} +zrc=oa;EIK1)ebj+`aL6=TgoWIAwD{F540F{H!hjWdKkF{l2ni<8PmUXkuSoeZ*nm| +zTq;ia7{j)phvGo637%*JHpVnbE^Lge6zBPIeaeEw%uF?Z;y!p+UtX)CIR-$wCP=WP +z>W*wh?xWL3`Zx`FqL;;1CY~Cw@XUY-YE;UclBK#dt)NMU#|IbFrJm~V{^vpbRabPy +z2cW=I9wt+MoYGW{v^i>uJ3PhOO}GRZR_rmR1m(#OM+RT(-#-ZV@{31Rp`OXX(%ILL +z*7Wt-1VEu;!|L3H%!jX-FwKt*@>IWxUmvfCJ3Ij}tN(zIV9J_XNHEMryZy=qhD@)K +zH7wG(i3d=AuvA2)n1#jMG;4T>Csc~?7|QfnBoWC?jy9t$sG-?Q^Ee$HAx#YBTKyVY +z0~DDh(OkL1lN>V>+pdI#OaJY0xR-9MSqf0fLAnpaXkLbwE^&)dhH#)W1z4#;ppcR_ +zst`lr^v`)(GC-J)W(H0iW?Uy_YuFYn@Z*z129kVM1|+VDbY|`X5$Fwzv9>*iYugOm +zyvV>+ZLU+aV1xhgw4lMh+MvNT4uBJTk^Ru6qxKo*e;??o;O?WQh+`e?>V`FV0%gu; +zIg0y&a0}Zj2$#n*{D|a}#S~{o)!+oZMBB1lfJd_xdK-ws-O!FTQOc+2IG<+OF$3p? +z)dG-!*G#)3PBt*s-jPLTZ$JF8#>swlN}taTbYoe^BJ6to*w}$A^mCT1llCPoFwJ=& +zW#LH9Lg!EpRB1)WrP>AnYr->sb%C5B8};@BW&HS91|C|@ZmxLt-o?s}{h>l%GB2feh>5W_Y)!VvIU2wV7n`eEA^{DIj6vqrW< +z;=ndM`@Souy$<8R#VP4uJXXXn9^Z<AwR-U6u_Vl6J5X^4V1#0DMH=OiTAjY+izT3tMLC-g`W=c{czk|n@eZ^!H{tRo +zC5CmwB9~Ms(ywbFZ?F1Q0l(O?1L0Y&7aG|{$-_Hw$J;K!tC!ClfAP{E=CJ!n7XtIn +z4RXxhQM&-Bo&wXLoU6Nh3jC7CVm65qv4BEGrAMPJaJQd_>su5K@S+ZvRFBpWB0r_Y +zI7$%{pa@nUg=WQI&c;B&LSKOf8a4)tmJndF;?k%{Fm!D!QxlUZNEV;T!dh_%G-i*e +zDO4`N)IA7yoLAEr&gVF=~Go%!mm3mGorI=+np1&-vba`qc#nPrQUbWPPS1)%@xO#E2SIW%F-h^7X(K~=eTolAAv2ZKhCn-*923aH|iZKRL +zf66bH>@*?0utSsFt*J#aYv{*XQB-An2>Y9&f@Lc-SW2mlnjpcGZ6khO^8a}nbtte* +zQoziVi4GFE4<)!++AOKwAoTbmG(o$uuu&Q4gnQXW_^M2l +znP`9-?c-Fege4zYR3y`;9OU_Q^u${bY@D3QNsUhbOoyrM6M&hA+kfYBymrOp7GC6x +zKGI#mue(h=Ms7e~0(QUh4XD5c&_|f-3UP)HN(blTx;k2ORA%3-rb}tDN`nk35fE3E +zGIZM%lv8MsEC+DB2!dV%i~PzcyCtB=9BqEx5yT=EpiD9-OdIv;2ooC{b-3~V(2*V$d$8oijbNWGb1!4doGFd8!r?6Uhmf+SXv#dj>#!!3_T0$OKXRHbt +z^1d{z3&)kd!YmYtgxg4+?@x@c%-`svvUv1EJE`HVFZW=#012m1US3pFtVFVqEbk! +zI+bD$21jsKlExN6kGErGRQXa}7^jc0j!Dp{)Ppsd4d`l6Z{N>JtlqH$ag;CzU +za%=}&ZL4H~Z+7jK`%@w1)X +zFnbQ7OzWdy6mE{rlo)p)@G9^{&wxrkEh#%UnO;H}PD*Ds|pAXd>HlOwi*ps|X#5 +zOII)|_EptEu2$!)j#J|RkknhDfJ&-gN}-3b06}@P@^>?rhE~qP?e;-$T#Qv6O}MVb +z5ZM$e4lo@z*BfyGid+#FphS6D1OrHyDUPLTV+Kn$?%94+>S_Ej<%f2* +zZ25Eo(MSxPZ<`n!jRInv=E|C`tAb~H3b4BNNYcRFv2Mz|>#4P8jRT;1k{sQcsi7zq +zi7*~!Xj)fdV@Cup?{MKoi(R;?r8e9+mQa(Ed?-bO3{~qwLOyF?_)fxjvS14L7^M;{ +zDk?ZW!xmGWVvu2|@@kPgXWqXmilx$rIt$2Rt?+y2A6si`9p~h?^2q@#ZfV5sH%=@7 +z#yZ}ET_#?B`$4$k?KKR7IS2sG7wvoot?@8k+F{_eE8Mtoks)U4GrckUb2M#%>Czoc +zlcsF!OIz5JFp)`8sURaf0gF|lnl4_yqMt)@h}$CqQRE2_tWssqn&1LlZ&YiPX8N2L +z+Wti5^2m1F`HstQ>(a?(_eNeT6B&VzJ%G@vOKR8za}WT@V|(#`uiuEbubCO{XRZRN +zRODlobI$Dv6Wa$Y*oiI?W3A*eCG9LfM3Qd?#AgY?O5w#R)iF +zWg=qH1hZ=YzN3Uczw=4NR&F}W1EBK&UU$VBeEX)!kv}-srsBXuT@~ry`a-(Qj#vMl3mJ*%uxltMw(=J7#w7Y5hW%ebNTfoKR(km}?2><5Bz_(S0u-puh2B^-eM6G~+}5D`F2fmsE~u=$o= +z03XGDrmzX3oEkuhQYQ>9R_cQ6u}0|87OZWH;04Ww7#&{Q?s{HeyzZVnezIjRq8%%z +zaP+Bug-?L5)-Dao)8wK__xh0fgR#YrI2XT1G=j=_xW~j$cPFf54@#yfrWnEv2vVUf +z0K?-yrASUxmWc4GM3CTT%6MQ=sggDr=bNa9N{Z=Uc&oKmo5t%Xz{ay +zD`0D~8_DxaKl2#eOKL}OnaDZj2D;JO-j0KBK27 +zN{U!RX>^Ai99n3hsBkccP?_2$qF|>%reRaXyt;i +z!-(YS4Q*H(b%~TZ1zj&{G;m&&1Q>nBm|SOS{I;)UkjW(B4@IYUk7nrGGFLym6}gX% +zO-cRw-U{CNou?38KDN{SOq`AijH0N5%M-&a!PmY9z7ZxUGjW{p_b~?nAWwlz606%{ +zI51Q}xZTjhP4F}=k+~*?u&5Kn7g60> +zNqe8EfrFpk3cYa&e6`iN8S|86;5o4e*$8^<+_=bvn>ySg1%h6W_nLUT$Hb$(73@otVRj!B(+3Lf+J;v| +zswhxJz>A%m9AqKDj6jJB}ZZpQE{(4;A$t? +zIb+Q*-j3!j0C;A}?GNJFzj>KRnVh~cH~pK=iioHFrmKRz{drj3`=#c;LK>qlAS4)a +zip6%*queHCkaY|iM4+jdcLcGDu*eT67nQmjKS;`Bs0n(w83Df+Z9!eU1eOF1F~w*X +z%^)SU-r&>4G-I~(gF^rC4D^=s;GF@+7_UEnXe&PZ`pfa24bRW%GuzXbSM^R(^OUvG +zm$z^%XA5nVI1JZ2W+thohD6h$i^HX2x)D)VBqX}Xb1=|d#zG8`A+6ynsX-03UjuMN +zNu4-|TQ6CS@82B2FOF64(<2r9yt9n16BNZdCZz}zYL!e8JGw6jFMY3^t;7+WTAzg+ +zDus-~18BKPjarJnMp|IR7ojcemLS{IU|>Z=$I7T7fY(G}`tgR5nfU+4J2N=g)dzoc +z`tB(CL?4#6H)GcuX9kJpeK?X&YPtO|0wF0?aYY*D +z{E0Cy0zf)=#e~OYNM|nNn6`WoYx$|Wi1A-Z830hvrE+97Q#mU +z2iF`jFXwxOhS`cc+?})Win}uy>NzfW$4qR3v>tvAzx<=Ca829PYI|nlJgWO3^N)p! +zkM~q?Z{D%$1*IC( +z)Lrm2b|4U+S=@kT-d5LMELnFE7Kb%7(7Dp5M1C8*lrqu89D^L_*1*&y&8HeDO7!OnK25gY#RydQy%nA_?`m +zge;zg>{1oK(p+MgAqE-51q=f^(~5!<7>+wUJ2w4!l@OMgX=@bIG9=JzBYLb_Q0jk% +zx>fnMSihQrb!g20u)NzgRe>M{1DM?sv4H^G;kbwhFQ;QB#RDP+Ry!tx44Ux-vc|iA +zB){DB`Fjyvcjb5=oz?$40g#-NMexWg%MSM7!sTsv{58`b4LBFwCG*e<_NHthzwAz0 +z3J)OpB|C^RhxaPU#Z8k8x5{d`Jjy7;&_y1_Gh)Gg`kkn*O=OiKrWbr?zTYv;CN|(W +zv?%jz$4GEl!e{#S#4{N9br&f1Pw%3Rrl6WB~PXq>w +z$)I7{RQ|4nvUIZq52evrY#556IUdFOn1KxqIxcQBa8Z*>k__WXSjN7TLNU>WVB_Rc +z;FGw2as(8(rM$kR15h`JyaC5ByK0W;9}nEm8Tg;OUe1WRL7{AV~Bl{LxUU3u2r1uohc$SUR*a&4xXkCrlMc5;sr-K}oYxyyOyhUL@^6XiEmr_PtxqtxTbFMvOe +zU@VF@KhP{jaymL_j^W?|6vt|yNe12F=?w3lJ#1j2J>c3OWw2$>A%t2dUdkZkm>#aV +zqPTK-Toc)lh2IdA|e=D-SG +z@oJ#Dw`L3PTNL&DQF!J7KYCsT02{AxVn1Gce-7Tbt`GOOyUbY14w6N +zUfHdl6ly9$^<@HHc~tTl0lU#QIG6!gFLb+_Ih5#!1}0;RWYhePz*~czAfa< +z|FH+*S+QxtS(W@yFIrk!aOf?OQ7@ZM8wLb3I0sXdoiwqF0>WuqBq+;6-LM@yTRxqJ +zpSa|0kZ|Nx2z+%gl4%xknsKIF%R4KW1mw{lVdRxQyfky-Ed?Sjgpo +zUbY`-a9Z99i7>=-D+>OTfM(+Bc}iSPK^ +zR=@$`79Hv956nuv)3_Hq#s^dYe0lB{!K0mDsaQZU(F-e|g)14R^isO1yL$N)F?-7d_tgCr!z){l7;GIFZVU +z(aC(-=4}A5^EU+jSQFQzeBp*gZUJ;=(?fW?o5F=R>6^^^3n!ppqd%{H=ih0Pkrbm0 +zTkM=NWlI=V1i$!h(g=iAnbZ_g64Xw$C>NEi`8aI~#>@~G){-Hz9al=u!vnI|Hau?l +zTtKGh1j>~X!fneZHM$mwyjv!^|9JVVr=Hoik$*X$ObETxN4m$mR}=mJybXX%{|UV8 +zg2njZ%VrPCuWAOdwuN(D3S-eYo2D6x`~p-m30Ua?pqQ3UN(hTyx|U5IfMcA^bmZ{Q +z%=zmo=g)VFWf3bNMj*hKrv64;fEAeBL`-Y!XY|P88OcaVnYFFbsI2Gn1tc{&*^P%R +zqy|9WHoapbB0e{o0uYkSYSv1HDGop!Kd7NrRSUHV8)0IMCV +zCBaoUcxZ4t3-8hTYqh+e=g#1gTz}Od!@&rI7r-nCH)mwGPsaeNc~8;?3W|gc59$*3Gh1&QcBjL+rRM*i*8xz=;s1*n2T6ng;Cie7~VfOBqk*h=(7)OGepqIh}RL47oAHWe=OtKZg +z#T#jrltG47DMGi%GO(pUO{OrxCNas-f-ywgnwVp-e3}N@oDMYjG{FfPeHtPj4RMc# +zh*uMG46%WkD(U#vzB2ysn@_-4x^Z01%=}<4j8GguzBP&_zmCofr*amOB_-O+8vp*H +zn&O?va4iGmOBEoOkc^GRYFioep-Mm)w5+&waqpYuJ%Vj$z=iUg}83lA8bh%>Sn>^k;3@iK8NMPBtCu|7|kH=p9A| +z9##2>1Nf&`nlagqJk`%HfB;aJ#?DDGJ6`l(_Df}{n{J!)c(XMD!V-hp0tkR|Auq*j +ziFch^D>PT_%j^kFFvtZ+m28<`CyN#mB^%i?kSc6!jYgwFZ%7zxE2A3DiyBxw%R|!paVzSfQ*s +z4Kb7`mf!)DR+k)oHUItm^@F7MSl%lg$5y5om5TTcQ%8t+!ANrqDQS=w7lI_gsCR;1 +z)D#jYOF@Ml09c+1Dpy}ce5*J>bxI`PhXw*>OzX=z5NVL#i7qQUrr{?Ie-{?o$@eN_ +zjo=9~X+x8a@NSx9uwGqBa>$MM_)kG7rBgGL#2af?P+^5B +z#js=)tg@oiNa$g(uye2;-f?|r)oIM9jIxz6hK8_5aRg|R5pm42Ip+>jAj=WP3b;70 +zSE_R^LrpCRIuUo^tNL_cTDL+Ly+eeNH3G4=VPd@vK0QjNja)_59dRv^DceYw_ySU8 +zRi8w)yg_GO!nMj^0mx=^u(Jb-yUai?rxQ%^w#2ep>Sl%uDDD)(?bZ#pJf +zIjaKqJk9l=@rk^U7Qv@qh&va*#$ApcKO3fuO`@t +zhIj-^nEwyzSjLwaWa#J!DJK|$Ueo2kPHa4yn@_RGuP0~8i>b{cDT)D;2cUS;hmy7! +z8cMpkkV27!B2I~xoH;8sH&-*cqb}Gdz-X7r6lwnGP8j7JjBqn_e;Bc*7BR^t4zRI7 +z$Hqqb2N+l!Jp0n6le_g(`!uUsb7dPeI=uD=X$+)ua8IESZ)!)M`EQ*y0Z=aH5%LGH +z^S8qb7VMh&+dF%E{HJG&`1mh&!`-rc&M}AST%`(tFAXgS9ALZ)E%YA6o31zy|98{O +zrbx#-?#Tah=1xq2M%gsd&R5jjoJDz@uM0PzVu4^O|0eGyOA6FFfE(A%T%U5m>vM7O +zOJQC0f36tm5Q!*-Ms}kwcBvYKSX~{ZOg|(<$t!tuOt!pYB +zDY7ZDdzT~x^gvWd=-xm8VJcU9H7VeuDc}-f02Bfa=x7OO;-9uSq>m{89RH6KNFUpc +z*y>t(`A+#(j{C*4E&zDNtRVGPvUuVzt{1(~>c;u&?!gKUBrWWtC{~KXST;J-781Dv +z>|~cnhg+s8S*8jLy#xUq9|08|4Edu?6xQ +zq->d+<4M3rirB)MWta{NP1XD}oX2Z2 +zudkjH`z7b^TpuuQcs!2h6_YZDwyYWG^3I=GZ^Si4reY(<{J*R>)EZ=nTBQ}BNVyoM +zEsGh2c;|-X31?}B1haV7RLwDD0C0={@=QpyPqY)x<>yoY{NGT&1~ks)iPZAgB#o2? +zJ7HL5xQNWka$Ii+v(5 +z$OYk8vV>DP#@X=LDa|M3* +zTaCD(co2xngG$SiC1*Qr_(w*KqcOzHPStNfJd3O8SuwxVu1FIC4Pz7S&-y;0TmPyx{P)1Splknq)?e&67g$IQNg9-@1|*>9;sRqR +z&cKLGfk{Z{yXc9=+WbyD;BxSSq=wJ`A(+`7z#x2^Tz+C}5rIo0Btet58iFYPMg +zfxW#b^d5p0Y=FOUQN8nz(fG`=UE1ur_wHAQZ&Cs9v-C%v>8^aDSe56f#a&x~$Kd?G +zlFy=;?1P;igkLw|T6_VnS`o*sOWn9>u^a0fX17F`M%4EnFXOJGWjuB`fy%M%$lC_A +zP#oS^i_k&Ow6I=)%|7F&>@_r8+~)e|-7gP+QU$2m-AB +zBqpH4BvIednU+#)F0MU3sakc5^CTDDjyq+&?Wf!Vai6yHMeAZ0{r6>Bd3eNs#ZQx; +z*wSNtgh*t4o1GRA5iMcJ*tEHjgA5m5ONvt&YgZ++X6G!Xo&h0*OR$qP0tC!!h+Sv5TtHQfZ2>@9O{3LbP(|zWx^{2pD +z-3QLui{t2jNwe|OyI&c3MYR!5S@gdC?!?UxcU!-xXM@h!K5|xHII}<3wCOMX?k%xj +zjv4@)H{1HxS0x@8%3BLZ;PI@!W%Y}j$rgzF^@rcSKX(1*&6=akI*LExUp|s~>G$`S +ze@?0I`c`j&v!w;1ULCJq;ePq&t_%Hqw28&X&7>j$a4o{+G9U +ze)^MJL&J0bQKvxFKYsL)%*Jo-uRM_`n)Aoi_#D59^~;}n3&gxe;jOD&SA62?(6-a} +zGA8nS%TJPdu=`t#Q1 +zbAK82GpM(~)LNj)uRr;g#fj@T-?*YMsQ}=I-+zB*<4=#4AL-9qb0@etwd<~btKI_i +zO3vK6)P42mZg~FG=ZtHBk!|@ +zjXvY2FKg<5-4||IU7W}{OgI3zv&~yh1irZ|aOXh2a?3<^UjIzJ1!~y>jeghNZ(W~z +z!{*BtCUlE +zanb=GJF;!xVNJ-LbFq#X?pQ6rjvsI#za;Md^cPo!{(i#-tu)=%nvnpgp2X&dGZ#HRVEx^mA@h~A1+6cV +zr+a(q-)9SOksEMnSQ|Hfa%H3bx0|Oq>W^&I84ZByj{o|h>@C{|%@6DuGH<8{LcJ4D +zwFO3W{QECxF#ho~*9PyN>b_<+3pByA_~0X%mu?-f{&>fL`Lbfg_SC0F6KuG1{9~Nz +zcwJg)L!!o9ZZp>+N-mtnrxF55Rf +z-Cw!DG|lGOzR3Fi=Wh!bhS7IPlWV)?)_zkljeD*Q`?qYqQ9I2UWcJR#rU7vJWl);^ +zo+HKcHB(y$-M+xq^ktfjHo%VC8p5zOFJRY&(q`}e*I>^YEoq9HjWnPQ*&4bv+d2YE +s+in~7?iVlf?!5D5(ZL#=$f$?-|3|lcqCxOjMgRZ+07*qoM6N<$f-R*A-~a#s + +literal 14761 +zcmV;aIabDrP)yZv9CFAZha7SsWD;`!yE6I|Iq2vQZagM|eu&Gxbso9Opa7 +zxrYy#AaVl85kA3{;{BdL2$TfzIsR|4zb7wrxKA;MiY +z!lmbpAXok{Vr{tQb`2N0Rz?;IS*LuGx|fB>0~pMPPp}ABYz9bLK9zGc(mwoRMn2LZ5Sbc2%?L(a$MNFOIe_jQnV%BQa%S~+a`MBQ6D +z-R&)&Dabq16k4faGP=TIm=<6ixJrhUfRqe&pdJw*1VIp>AGm4+T?1Si!KHVH4s)NB +zp(Wv9=eyy+o)s1gdlMn^x1Q3lJ>BUE{Bd46~nR@b7{qwjo@_=+%5r+o8S^`2{Z6cINb6|Yt#C-S3L8( +znzpu`;V41KoERcOhcodLkY3EX4uFg&hU^wXP5=~fjV8Q`v#z|odQkN#m+EwI96r{PNfD*abkw5d;ic}ps_TPNAJy)&x=0`8)iX~33e0wIaX<`3`5HWWa7Uo6?(S_X +z{_)h>xBk@{Ee1QXUkG#<5ntE={i1LFXGY%O2|u)`;Nu5K-x09D+{bB;2ZR7(AP6YT +z(@;{Vfw<%4w%TQPzW&hHmI1IL#gP3%pu>px+Qf-xd8eHJvrF7XBX9DBF|^HR!7$l@ +zd>LH@94nbiCzKXwDD=p>&em-=ZCvoDXE(2!<5yzHdLhtZLHt=)7Ee3 +zc-s9|3^B4_0M5&=#rYaa3pr@{>wdp(?yV1OT=9B)whMu>jQqk5Xk(|HT`=Q@&BTwjIKdk{3c*k!F~_+TYH5`G&hYHohN-5JK9jK~4Y^6`CTye#s5< +zE_4-+y04|(EON;BIRPY95qO`!X~VUz-FxxN01PDnD|(iY6F_?Gj(*{F4^JoVn30_et$O31;*&a$p90K?xK2(WQgSvA0_{U31<{santI*hV!PqvbzZ-!LW?8v`77vz;g(MBz8B-K~z5T)ysae +z^uem}rxgOw?S2d*6GWh8h~*I~>$}eX)4ehQIeF2I7M-D`Zg%Gs7(0h2n;SXPF +z+_T*n=&n)>*om$p|LiZ`H}04V{R_ +z)ymsjjEdj2cAAKT4Cw=MXlXa$$GG2Ldc!-n0r05mE>w_;!%zURdwKNI($SuCzw`EE +zjU5G7cLpqE2Xg4}TWAbdUUS)x-hTur@!EX>DBU6u1BLv>BPQjY^_>@=uWNUm9|}j3 +zKRXh5Zg5r?D7@f;AJ2Op7?C$nL?8wN`G-w7KL6aWJ@sO9o9Fbf$@a`WtB^z3U^M&k +zPrLA^FTGee{@8+nAOew|e$pm?(eO!mr+nt0FVwfXPBASBFo6kKiX6fwqp`z#%IwSk +z{v0qoPw_xY*Al5n=W0($$tcgqzxvd(jcwY=ret*!+ah4j!eWqvVKSQbi{ShpKK~R@ +zlIO5Glsy$7YPHAx@oQgtthrr3&5#mtkj3oJiJ&!DIQ!xo{`(jJcf{&Y77oHlg{H#& +zsqZhmvnk;HOxU#VASHaVf3QEN03MJc%E6LAkiFxNpY_>68y7$PW;!0I5oy@i=KAzc +z7G2vCD7;EFywQlTLUI690Y-l!*BG~0l~LuMj#F``Spvw^TH?EjPhFp +zVW|e7b5zxlp_OUNMcs2n2P>Mht!p&{^8CTvl&hH)nM2Fu(1Y$)1 +z=GcZfW5IAh4()ymRB`%K$A9X^@peC8b0|YAfSvirOg*u%VB}e^b#|)0Loy@-ETIS= +z5ehLP$YTGW(@$%_(krKadQSDExD185=KVJBQmJZjM7Q-2~2pplSE%v)c-8}2^ +zTaI?<2L@;bP~;ywc4mRM_{3*ocXl#>L?Xypq1+BqLB(S(d1ln8;|n81(8mz{>iaLh +z`%kStF&I*1ZAd^e80tGz^n(>*<_zy(b7=0w;AxlMd6&a{V1QX5<@+zV?%7!_{`}8a +z3@}Iqz{K4m;E!4%?o%to%vr$QoPHz&ZPwt=ocY{1aAi=00g5JY&I-jMhhSJjA9>cpm7^yY_D2;E{b7AB{q94*tsFI~kcEX>iP|k>IrHPrDBCLI{W9AK%LRvNtMT5^p~6a!wQMMZhXId$UZh7y8QU4dFkC{aB6-23`^KqmS!`(N{irRN1@ +z{v;?!@?i84Vbi&znWB_P#oA=?r+XVnZKb##QhN6r4q +zL!a!+Dj@nQ`|scDlkXie&9tXDwLx!8dG7KgLDI3JhAVpqhD@4wNu6`VR +zrJubym==ReX8f^W^pt|WsshvpncoG#ecin^*9G0fZ(&425D;#!!@8BrK_U-A8wBWX +z5HzroU)N_6-D;%Bfgclr)K_Kr5iJJ>0mMotG=K%rZT%P$#IpMs6a@COXAa6xG0 +zfbIgZ01KhWtV93?gizU>A_TxPLK_YuNHh7_>|Oxi5MY@A43re=C@=P)xX=Z!TZhX< +z$afhqP3~ImYxkMh=QGgJX@VgD0w^k1QIz!6O>w~X-4V%!dq)B4odBqpY~q;P$eD@E +zU|4KgmI1>GnV?{i*VVb+acnL%=iarwL1i(ScR( +zz6EGr02;_W2qZjU0ssMm==ncg07?Ytf<%u9Y?e|20jNrHXa&GvD+IOz&=AD<5rvpE +zwglt$U&mB=FuX#COC$6Kh9%LoFO2%8Aa*wduw$A;03;^@qC-M{W&>JoT^AA@T+RMpghtcqKr9BK~7he;x#(oPy=A`}I%0a@-xN3K$2|3s5TAf7ImTi!Qj~ +z&Fulh<$*Jx37~DyW^CEG2@r0TR&;3YaV4R-JqS`l07sB9lGOZB(kb$S)n`NsM~H}HQkCygB#6CVP-F#S +zyKIA^$W9<=q#MKtJlHBg2Rrcv;JxOK<(J9g +zNq=KFAgUo={q`J$EFDA|hzTrQ(A;HU%^lGY$E^Z=WQ91nln*vrF>7iuzVL|=7*U}Q +zr~z_wyNP+r_hIv{Fi7YTc0;kLhd4yhmWe?mVA~_**#!WOtPI>kU?mcU%Gi-sM*UGh +z^cZ^RqMPU>1c(ra@UiS9h6365DdBW9et69Otx)n+z*z*zldQ|*k1UtC?(#91GRiZchhIDE +z!UC(Mw;!_qpUh9cH23^CN>d)?Wzz{NJ-etB(}4=Ei8giH-{1oY +zH%JJ(RgJJk++#-oidq%oh$fpya*7~_U81{WXvux59YffpCHz#n!&6T)6+Aw)N>Hj$M$m}0jIfCOyI +zq)4yn&^6oE*kS=FipkE|-3Hr&j1^Ku7XoOq{rPWRIPxmH3P7spGXana9f14zv%WHT +z#^>+dVwgB+=o+xQW)!u6TorfH2m<& +zY7}_|l7T6KwYvyQw-VOW5?cMKW&g5#V0txU#u&!5;S5bfQV50^FTdN0T}=d`nq-^& +z6gdM>Uzs?9WCR6`pa~6{Mi2*rC~kJ=WU@PAs|8UkO(~8Yb7_RTesa;M^()?NQO&T~ +zTN^|NvGnQv+MO%EfT9U^BSpA`fmLtLfhoKop@CRH9=L+Qnhwof3cw9k%c4lZ3Za*? +z0X8~u-pnF=UCXtlJ1c2a9eiM522Y2qd~hz;LT7;M5Suihz?@6|y?; +zg>x$K*)z(~TkP5gJhx0>$rb`1BJWQG%pA+ObcV#R67(8N*7>k>Ll8pufCNPoKsBv^ +zE;MMmfKUQJl6Hnu$nNSs=baK!O|@?MYrcNokdp!UlWB%2N&DlO{kdO`8GrVVR$CH% +z0+%lF!J@ecgan8*wMmXZ5Nf_p5biQ10#3>baWVrkvlCzaWCbocbr5=k_8{=o`-J%$ +zMA|lt5dj~Y%(#4pM1cpr!m>>PEcw6>;r2q2w~Oq$CZM?l1Sqv;6$Ex5e6rbH-I(Bh +zf*|0v$9_BY*++h}({6_QOaONC`}MolUL*65_$^W29ple|7OY;f1Q4F?K7i46wMUy8 +zsB4K-vm0W2r&f#z7_3A<&H_-L{|o1o;ftN +zWmFWh<2L*MF886y=Y|lvs-CGgtK0{6M!|vbu@Hjr)StdJ@xL!Vw5PW=h?22CSN?k8 +zW!@pjK8P5kE(ToyjkW7hyLnHy{SgGP)>8#Qtd>hP2v;$Pv>u)-^j-u?07D9Wxa+&) +z9G5z`HWL2unn1gMAd}xlNgnXy^Cd==GZGe;rI-mEqNiN(8Xb +zLCi`RE|9ATBt*Q1*wG4U=)`STkHUm%4-#QhJ#gEr8vNljkUs?_<-36&oi8zdFe4Ef +z+a=~K3&7tZ`*!2QmFobZD*+IoX@a=pf=3)x(cv`&z+fv&!1iCnE7vg +zSt#;nLiUdp!HpM4jILlL!pf}%*4Hw0-IG$Y%21%xvb!_kXAaJNkot|CBaNm-%lvLNpM +z-dN~@5_CcPA7DO480CrR=Ui@v}Q9!QLVT +zX5gKd?>*(=JHNlKH#mX=e*&)f{toaQEbv +zT!l&miHX9*AQ{57mkm!y{-6om@mgk+U!hCDx6dKmd@hHO$_^fl@n1`HS%Ks9=8Pma;N|f2VLan +z>$;YAhJix^!vaQ6IttBu-vsLdBn3bmnf92KFa($-$npcC&@RKVB7l%VeDM>boQ7O# +zoj;SZzcb$2K$u=lIAIJU9*#T0jhB}Bp}C4c{b^?ywirZ&$P#7umH~xlwjf*N1Q2O} +zs|XZlRcQ860^k44(1hC?Zg@&Vdmsaj3E+d97~k<3E8(_@MH|A{vrmVnyL#QMa&paT +z?1Y))5I&|_B(P>t?0)Qz-<~%2x%+FK`T)H*r#ucFH)~8fP7$vhb_90SY=glJVhNBc +zSS+FJj&eg}dwin<+$Dm@DnJO~($hyG5uSRVvXuOGKk)Q2fiImR5f4+U-KcF2LU*}A +z2ivS7HoMz>9AchZWQ?VG!b@drLF(;c@E9Gs^|8oh=a$ +zog5JR=fCWkY5F_`6dhtS4%KRcM;0WERo{!xA{+ +zsOea>Xc3^fK~kj}R-_lOKZ5{<5`hF{5G=eXbQ?HnYC*z>S(a>}EYJQn7S|9yJ%i#t +zR5PNS@ct&FoAi{tow2!{uvzU_xV$B&MUfxs%1Kp#A)_XENE5~B%8m>`cNbvDh{0&s +z(`s8DFzi#dH9*)T0dtQ?$O_`b$;Am@S~YjQ0B1eQE2g5AbL@*`dVnl@tmT5%1-xGqmf{A)Qi=H$~b_f;y +zmg$`}#0;Ep@_EHkRUml*6b(P7Qc+7qdSJnYv6ChNY=R{N3|j~+qs|{zRe%W^OiVwr +z5b>~f7oj6Kz{$^jPnPxoux<|_9x96fW)l$96GS$X6y*W3$*y9+VDz}7D*zl+1t6#> +z8a%2B5lD{^ED4lVRm0^LP_T*5sv)+&f+PU|jvVGezB|6omu{uQjQlp1Zb`H!3n(oR +z084;vN|5M7!gK%Th9OmBhXA0IDuC{(7>ZaR9aX_F2@|GG17sM?vPX){(iSDdemcwo +zCXOjcNQgDHl%?c%#_C#1NTAAM7nrRG!ePH`I{Il@)LU4N +zqCrJqNHC#W2n3Mio}-lr+@tMrBjfx3`Zl1|j}(wjTbR0*nmY+i?Syz3R78-LnXw0; +zCU@rp^K8_Zf#A4IM}bk6VDH%q;t(AT&>L6!|IH3LpSi +zAqF5U2^3Wfh1V@0A;C~0P>nDMC@Rn$c1O~{;U=etBpm@lB6wXI0M1B}OO1+BT?Qph +zg9if?hAA+9`cZ%kL$XvofdmT%nBjE^BtmBxj^J!1zd~n-9pB>3%$b$_6?DN~=RsIv +z5DYVKAg=g22ofY4Mn4UKIJ0Z-Om1 +z7y}q#6BspdB1i@x!2qjB;h1wCu;kBykpx1D01g(&Aw%eX40Mne)#Iu`Y}uWTv|yTW +zDDP<;YVp9(l&&!n!D0pxWu(}{F5z>o01jX?9K-;JDS@itW1+zS+cbthY#|W}+z!Og +zX7Vc(dYo+{QWZd&9F(wFCGQjjpfLxK0SHSC6Q@rDvDvdG)Zq&|oVdd3&cl%W3PpL0 +zLt&Y0+4KUWXhv{c_kId_v#?E9NN-uB=qDg`Z2i3A+ZWV#`y9WcnUB~VD$JS!Bz+i#Uq5BZ( +z`5Wo*BEQ1X)eJ&>GD +zaKxm^ShOa78>4B!sYh}evVMAbb^4JET_C~p(iVi~P8<0dsX?;D_RT9gVk-bRsS429 +zS|2uo{*FxDI3-*K*wN~OX~q}vIa3%!DG)!y$S6>J{mkiEwB8zHn!! +z#cnK6^=2%VxBh%w3P8pYY^{0LxU~qwB(i{MQ?AW_%eMSpF0!>Caw$}v{YzY89HktdG`03}=$EPxelpw*{KcT5JdH|Mr +zqTf}sdIJC}stVv>DuA_X!#lNLMkXU<5f(eV2J!M462gm@_M0AD>trj_`N{=-$L +z%Y^5Hbp!?WwlYX_W%LtmhS6bcU;B1zpH%>a!=~YHScnWq&?LOI$%RBXVJzdciJT=_ +z-^Q7fB#s}=NQ5o*77X%cuJuu9uCJdT4u{Qy?EyF{tOL=yXX6570oK=fP*Z0y65y+| +z7}e#RHRK;%!T9nlMj~w9<402m0Mawm`qY-Or3XM%1u#Ec +z_{a_!@-Z?H92L7;32$u>jyolPe7;1UJ98fn%Xb4mIbWi@kdX-QZR!N;MPL$XesyE& +z@P*psqBozcjj8}RNCDUtz~|c+>TKKdmLgFG5k3}@fdw_1{#i>6xt#IZ +zvVC}cSv{ss9u0q(`=0!1(v!4I%zgf^Z$;Z5Cm9nGg8*m%TmbR_6agst?Co1#$txN< +z0$B#H4$Pipbxlo^=_8(5F7R#*K{5^r1a)m`?%LHkqy)XjOG{cX=et~*ul#nNWd@Or2%ErrTLd0`SBEczUZb*zam7rDd%s|H%?@TyvYXLV +zUtMz6WQiZ2CvorRt**brewf7>?S2b?d8rYL)&&p>2QlNQVX#=ss#mrf;Q*fc+s$u6 +z@iQ3#5EPQNL6`n&=^e#Gr=E>0g(kYQ`$fl^7+uZ>o%Nd92{jGCj^^$I=^8q^k0t61 +zanIoty2dE<5Q_2`gNwRfS6E#Ej30t7vJ(ytHG9JN*Su!bwMj@zVptjDtdl09Gsq6) +z&#dgft!Bk5zq)GXPm{7g3OW>$tpb}D{p+8{T>6`{i3G9{mIU_f1OB?awyijWt2|!Wt|{ +zFq@b%wj6~;1+Zk6kYAy#rJ?T47apvMus};^`$hQm# +z?_l^10m%|zfS4i80FIqJ6wq`qX9@Wg{B13P|2*)sx1;Tk3WdHC0HXSUaG<@#-@N&q +z2XGicO28LnEZjD=ZUg*NgodSk+XjiJ1ZVurub2@PEoOUeV26Ti3q_nz~$^eML +zEKyn@Fs`~1AtSpE=woJluxj4DMj#Lb5RS4x==&Z(MN}0CEq>|;Pn)4u3x^pj3HU;c +zje8Fa!Zh6enhXDVU&oqV0{$@i7~P^uJOZEu +zASI*~z>H}_VMvhy=M^OV=4bPXKmYKBc=jjN3gFxft18gZSliLCY0(2<#^DGl(Uo0W +ze8BP@wBH(OxZ}TWJn)taudLSg|0cQ~zzG`YExPXA)k0Xd9e8nt#GhaF;djq<;K_wy +zEZZj0?4vG`Nok(~N-94w6BrVbB}NU&M^)t@m{xX?pP8{~_56EU8~1cNto}GcPmcVt +zHt0Ysdg}X6UUbB%SGx*IbR5R8Bw&SsAQ&A%V0*KGCa^yUf`EJ%P~c{GJ%C4J=vp^z +zO_LF_fM6K#g@AxTkdk0ZMmQ9J5$3M%%n}T!Gtj7q?2u68mjDwW8D#l!+|&v1hd6u4 +zuh8Ds68^^@zWFqOP_+F?wgM261F6sfxB=v=!C3L^Z#?$-QPVHJ9z=+b9EiFD3{Z4t +z`REzn>Vp;Rgp>xDp&X7Pza_z7fTj9F3@HK0CZrX{^s$AQa^!FX!r4WBmJ*BKeDbyj +ze*NXg0d%PF+cqdU0q9Ujp$dc!#M}S;zh^Ev;?%Dd6jv4_E^?4EnOZ9$VL>TI@tgpb +z_KhR}wz>tw46-D=!otLHLlDd^@~cg64Q-Fye%

J!rK3QGx#I0T9Oqh0H*QzxMqn +ze$CQEEOJo%>=jtiiq)!)`g6+Xt5QI0i$RG)f?>%pW=yUGpo2NP$Zwej7QXiIF9Q3y +z7G-~=3Wfd^0IP_p0*jye@!Rc9J2xX5Ir1mZDrQJFKt#$_5&!{J3zQ5bz!Fj_%Vb%o +zEGCQ@S&6WbeMcVe-Lqx=Gk^c(5-7eoc>iPtka`t35Nlrf<2!^wd{Gp%^&;I=vKex#ryY`<#1xTq1m>(6u<|WT;YuLKv +zNoIN2l3qp9U}ih}Ljthv4NCz?TU3OPS|1CNEsPscg7VT*m@>P_&yule&B8~Q&40c& +zLI955-x&g_L8?$y0Ko$>_rA~nCFrYf%Vqn6vOX%cm|#f&6NnL+{Xt-6u)3ERfEB>e +zM-D+C%-KVJg_h<$E%)Ad#e-1%im^Wmhgtxv!cx&w1jQ?g +z>F9qK-oVCDUbTqY)su0YVpF7iv3*u4I| +z7v}!wo(~kSqP;&uAzcDs6*8gFSr|Gfb;11{f+D{PGdlaH +zQ2@?Wpk~RFTXwIR^Ji%pInq03e>Koz2>}K{^#G9eJ_(jR7Ra*vm@#D-{9(>2@|$KD +z%NM?U*YX7~?o815vWk?Tp?^Rs#DUnh;<*p2r+;#4Uh&WoM3l*cs{YUZU`R6zu#yKD +zl38s7VxTllBG*AfdoaNJ!{gwAuc85vnK!8=&S5*Ky2QYPfRi9>mM*6XL?~eLEe*e6m +zf0R41P(~nul +z429Q|2g%t%{&2{T#dDwd{nPjVVnGl2ZTl0BwmxYVKc5<>%vSHk65I73{aY3Oc`5(qWpYVGV{rAnFe-zxMI=m*MIVssN|@8f9yG5nI-^^ +zKP6U`z%&D|{o$M&_U&D_D$7Nn$|2idBD25p`BH7|r0&n^cR<3ehcRv35cPJqrj}D}%|emO3}DUo!W1-kkS`SBTQX(*0 +zV9SrA$B%_S#2HKe&h}<3o%hV||9R)PUWu&w_N3S0SktVl00e;JRRRUtzVf9S)_C=x +zp%Xu*xeEmmWeDjN5;wkf_Gbp9p#&fymG_rc7{`t;LDk?=7*^&HpCzNYrB=TB?>oQ! +z%!9vtJ7V!8-g2ixRtmsb1hHtSS<=wDd(G=r<4>5adrI<2Xak$@y>EP#|5qYl31Zpv +zCs>;B>IP0dY8Zm1$ROg|1FrgAH4P8_=9(|R_r_D30YuxLP&E0|rDcKifD;bN>8`r#3XA>Vjhs@7eQ2|n~1hI{fWdvl+qJPdCG<|ufIWK#% +zk{MfIX@OY+lEG|Za1n6)3TO?LR>EOk1NKkEhHOr4nM2Dk3s*uHu3V=oLH +zJG0zVP;#WEdjX>4iIVQ@ulD<}WkOk>uFn%jx^TqEN`%aTPkfdVzV;SuUAOd=-+%WL +zH|*ZFzBw}M$8K*(u+E`##*AeLYvNNIb2W(iBJ{8+|;(;O>dLJZiY&6b9`_QiAmb<2y7+`26C +zmH0OCRTwHPr)D?T1EkOw#Du!1ZqwVlYZgBAOmSuPJ}N9dP8TjAG^8fED2@{!^#LpO{_v7i~)sEuoKMsQR%u1Fr!=%#RBU9Ja6 +z?U{nu-oP|N{&)WI&1YWw^{n%Et$zN2&c^L#zYftDj=MbpHTku;`wFO&+Jfv|7U-eK$P_X%bx8HQid_5IuF&u2O(^xe~=aMwV}1K +zHn?`#+`rs+^OZNf`}z~B3?tOz?^OisD?)M4=~dU90Qy%9GL8^rln|_)t6thz^Ugz0 +zy7Th4c=F073n2sK~e(D>gXd00Uu61ZUn-nNb9~GUwbPW>$W#8 +ze&eY>+6({?H)q1}LsqBvtZpYcj +zRbo(S5ey6c2Fna16!dq+zK-U)9qZnEa_)0~duLb8iZ**08J3;ZRmP9J8uooL#D{&& +z31FbvB8nD5oY3un1{FoaCKpXS>2pU{jG6JV{F31(yYh;J(DR_{-Y!8f+tw%cNw02x +zNR{!4C0Gf7%^*e&l9+YuNOT0b&kvF|!U2RrLHK=b+}2e0?&h^i{=0DAzt`4nS=$~n +zL$Sk%6E^V^Y*Ne#Ad`fkBEATe5bO}pb**~ZIYWm}I%is0)ufa1N-9p&y~QpPZjkPQ +zIB*poJ(-==u|`rYgIeGNAsJ@49T(0T2B9DPfp*LcX_+vL(EbR*GQtS?eP&DRo~3)X +zY*@7J{ntNO{r=oKGZZr84-Zwu65h;I;^ze5ECdlN2DoBBL;IgXfE}eHjxMe`a^~>C +zBafNjE~}pE$uFDk^%j(p<^do;LIaZy0Ro5s1}w|Ov}zZoj32B{b%`Z57?9G0l$Ht! +z%QCtMZ<%J-s!cc)=xlFoSkc_DbIpzqSAMvD<-5E0Zd=oCnr3vrW5prA5$CgQa~z1D +z6F_G72qKOcG>2*sBLrJqAYJ!pd4osimk&O&v~cjms=|tqLtWmIa=7!$^K^G5>2mOC +z)2j=hYZ_U?Bi!)9AZZFK$kGatDT4-wf<`#pX!rw-K3`jlucNi8t)aet?~XO~J8Cz# +zHSVhMnW2!3AgTS?N=SS=tT?2X4jw-zfNT&#LNVB($GHjzA&5AC7ex!wasN|nAT~S4 +z4gw<^+*qm6nhoU*+2F-2MZLv{o7dtv0>li +zY;71$$O#}Ph6J8oIDC)3*A~|Q20KL}QA7p$iS#)E -Date: Wed, 18 Oct 2017 21:24:05 +0200 -Subject: Add StartPage search engine - ---- - .../search_engines/prepopulated_engines.json | 10 + - components/search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 3 files changed, 120 insertions(+), 109 deletions(-) - -diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json ---- a/components/search_engines/prepopulated_engines.json -+++ b/components/search_engines/prepopulated_engines.json -@@ -193,6 +193,16 @@ - "id": 56 - }, - -+ "startpage": { -+ "name": "StartPage", -+ "keyword": "startpage.com", -+ "favicon_url": "https://www.startpage.com/graphics/favicon/sp-favicon-16x16.png", -+ "search_url": "https://www.startpage.com/do/dsearch?query={searchTerms}&cat=web&pl=opensearch", -+ "suggest_url": "https://www.startpage.com/cgi-bin/csuggest?query={searchTerms}&limit=10&format=json", -+ "type": "SEARCH_ENGINE_STARTPAGE", -+ "id": 33 -+ }, -+ - "yahoo": { - "name": "Yahoo!", - "keyword": "yahoo.com", -diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h ---- a/components/search_engines/search_engine_type.h -+++ b/components/search_engines/search_engine_type.h -@@ -67,6 +67,7 @@ enum SearchEngineType { - SEARCH_ENGINE_DUCKDUCKGO, - SEARCH_ENGINE_PARSIJOO, - SEARCH_ENGINE_QWANT, -+ SEARCH_ENGINE_STARTPAGE, - - SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. - }; -diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc ---- a/components/search_engines/template_url_prepopulate_data.cc -+++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -32,7 +32,7 @@ namespace { - - // Default (for countries with no better engine set) - const PrepopulatedEngine* const engines_default[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - }; -@@ -41,7 +41,7 @@ const PrepopulatedEngine* const engines_default[] = { - // Engine selection by country ------------------------------------------------ - // United Arab Emirates - const PrepopulatedEngine* const engines_AE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -49,7 +49,7 @@ const PrepopulatedEngine* const engines_AE[] = { - - // Albania - const PrepopulatedEngine* const engines_AL[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &ask, -@@ -57,7 +57,7 @@ const PrepopulatedEngine* const engines_AL[] = { - - // Argentina - const PrepopulatedEngine* const engines_AR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_ar, - &duckduckgo, -@@ -65,7 +65,7 @@ const PrepopulatedEngine* const engines_AR[] = { - - // Austria - const PrepopulatedEngine* const engines_AT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_at, - &duckduckgo, -@@ -73,7 +73,7 @@ const PrepopulatedEngine* const engines_AT[] = { - - // Australia - const PrepopulatedEngine* const engines_AU[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_au, - &duckduckgo, -@@ -81,7 +81,7 @@ const PrepopulatedEngine* const engines_AU[] = { - - // Bosnia and Herzegovina - const PrepopulatedEngine* const engines_BA[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &ask, -@@ -89,7 +89,7 @@ const PrepopulatedEngine* const engines_BA[] = { - - // Belgium - const PrepopulatedEngine* const engines_BE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -97,7 +97,7 @@ const PrepopulatedEngine* const engines_BE[] = { - - // Bulgaria - const PrepopulatedEngine* const engines_BG[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -105,7 +105,7 @@ const PrepopulatedEngine* const engines_BG[] = { - - // Bahrain - const PrepopulatedEngine* const engines_BH[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -113,7 +113,7 @@ const PrepopulatedEngine* const engines_BH[] = { - - // Burundi - const PrepopulatedEngine* const engines_BI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -121,7 +121,7 @@ const PrepopulatedEngine* const engines_BI[] = { - - // Brunei - const PrepopulatedEngine* const engines_BN[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -129,7 +129,7 @@ const PrepopulatedEngine* const engines_BN[] = { - - // Bolivia - const PrepopulatedEngine* const engines_BO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -137,7 +137,7 @@ const PrepopulatedEngine* const engines_BO[] = { - - // Brazil - const PrepopulatedEngine* const engines_BR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_br, - &duckduckgo, -@@ -145,7 +145,7 @@ const PrepopulatedEngine* const engines_BR[] = { - - // Belarus - const PrepopulatedEngine* const engines_BY[] = { -- &google, -+ &google, &startpage, - &yandex_by, - &mail_ru, - &bing, -@@ -153,7 +153,7 @@ const PrepopulatedEngine* const engines_BY[] = { - - // Belize - const PrepopulatedEngine* const engines_BZ[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -161,12 +161,12 @@ const PrepopulatedEngine* const engines_BZ[] = { - - // Canada - const PrepopulatedEngine* const engines_CA[] = { -- &google, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, -+ &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, - }; - - // Switzerland - const PrepopulatedEngine* const engines_CH[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo_ch, -@@ -174,7 +174,7 @@ const PrepopulatedEngine* const engines_CH[] = { - - // Chile - const PrepopulatedEngine* const engines_CL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_cl, - &duckduckgo, -@@ -182,12 +182,12 @@ const PrepopulatedEngine* const engines_CL[] = { - - // China - const PrepopulatedEngine* const engines_CN[] = { -- &baidu, &so_360, &google, &sogou, &bing, -+ &baidu, &so_360, &google, &startpage, &sogou, &bing, - }; - - // Colombia - const PrepopulatedEngine* const engines_CO[] = { -- &google, -+ &google, &startpage, - &yahoo_co, - &bing, - &duckduckgo, -@@ -195,7 +195,7 @@ const PrepopulatedEngine* const engines_CO[] = { - - // Costa Rica - const PrepopulatedEngine* const engines_CR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -203,7 +203,7 @@ const PrepopulatedEngine* const engines_CR[] = { - - // Czech Republic - const PrepopulatedEngine* const engines_CZ[] = { -- &google, -+ &google, &startpage, - &seznam, - &bing, - &yahoo, -@@ -211,7 +211,7 @@ const PrepopulatedEngine* const engines_CZ[] = { - - // Germany - const PrepopulatedEngine* const engines_DE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_de, - &duckduckgo, -@@ -219,7 +219,7 @@ const PrepopulatedEngine* const engines_DE[] = { - - // Denmark - const PrepopulatedEngine* const engines_DK[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_dk, - &duckduckgo, -@@ -227,7 +227,7 @@ const PrepopulatedEngine* const engines_DK[] = { - - // Dominican Republic - const PrepopulatedEngine* const engines_DO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -235,7 +235,7 @@ const PrepopulatedEngine* const engines_DO[] = { - - // Algeria - const PrepopulatedEngine* const engines_DZ[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -243,7 +243,7 @@ const PrepopulatedEngine* const engines_DZ[] = { - - // Ecuador - const PrepopulatedEngine* const engines_EC[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -251,7 +251,7 @@ const PrepopulatedEngine* const engines_EC[] = { - - // Estonia - const PrepopulatedEngine* const engines_EE[] = { -- &google, -+ &google, &startpage, - &bing, - &yandex_ru, - &neti, -@@ -259,7 +259,7 @@ const PrepopulatedEngine* const engines_EE[] = { - - // Egypt - const PrepopulatedEngine* const engines_EG[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -267,7 +267,7 @@ const PrepopulatedEngine* const engines_EG[] = { - - // Spain - const PrepopulatedEngine* const engines_ES[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_es, - &duckduckgo, -@@ -275,7 +275,7 @@ const PrepopulatedEngine* const engines_ES[] = { - - // Finland - const PrepopulatedEngine* const engines_FI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_fi, - &duckduckgo, -@@ -283,7 +283,7 @@ const PrepopulatedEngine* const engines_FI[] = { - - // Faroe Islands - const PrepopulatedEngine* const engines_FO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -291,7 +291,7 @@ const PrepopulatedEngine* const engines_FO[] = { - - // France - const PrepopulatedEngine* const engines_FR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_fr, - &qwant, -@@ -299,7 +299,7 @@ const PrepopulatedEngine* const engines_FR[] = { - - // United Kingdom - const PrepopulatedEngine* const engines_GB[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_uk, - &duckduckgo, -@@ -307,7 +307,7 @@ const PrepopulatedEngine* const engines_GB[] = { - - // Greece - const PrepopulatedEngine* const engines_GR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -315,7 +315,7 @@ const PrepopulatedEngine* const engines_GR[] = { - - // Guatemala - const PrepopulatedEngine* const engines_GT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -323,7 +323,7 @@ const PrepopulatedEngine* const engines_GT[] = { - - // Hong Kong - const PrepopulatedEngine* const engines_HK[] = { -- &google, -+ &google, &startpage, - &yahoo_hk, - &bing, - &baidu, -@@ -331,7 +331,7 @@ const PrepopulatedEngine* const engines_HK[] = { - - // Honduras - const PrepopulatedEngine* const engines_HN[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -339,7 +339,7 @@ const PrepopulatedEngine* const engines_HN[] = { - - // Croatia - const PrepopulatedEngine* const engines_HR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -347,7 +347,7 @@ const PrepopulatedEngine* const engines_HR[] = { - - // Hungary - const PrepopulatedEngine* const engines_HU[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -355,7 +355,7 @@ const PrepopulatedEngine* const engines_HU[] = { - - // Indonesia - const PrepopulatedEngine* const engines_ID[] = { -- &google, -+ &google, &startpage, - &yahoo_id, - &bing, - &duckduckgo, -@@ -363,7 +363,7 @@ const PrepopulatedEngine* const engines_ID[] = { - - // Ireland - const PrepopulatedEngine* const engines_IE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -371,7 +371,7 @@ const PrepopulatedEngine* const engines_IE[] = { - - // Israel - const PrepopulatedEngine* const engines_IL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -379,7 +379,7 @@ const PrepopulatedEngine* const engines_IL[] = { - - // India - const PrepopulatedEngine* const engines_IN[] = { -- &google, -+ &google, &startpage, - &yahoo_in, - &bing, - &duckduckgo, -@@ -387,7 +387,7 @@ const PrepopulatedEngine* const engines_IN[] = { - - // Iraq - const PrepopulatedEngine* const engines_IQ[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -395,14 +395,14 @@ const PrepopulatedEngine* const engines_IQ[] = { - - // Iran - const PrepopulatedEngine* const engines_IR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - }; - - // Iceland - const PrepopulatedEngine* const engines_IS[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -410,7 +410,7 @@ const PrepopulatedEngine* const engines_IS[] = { - - // Italy - const PrepopulatedEngine* const engines_IT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -418,7 +418,7 @@ const PrepopulatedEngine* const engines_IT[] = { - - // Jamaica - const PrepopulatedEngine* const engines_JM[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -426,7 +426,7 @@ const PrepopulatedEngine* const engines_JM[] = { - - // Jordan - const PrepopulatedEngine* const engines_JO[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -434,7 +434,7 @@ const PrepopulatedEngine* const engines_JO[] = { - - // Japan - const PrepopulatedEngine* const engines_JP[] = { -- &google, -+ &google, &startpage, - &yahoo_jp, - &bing, - &baidu, -@@ -442,7 +442,7 @@ const PrepopulatedEngine* const engines_JP[] = { - - // Kenya - const PrepopulatedEngine* const engines_KE[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -450,7 +450,7 @@ const PrepopulatedEngine* const engines_KE[] = { - - // South Korea - const PrepopulatedEngine* const engines_KR[] = { -- &google, -+ &google, &startpage, - &naver, - &daum, - &bing, -@@ -458,7 +458,7 @@ const PrepopulatedEngine* const engines_KR[] = { - - // Kuwait - const PrepopulatedEngine* const engines_KW[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -466,7 +466,7 @@ const PrepopulatedEngine* const engines_KW[] = { - - // Kazakhstan - const PrepopulatedEngine* const engines_KZ[] = { -- &google, -+ &google, &startpage, - &yandex_kz, - &mail_ru, - &bing, -@@ -474,7 +474,7 @@ const PrepopulatedEngine* const engines_KZ[] = { - - // Lebanon - const PrepopulatedEngine* const engines_LB[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -482,7 +482,7 @@ const PrepopulatedEngine* const engines_LB[] = { - - // Liechtenstein - const PrepopulatedEngine* const engines_LI[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo, -@@ -490,7 +490,7 @@ const PrepopulatedEngine* const engines_LI[] = { - - // Lithuania - const PrepopulatedEngine* const engines_LT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -498,7 +498,7 @@ const PrepopulatedEngine* const engines_LT[] = { - - // Luxembourg - const PrepopulatedEngine* const engines_LU[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo, -@@ -506,7 +506,7 @@ const PrepopulatedEngine* const engines_LU[] = { - - // Latvia - const PrepopulatedEngine* const engines_LV[] = { -- &google, -+ &google, &startpage, - &bing, - &yandex_ru, - &yahoo, -@@ -514,7 +514,7 @@ const PrepopulatedEngine* const engines_LV[] = { - - // Libya - const PrepopulatedEngine* const engines_LY[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_com, -@@ -522,7 +522,7 @@ const PrepopulatedEngine* const engines_LY[] = { - - // Morocco - const PrepopulatedEngine* const engines_MA[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -530,7 +530,7 @@ const PrepopulatedEngine* const engines_MA[] = { - - // Monaco - const PrepopulatedEngine* const engines_MC[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -538,7 +538,7 @@ const PrepopulatedEngine* const engines_MC[] = { - - // Moldova - const PrepopulatedEngine* const engines_MD[] = { -- &google, -+ &google, &startpage, - &yandex_ru, - &mail_ru, - &duckduckgo, -@@ -546,7 +546,7 @@ const PrepopulatedEngine* const engines_MD[] = { - - // Montenegro - const PrepopulatedEngine* const engines_ME[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -554,7 +554,7 @@ const PrepopulatedEngine* const engines_ME[] = { - - // Macedonia - const PrepopulatedEngine* const engines_MK[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -562,7 +562,7 @@ const PrepopulatedEngine* const engines_MK[] = { - - // Mexico - const PrepopulatedEngine* const engines_MX[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_mx, - &duckduckgo, -@@ -570,7 +570,7 @@ const PrepopulatedEngine* const engines_MX[] = { - - // Malaysia - const PrepopulatedEngine* const engines_MY[] = { -- &google, -+ &google, &startpage, - &yahoo_my, - &bing, - &baidu, -@@ -578,7 +578,7 @@ const PrepopulatedEngine* const engines_MY[] = { - - // Nicaragua - const PrepopulatedEngine* const engines_NI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -586,7 +586,7 @@ const PrepopulatedEngine* const engines_NI[] = { - - // Netherlands - const PrepopulatedEngine* const engines_NL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_nl, - &duckduckgo, -@@ -594,7 +594,7 @@ const PrepopulatedEngine* const engines_NL[] = { - - // Norway - const PrepopulatedEngine* const engines_NO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -602,7 +602,7 @@ const PrepopulatedEngine* const engines_NO[] = { - - // New Zealand - const PrepopulatedEngine* const engines_NZ[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo_nz, -@@ -610,7 +610,7 @@ const PrepopulatedEngine* const engines_NZ[] = { - - // Oman - const PrepopulatedEngine* const engines_OM[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -618,7 +618,7 @@ const PrepopulatedEngine* const engines_OM[] = { - - // Panama - const PrepopulatedEngine* const engines_PA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -626,7 +626,7 @@ const PrepopulatedEngine* const engines_PA[] = { - - // Peru - const PrepopulatedEngine* const engines_PE[] = { -- &google, -+ &google, &startpage, - &yahoo_pe, - &bing, - &duckduckgo, -@@ -634,7 +634,7 @@ const PrepopulatedEngine* const engines_PE[] = { - - // Philippines - const PrepopulatedEngine* const engines_PH[] = { -- &google, -+ &google, &startpage, - &yahoo_ph, - &bing, - &duckduckgo, -@@ -642,7 +642,7 @@ const PrepopulatedEngine* const engines_PH[] = { - - // Pakistan - const PrepopulatedEngine* const engines_PK[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &baidu, -@@ -650,7 +650,7 @@ const PrepopulatedEngine* const engines_PK[] = { - - // Poland - const PrepopulatedEngine* const engines_PL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -658,7 +658,7 @@ const PrepopulatedEngine* const engines_PL[] = { - - // Puerto Rico - const PrepopulatedEngine* const engines_PR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -666,7 +666,7 @@ const PrepopulatedEngine* const engines_PR[] = { - - // Portugal - const PrepopulatedEngine* const engines_PT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -674,7 +674,7 @@ const PrepopulatedEngine* const engines_PT[] = { - - // Paraguay - const PrepopulatedEngine* const engines_PY[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -682,7 +682,7 @@ const PrepopulatedEngine* const engines_PY[] = { - - // Qatar - const PrepopulatedEngine* const engines_QA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -690,7 +690,7 @@ const PrepopulatedEngine* const engines_QA[] = { - - // Romania - const PrepopulatedEngine* const engines_RO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -698,7 +698,7 @@ const PrepopulatedEngine* const engines_RO[] = { - - // Serbia - const PrepopulatedEngine* const engines_RS[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -707,14 +707,14 @@ const PrepopulatedEngine* const engines_RS[] = { - // Russia - const PrepopulatedEngine* const engines_RU[] = { - &yandex_ru, -- &google, -+ &google, &startpage, - &mail_ru, - &bing, - }; - - // Rwanda - const PrepopulatedEngine* const engines_RW[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -722,7 +722,7 @@ const PrepopulatedEngine* const engines_RW[] = { - - // Saudi Arabia - const PrepopulatedEngine* const engines_SA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_com, -@@ -730,7 +730,7 @@ const PrepopulatedEngine* const engines_SA[] = { - - // Sweden - const PrepopulatedEngine* const engines_SE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_se, - &duckduckgo, -@@ -738,7 +738,7 @@ const PrepopulatedEngine* const engines_SE[] = { - - // Singapore - const PrepopulatedEngine* const engines_SG[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_sg, - &yandex_com, -@@ -746,7 +746,7 @@ const PrepopulatedEngine* const engines_SG[] = { - - // Slovenia - const PrepopulatedEngine* const engines_SI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -754,7 +754,7 @@ const PrepopulatedEngine* const engines_SI[] = { - - // Slovakia - const PrepopulatedEngine* const engines_SK[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -762,7 +762,7 @@ const PrepopulatedEngine* const engines_SK[] = { - - // El Salvador - const PrepopulatedEngine* const engines_SV[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -770,7 +770,7 @@ const PrepopulatedEngine* const engines_SV[] = { - - // Syria - const PrepopulatedEngine* const engines_SY[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -778,7 +778,7 @@ const PrepopulatedEngine* const engines_SY[] = { - - // Thailand - const PrepopulatedEngine* const engines_TH[] = { -- &google, -+ &google, &startpage, - &yahoo_th, - &bing, - &ask, -@@ -786,7 +786,7 @@ const PrepopulatedEngine* const engines_TH[] = { - - // Tunisia - const PrepopulatedEngine* const engines_TN[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -794,7 +794,7 @@ const PrepopulatedEngine* const engines_TN[] = { - - // Turkey - const PrepopulatedEngine* const engines_TR[] = { -- &google, -+ &google, &startpage, - &yandex_tr, - &yahoo_tr, - &bing, -@@ -802,7 +802,7 @@ const PrepopulatedEngine* const engines_TR[] = { - - // Trinidad and Tobago - const PrepopulatedEngine* const engines_TT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -810,7 +810,7 @@ const PrepopulatedEngine* const engines_TT[] = { - - // Taiwan - const PrepopulatedEngine* const engines_TW[] = { -- &google, -+ &google, &startpage, - &yahoo_tw, - &bing, - &baidu, -@@ -818,7 +818,7 @@ const PrepopulatedEngine* const engines_TW[] = { - - // Tanzania - const PrepopulatedEngine* const engines_TZ[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -826,7 +826,7 @@ const PrepopulatedEngine* const engines_TZ[] = { - - // Ukraine - const PrepopulatedEngine* const engines_UA[] = { -- &google, -+ &google, &startpage, - &yandex_ua, - &mail_ru, - &bing, -@@ -834,7 +834,7 @@ const PrepopulatedEngine* const engines_UA[] = { - - // United States - const PrepopulatedEngine* const engines_US[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -842,7 +842,7 @@ const PrepopulatedEngine* const engines_US[] = { - - // Uruguay - const PrepopulatedEngine* const engines_UY[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -850,7 +850,7 @@ const PrepopulatedEngine* const engines_UY[] = { - - // Venezuela - const PrepopulatedEngine* const engines_VE[] = { -- &google, -+ &google, &startpage, - &yahoo_ve, - &bing, - &duckduckgo, -@@ -858,7 +858,7 @@ const PrepopulatedEngine* const engines_VE[] = { - - // Vietnam - const PrepopulatedEngine* const engines_VN[] = { -- &google, -+ &google, &startpage, - &coccoc, - &bing, - &yahoo_vn, -@@ -866,7 +866,7 @@ const PrepopulatedEngine* const engines_VN[] = { - - // Yemen - const PrepopulatedEngine* const engines_YE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &baidu, -@@ -874,7 +874,7 @@ const PrepopulatedEngine* const engines_YE[] = { - - // South Africa - const PrepopulatedEngine* const engines_ZA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -882,7 +882,7 @@ const PrepopulatedEngine* const engines_ZA[] = { - - // Zimbabwe - const PrepopulatedEngine* const engines_ZW[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &baidu, -@@ -898,7 +898,7 @@ const PrepopulatedEngine* const kAllEngines[] = { - &coccoc, - &daum, - &duckduckgo, -- &google, -+ &google, &startpage, - &mail_ru, - &naver, - &qwant, --- -2.11.0 - diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index e4e4ecb966a6285e4bb5c621c67b291b3a805e52..9c3ba7eee4fee6d74b0cc6618f60423413a4603d 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -7,26 +7,26 @@ Allows to use a PAC script URL, automatic configuration and explicit proxy settings. Offer auto-complete for the proxy page URL. --- - chrome/android/java/res/values/values.xml | 3 + - .../android/java/res/xml/privacy_preferences.xml | 4 + - .../chrome_autocomplete_provider_client.cc | 2 + - chrome/browser/browser_resources.grd | 6 + - .../prefs/chrome_command_line_pref_store.cc | 2 +- - chrome/browser/resources/proxy_config.css | 61 ++++ - chrome/browser/resources/proxy_config.html | 78 ++++ - chrome/browser/resources/proxy_config.js | 252 +++++++++++++ - chrome/browser/ui/BUILD.gn | 2 + - .../ui/webui/chrome_web_ui_controller_factory.cc | 3 + - chrome/browser/ui/webui/proxy_config_ui.cc | 397 +++++++++++++++++++++ - chrome/browser/ui/webui/proxy_config_ui.h | 33 ++ - chrome/common/webui_url_constants.cc | 4 + - chrome/common/webui_url_constants.h | 2 + - .../policy/core/browser/proxy_policy_handler.cc | 2 +- - components/proxy_config/proxy_config_dictionary.cc | 22 +- - components/proxy_config/proxy_config_dictionary.h | 6 +- - net/proxy_resolution/proxy_config.cc | 45 +++ - net/proxy_resolution/proxy_config.h | 3 + - 19 files changed, 915 insertions(+), 12 deletions(-) + chrome/android/java/res/values/values.xml | 3 + + .../java/res/xml/privacy_preferences.xml | 4 + + .../chrome_autocomplete_provider_client.cc | 2 + + chrome/browser/browser_resources.grd | 6 + + .../prefs/chrome_command_line_pref_store.cc | 2 +- + chrome/browser/resources/proxy_config.css | 61 +++ + chrome/browser/resources/proxy_config.html | 78 ++++ + chrome/browser/resources/proxy_config.js | 252 +++++++++++ + chrome/browser/ui/BUILD.gn | 2 + + .../webui/chrome_web_ui_controller_factory.cc | 3 + + chrome/browser/ui/webui/proxy_config_ui.cc | 395 ++++++++++++++++++ + chrome/browser/ui/webui/proxy_config_ui.h | 33 ++ + chrome/common/webui_url_constants.cc | 4 + + chrome/common/webui_url_constants.h | 2 + + .../core/browser/proxy_policy_handler.cc | 2 +- + .../proxy_config/proxy_config_dictionary.cc | 22 +- + .../proxy_config/proxy_config_dictionary.h | 6 +- + net/proxy_resolution/proxy_config.cc | 45 ++ + net/proxy_resolution/proxy_config.h | 3 + + 19 files changed, 913 insertions(+), 12 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -36,7 +36,7 @@ Offer auto-complete for the proxy page URL. diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -76,6 +76,9 @@ +@@ -78,6 +78,9 @@ 1 2 @@ -63,15 +63,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -257,6 +257,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -256,6 +256,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { + std::vector builtins_to_provide; builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUIFlagsURL)); - builtins_to_provide.push_back( -+ base::ASCIIToUTF16(chrome::kChromeUIProxyConfigURL)); + builtins_to_provide.push_back( ++ base::ASCIIToUTF16(chrome::kChromeUIProxyConfigURL)); + builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL)); #if !defined(OS_ANDROID) - builtins_to_provide.push_back( diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd @@ -91,7 +91,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -153,7 +153,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { +@@ -152,7 +152,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { SetValue( proxy_config::prefs::kProxy, std::make_unique(ProxyConfigDictionary::CreateFixedServers( @@ -509,7 +509,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -275,6 +275,8 @@ jumbo_split_static_library("ui") { +@@ -263,6 +263,8 @@ jumbo_static_library("ui") { "webui/metrics_handler.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -529,7 +529,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h" #include "chrome/browser/ui/webui/settings/settings_ui.h" #include "chrome/browser/ui/webui/settings_utils.h" -@@ -413,6 +414,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -376,6 +377,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -542,7 +542,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.cc -@@ -0,0 +1,397 @@ +@@ -0,0 +1,395 @@ +/* + This file is part of Bromite. + @@ -811,9 +811,7 @@ new file mode 100644 +void ProxyConfigMessageHandler::OnApply(const base::ListValue* list) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + -+ const base::Value::ListStorage& params = list->GetList(); -+ -+ if ((params.size() != 1) || !params[0].is_dict()) { ++ if ((list->GetList().size() != 1) || !list->GetList()[0].is_dict()) { + return; + } + @@ -981,7 +979,7 @@ new file mode 100644 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -189,6 +189,8 @@ const char kChromeUINativePhysicalWebDiagnosticsURL[] = +@@ -182,6 +182,8 @@ const char kChromeUINativePhysicalWebDiagnosticsURL[] = const char kChromeUINativeScheme[] = "chrome-native"; const char kChromeUIOfflineInternalsHost[] = "offline-internals"; const char kChromeUIPhysicalWebDiagnosticsHost[] = "physical-web-diagnostics"; @@ -990,7 +988,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons const char kChromeUISnippetsInternalsHost[] = "snippets-internals"; const char kChromeUIWebApksHost[] = "webapks"; #endif -@@ -456,6 +458,7 @@ bool IsOSSettingsSubPage(const std::string& sub_page) { +@@ -461,6 +463,7 @@ bool IsOSSettingsSubPage(const std::string& sub_page) { kResetSubPage, kSmartLockSettingsSubPage, kSmbSharesSubPage, @@ -998,7 +996,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kStorageSubPage, kStylusSubPage, kSwitchAccessSubPage, -@@ -556,6 +559,7 @@ const char* const kChromeHostURLs[] = { +@@ -561,6 +564,7 @@ const char* const kChromeHostURLs[] = { #if !defined(OS_ANDROID) #if !defined(OS_CHROMEOS) kChromeUIAppLauncherPageHost, @@ -1009,7 +1007,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -110,6 +110,8 @@ extern const char kChromeUIMemoryInternalsHost[]; +@@ -105,6 +105,8 @@ extern const char kChromeUIMemoryInternalsHost[]; extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; @@ -1201,5 +1199,5 @@ diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_co // Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp, // &fallback_proxies}, or NULL if there is no proxy to use. -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 297012426b1e47a054acab964506b3d6e2708034..c80d3778309b74067eee2bda00e635ca4104ad54 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -4,16 +4,18 @@ Subject: Add an always-incognito mode More specifically, add a preference that causes all new tabs and all clicked links to launch as incognito. +Make sure initial incognito status is correctly recognized. --- - chrome/android/chrome_java_sources.gni | 1 + - .../android/java/res/xml/privacy_preferences.xml | 5 ++ - .../browser/AlwaysIncognitoLinkInterceptor.java | 73 ++++++++++++++++++++++ - .../chromium/chrome/browser/ChromeActivity.java | 5 ++ - .../chrome/browser/appmenu/AppMenuHandlerImpl.java | 11 ++++ - .../contextmenu/ChromeContextMenuPopulator.java | 9 ++- - .../chrome/browser/tabmodel/ChromeTabCreator.java | 24 ++++++- - .../java/strings/android_chrome_strings.grd | 8 +++ - 8 files changed, 134 insertions(+), 2 deletions(-) + chrome/android/chrome_java_sources.gni | 1 + + .../java/res/xml/privacy_preferences.xml | 5 ++ + .../AlwaysIncognitoLinkInterceptor.java | 73 +++++++++++++++++++ + .../chrome/browser/ChromeActivity.java | 4 + + .../chrome/browser/ChromeTabbedActivity.java | 6 +- + .../browser/appmenu/AppMenuHandlerImpl.java | 9 +++ + .../ChromeContextMenuPopulator.java | 9 ++- + .../browser/tabmodel/ChromeTabCreator.java | 20 ++++- + .../java/strings/android_chrome_strings.grd | 8 ++ + 9 files changed, 131 insertions(+), 4 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -26,7 +28,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java + "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java", "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", - "java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java", + "java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java", diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml @@ -72,7 +74,7 @@ new file mode 100644 + */ +public class AlwaysIncognitoLinkInterceptor extends EmptyTabObserver { + -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; ++ public static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; + + private final SharedPreferences alwaysIncognitoContainer; + private final Map lastUrls; @@ -123,55 +125,70 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -225,6 +225,8 @@ public abstract class ChromeActivity - - private static final int RECORD_MULTI_WINDOW_SCREEN_WIDTH_DELAY_MS = 5000; - -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; -+ - /** - * Timeout in ms for reading PartnerBrowserCustomizations provider. - */ -@@ -1650,6 +1652,9 @@ public abstract class ChromeActivity +@@ -55,6 +55,7 @@ import org.chromium.base.annotations.UsedByReflection; + import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; + import org.chromium.chrome.browser.IntentHandler.TabOpenType; + import org.chromium.chrome.browser.appmenu.AppMenuBlocker; +@@ -1706,6 +1707,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) { ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { + return mIncognitoTabCreator; + } return incognito ? mIncognitoTabCreator : mRegularTabCreator; } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +@@ -49,6 +49,7 @@ import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.base.task.PostTask; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; + import org.chromium.chrome.browser.IntentHandler.TabOpenType; + import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; +@@ -1652,8 +1653,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo + Bundle savedInstanceState = getSavedInstanceState(); + + // We determine the model as soon as possible so every systems get initialized coherently. +- boolean startIncognito = savedInstanceState != null +- && savedInstanceState.getBoolean("is_incognito_selected", false); ++ boolean startIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false) ++ || (savedInstanceState != null ++ && savedInstanceState.getBoolean("is_incognito_selected", false)); + int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0; + + mTabModelSelectorImpl = (TabModelSelectorImpl) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java -@@ -20,6 +20,7 @@ import android.view.WindowManager; - import android.widget.PopupMenu; +@@ -20,8 +20,10 @@ import android.widget.PopupMenu; import org.chromium.base.Callback; -+import org.chromium.base.ContextUtils; - import org.chromium.base.ObservableSupplier; import org.chromium.base.VisibleForTesting; ++import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordUserAction; -@@ -57,6 +58,8 @@ class AppMenuHandlerImpl - private @Nullable OverviewModeBehavior mOverviewModeBehavior; - private OverviewModeBehavior.OverviewModeObserver mOverviewModeObserver; - -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; -+ - /** - * The resource id of the menu item to highlight when the menu next opens. A value of - * {@code null} means no item will be highlighted. This value will be cleared after the menu is -@@ -267,6 +270,14 @@ class AppMenuHandlerImpl + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; + import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver; + import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver; +@@ -208,6 +210,13 @@ class AppMenuHandlerImpl if (mDelegate.shouldShowHeader(appRect.height())) { headerResourceId = mDelegate.getHeaderResourceId(); } + -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) { ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { + final MenuItem newTabOption = mAppMenu.getMenu().findItem(R.id.new_tab_menu_id); -+ if (newTabOption != null) { ++ if (newTabOption != null) + newTabOption.setVisible(false); -+ } + } + mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y, @@ -180,42 +197,36 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -15,6 +15,7 @@ import android.webkit.URLUtil; +@@ -16,7 +16,9 @@ import androidx.annotation.IntDef; import org.chromium.base.library_loader.LibraryProcessType; import org.chromium.base.metrics.RecordHistogram; +import org.chromium.base.ContextUtils; import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabPanel; -@@ -46,6 +47,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - private static final String TAG = "CCMenuPopulator"; - private final ContextMenuItemDelegate mDelegate; - private final @ContextMenuMode int mMode; -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; - - /** - * Defines the Groups of each Context Menu Item -@@ -298,7 +300,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; +@@ -301,7 +303,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (FirstRunStatus.getFirstRunFlowComplete() && mMode == ContextMenuMode.NORMAL && !isEmptyUrl(params.getUrl()) && UrlUtilities.isAcceptedScheme(params.getUrl())) { - linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB)); -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false) ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false) + && !mDelegate.isIncognito()) { + // disallow open in new tab -+ } else { ++ } else + linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB)); -+ } ++ if (!mDelegate.isIncognito() && mDelegate.isIncognitoSupported()) { linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_INCOGNITO_TAB)); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -8,8 +8,10 @@ import android.content.Intent; - import android.support.annotation.Nullable; - import android.text.TextUtils; +@@ -9,8 +9,10 @@ import android.text.TextUtils; + + import androidx.annotation.Nullable; +import org.chromium.base.ContextUtils; import org.chromium.base.SysUtils; @@ -224,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.ServiceTabLauncher; -@@ -17,6 +19,7 @@ import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; +@@ -19,6 +21,7 @@ import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabAssociatedApp; import org.chromium.chrome.browser.tab.TabBuilder; @@ -232,50 +243,47 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.tab.TabDelegateFactory; import org.chromium.chrome.browser.tab.TabParentIntent; import org.chromium.chrome.browser.tab.TabRedirectHandler; -@@ -37,6 +40,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - +@@ -40,6 +43,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { private final ChromeActivity mActivity; + private final StartupTabPreloader mStartupTabPreloader; private final boolean mIncognito; + private final TabObserver mExtraLogic; private WindowAndroid mNativeWindow; private TabModel mTabModel; -@@ -47,6 +51,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - mActivity = activity; +@@ -51,6 +55,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + mStartupTabPreloader = startupTabPreloader; mNativeWindow = nativeWindow; mIncognito = incognito; -+ if (!mIncognito) { ++ if (!mIncognito) + mExtraLogic = new AlwaysIncognitoLinkInterceptor(ContextUtils.getAppSharedPreferences()); -+ } else { ++ else + mExtraLogic = null; -+ } } @Override -@@ -171,6 +180,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { +@@ -186,6 +194,9 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { tab.getWebContents()); } -+ if (mExtraLogic != null) { ++ if (mExtraLogic != null) + tab.addObserver(mExtraLogic); -+ } + mTabModel.addTab(tab, position, type); return tab; } finally { -@@ -199,6 +212,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - .setWindow(mNativeWindow) - .setLaunchType(type) +@@ -217,6 +228,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + .setDelegateFactory(delegateFactory) + .setInitiallyHidden(!openInForeground) .build(); + -+ if (mExtraLogic != null) { ++ if (mExtraLogic != null) + tab.addObserver(mExtraLogic); -+ } + - tab.initialize(webContents, delegateFactory, !openInForeground, null, false); mTabModel.addTab(tab, position, type); return true; -@@ -242,7 +260,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + } +@@ -259,7 +274,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { */ public Tab launchUrlFromExternalApp(String url, String referer, String headers, String appId, boolean forceNewTab, Intent intent, long intentTimestamp) { @@ -283,14 +291,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName()); // If an external app sends an intent for a Weblite URL and the Data Reduction Proxy is -@@ -307,6 +324,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - state.isIncognito()); - tab.initialize(null, createDefaultTabDelegateFactory(), !selectTab, state, false); +@@ -326,6 +340,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + .setTabState(state) + .build(); assert state.isIncognito() == mIncognito; + -+ if (mExtraLogic != null) { ++ if (mExtraLogic != null) + tab.addObserver(mExtraLogic); -+ } + mTabModel.addTab(tab, index, TabLaunchType.FROM_RESTORE); return tab; @@ -298,7 +305,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -689,6 +689,14 @@ CHAR-LIMIT guidelines: +@@ -669,6 +669,14 @@ CHAR-LIMIT guidelines: Search and site suggestions disabled @@ -314,5 +321,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Themes -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 0fddf02686ed40cbeae29bd1936a43a757ee6626..ee468ea05829247680f8d1a4eb408f859f421ff3 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -6,29 +6,29 @@ Add bookmark import/export actions in bookmarks activity and page Reduce permissions needed for bookmarks import/export Completely remove contacts picker permission from the file dialog --- - chrome/android/java/AndroidManifest.xml | 1 - - .../java/res/menu/bookmark_action_bar_menu.xml | 14 ++ - .../browser/bookmarks/BookmarkActionBar.java | 12 ++ - .../chrome/browser/bookmarks/BookmarkActivity.java | 15 ++ - .../chrome/browser/bookmarks/BookmarkBridge.java | 46 +++++ - .../chrome/browser/bookmarks/BookmarkDelegate.java | 10 + - .../chrome/browser/bookmarks/BookmarkManager.java | 20 ++ - .../chrome/browser/bookmarks/BookmarkPage.java | 1 + - .../java/strings/android_chrome_strings.grd | 6 + - chrome/browser/BUILD.gn | 8 +- - .../browser/android/bookmarks/bookmark_bridge.cc | 215 +++++++++++++++++++++ - chrome/browser/android/bookmarks/bookmark_bridge.h | 20 +- - chrome/browser/importer/profile_writer.cc | 12 ++ - chrome/browser/importer/profile_writer.h | 6 + - chrome/common/BUILD.gn | 3 + - chrome/utility/BUILD.gn | 7 +- - chrome/utility/importer/bookmark_html_reader.cc | 27 ++- - chrome/utility/importer/bookmark_html_reader.h | 9 + - .../src/org/chromium/ui/base/SelectFileDialog.java | 18 +- - ui/shell_dialogs/select_file_dialog.h | 2 + - ui/shell_dialogs/select_file_dialog_android.cc | 6 + - ui/shell_dialogs/select_file_dialog_android.h | 2 + - 22 files changed, 446 insertions(+), 14 deletions(-) + chrome/android/java/AndroidManifest.xml | 1 - + .../res/menu/bookmark_action_bar_menu.xml | 14 ++ + .../browser/bookmarks/BookmarkActionBar.java | 12 + + .../browser/bookmarks/BookmarkActivity.java | 15 ++ + .../browser/bookmarks/BookmarkBridge.java | 47 ++++ + .../browser/bookmarks/BookmarkDelegate.java | 10 + + .../browser/bookmarks/BookmarkManager.java | 20 ++ + .../browser/bookmarks/BookmarkPage.java | 1 + + .../java/strings/android_chrome_strings.grd | 6 + + chrome/browser/BUILD.gn | 8 +- + .../android/bookmarks/bookmark_bridge.cc | 215 ++++++++++++++++++ + .../android/bookmarks/bookmark_bridge.h | 20 +- + chrome/browser/importer/profile_writer.cc | 12 + + chrome/browser/importer/profile_writer.h | 6 + + chrome/common/BUILD.gn | 3 + + chrome/utility/BUILD.gn | 7 +- + .../utility/importer/bookmark_html_reader.cc | 27 ++- + .../utility/importer/bookmark_html_reader.h | 9 + + .../chromium/ui/base/SelectFileDialog.java | 18 +- + ui/shell_dialogs/select_file_dialog.h | 2 + + .../select_file_dialog_android.cc | 6 + + ui/shell_dialogs/select_file_dialog_android.h | 2 + + 22 files changed, 447 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -39,15 +39,16 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - - {% set notouch_build = notouch_build|default(0) %} + + diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml --- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml -@@ -22,6 +22,20 @@ +@@ -21,6 +21,20 @@ + android:visible="false" app:showAsAction="ifRoom" app:iconTint="@color/standard_mode_tint" /> - -+ +@@ -82,6 +82,12 @@ public class BookmarkActionBar extends SelectableListToolbar } else if (menuItem.getItemId() == R.id.search_menu_id) { mDelegate.openSearchUI(); return true; @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } SelectionDelegate selectionDelegate = mDelegate.getSelectionDelegate(); -@@ -141,6 +147,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -133,6 +139,8 @@ public class BookmarkActionBar extends SelectableListToolbar void showLoadingUi() { setTitle(null); setNavigationButton(NAVIGATION_BUTTON_NONE); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } -@@ -150,6 +158,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -142,6 +150,8 @@ public class BookmarkActionBar extends SelectableListToolbar super.showNormalView(); if (mDelegate == null) { @@ -99,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } -@@ -182,6 +192,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -172,6 +182,8 @@ public class BookmarkActionBar extends SelectableListToolbar public void onFolderStateSet(BookmarkId folder) { mCurrentFolder = mDelegate.getModel().getBookmarkById(folder); @@ -166,29 +166,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm +import android.net.Uri; import android.os.SystemClock; +import android.provider.Browser; + import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.Pair; +@@ -23,6 +27,11 @@ import org.chromium.components.bookmarks.BookmarkType; + import org.chromium.components.url_formatter.UrlFormatter; + import org.chromium.content_public.browser.WebContents; -@@ -14,11 +18,15 @@ import org.chromium.base.VisibleForTesting; - import org.chromium.base.annotations.CalledByNative; - import org.chromium.base.annotations.NativeMethods; - import org.chromium.base.metrics.RecordHistogram; +import org.chromium.chrome.browser.document.ChromeLauncherActivity; +import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.bookmarks.BookmarkType; - import org.chromium.components.url_formatter.UrlFormatter; +import org.chromium.ui.base.PageTransition; +import org.chromium.ui.base.WindowAndroid; - ++ import java.util.ArrayList; import java.util.List; -@@ -525,6 +533,24 @@ public class BookmarkBridge { + +@@ -553,6 +562,24 @@ public class BookmarkBridge { + mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); } - /** ++ /** + * Import bookmarks from a selected file. + * @param window The current window of the bookmarks activity or page. + */ @@ -206,11 +203,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + BookmarkBridgeJni.get().exportBookmarks(mNativeBookmarkBridge, BookmarkBridge.this); + } + -+ /** + /** * Synchronously gets a list of bookmarks that match the specified search query. * @param query Keyword used for searching bookmarks. - * @param maxNumberOfResult Maximum number of result to fetch. -@@ -877,6 +903,24 @@ public class BookmarkBridge { +@@ -914,6 +941,24 @@ public class BookmarkBridge { depthList.add(depth); } @@ -235,7 +231,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList>(); for (int i = 0; i < left.length; i++) { -@@ -943,6 +987,8 @@ public class BookmarkBridge { +@@ -982,6 +1027,8 @@ public class BookmarkBridge { int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type); void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, boolean getFolders, boolean getBookmarks, List bookmarksList); @@ -247,10 +243,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java -@@ -70,6 +70,16 @@ interface BookmarkDelegate { +@@ -69,6 +69,16 @@ interface BookmarkDelegate { + */ void openSearchUI(); - /** ++ /** + * Imports bookmarks from user-selected file. + */ + void importBookmarks(); @@ -260,14 +257,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + */ + void exportBookmarks(); + -+ /** + /** * Dismisses the search UI. */ - void closeSearchUI(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -@@ -22,6 +22,7 @@ import org.chromium.chrome.R; +@@ -23,6 +23,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem; import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserver; @@ -275,7 +271,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.chrome.browser.favicon.LargeIconBridge; import org.chromium.chrome.browser.gesturenav.HistoryNavigationDelegate; import org.chromium.chrome.browser.native_page.BasicNativePage; -@@ -34,6 +35,7 @@ import org.chromium.chrome.browser.widget.selection.SelectableListLayout; +@@ -35,6 +36,7 @@ import org.chromium.chrome.browser.widget.selection.SelectableListLayout; import org.chromium.chrome.browser.widget.selection.SelectableListToolbar.SearchDelegate; import org.chromium.chrome.browser.widget.selection.SelectionDelegate; import org.chromium.components.bookmarks.BookmarkId; @@ -283,7 +279,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import java.util.Stack; -@@ -58,6 +60,7 @@ public class BookmarkManager +@@ -59,6 +61,7 @@ public class BookmarkManager private Activity mActivity; private ViewGroup mMainView; private BookmarkModel mBookmarkModel; @@ -291,24 +287,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private BookmarkUndoController mUndoController; private final ObserverList mUIObservers = new ObserverList<>(); private BasicNativePage mNativePage; -@@ -362,6 +365,13 @@ public class BookmarkManager +@@ -374,6 +377,13 @@ public class BookmarkManager + mSelectableListLayout.setHistoryNavigationDelegate(delegate); } - /** ++ /** + * Sets the Android window that is used by further intents created by the bookmark activity. + */ + public void setWindow(ActivityWindowAndroid window) { + mWindowAndroid = window; + } + -+ /** + /** * @return Current URL representing the UI state of bookmark manager. If no state has been shown * yet in this session, on phone return last used state stored in preference; on tablet - * return the url previously set by {@link #updateForUrl(String)}. -@@ -523,6 +533,16 @@ public class BookmarkManager +@@ -547,6 +557,16 @@ public class BookmarkManager + } } - @Override ++ @Override + public void importBookmarks() { + mBookmarkModel.importBookmarks(mWindowAndroid); + } @@ -318,10 +315,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + mBookmarkModel.exportBookmarks(); + } + -+ @Override + @Override public void openSearchUI() { setState(BookmarkUIState.createSearchState()); - mSelectableListLayout.onStartSearch(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java @@ -336,7 +332,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -236,6 +236,12 @@ CHAR-LIMIT guidelines: +@@ -230,6 +230,12 @@ CHAR-LIMIT guidelines: Search @@ -352,7 +348,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -174,6 +174,10 @@ jumbo_split_static_library("browser") { +@@ -163,6 +163,10 @@ jumbo_static_library("browser") { "bitmap_fetcher/bitmap_fetcher_service.h", "bitmap_fetcher/bitmap_fetcher_service_factory.cc", "bitmap_fetcher/bitmap_fetcher_service_factory.h", @@ -363,7 +359,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", "bookmarks/chrome_bookmark_client.cc", -@@ -3007,8 +3011,6 @@ jumbo_split_static_library("browser") { +@@ -2953,8 +2957,6 @@ jumbo_static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -372,7 +368,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "certificate_viewer.h", "chrome_browser_field_trials_desktop.cc", "chrome_browser_field_trials_desktop.h", -@@ -3115,8 +3117,6 @@ jumbo_split_static_library("browser") { +@@ -3059,8 +3061,6 @@ jumbo_static_library("browser") { "importer/importer_uma.h", "importer/in_process_importer_bridge.cc", "importer/in_process_importer_bridge.h", @@ -384,9 +380,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc -@@ -41,6 +41,21 @@ - #include "components/undo/undo_manager.h" +@@ -43,6 +43,21 @@ #include "content/public/browser/browser_thread.h" + #include "content/public/browser/web_contents.h" +#include "base/android/content_uri_utils.h" +#include "base/android/path_utils.h" @@ -406,7 +402,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse using base::android::AttachCurrentThread; using base::android::ConvertUTF8ToJavaString; using base::android::ConvertUTF16ToJavaString; -@@ -58,6 +73,56 @@ using bookmarks::BookmarkPermanentNode; +@@ -60,6 +75,56 @@ using bookmarks::BookmarkPermanentNode; using bookmarks::BookmarkType; using content::BrowserThread; @@ -462,8 +458,8 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse + namespace { - class BookmarkTitleComparer { -@@ -134,6 +199,10 @@ BookmarkBridge::~BookmarkBridge() { + const int kInvalidId = -1; +@@ -138,6 +203,10 @@ BookmarkBridge::~BookmarkBridge() { bookmark_model_->RemoveObserver(this); if (partner_bookmarks_shim_) partner_bookmarks_shim_->RemoveObserver(this); @@ -474,7 +470,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef&) { -@@ -475,6 +544,152 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -524,6 +593,152 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -662,7 +658,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting( -@@ -129,6 +138,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -133,6 +142,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, jlong id, jint type); @@ -676,7 +672,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser void SetBookmarkTitle(JNIEnv* env, const base::android::JavaParamRef& obj, jlong id, -@@ -274,12 +290,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -278,12 +294,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, void ShimBeingDeleted(PartnerBookmarksShim* shim) override; Profile* profile_; @@ -752,7 +748,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -440,6 +440,9 @@ static_library("common") { +@@ -445,6 +445,9 @@ static_library("common") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -774,7 +770,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/edge_database_reader_win.cc", -@@ -160,6 +158,11 @@ static_library("utility") { +@@ -164,6 +162,11 @@ static_library("utility") { } } @@ -895,7 +891,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -33,6 +33,7 @@ import org.chromium.base.task.PostTask; +@@ -34,6 +34,7 @@ import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; import org.chromium.ui.PhotoPickerListener; import org.chromium.ui.R; @@ -903,7 +899,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui import org.chromium.ui.UiUtils; import java.io.File; -@@ -52,6 +53,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -53,6 +54,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private static final String IMAGE_TYPE = "image/"; private static final String VIDEO_TYPE = "video/"; private static final String AUDIO_TYPE = "audio/"; @@ -911,7 +907,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui private static final String ALL_IMAGE_TYPES = IMAGE_TYPE + "*"; private static final String ALL_VIDEO_TYPES = VIDEO_TYPE + "*"; private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*"; -@@ -130,6 +132,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -131,6 +133,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mFileTypes = fileTypes; } @@ -923,7 +919,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui /** * Creates and starts an intent based on the passed fileTypes and capture value. * @param fileTypes MIME types requested (i.e. "image/*") -@@ -157,7 +164,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -158,7 +165,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -932,7 +928,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (!window.hasPermission(storagePermission)) missingPermissions.add(storagePermission); } else { if (((mSupportsImageCapture && shouldShowImageTypes()) -@@ -185,7 +192,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -186,7 +193,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } // TODO(finnur): Remove once we figure out the cause of crbug.com/950024. @@ -941,7 +937,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format("Permissions arrays misaligned: %d != %d", -@@ -199,7 +206,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -200,7 +207,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -950,7 +946,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui onFileNotSelected(); return; } -@@ -348,6 +355,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -349,6 +356,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType); } @@ -958,7 +954,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -625,6 +633,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -626,6 +634,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(specificType) > 0; } @@ -1010,5 +1006,5 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/se ~SelectFileDialogImpl() override; -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 59f2ba55a5b53db0df90db5d1abe2471d2a2a07b..561118ddf7f026460e7a7248a59efb3c6c34d43d 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -3,12 +3,12 @@ Date: Wed, 29 Aug 2018 11:03:44 +0200 Subject: Add custom tab intents privacy option --- - chrome/android/java/res/values/values.xml | 3 +++ - chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ - .../org/chromium/chrome/browser/LaunchIntentDispatcher.java | 2 ++ - .../browser/preferences/privacy/PrivacyPreferences.java | 11 +++++++++++ - chrome/android/java/strings/android_chrome_strings.grd | 7 +++++++ - 5 files changed, 28 insertions(+) + chrome/android/java/res/values/values.xml | 3 +++ + chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ + .../chrome/browser/LaunchIntentDispatcher.java | 3 +++ + .../preferences/privacy/PrivacyPreferences.java | 11 +++++++++++ + .../android/java/strings/android_chrome_strings.grd | 7 +++++++ + 5 files changed, 29 insertions(+) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml @@ -35,32 +35,33 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi + android:title="@string/allow_custom_tab_intents_title" + android:summary="@string/allow_custom_tab_intents_summary" + android:defaultValue="false" /> - - Close other incognito tabs +@@ -3965,6 +3965,13 @@ The site does NOT gain access to the camera. The camera images are only visible + 'Installing Extra ICU for Chrome…')."> + Extra ICU + + @@ -107,8 +108,8 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and + Allow applications to open custom tab intents, similar to webview. + - - + + -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index b4d6dc11e19729bb241545bcb03a02860e4bf50b..7f14d49a7e325b1daa6126a96ace7c3c2bcfd22f 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -4,10 +4,10 @@ Subject: Add exit menu item Corrected Exit functionality --- - chrome/android/java/res/menu/main_menu.xml | 2 ++ - .../java/src/org/chromium/chrome/browser/ChromeActivity.java | 2 ++ - .../org/chromium/chrome/browser/init/ChromeLifetimeController.java | 6 +++++- - chrome/android/java/strings/android_chrome_strings.grd | 3 +++ + chrome/android/java/res/menu/main_menu.xml | 2 ++ + .../src/org/chromium/chrome/browser/ChromeActivity.java | 2 ++ + .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++- + chrome/android/java/strings/android_chrome_strings.grd | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml @@ -25,7 +25,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2137,6 +2137,8 @@ public abstract class ChromeActivity +@@ -2204,6 +2204,8 @@ public abstract class ChromeActivity new AddToHomescreenManager(this, currentTab); addToHomescreenManager.start(); RecordUserAction.record("MobileMenuAddToHomescreen"); @@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2947,6 +2947,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Settings @@ -64,5 +64,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Close all tabs -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 1507a333a87780fd52f0eaaef86d113f74d97eaf..9708f38267cbb58d73ee8fd98ebf68b415338cf6 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -6,20 +6,20 @@ With the introduction of this flag it is possible to increase the maximum allowed connections per host; this can however be detrimental to devices with limited CPU/memory resources and it is disabled by default. --- - chrome/browser/about_flags.cc | 8 ++++++++ - chrome/browser/flag_descriptions.cc | 4 ++++ - chrome/browser/flag_descriptions.h | 3 +++ - .../common/network_features.cc | 3 +++ - .../common/network_features.h | 4 ++++ - .../common/network_switch_list.h | 4 ++++ - .../url_formatter/spoof_checks/top_domains/BUILD.gn | 1 + - net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++ + chrome/browser/about_flags.cc | 8 ++++++++ + chrome/browser/flag_descriptions.cc | 4 ++++ + chrome/browser/flag_descriptions.h | 3 +++ + .../common/network_features.cc | 3 +++ + .../common/network_features.h | 4 ++++ + .../common/network_switch_list.h | 4 ++++ + .../spoof_checks/top_domains/BUILD.gn | 1 + + net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++ 8 files changed, 44 insertions(+) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -669,6 +669,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { +@@ -668,6 +668,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { net::kEffectiveConnectionType4G}, }; @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // Ensure that all effective connection types returned by Network Quality // Estimator (NQE) are also exposed via flags. static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 == -@@ -2538,6 +2543,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2596,6 +2601,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPassiveDocumentEventListenersName, flag_descriptions::kPassiveDocumentEventListenersDescription, kOsAll, FEATURE_VALUE_TYPE(features::kPassiveDocumentEventListeners)}, @@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1240,6 +1240,10 @@ const char kLookalikeUrlNavigationSuggestionsDescription[] = +@@ -1275,6 +1275,10 @@ const char kLookalikeUrlNavigationSuggestionsDescription[] = const char kMarkHttpAsName[] = "Mark non-secure origins as non-secure"; const char kMarkHttpAsDescription[] = "Change the UI treatment for HTTP pages"; @@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -761,6 +761,9 @@ extern const char kMarkHttpAsWarning[]; +@@ -776,6 +776,9 @@ extern const char kMarkHttpAsWarning[]; extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[]; extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[]; @@ -110,7 +110,7 @@ diff --git a/components/network_session_configurator/common/network_switch_list. diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn -@@ -78,6 +78,7 @@ executable("make_top_domain_list_for_edit_distance") { +@@ -78,6 +78,7 @@ executable("make_top_domain_list_variables") { "//base", "//base:i18n", "//third_party/icu", @@ -132,7 +132,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket namespace net { -@@ -185,6 +189,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( +@@ -187,6 +191,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( int ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); @@ -153,5 +153,5 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket } -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index 069da1d8fb1f310a8588273059ae5f5d513ccd26..5ed4092cbe87d80c4a6f56171d2a58c8996dfc32 100644 --- a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -13,7 +13,7 @@ Disable it by default on Android as it is everywhere else diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1580,6 +1580,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1633,6 +1633,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-webassembly-threads", flag_descriptions::kEnableWasmThreadsName, flag_descriptions::kEnableWasmThreadsDescription, kOsAll, FEATURE_VALUE_TYPE(features::kWebAssemblyThreads)}, @@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -876,6 +876,11 @@ const char kMemlogStackModeNative[] = "Native"; +@@ -904,6 +904,11 @@ const char kMemlogStackModeNative[] = "Native"; const char kMemlogStackModeNativeWithThreadNames[] = "Native with thread names"; const char kMemlogStackModePseudo[] = "Trace events"; @@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -520,6 +520,9 @@ extern const char kEnablePortalsDescription[]; +@@ -532,6 +532,9 @@ extern const char kEnablePortalsDescription[]; extern const char kEnablePictureInPictureName[]; extern const char kEnablePictureInPictureDescription[]; @@ -55,7 +55,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -212,11 +212,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad", +@@ -216,11 +216,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad", // when in background. const base::Feature kResumeBackgroundVideo { "resume-background-video", @@ -69,5 +69,5 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc // Enable Media Capabilities with finch-parameters. -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 43067243700633c76b5fdb24a9c4528b54d1d967..91430e4ef2ebe6bd0b8c2dea84953f4e6b85ece6 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -3,20 +3,20 @@ Date: Sun, 18 Nov 2018 13:06:49 +0100 Subject: Add flag to disable IPv6 probes --- - chrome/browser/about_flags.cc | 5 +++++ - chrome/browser/flag_descriptions.cc | 4 ++++ - chrome/browser/flag_descriptions.h | 3 +++ - components/subresource_filter/tools/BUILD.gn | 6 ++++++ - components/url_formatter/spoof_checks/top_domains/BUILD.gn | 3 ++- - net/dns/host_resolver_manager.cc | 10 ++++++++-- - services/network/public/cpp/features.cc | 4 ++++ - services/network/public/cpp/features.h | 2 ++ + chrome/browser/about_flags.cc | 5 +++++ + chrome/browser/flag_descriptions.cc | 4 ++++ + chrome/browser/flag_descriptions.h | 3 +++ + components/subresource_filter/tools/BUILD.gn | 6 ++++++ + .../url_formatter/spoof_checks/top_domains/BUILD.gn | 3 ++- + net/dns/host_resolver_manager.cc | 10 ++++++++-- + services/network/public/cpp/features.cc | 4 ++++ + services/network/public/cpp/features.h | 2 ++ 8 files changed, 34 insertions(+), 3 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3198,6 +3198,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3244,6 +3244,11 @@ const FeatureEntry kFeatureEntries[] = { kMarkHttpAsFeatureVariations, "HTTPReallyBadFinal")}, @@ -31,21 +31,21 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2512,6 +2512,10 @@ const char kForegroundNotificationManagerDescription[] = - const char kHomePageButtonName[] = "Force Enable Home Page Button"; - const char kHomePageButtonDescription[] = "Displays a home button if enabled."; +@@ -2512,6 +2512,10 @@ const char kContextualSearchSimplifiedServerDescription[] = + const char kContextualSearchSecondTapName[] = + "Contextual Search second tap triggering"; +const char kIPv6ProbingName[] = "Enable IPv6 probing."; +const char kIPv6ProbingDescription[] = + "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity."; + - const char kHomepageTileName[] = - "Enable Homepage tile shown in Suggested Tiles"; - const char kHomepageTileDescription[] = + const char kContextualSearchSecondTapDescription[] = + "Enables triggering on a second tap gesture even when Ranker would " + "normally suppress that tap."; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -523,6 +523,9 @@ extern const char kEnableNewDownloadBackendDescription[]; +@@ -535,6 +535,9 @@ extern const char kEnableNewDownloadBackendDescription[]; extern const char kEnablePortalsName[]; extern const char kEnablePortalsDescription[]; @@ -88,7 +88,7 @@ diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresour diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn -@@ -78,7 +78,8 @@ executable("make_top_domain_list_for_edit_distance") { +@@ -78,7 +78,8 @@ executable("make_top_domain_list_variables") { "//base", "//base:i18n", "//third_party/icu", @@ -109,7 +109,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "url/url_canon_ip.h" #if BUILDFLAG(ENABLE_MDNS) -@@ -3209,8 +3210,13 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { +@@ -3269,8 +3270,13 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { bool cached = true; if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() > kIPv6ProbePeriodMs) { @@ -128,7 +128,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -46,6 +46,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -51,6 +51,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kThrottleDelayable{"ThrottleDelayable", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -142,7 +142,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -19,6 +19,8 @@ extern const base::Feature kNetworkErrorLogging; +@@ -21,6 +21,8 @@ extern const base::Feature kNetworkErrorLogging; COMPONENT_EXPORT(NETWORK_CPP) extern const base::Feature kNetworkService; COMPONENT_EXPORT(NETWORK_CPP) @@ -152,5 +152,5 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp COMPONENT_EXPORT(NETWORK_CPP) extern const base::Feature kReporting; -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-disable-WebGL.patch b/build/patches/Add-flag-to-disable-WebGL.patch index 7c1795f4d1df7a1a1f0bc1c1f77cfb1b3e1bf277..46510be3df21bee047bb20a9244384bd3e7c97a1 100644 --- a/build/patches/Add-flag-to-disable-WebGL.patch +++ b/build/patches/Add-flag-to-disable-WebGL.patch @@ -11,7 +11,7 @@ Subject: Add flag to disable WebGL diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1364,6 +1364,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1425,6 +1425,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAccelerated2dCanvasName, flag_descriptions::kAccelerated2dCanvasDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)}, @@ -24,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -385,6 +385,10 @@ const char kDisableAudioForDesktopShareDescription[] = +@@ -426,6 +426,10 @@ const char kDisableAudioForDesktopShareDescription[] = "With this flag on, desktop share picker window will not let the user " "choose whether to share audio."; @@ -38,7 +38,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -256,6 +256,9 @@ extern const char kDevtoolsExperimentsDescription[]; +@@ -274,6 +274,9 @@ extern const char kDevtoolsExperimentsDescription[]; extern const char kDisableAudioForDesktopShareName[]; extern const char kDisableAudioForDesktopShareDescription[]; @@ -49,5 +49,5 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kDisableBestEffortTasksDescription[]; -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch b/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch index d7cb2d70a36c64ffe014ce3ee7944b0d30c969aa..2e746a39860513155d074b20df8bf8019c3b1a16 100644 --- a/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch +++ b/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch @@ -5,22 +5,22 @@ Subject: Add flags to disable device motion and orientation APIs Both flags will be disabled by default and prevent usage of gyroscope and legacy acceleration events. --- - chrome/browser/about_flags.cc | 6 ++++++ - chrome/browser/flag_descriptions.cc | 8 ++++++++ - chrome/browser/flag_descriptions.h | 6 ++++++ - content/child/runtime_features.cc | 3 +++ - content/public/common/content_features.cc | 10 ++++++++++ - content/public/common/content_features.h | 2 ++ - third_party/blink/public/platform/web_runtime_features.h | 2 ++ - third_party/blink/renderer/modules/modules_initializer.cc | 9 ++++++--- - .../blink/renderer/platform/exported/web_runtime_features.cc | 8 ++++++++ - .../blink/renderer/platform/runtime_enabled_features.json5 | 8 ++++++++ + chrome/browser/about_flags.cc | 6 ++++++ + chrome/browser/flag_descriptions.cc | 8 ++++++++ + chrome/browser/flag_descriptions.h | 6 ++++++ + content/child/runtime_features.cc | 3 +++ + content/public/common/content_features.cc | 10 ++++++++++ + content/public/common/content_features.h | 2 ++ + .../blink/public/platform/web_runtime_features.h | 2 ++ + .../blink/renderer/modules/modules_initializer.cc | 9 ++++++--- + .../renderer/platform/exported/web_runtime_features.cc | 8 ++++++++ + .../renderer/platform/runtime_enabled_features.json5 | 8 ++++++++ 10 files changed, 59 insertions(+), 3 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1606,6 +1606,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1659,6 +1659,12 @@ const FeatureEntry kFeatureEntries[] = { {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, flag_descriptions::kGpuRasterizationDescription, kOsAll, MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, @@ -36,7 +36,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -644,6 +644,14 @@ const char kWinrtSensorsImplementationDescription[] = +@@ -674,6 +674,14 @@ const char kWinrtSensorsImplementationDescription[] = "Enables usage of the Windows.Devices.Sensors WinRT APIs on Windows for " "sensors"; @@ -54,7 +54,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -398,6 +398,12 @@ extern const char kEnableTLS13EarlyDataDescription[]; +@@ -410,6 +410,12 @@ extern const char kWinrtGeolocationImplementationDescription[]; extern const char kWinrtSensorsImplementationName[]; extern const char kWinrtSensorsImplementationDescription[]; @@ -70,20 +70,20 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -85,6 +85,9 @@ void SetIndividualRuntimeFeatures( - base::FeatureList::IsEnabled(features::kSharedArrayBuffer) || - base::FeatureList::IsEnabled(features::kWebAssemblyThreads)); - +@@ -85,6 +85,9 @@ void SetRuntimeFeatureDefaultsForPlatform( + command_line.HasSwitch( + switches::kEnableGpuMemoryBufferCompositorResources) && + !command_line.HasSwitch(switches::kDisableWebGLImageChromium) && + WebRuntimeFeatures::EnableDeviceMotion(base::FeatureList::IsEnabled(features::kDeviceMotion)); + WebRuntimeFeatures::EnableDeviceOrientation(base::FeatureList::IsEnabled(features::kDeviceOrientation)); + - if (command_line.HasSwitch(switches::kDisableSharedWorkers)) - WebRuntimeFeatures::EnableSharedWorker(false); - + !command_line.HasSwitch(switches::kDisableGpu) && + base::FeatureList::IsEnabled(features::kWebGLImageChromium); + #else diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -689,6 +689,16 @@ const base::Feature kExperimentalProductivityFeatures{ +@@ -688,6 +688,16 @@ const base::Feature kExperimentalProductivityFeatures{ // TODO(rouslan): Remove this. const base::Feature kWebPayments{"WebPayments", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -103,7 +103,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -157,6 +157,8 @@ CONTENT_EXPORT extern const base::Feature kScriptStreamingOnPreload; +@@ -156,6 +156,8 @@ CONTENT_EXPORT extern const base::Feature kScriptStreamingOnPreload; CONTENT_EXPORT extern const base::Feature kTrustedDOMTypes; CONTENT_EXPORT extern const base::Feature kBrowserUseDisplayThreadPriority; @@ -115,7 +115,7 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h -@@ -91,6 +91,8 @@ class WebRuntimeFeatures { +@@ -96,6 +96,8 @@ class WebRuntimeFeatures { BLINK_PLATFORM_EXPORT static void EnableCSSHexAlphaColor(bool); BLINK_PLATFORM_EXPORT static void EnableSameSiteByDefaultCookies(bool); BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool); @@ -127,7 +127,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc --- a/third_party/blink/renderer/modules/modules_initializer.cc +++ b/third_party/blink/renderer/modules/modules_initializer.cc -@@ -244,9 +244,12 @@ void ModulesInitializer::InitInspectorAgentSession( +@@ -235,9 +235,12 @@ void ModulesInitializer::InitInspectorAgentSession( void ModulesInitializer::OnClearWindowObjectInMainWorld( Document& document, const Settings& settings) const { @@ -146,7 +146,7 @@ diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_p diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc -@@ -160,6 +160,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) { +@@ -172,6 +172,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) { RuntimeEnabledFeatures::SetScrollTopLeftInteropEnabled(enable); } @@ -164,10 +164,11 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1128,6 +1128,14 @@ +@@ -1132,6 +1132,14 @@ + name: "OffscreenCanvasCommit", status: "experimental", }, - { ++ { + name: "DeviceMotion", + status: "stable", + }, @@ -175,10 +176,9 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + name: "DeviceOrientation", + status: "stable", + }, -+ { + { name: "OnDeviceChange", // Android does not yet support SystemMonitor. - status: {"Android": "", "default": "stable"}, -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch b/build/patches/Add-menu-option-to-toggle-ad-blocker.patch deleted file mode 100644 index 6138709218fc173015906fb7c7d3bb0a3c3f5e95..0000000000000000000000000000000000000000 --- a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch +++ /dev/null @@ -1,193 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 14 Sep 2019 10:19:07 +0200 -Subject: Add menu option to toggle ad blocker - ---- - chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +++++++ - chrome/android/java/res/menu/main_menu.xml | 11 ++++++ - .../chromium/chrome/browser/ChromeActivity.java | 8 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 +++++ - .../appmenu/AppMenuPropertiesDelegateImpl.java | 40 ++++++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 2 ++ - .../java/strings/android_chrome_strings.grd | 11 ++++++ - 7 files changed, 92 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -75,6 +75,18 @@ - android:checkable="true" /> - - -+ -+

-+ -+ -+ -+ -+ - - - - -+ -+ -+ -+ -+ -+ -+ - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2159,6 +2159,14 @@ public abstract class ChromeActivity - RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else { - return false; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1757,6 +1757,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo - reportNewTabShortcutUsed(true); - getTabCreator(true).launchNTP(); - } -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else if (id == R.id.all_bookmarks_menu_id) { - if (currentTab != null) { - getCompositorViewHolder().hideKeyboard(() -> { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -26,6 +26,7 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.ActivityTabProvider; - import org.chromium.chrome.browser.ChromeSwitches; -+import org.chromium.chrome.browser.ContentSettingsType; - import org.chromium.chrome.browser.ShortcutHelper; - import org.chromium.chrome.browser.banners.AppBannerManager; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge; -@@ -224,6 +225,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - // Prepare translate menu button. - prepareTranslateMenuItem(menu, currentTab); - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - // Hide 'Add to homescreen' for the following: - // * chrome:// pages - Android doesn't know how to direct those URLs. - // * incognito pages - To avoid problems where users create shortcuts in incognito -@@ -299,6 +302,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - PrefServiceBridge.getInstance().isIncognitoModeManaged()); - } - -+ /** -+ * Updates the ad blocker item's state. -+ * -+ * @param menu {@link Menu} to enable ad blocker -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableAdBlockMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_adblock_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_adblock_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_adblock_check_id); -+ -+ -+ // Hide Block ads on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ -+ // Mark the checkbox if ad blocker is globally activated. -+ enableMenuCheck.setChecked(adBlockEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(adBlockEnabled -+ ? mContext.getString(R.string.menu_enable_adblock_on) -+ : mContext.getString(R.string.menu_enable_adblock_off)); -+ } -+ -+ - /** - * Sets the visibility and labels of the "Add to Home screen" and "Open WebAPK" menu items. - */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -201,6 +201,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - } - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); - updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); -diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd ---- a/chrome/android/java/strings/android_chrome_strings.grd -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2952,6 +2952,17 @@ To change this setting, <resetlink>reset sync

- Turn on Request desktop site - -+ -+ -+ Block ads -+ -+ -+ Turn off ad blocking -+ -+ -+ Turn on ad blocking -+ -+ - - Appearance - --- -2.11.0 - diff --git a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch b/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch deleted file mode 100644 index b447d1acbf4534053adf07de73122248813737e8..0000000000000000000000000000000000000000 --- a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch +++ /dev/null @@ -1,200 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Oct 2017 21:26:53 +0200 -Subject: Add menu option to toggle global Javascript preference - ---- - chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +++++++ - chrome/android/java/res/menu/main_menu.xml | 13 ++++++++ - .../chromium/chrome/browser/ChromeActivity.java | 8 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 +++++ - .../appmenu/AppMenuPropertiesDelegateImpl.java | 39 ++++++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../java/strings/android_chrome_strings.grd | 11 ++++++ - 7 files changed, 92 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -49,6 +49,7 @@ - -+ - -@@ -63,6 +64,17 @@ - -+ -+

-+ -+ -+ -+
- - - -+ - - -@@ -71,6 +72,18 @@ - android:checkable="true" /> - - -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2149,6 +2149,14 @@ public abstract class ChromeActivity - currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent( - !usingDesktopUserAgent, reloadOnChange); - RecordUserAction.record("MobileMenuRequestDesktopSite"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); - } else { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1802,6 +1802,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo - NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); - } - RecordUserAction.record("MobileMenuDownloadManager"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.open_recently_closed_tab) { - TabModel currentModel = mTabModelSelectorImpl.getCurrentModel(); - if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -241,6 +241,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - - updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */); - -+ updateEnableJavascriptMenuItem(menu, currentTab); -+ - // Only display reader mode settings menu option if the current page is in reader mode. - menu.findItem(R.id.reader_mode_prefs_id) - .setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl())); -@@ -432,6 +434,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } - } - -+ /** -+ * Updates the enable JavaScript item's state. -+ * -+ * @param menu {@link Menu} for enable javascript -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableJavascriptMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_javascript_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_javascript_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_javascript_check_id); -+ -+ // Hide enable javascript on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ -+ // Mark the checkbox if Javascript is activated on this tab. -+ enableMenuCheck.setChecked(jsEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(jsEnabled -+ ? mContext.getString(R.string.menu_enable_javascript_on) -+ : mContext.getString(R.string.menu_enable_javascript_off)); -+ } -+ -+ -+ - /** - * Updates the request desktop site item's state. - * -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -202,6 +202,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); -+ updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); - } - } -diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd ---- a/chrome/android/java/strings/android_chrome_strings.grd -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2932,6 +2932,17 @@ To change this setting, <resetlink>reset sync

- Find in page - -+ -+ -+ JavaScript -+ -+ -+ Turn off JavaScript -+ -+ -+ Turn on JavaScript -+ -+ - - Desktop site - --- -2.11.0 - diff --git a/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch b/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch index bc4191ef260a9f0cd7dda5c78cbe717da14ecbc5..c5b149a92d7b94eaf07003ede7e480ae07c7a018 100644 --- a/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch +++ b/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch @@ -3,24 +3,23 @@ Date: Thu, 5 Dec 2019 22:41:25 +0100 Subject: Add option to configure the ad blocker filters URL --- - chrome/android/chrome_java_sources.gni | 2 + - chrome/android/java/res/layout/adblock_editor.xml | 65 ++++++++++++++++ - chrome/android/java/res/values/values.xml | 2 + - .../android/java/res/xml/adblock_preferences.xml | 25 ++++++ - chrome/android/java/res/xml/main_preferences.xml | 11 ++- - .../chrome/browser/preferences/AdBlockEditor.java | 91 ++++++++++++++++++++++ - .../browser/preferences/AdBlockPreferences.java | 53 +++++++++++++ - .../chrome/browser/util/FeatureUtilities.java | 10 +++ - .../java/strings/android_chrome_strings.grd | 14 ++++ - chrome/app/generated_resources.grd | 10 +++ - chrome/browser/android/feature_utilities.cc | 8 ++ - chrome/browser/browser_process_impl.cc | 3 +- - .../browser/net/system_network_context_manager.cc | 3 + - chrome/common/pref_names.cc | 3 + - chrome/common/pref_names.h | 1 + - .../component_updater/adblock_updater_service.cc | 6 +- - .../component_updater/adblock_updater_service.h | 3 +- - 17 files changed, 302 insertions(+), 8 deletions(-) + chrome/android/chrome_java_sources.gni | 2 + + .../java/res/layout/adblock_editor.xml | 65 +++++++++++++ + chrome/android/java/res/values/values.xml | 2 + + .../java/res/xml/adblock_preferences.xml | 25 +++++ + .../android/java/res/xml/main_preferences.xml | 11 ++- + .../browser/preferences/AdBlockEditor.java | 91 +++++++++++++++++++ + .../preferences/AdBlockPreferences.java | 53 +++++++++++ + .../java/strings/android_chrome_strings.grd | 14 +++ + chrome/app/generated_resources.grd | 10 ++ + chrome/browser/android/feature_utilities.cc | 8 ++ + chrome/browser/browser_process_impl.cc | 3 +- + .../net/system_network_context_manager.cc | 3 + + chrome/common/pref_names.cc | 3 + + chrome/common/pref_names.h | 1 + + .../adblock_updater_service.cc | 6 +- + .../adblock_updater_service.h | 3 +- + 16 files changed, 292 insertions(+), 8 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/preferences/AdBlockEditor.java @@ -29,7 +28,7 @@ Subject: Add option to configure the ad blocker filters URL diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1266,6 +1266,8 @@ chrome_java_sources = [ +@@ -1277,6 +1277,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/preferences/PreferenceUtils.java", "java/src/org/chromium/chrome/browser/preferences/Preferences.java", "java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java", @@ -111,7 +110,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -68,6 +68,8 @@ +@@ -70,6 +70,8 @@ @@ -153,15 +152,16 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -61,19 +61,24 @@ +@@ -60,20 +60,25 @@ + android:key="privacy" android:order="13" android:title="@string/prefs_privacy"/> - -+ @@ -387,7 +362,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -9505,6 +9505,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -9603,6 +9603,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -407,7 +382,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/android/feature_utilities.cc --- a/chrome/browser/android/feature_utilities.cc +++ b/chrome/browser/android/feature_utilities.cc -@@ -58,6 +58,14 @@ std::string GetReachedCodeProfilerTrialGroup() { +@@ -50,6 +50,14 @@ std::string GetReachedCodeProfilerTrialGroup() { } // namespace android } // namespace chrome @@ -425,7 +400,7 @@ diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/androi diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1032,7 +1032,8 @@ BrowserProcessImpl::adblock_updater() { +@@ -1028,7 +1028,8 @@ BrowserProcessImpl::adblock_updater() { adblock_updater_ = std::make_unique( g_browser_process->system_network_context_manager()->GetSharedURLLoaderFactory(), std::move(scheduler), @@ -438,7 +413,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -391,6 +391,8 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -405,6 +405,8 @@ SystemNetworkContextManager::SystemNetworkContextManager( ssl_config_service_manager_( SSLConfigServiceManager::CreateDefaultManager(local_state_)), proxy_config_monitor_(local_state_) { @@ -447,7 +422,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows #if !defined(OS_ANDROID) // QuicAllowed was not part of Android policy. const base::Value* value = -@@ -462,6 +464,7 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { +@@ -508,6 +510,7 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { } void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { @@ -458,7 +433,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -1871,6 +1871,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -1925,6 +1925,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; // capture devices without prompt. const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -512,5 +487,5 @@ diff --git a/components/component_updater/adblock_updater_service.h b/components // Adds an observer for this class. An observer should not be added more -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 9e71e80828f3e463ef8cc05c08efc8d659712c78..76b72b8bd28a510257a290a0a655eb86a252c744 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -3,17 +3,17 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200 Subject: Add option to not persist tabs across sessions --- - chrome/android/java/res/values/values.xml | 3 +++ - chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ - .../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 +++- - .../browser/preferences/privacy/PrivacyPreferences.java | 12 ++++++++++++ - chrome/android/java/strings/android_chrome_strings.grd | 6 ++++++ + chrome/android/java/res/values/values.xml | 3 +++ + chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ + .../chrome/browser/ChromeTabbedActivity.java | 4 +++- + .../preferences/privacy/PrivacyPreferences.java | 12 ++++++++++++ + .../android/java/strings/android_chrome_strings.grd | 6 ++++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -62,6 +62,9 @@ +@@ -64,6 +64,9 @@ @@ -26,10 +26,10 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -38,6 +38,11 @@ - android:key="contextual_search" - android:title="@string/contextual_search_title" - android:fragment="org.chromium.chrome.browser.preferences.privacy.ContextualSearchPreferenceFragment" /> +@@ -34,6 +34,11 @@ + android:title="@string/allow_custom_tab_intents_title" + android:summary="@string/allow_custom_tab_intents_summary" + android:defaultValue="false" /> + IMAGE @@ -120,5 +120,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and LINK -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index 70a084f6ead948d8f5a205556fde0a096e9ec37d..d0747e8d6d2c0587beac6769725928264e598612 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -4,35 +4,35 @@ Subject: Add option to use home page as NTP Use about:blank as default homepage --- - .../android/java/res/xml/homepage_preferences.xml | 5 +++++ - .../partnercustomizations/HomepageManager.java | 24 ++++++++++++++++++++-- - .../browser/preferences/HomepagePreferences.java | 10 +++++++++ - .../chrome/browser/tabmodel/TabCreatorManager.java | 11 ++++++++-- - .../java/strings/android_chrome_strings.grd | 3 +++ - chrome/browser/ui/browser_ui_prefs.cc | 2 ++ - chrome/common/pref_names.cc | 4 ++++ - chrome/common/pref_names.h | 1 + + .../java/res/xml/homepage_preferences.xml | 5 ++++ + .../HomepageManager.java | 24 +++++++++++++++++-- + .../preferences/HomepagePreferences.java | 10 ++++++++ + .../browser/tabmodel/TabCreatorManager.java | 11 +++++++-- + .../java/strings/android_chrome_strings.grd | 3 +++ + chrome/browser/ui/browser_ui_prefs.cc | 2 ++ + chrome/common/pref_names.cc | 4 ++++ + chrome/common/pref_names.h | 1 + 8 files changed, 56 insertions(+), 4 deletions(-) diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml --- a/chrome/android/java/res/xml/homepage_preferences.xml +++ b/chrome/android/java/res/xml/homepage_preferences.xml -@@ -7,6 +7,11 @@ +@@ -6,6 +6,11 @@ + - + -+ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -@@ -32,6 +32,7 @@ public class HomepageManager { +@@ -31,6 +31,7 @@ public class HomepageManager { } private static final String PREF_HOMEPAGE_ENABLED = "homepage"; @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz private static final String PREF_HOMEPAGE_CUSTOM_URI = "homepage_custom_uri"; private static final String PREF_HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; -@@ -91,7 +92,8 @@ public class HomepageManager { +@@ -90,7 +91,8 @@ public class HomepageManager { */ public static boolean shouldCloseAppWithZeroTabs() { return HomepageManager.isHomepageEnabled() @@ -51,7 +51,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz /** @@ -111,7 +113,7 @@ public class HomepageManager { - * @return The default homepage URI. + * if the homepage button is force enabled via flag. */ public static String getDefaultHomepageUri() { - return UrlConstants.NTP_NON_NATIVE_URL; @@ -59,10 +59,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz } /** -@@ -125,6 +127,14 @@ public class HomepageManager { +@@ -124,6 +126,14 @@ public class HomepageManager { + return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, true); } - /** ++ /** + * Returns the user preference for whether the New Tab Page is the homepage or not. + * + */ @@ -70,14 +71,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz + return mSharedPreferences.getBoolean(PREF_NTP_IS_HOMEPAGE, false); + } + -+ /** + /** * Sets the user preference for whether the homepage is enabled. */ - public void setPrefHomepageEnabled(boolean enabled) { -@@ -138,6 +148,16 @@ public class HomepageManager { +@@ -137,6 +147,16 @@ public class HomepageManager { + notifyHomepageUpdated(); } - /** ++ /** + * Sets the user preference for whether the new tab page is the homepage or not. + */ + public void setPrefNTPIsHomepageEnabled(boolean enabled) { @@ -87,14 +88,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz + notifyHomepageUpdated(); + } + -+ /** + /** * @return User specified homepage custom URI string. */ - public String getPrefHomepageCustomUri() { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java -@@ -20,6 +20,7 @@ public class HomepagePreferences extends PreferenceFragmentCompat { +@@ -19,6 +19,7 @@ public class HomepagePreferences extends PreferenceFragmentCompat { @VisibleForTesting public static final String PREF_HOMEPAGE_SWITCH = "homepage_switch"; private static final String PREF_HOMEPAGE_EDIT = "homepage_edit"; @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Hom private HomepageManager mHomepageManager; private Preference mHomepageEdit; -@@ -42,6 +43,15 @@ public class HomepagePreferences extends PreferenceFragmentCompat { +@@ -39,6 +40,15 @@ public class HomepagePreferences extends PreferenceFragmentCompat { return true; }); @@ -153,20 +153,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCre diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -663,6 +663,9 @@ CHAR-LIMIT guidelines: - - Open this page +@@ -668,6 +668,9 @@ CHAR-LIMIT guidelines: + + Search and site suggestions disabled + + Use for new tabs + - - + + diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -54,6 +54,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -55,6 +55,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { GetHomeButtonAndHomePageIsNewTabPageFlags()); registry->RegisterBooleanPref(prefs::kShowHomeButton, false, GetHomeButtonAndHomePageIsNewTabPageFlags()); @@ -192,8 +192,8 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -318,6 +318,7 @@ extern const char kSettingsShowBrowserBanner[]; - extern const char kSettingsShowOSBanner[]; +@@ -322,6 +322,7 @@ extern const char kSettingsShowOSBanner[]; + extern const char kDeviceLoginScreenWebUsbAllowDevicesForUrls[]; #endif // defined(OS_CHROMEOS) extern const char kShowHomeButton[]; +extern const char kNewTabPageIsHomePage[]; @@ -201,5 +201,5 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h extern const char kAllowDeletingBrowserHistory[]; #if !defined(OS_ANDROID) -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-site-settings-option-for-session-only-cookies.patch b/build/patches/Add-site-settings-option-for-session-only-cookies.patch index 776213cfd410591832018079762797640c42fee5..3a96f4cffed0d3c010e61e87029af41ec2f892c1 100644 --- a/build/patches/Add-site-settings-option-for-session-only-cookies.patch +++ b/build/patches/Add-site-settings-option-for-session-only-cookies.patch @@ -3,12 +3,12 @@ Date: Tue, 28 Aug 2018 23:27:23 +0200 Subject: Add site settings option for session-only cookies --- - chrome/android/java/res/values/values.xml | 3 +++ - .../android/java/res/xml/website_preferences.xml | 7 ++++++ - .../browser/preferences/PrefServiceBridge.java | 10 +++++++++ - .../website/SingleCategoryPreferences.java | 21 +++++++++++++++++- - .../java/strings/android_chrome_strings.grd | 6 ++++++ - .../android/preferences/pref_service_bridge.cc | 25 ++++++++++++++++++++++ + chrome/android/java/res/values/values.xml | 3 +++ + .../java/res/xml/website_preferences.xml | 7 ++++++ + .../preferences/PrefServiceBridge.java | 10 ++++++++ + .../website/SingleCategoryPreferences.java | 21 +++++++++++++++- + .../java/strings/android_chrome_strings.grd | 6 +++++ + .../preferences/pref_service_bridge.cc | 25 +++++++++++++++++++ 6 files changed, 71 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml @@ -44,44 +44,37 @@ diff --git a/chrome/android/java/res/xml/website_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java -@@ -242,6 +242,10 @@ public class PrefServiceBridge { - return nativeGetBlockThirdPartyCookiesEnabled(); +@@ -265,6 +265,10 @@ public class PrefServiceBridge { + return PrefServiceBridgeJni.get().getBlockThirdPartyCookiesEnabled(PrefServiceBridge.this); } + public boolean isCookiesSessionOnlyEnabled() { -+ return nativeGetCookiesSessionOnlyEnabled(); ++ return PrefServiceBridgeJni.get().getCookiesSessionOnlyEnabled(PrefServiceBridge.this); + } + /** * @return Whether third-party cookie blocking is configured by policy */ -@@ -631,6 +635,10 @@ public class PrefServiceBridge { - nativeSetBlockThirdPartyCookiesEnabled(enabled); +@@ -668,6 +672,10 @@ public class PrefServiceBridge { + PrefServiceBridge.this, enabled); } + public void setCookiesSessionOnlyEnabled(boolean enabled) { -+ nativeSetCookiesSessionOnlyEnabled(enabled); ++ PrefServiceBridgeJni.get().setCookiesSessionOnlyEnabled(PrefServiceBridge.this, enabled); + } + public void setDoNotTrackEnabled(boolean enabled) { - nativeSetDoNotTrackEnabled(enabled); + PrefServiceBridgeJni.get().setDoNotTrackEnabled(PrefServiceBridge.this, enabled); } -@@ -1094,6 +1102,7 @@ public class PrefServiceBridge { - private native boolean nativeGetAutoplayEnabled(); - private native boolean nativeGetBackgroundSyncEnabled(); - private native boolean nativeGetBlockThirdPartyCookiesEnabled(); -+ private native boolean nativeGetCookiesSessionOnlyEnabled(); - private native boolean nativeGetBlockThirdPartyCookiesManaged(); - private native boolean nativeGetRememberPasswordsEnabled(); - private native boolean nativeGetPasswordManagerAutoSigninEnabled(); -@@ -1141,6 +1150,7 @@ public class PrefServiceBridge { - private native void nativeSetAutoplayEnabled(boolean enabled); - private native void nativeSetAllowCookiesEnabled(boolean enabled); - private native void nativeSetBackgroundSyncEnabled(boolean enabled); -+ private native void nativeSetCookiesSessionOnlyEnabled(boolean enabled); - private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled); - private native void nativeSetClipboardEnabled(boolean enabled); - private native void nativeSetDoNotTrackEnabled(boolean enabled); +@@ -1138,6 +1146,8 @@ public class PrefServiceBridge { + + @NativeMethods + public interface Natives { ++ boolean getCookiesSessionOnlyEnabled(PrefServiceBridge caller); ++ void setCookiesSessionOnlyEnabled(PrefServiceBridge caller, boolean enabled); + boolean isContentSettingEnabled(PrefServiceBridge caller, int contentSettingType); + boolean isContentSettingManaged(PrefServiceBridge caller, int contentSettingType); + void setContentSettingEnabled( diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java @@ -93,15 +86,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate"; public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more"; private static final String ADD_EXCEPTION_KEY = "add_exception"; -@@ -484,6 +485,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat - if (type == SiteSettingsCategory.Type.COOKIES - && !FeatureUtilities.isNoTouchModeEnabled()) { +@@ -477,6 +478,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat + + if (type == SiteSettingsCategory.Type.COOKIES) { updateThirdPartyCookiesCheckBox(); + updateCookiesSessionOnlyCheckBox(); } else if (type == SiteSettingsCategory.Type.NOTIFICATIONS) { updateNotificationsVibrateCheckBox(); } -@@ -523,6 +525,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -516,6 +518,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat int setting = (int) newValue; prefServiceBridge.setContentSetting(mCategory.getContentSettingsType(), setting); getInfoForOrigins(); @@ -110,7 +103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web } else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) { prefServiceBridge.setBlockThirdPartyCookiesEnabled(((boolean) newValue)); } else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) { -@@ -840,6 +844,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -833,6 +837,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat TriStateSiteSettingsPreference triStateToggle = (TriStateSiteSettingsPreference) screen.findPreference(TRI_STATE_TOGGLE_KEY); Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY); @@ -119,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY); Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY); PreferenceGroup allowedGroup = (PreferenceGroup) screen.findPreference(ALLOWED_GROUP); -@@ -871,6 +877,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -864,6 +870,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat if (hideSecondaryToggles) { screen.removePreference(thirdPartyCookies); @@ -127,15 +120,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web screen.removePreference(notificationsVibrate); screen.removePreference(explainProtectedMediaKey); screen.removePreference(allowedGroup); -@@ -881,14 +888,17 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -874,12 +881,15 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat return; } - // Configure/hide the third-party cookies toggle, as needed. + // Configure/hide the third-party cookies toggle and session-only cookie toggle, as needed. - // We don't need this toggle in touchless. Refer to crbug/951850. - if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES) - && !FeatureUtilities.isNoTouchModeEnabled()) { + if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) { thirdPartyCookies.setOnPreferenceChangeListener(this); updateThirdPartyCookiesCheckBox(); + cookiesSessionOnly.setOnPreferenceChangeListener(this); @@ -146,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web } // Configure/hide the notifications vibrate toggle, as needed. -@@ -1003,6 +1013,15 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -994,6 +1004,15 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged()); } @@ -165,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -895,6 +895,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -878,6 +878,12 @@ Your Google account may have other forms of browsing history like searches and a Prevent third-party websites from saving and reading cookie data @@ -181,7 +172,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc --- a/chrome/browser/android/preferences/pref_service_bridge.cc +++ b/chrome/browser/android/preferences/pref_service_bridge.cc -@@ -314,6 +314,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled( +@@ -330,6 +330,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled( return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies); } @@ -199,7 +190,7 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged( JNIEnv* env, const JavaParamRef& obj) { -@@ -785,6 +796,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled( +@@ -801,6 +812,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled( GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled); } @@ -221,5 +212,5 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/ JNIEnv* env, const JavaParamRef& obj, -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch b/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch index 3d66f7ad0d2beee54b426e0c6fb79b4695778e70..f491f58672fa415a9b1b26bf252a757e5119d86b 100644 --- a/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch +++ b/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch @@ -3,20 +3,20 @@ Date: Sat, 23 Nov 2019 10:55:16 +0100 Subject: Add user setting for DNS-over-HTTPS (DoH) custom URL --- - chrome/android/chrome_java_sources.gni | 2 + - chrome/android/java/res/layout/doh_editor.xml | 65 ++++++++++++++++ - chrome/android/java/res/values/values.xml | 2 + - chrome/android/java/res/xml/doh_preferences.xml | 25 ++++++ - .../android/java/res/xml/privacy_preferences.xml | 5 ++ - .../chrome/browser/preferences/DoHEditor.java | 91 ++++++++++++++++++++++ - .../chrome/browser/preferences/DoHPreferences.java | 52 +++++++++++++ - .../chrome/browser/util/FeatureUtilities.java | 25 ++++++ - .../java/strings/android_chrome_strings.grd | 11 +++ - chrome/app/generated_resources.grd | 6 ++ - chrome/browser/android/feature_utilities.cc | 23 ++++++ - .../browser/net/system_network_context_manager.cc | 46 +++-------- - chrome/common/chrome_features.cc | 4 +- - 13 files changed, 320 insertions(+), 37 deletions(-) + chrome/android/chrome_java_sources.gni | 2 + + chrome/android/java/res/layout/doh_editor.xml | 65 +++++++++++++ + chrome/android/java/res/values/values.xml | 2 + + .../android/java/res/xml/doh_preferences.xml | 25 +++++ + .../java/res/xml/privacy_preferences.xml | 5 + + .../chrome/browser/preferences/DoHEditor.java | 91 +++++++++++++++++++ + .../browser/preferences/DoHPreferences.java | 52 +++++++++++ + .../chrome/browser/util/FeatureUtilities.java | 24 +++++ + .../java/strings/android_chrome_strings.grd | 11 +++ + chrome/app/generated_resources.grd | 6 ++ + chrome/browser/android/feature_utilities.cc | 23 +++++ + .../net/system_network_context_manager.cc | 46 +++------- + chrome/common/chrome_features.cc | 4 +- + 13 files changed, 319 insertions(+), 37 deletions(-) create mode 100644 chrome/android/java/res/layout/doh_editor.xml create mode 100644 chrome/android/java/res/xml/doh_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/preferences/DoHEditor.java @@ -25,7 +25,7 @@ Subject: Add user setting for DNS-over-HTTPS (DoH) custom URL diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1251,7 +1251,9 @@ chrome_java_sources = [ +@@ -1263,7 +1263,9 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/preferences/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java", "java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java", @@ -108,7 +108,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -88,6 +88,8 @@ +@@ -92,6 +92,8 @@ 400 200 @@ -318,8 +318,8 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java --- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java -@@ -163,6 +163,27 @@ public class FeatureUtilities { - nativeSetCustomTabVisible(visible); +@@ -223,6 +223,26 @@ public class FeatureUtilities { + FeatureUtilitiesJni.get().setCustomTabVisible(visible); } + /** @@ -327,40 +327,39 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUti + * @param url Whether custom URL is enabled or not. + */ + public static void setDoHEnabled(boolean enabled) { -+ nativeSetDoHEnabled(enabled); ++ FeatureUtilitiesJni.get().setDoHEnabled(enabled); + } + + public static boolean getDoHEnabled() { -+ return nativeGetDoHEnabled(); ++ return FeatureUtilitiesJni.get().getDoHEnabled(); + } + + public static void setDoHTemplates(String t) { -+ nativeSetDoHTemplates(t); ++ FeatureUtilitiesJni.get().setDoHTemplates(t); + } + + public static String getDoHTemplates() { -+ return nativeGetDoHTemplates(); ++ return FeatureUtilitiesJni.get().getDoHTemplates(); + } -+ + /** * Records whether the activity is in multi-window mode with native-side feature utilities. * @param isInMultiWindowMode Whether the activity is in Android N multi-window mode. -@@ -897,6 +918,10 @@ public class FeatureUtilities { - } - - private static native void nativeSetCustomTabVisible(boolean visible); -+ private static native void nativeSetDoHEnabled(boolean enabled); -+ private static native boolean nativeGetDoHEnabled(); -+ private static native void nativeSetDoHTemplates(String templates); -+ private static native String nativeGetDoHTemplates(); - private static native void nativeSetIsInMultiWindowMode(boolean isInMultiWindowMode); - private static native boolean nativeIsNetworkServiceWarmUpEnabled(); - } +@@ -852,6 +872,10 @@ public class FeatureUtilities { + interface Natives { + void setCustomTabVisible(boolean visible); + void setIsInMultiWindowMode(boolean isInMultiWindowMode); ++ void setDoHEnabled(boolean enabled); ++ boolean getDoHEnabled(); ++ void setDoHTemplates(String templates); ++ String getDoHTemplates(); + boolean isNetworkServiceWarmUpEnabled(); + void setAdBlockFiltersURL(String url); + String getAdBlockFiltersURL(); diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -656,6 +656,17 @@ CHAR-LIMIT guidelines: +@@ -644,6 +644,17 @@ CHAR-LIMIT guidelines: Chrome Passwords @@ -381,7 +380,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -6507,6 +6507,12 @@ the Bookmarks menu."> +@@ -6558,6 +6558,12 @@ the Bookmarks menu."> Home page @@ -407,7 +406,7 @@ diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/androi #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h" #include "chrome/browser/profiles/profile_manager.h" #include "components/ntp_snippets/content_suggestions_service.h" -@@ -73,3 +76,23 @@ static jboolean JNI_FeatureUtilities_IsNetworkServiceWarmUpEnabled( +@@ -76,3 +79,23 @@ static jboolean JNI_FeatureUtilities_IsNetworkServiceWarmUpEnabled( return content::IsOutOfProcessNetworkService() && base::FeatureList::IsEnabled(features::kWarmUpNetworkProcess); } @@ -434,7 +433,7 @@ diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/androi diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -134,9 +134,14 @@ void GetStubResolverConfig( +@@ -137,9 +137,14 @@ void GetStubResolverConfig( std::string doh_templates = local_state->GetString(prefs::kDnsOverHttpsTemplates); @@ -452,7 +451,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows for (const std::string& server_template : SplitString(doh_templates, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { -@@ -404,40 +409,11 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -425,40 +430,11 @@ SystemNetworkContextManager::SystemNetworkContextManager( // features before registering change callbacks for these preferences. local_state_->SetDefaultPrefValue(prefs::kBuiltInDnsClientEnabled, base::Value(ShouldEnableAsyncDns())); @@ -499,7 +498,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -271,12 +271,12 @@ const char kDisallowUnsafeHttpDownloadsParamName[] = "MimeTypeList"; +@@ -294,12 +294,12 @@ const char kDisallowUnsafeHttpDownloadsParamName[] = "MimeTypeList"; // Enable DNS over HTTPS (DoH). const base::Feature kDnsOverHttps{"DnsOverHttps", @@ -515,5 +514,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc // Supply one or more space-separated DoH server URI templates to use when this // feature is enabled. If no templates are specified, then a hardcoded mapping -- -2.11.0 +2.17.1 diff --git a/build/patches/Allow-building-without-feed-support.patch b/build/patches/Allow-building-without-feed-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..84f7fe1ba5c123767dc1e088e4f01f083145c0fa --- /dev/null +++ b/build/patches/Allow-building-without-feed-support.patch @@ -0,0 +1,83 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Thu, 19 Dec 2019 22:52:53 +0100 +Subject: Allow building without feed support + +--- + .../start_surface/StartSurfaceCoordinator.java | 5 ----- + .../start_surface/StartSurfaceMediator.java | 16 ---------------- + .../browser/ntp/cards/ExploreOfflineCard.java | 5 +---- + 3 files changed, 1 insertion(+), 25 deletions(-) + +diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java +--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java ++++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java +@@ -198,11 +198,6 @@ public class StartSurfaceCoordinator implements StartSurface { + mBottomBarCoordinator = new BottomBarCoordinator( + mActivity, mActivity.getCompositorViewHolder(), mPropertyModel); + } +- +- mExploreSurfaceCoordinator = new ExploreSurfaceCoordinator(mActivity, +- mSurfaceMode == SurfaceMode.SINGLE_PANE ? mTasksSurface.getBodyViewContainer() +- : mActivity.getCompositorViewHolder(), +- mPropertyModel, mSurfaceMode == SurfaceMode.SINGLE_PANE); + } + + private TabSwitcher.Controller initializeSecondaryTasksSurface() { +diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java ++++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +@@ -253,15 +253,6 @@ class StartSurfaceMediator + RecordUserAction.record("StartSurface.TasksOnly"); + } + +- // Make sure FeedSurfaceCoordinator is built before the explore surface is showing by +- // default. +- if (mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE) +- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) { +- mPropertyModel.set(FEED_SURFACE_COORDINATOR, +- mFeedSurfaceCreator.createFeedSurfaceCoordinator( +- mNightModeStateProvider.isInNightMode())); +- } +- + mPropertyModel.set(IS_SHOWING_OVERVIEW, true); + mFakeboxDelegate.addUrlFocusChangeListener(mUrlFocusChangeListener); + } +@@ -361,13 +352,6 @@ class StartSurfaceMediator + private void setExploreSurfaceVisibility(boolean isVisible) { + if (isVisible == mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE)) return; + +- if (isVisible && mPropertyModel.get(IS_SHOWING_OVERVIEW) +- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) { +- mPropertyModel.set(FEED_SURFACE_COORDINATOR, +- mFeedSurfaceCreator.createFeedSurfaceCoordinator( +- mNightModeStateProvider.isInNightMode())); +- } +- + mPropertyModel.set(IS_EXPLORE_SURFACE_VISIBLE, isVisible); + + if (mSurfaceMode == SurfaceMode.TWO_PANES) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java +@@ -13,7 +13,6 @@ import org.chromium.base.ApiCompatibilityUtils; + import org.chromium.chrome.R; + import org.chromium.chrome.browser.ChromeFeatureList; + import org.chromium.chrome.browser.download.DownloadUtils; +-import org.chromium.chrome.browser.feed.FeedConfiguration; + import org.chromium.net.NetworkChangeNotifier; + import org.chromium.ui.text.SpanApplier; + +@@ -73,9 +72,7 @@ public class ExploreOfflineCard { + + View imageView = cardView.findViewById(R.id.explore_offline_image); + imageView.setBackground(imageView.getContext().getResources().getDrawable( +- FeedConfiguration.getFeedUiEnabled() +- ? R.drawable.card_background_rounded_right_half_with_border +- : R.drawable.card_background_rounded_right_half_no_border)); ++ R.drawable.card_background_rounded_right_half_no_border)); + + cardView.setOnClickListener(v -> mOpenDownloadHomeCallback.run()); + return cardView; +-- +2.17.1 + diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index f1cb5ed99367b769ae1e897b29275e3e5f6de87d..0b9ec7fbb040d98ff9ec599c758c61894da75fca 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -10,7 +10,7 @@ Subject: Allow playing audio in background diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc -@@ -976,6 +976,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -989,6 +989,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp void WebMediaPlayerImpl::EnabledAudioTracksChanged( const blink::WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3278,7 +3284,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3298,7 +3304,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { // Audio only stream is allowed to play when in background. // TODO: We should check IsBackgroundOptimizationCandidate here. But we need // to move the logic of checking video frames out of that function. @@ -39,7 +39,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h --- a/media/blink/webmediaplayer_impl.h +++ b/media/blink/webmediaplayer_impl.h -@@ -142,6 +142,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl +@@ -143,6 +143,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl // True if the loaded media has a playable video/audio track. bool HasVideo() const override; bool HasAudio() const override; @@ -49,5 +49,5 @@ diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl void EnabledAudioTracksChanged( const blink::WebVector& enabledTrackIds) -- -2.11.0 +2.17.1 diff --git a/build/patches/Allow-website-sign-in-without-account-sign-in.patch b/build/patches/Allow-website-sign-in-without-account-sign-in.patch index a010e402d68150a0f16316685f90ccee0bdf5837..f21da40def48e9f99693851998e547edbdfdb2fb 100644 --- a/build/patches/Allow-website-sign-in-without-account-sign-in.patch +++ b/build/patches/Allow-website-sign-in-without-account-sign-in.patch @@ -20,5 +20,5 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ // static -- -2.11.0 +2.17.1 diff --git a/build/patches/Always-allow-partner-customisation.patch b/build/patches/Always-allow-partner-customisation.patch index 0780ac709239ea3c77504cd328a65bcaffc05d3c..956143cae6afae54926a265c899a0b768c95c143 100644 --- a/build/patches/Always-allow-partner-customisation.patch +++ b/build/patches/Always-allow-partner-customisation.patch @@ -3,13 +3,13 @@ Date: Thu, 14 Dec 2017 16:19:50 +0200 Subject: Always allow partner customisation --- - .../PartnerBrowserCustomizations.java | 16 ++++++++-------- + .../PartnerBrowserCustomizations.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java --- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java -@@ -243,14 +243,14 @@ public class PartnerBrowserCustomizations { +@@ -244,14 +244,14 @@ public class PartnerBrowserCustomizations { @Override protected Void doInBackground() { try { @@ -33,5 +33,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz if (isCancelled()) return null; refreshIncognitoModeDisabled(); -- -2.11.0 +2.17.1 diff --git a/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch b/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch index 0ac9ef7465e8d97d1e7d59d940fee78059478d6c..22a91d502718e7e4598d8402dcac70362d70319b 100644 --- a/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch +++ b/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch @@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -242,7 +242,7 @@ void OnAuthPrefsChanged(PrefService* local_state, +@@ -245,7 +245,7 @@ void OnAuthPrefsChanged(PrefService* local_state, // Android this includes checking the Android version in the field trial. bool ShouldEnableAsyncDns() { bool feature_can_be_enabled = true; @@ -23,7 +23,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc --- a/components/cronet/url_request_context_config.cc +++ b/components/cronet/url_request_context_config.cc -@@ -550,7 +550,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions( +@@ -573,7 +573,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions( effective_experimental_options->Remove(it.key(), nullptr); continue; } @@ -34,5 +34,5 @@ diff --git a/components/cronet/url_request_context_config.cc b/components/cronet const base::DictionaryValue* stale_dns_args = nullptr; if (!it.value().GetAsDictionary(&stale_dns_args)) { -- -2.11.0 +2.17.1 diff --git a/build/patches/Always-show-home-page-settings.patch b/build/patches/Always-show-home-page-settings.patch deleted file mode 100644 index 5b94c7b2d970ab6d50e586e5dcde1e5d83bd32a1..0000000000000000000000000000000000000000 --- a/build/patches/Always-show-home-page-settings.patch +++ /dev/null @@ -1,234 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 17 Mar 2019 20:51:11 +0100 -Subject: Always show home page settings - -Remove the "Force Enable Home Page Button" flag, which was bugged, and always -display home page settings. -This allows removing the home page button and restoring it from settings. ---- - .../browser/init/ProcessInitializationHandler.java | 12 -------- - .../partnercustomizations/HomepageManager.java | 17 ++--------- - .../preferences/ChromePreferenceManager.java | 7 ----- - .../browser/preferences/MainPreferences.java | 12 +++----- - .../chrome/browser/util/FeatureUtilities.java | 34 ---------------------- - chrome/browser/about_flags.cc | 3 -- - chrome/browser/android/chrome_feature_list.cc | 4 --- - chrome/browser/android/chrome_feature_list.h | 1 - - 8 files changed, 7 insertions(+), 83 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -356,18 +356,6 @@ public class ProcessInitializationHandler { - deferredStartupHandler.addDeferredTask(new Runnable() { - @Override - public void run() { -- if (HomepageManager.shouldShowHomepageSetting()) { -- RecordHistogram.recordBooleanHistogram("Settings.ShowHomeButtonPreferenceState", -- HomepageManager.isHomepageEnabled()); -- RecordHistogram.recordBooleanHistogram("Settings.HomePageIsCustomized", -- !HomepageManager.getInstance().getPrefHomepageUseDefaultUri()); -- } -- } -- }); -- -- deferredStartupHandler.addDeferredTask(new Runnable() { -- @Override -- public void run() { - // Starts syncing with GSA. - AppHooks.get().createGsaHelper().startSync(); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -@@ -83,10 +83,7 @@ public class HomepageManager { - * @return Whether or not homepage is enabled. - */ - public static boolean isHomepageEnabled() { -- if (FeatureUtilities.isHomePageButtonForceEnabled()) { -- return getInstance().getPrefHomepageEnabled(); -- } -- return false; -+ return getInstance().getPrefHomepageEnabled(); - } - - /** -@@ -98,13 +95,6 @@ public class HomepageManager { - } - - /** -- * @return Whether or not homepage setting should be shown. -- */ -- public static boolean shouldShowHomepageSetting() { -- return FeatureUtilities.isHomePageButtonForceEnabled(); -- } -- -- /** - * @return Homepage URI string, if it's enabled. Null otherwise or uninitialized. - */ - public static String getHomepageUri() { -@@ -118,8 +108,7 @@ public class HomepageManager { - } - - /** -- * @return The default homepage URI if the homepage is partner provided or the new tab page -- * if the homepage button is force enabled via flag. -+ * @return The default homepage URI. - */ - public static String getDefaultHomepageUri() { - return UrlConstants.NTP_NON_NATIVE_URL; -@@ -132,7 +121,7 @@ public class HomepageManager { - * @see #isHomepageEnabled - */ - public boolean getPrefHomepageEnabled() { -- return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, true); -+ return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, false); - } - - /** -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java -@@ -154,13 +154,6 @@ public class ChromePreferenceManager { - private static final String CHROME_MODERN_DESIGN_ENABLED_KEY = "chrome_modern_design_enabled"; - - /** -- * Whether or not the home page button is force enabled. -- * Default value is false. -- */ -- public static final String HOME_PAGE_BUTTON_FORCE_ENABLED_KEY = -- "home_page_button_force_enabled"; -- -- /** - * Whether or not the homepage tile will be shown. - * Default value is false. - */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java -@@ -206,15 +206,11 @@ public class MainPreferences extends PreferenceFragmentCompat - updateSyncAndServicesPreference(); - updateSearchEnginePreference(); - -- if (HomepageManager.shouldShowHomepageSetting()) { -- Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE); -- if (FeatureUtilities.isNewTabPageButtonEnabled()) { -- homepagePref.setTitle(R.string.options_startup_page_title); -- } -- setOnOffSummary(homepagePref, HomepageManager.getInstance().getPrefHomepageEnabled()); -- } else { -- removePreferenceIfPresent(PREF_HOMEPAGE); -+ Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE); -+ if (FeatureUtilities.isNewTabPageButtonEnabled()) { -+ homepagePref.setTitle(R.string.options_startup_page_title); - } -+ setOnOffSummary(homepagePref, HomepageManager.getInstance().getPrefHomepageEnabled()); - - if (NightModeUtils.isNightModeSupported() && FeatureUtilities.isNightModeAvailable()) { - addPreferenceIfAbsent(PREF_UI_THEME); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java -@@ -73,7 +73,6 @@ public class FeatureUtilities { - private static Boolean sHasGoogleAccountAuthenticator; - private static Boolean sHasRecognitionIntentHandler; - -- private static Boolean sIsHomePageButtonForceEnabled; - private static Boolean sIsHomepageTileEnabled; - private static Boolean sIsNewTabPageButtonEnabled; - private static Boolean sIsBottomToolbarEnabled; -@@ -178,7 +177,6 @@ public class FeatureUtilities { - public static void cacheNativeFlags() { - cacheCommandLineOnNonRootedEnabled(); - FirstRunUtils.cacheFirstRunPrefs(); -- cacheHomePageButtonForceEnabled(); - cacheHomepageTileEnabled(); - cacheNewTabPageButtonEnabled(); - cacheBottomToolbarEnabled(); -@@ -228,38 +226,6 @@ public class FeatureUtilities { - return Build.VERSION.SDK_INT > Build.VERSION_CODES.M; - } - -- /** -- * Cache whether or not the home page button is force enabled so on next startup, the value can -- * be made available immediately. -- */ -- public static void cacheHomePageButtonForceEnabled() { -- if (PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled()) return; -- ChromePreferenceManager.getInstance().writeBoolean( -- ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY, -- ChromeFeatureList.isEnabled(ChromeFeatureList.HOME_PAGE_BUTTON_FORCE_ENABLED)); -- } -- -- /** -- * @return Whether or not the home page button is force enabled. -- */ -- public static boolean isHomePageButtonForceEnabled() { -- if (sIsHomePageButtonForceEnabled == null) { -- ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance(); -- -- sIsHomePageButtonForceEnabled = prefManager.readBoolean( -- ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY, false); -- } -- return sIsHomePageButtonForceEnabled; -- } -- -- /** -- * Resets whether the home page button is enabled for tests. After this is called, the next -- * call to #isHomePageButtonForceEnabled() will retrieve the value from shared preferences. -- */ -- public static void resetHomePageButtonForceEnabledForTests() { -- sIsHomePageButtonForceEnabled = null; -- } -- - private static void cacheServiceManagerForDownloadResumption() { - boolean resumptionDownloadInReducedMode = - ChromeFeatureList.isEnabled(ChromeFeatureList.SERVICE_MANAGER_FOR_DOWNLOAD); -diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc ---- a/chrome/browser/about_flags.cc -+++ b/chrome/browser/about_flags.cc -@@ -1932,9 +1932,6 @@ const FeatureEntry kFeatureEntries[] = { - {"enable-chrome-duet-labels", flag_descriptions::kChromeDuetLabelsName, - flag_descriptions::kChromeDuetLabelsDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kChromeDuetLabeled)}, -- {"force-enable-home-page-button", flag_descriptions::kHomePageButtonName, -- flag_descriptions::kHomePageButtonDescription, kOsAndroid, -- FEATURE_VALUE_TYPE(chrome::android::kHomePageButtonForceEnabled)}, - {"enable-ntp-button", flag_descriptions::kNtpButtonName, - flag_descriptions::kNtpButtonDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kNTPButton)}, -diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc ---- a/chrome/browser/android/chrome_feature_list.cc -+++ b/chrome/browser/android/chrome_feature_list.cc -@@ -143,7 +143,6 @@ const base::Feature* kFeaturesExposedToJava[] = { - &kEphemeralTab, - &kExploreSites, - &kHandleMediaIntents, -- &kHomePageButtonForceEnabled, - &kHomepageTile, - &kHorizontalTabSwitcherAndroid, - &kIdentityDisc, -@@ -439,9 +438,6 @@ const base::Feature kForegroundNotificationManager{ - const base::Feature kHandleMediaIntents{"HandleMediaIntents", - base::FEATURE_ENABLED_BY_DEFAULT}; - --const base::Feature kHomePageButtonForceEnabled{ -- "HomePageButtonForceEnabled", base::FEATURE_DISABLED_BY_DEFAULT}; -- - const base::Feature kHomepageTile{"HomepageTile", - base::FEATURE_ENABLED_BY_DEFAULT}; - -diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h ---- a/chrome/browser/android/chrome_feature_list.h -+++ b/chrome/browser/android/chrome_feature_list.h -@@ -77,7 +77,6 @@ extern const base::Feature kEphemeralTab; - extern const base::Feature kExploreSites; - extern const base::Feature kForegroundNotificationManager; - extern const base::Feature kHandleMediaIntents; --extern const base::Feature kHomePageButtonForceEnabled; - extern const base::Feature kHomepageTile; - extern const base::Feature kHorizontalTabSwitcherAndroid; - extern const base::Feature kIdentityDisc; --- -2.11.0 - diff --git a/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch new file mode 100644 index 0000000000000000000000000000000000000000..3e324c8fa711a840bd5b5f68f5f0dc2f0a9bb3ef --- /dev/null +++ b/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch @@ -0,0 +1,131 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 28 Dec 2019 10:23:04 +0100 +Subject: Always show site settings for cookies, javascript and ads + +Avoid displaying info about intrusive ads +--- + .../website/SingleWebsitePreferences.java | 46 +++++++++---------- + .../browser/preferences/website/Website.java | 20 ++++++++ + 2 files changed, 42 insertions(+), 24 deletions(-) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +@@ -46,6 +46,7 @@ import java.util.Set; + */ + public class SingleWebsitePreferences extends PreferenceFragmentCompat + implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener { ++ public static final String TAG = "SingleWebsitePreferences"; + // SingleWebsitePreferences expects either EXTRA_SITE (a Website) or + // EXTRA_SITE_ADDRESS (a WebsiteAddress) to be present (but not both). If + // EXTRA_SITE is present, the fragment will display the permissions in that +@@ -345,7 +346,24 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + } else if (i == ContentSettingException.Type.SOUND) { + setUpSoundPreference(preference); + } else { +- setUpListPreference(preference, mSite.getContentSettingPermission(i)); ++ // some Bromite-specific overrides for the defaults ++ @ContentSettingValues ++ @Nullable ++ Integer permission = mSite.getContentSettingPermission(i); ++ // initialize cookie and javascript with the category global defaults ++ if (permission == null) { ++ if (i == ContentSettingException.Type.COOKIE) ++ permission = PrefServiceBridge.getInstance().isCategoryEnabled( ++ ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES) ++ ? ContentSettingValues.ALLOW ++ : ContentSettingValues.BLOCK; ++ else if (i == ContentSettingException.Type.JAVASCRIPT) ++ permission = PrefServiceBridge.getInstance().isCategoryEnabled( ++ ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT) ++ ? ContentSettingValues.ALLOW ++ : ContentSettingValues.BLOCK; ++ } ++ setUpListPreference(preference, permission); + } + return; + } +@@ -626,17 +644,8 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + } + + private void setUpAdsInformationalBanner() { +- // Add the informational banner which shows at the top of the UI if ad blocking is +- // activated on this site. +- boolean adBlockingActivated = SiteSettingsCategory.adsCategoryEnabled() +- && WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin()) +- && findPreference(PERMISSION_PREFERENCE_KEYS[ContentSettingException.Type.ADS]) +- != null; +- +- if (!adBlockingActivated) { +- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO); +- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER); +- } ++ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO); ++ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER); + } + + private SiteSettingsCategory getWarningCategory() { +@@ -711,6 +720,7 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + // TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are + // effectively treating non-ALLOW values as BLOCK. + int index = (value == ContentSettingValues.ALLOW ? 0 : 1); ++ + listPreference.setValueIndex(index); + listPreference.setOnPreferenceChangeListener(this); + listPreference.setSummary("%s"); +@@ -782,22 +792,10 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + setUpListPreference(preference, null); + return; + } +- // If the ad blocker is activated, then this site will have ads blocked unless there is an +- // explicit permission disallowing the blocking. +- boolean activated = +- WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin()); + @ContentSettingValues + @Nullable + Integer permission = mSite.getContentSettingPermission(ContentSettingException.Type.ADS); + +- // If |permission| is null, there is no explicit (non-default) permission set for this site. +- // If the site is not considered a candidate for blocking, do the standard thing and remove +- // the preference. +- if (permission == null && !activated) { +- setUpListPreference(preference, null); +- return; +- } +- + // However, if the blocking is activated, we still want to show the permission, even if it + // is in the default state. + if (permission == null) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java +@@ -166,6 +166,26 @@ public class Website implements Serializable { + new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, + getAddress().getOrigin(), ContentSettingValues.BLOCK, ""); + } ++ } else if (type == ContentSettingException.Type.COOKIE) { ++ // It is possible to set the permission without having an existing exception, ++ // because we can show the ALLOW state even when this permission is set to the ++ // default. In that case, just set an exception now to ALLOW to enable changing the ++ // permission. ++ if (mContentSettingException[type] == null) { ++ mContentSettingException[type] = ++ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES, ++ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); ++ } ++ } else if (type == ContentSettingException.Type.JAVASCRIPT) { ++ // It is possible to set the permission without having an existing exception, ++ // because we can show the ALLOW state even when this permission is set to the ++ // default. In that case, just set an exception now to ALLOW to enable changing the ++ // permission. ++ if (mContentSettingException[type] == null) { ++ mContentSettingException[type] = ++ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, ++ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); ++ } + } else if (type == ContentSettingException.Type.SOUND) { + // It is possible to set the permission without having an existing exception, + // because we always show the sound permission in Site Settings. +-- +2.17.1 + diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index b4a4ac7341edc290b92bec91ba65bad37d6bcc0d..df1968b292b690a90038f8796dcab4db4063a5d7 100644 --- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -4,33 +4,13 @@ Subject: Always use new tab page for default home page Ignore any partner-provided home page. --- - .../chrome/browser/partnercustomizations/HomepageManager.java | 10 +++------- - 1 file changed, 3 insertions(+), 7 deletions(-) + .../chrome/browser/partnercustomizations/HomepageManager.java | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -@@ -83,8 +83,7 @@ public class HomepageManager { - * @return Whether or not homepage is enabled. - */ - public static boolean isHomepageEnabled() { -- if (PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled() -- || FeatureUtilities.isHomePageButtonForceEnabled()) { -+ if (FeatureUtilities.isHomePageButtonForceEnabled()) { - return getInstance().getPrefHomepageEnabled(); - } - return false; -@@ -102,8 +101,7 @@ public class HomepageManager { - * @return Whether or not homepage setting should be shown. - */ - public static boolean shouldShowHomepageSetting() { -- return PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled() -- || FeatureUtilities.isHomePageButtonForceEnabled(); -+ return FeatureUtilities.isHomePageButtonForceEnabled(); - } - - /** -@@ -124,9 +122,7 @@ public class HomepageManager { +@@ -111,9 +111,7 @@ public class HomepageManager { * if the homepage button is force enabled via flag. */ public static String getDefaultHomepageUri() { @@ -42,5 +22,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz /** -- -2.11.0 +2.17.1 diff --git a/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch b/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch index 6a7fb9db879674d87006bec910e3ce493ad13e47..aced69fbfb58deaddf9f7ce313e230277c40f31f 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch @@ -2,12 +2,12 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 25 Mar 2018 21:49:37 +0200 Subject: AudioBuffer, AnalyserNode: fingerprinting mitigations via IDL -Return fixed base latency +Truncate base latency precision to two digits --- - third_party/blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++---- - third_party/blink/renderer/modules/webaudio/audio_buffer.idl | 4 ++-- - third_party/blink/renderer/modules/webaudio/audio_context.cc | 1 + - 3 files changed, 7 insertions(+), 6 deletions(-) + .../blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++---- + .../blink/renderer/modules/webaudio/audio_buffer.idl | 4 ++-- + .../blink/renderer/modules/webaudio/audio_context.cc | 4 +++- + 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl --- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl @@ -43,14 +43,17 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -358,6 +358,7 @@ void AudioContext::StopRendering() { - double AudioContext::baseLatency() const { +@@ -373,7 +373,9 @@ double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); -+ return 0.04; - // TODO(hongchan): Due to the incompatible constructor between - // AudioDestinationNode and RealtimeAudioDestinationNode, casting directly +- return base_latency_; ++ // remove precision past two decimal digits ++ int l = base_latency_ * 100; ++ return double(l)/100; + } + + MediaElementAudioSourceNode* AudioContext::createMediaElementSource( -- -2.11.0 +2.17.1 diff --git a/build/patches/Automated-domain-substitution.patch b/build/patches/Automated-domain-substitution.patch new file mode 100644 index 0000000000000000000000000000000000000000..5d24b454767538fdabb8822b8e55f59c25896577 --- /dev/null +++ b/build/patches/Automated-domain-substitution.patch @@ -0,0 +1,260391 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 4 Jan 2020 11:35:27 +0100 +Subject: Automated domain substitution + +--- + .gn | 2 +- + BUILD.gn | 2 +- + PRESUBMIT.py | 54 +- + android_webview/browser/aw_browser_context.cc | 2 +- + .../browser/aw_content_browser_client.h | 2 +- + .../browser/aw_contents_io_thread_client.cc | 2 +- + android_webview/browser/aw_settings.cc | 2 +- + .../network_service/aw_web_resource_request.h | 2 +- + .../aw_safe_browsing_whitelist_manager.cc | 4 +- + .../aw_safe_browsing_whitelist_manager.h | 2 +- + android_webview/common/url_constants.cc | 2 +- + android_webview/java/res/values/strings.xml | 2 +- + .../android_webview/AwFirebaseConfig.java | 2 +- + .../java/strings/android_webview_strings.grd | 2 +- + .../renderer/aw_content_renderer_client.cc | 2 +- + android_webview/tools/record_netlog.py | 4 +- + .../tools/remove_preinstalled_webview.py | 2 +- + .../webview_shell/WebViewTracingActivity.java | 2 +- + .../page_cycler/PageCyclerTest.java | 6 +- + ash/app_list/PRESUBMIT.py | 2 +- + .../views/assistant/privacy_info_view.cc | 2 +- + ash/ash_strings.grd | 8 +- + .../assistant_interaction_controller.cc | 4 +- + ash/assistant/assistant_setup_controller.cc | 2 +- + ash/assistant/util/deep_link_util.cc | 14 +- + ash/laser/laser_pointer_view.cc | 2 +- + ash/login/ui/login_user_menu_view.cc | 2 +- + ash/public/cpp/app_list/app_list_features.cc | 2 +- + .../cpp/app_list/internal_app_id_constants.h | 2 +- + ash/resources/PRESUBMIT.py | 4 +- + .../client/shell_browser_main_parts.cc | 2 +- + .../client/shell_new_window_delegate.cc | 4 +- + ash/wm/screen_pinning_controller.h | 2 +- + .../tablet_mode/tablet_mode_window_manager.cc | 2 +- + base/BUILD.gn | 4 +- + base/PRESUBMIT.py | 4 +- + base/allocator/BUILD.gn | 2 +- + .../address_space_randomization.h | 2 +- + base/android/android_image_reader_abi.h | 4 +- + .../org/chromium/base/ApplicationStatus.java | 2 +- + .../src/org/chromium/base/LocaleUtils.java | 4 +- + .../java/src/org/chromium/base/PathUtils.java | 2 +- + .../org/chromium/base/StrictModeContext.java | 2 +- + .../base/library_loader/LibraryLoader.java | 2 +- + base/android/jni_generator/PRESUBMIT.py | 2 +- + base/android/jni_generator/jni_generator.py | 2 +- + .../src/org/chromium/base/PiiEliderTest.java | 2 +- + .../library_loader/library_loader_hooks.h | 2 +- + base/atomicops.h | 2 +- + base/base_paths_win.cc | 4 +- + base/command_line.cc | 2 +- + base/compiler_specific.h | 6 +- + base/debug/debugger_posix.cc | 6 +- + base/debug/proc_maps_linux.cc | 2 +- + base/debug/stack_trace_fuchsia.cc | 2 +- + base/debug/stack_trace_posix.cc | 4 +- + base/debug/stack_trace_win.cc | 2 +- + base/file_version_info.h | 2 +- + base/files/file_enumerator_posix.cc | 2 +- + base/files/file_util_posix.cc | 4 +- + base/files/file_util_win.cc | 6 +- + base/files/file_win.cc | 2 +- + base/hash/hash.cc | 2 +- + base/i18n/file_util_icu.cc | 2 +- + base/ios/device_util.mm | 2 +- + base/lazy_instance_helpers.h | 4 +- + base/logging.cc | 4 +- + base/mac/close_nocancel.cc | 2 +- + base/memory/aligned_memory.cc | 2 +- + base/memory/discardable_shared_memory.cc | 2 +- + base/memory/scoped_refptr.h | 2 +- + base/message_loop/message_pump.h | 2 +- + base/message_loop/message_pump_win.cc | 4 +- + base/metrics/field_trial.h | 2 +- + base/metrics/histogram_functions.h | 2 +- + base/metrics/histogram_macros.h | 2 +- + base/metrics/user_metrics.h | 2 +- + base/native_library_win.cc | 2 +- + base/optional.h | 4 +- + base/process/launch.h | 4 +- + base/process/launch_posix.cc | 2 +- + base/process/memory.h | 2 +- + base/process/memory_win.cc | 2 +- + base/process/process.h | 2 +- + base/process/process_metrics.h | 2 +- + base/profiler/metadata_recorder.h | 2 +- + base/rand_util_win.cc | 2 +- + base/synchronization/lock.h | 2 +- + base/system/sys_info.h | 2 +- + .../sequence_manager/sequence_manager_impl.cc | 2 +- + .../thread_pool/thread_group_native_win.h | 12 +- + base/third_party/cityhash/city.h | 2 +- + .../dynamic_annotations/dynamic_annotations.h | 4 +- + base/third_party/libevent/evdns.c | 2 +- + base/third_party/libevent/evdns.h | 2 +- + base/third_party/libevent/evport.c | 2 +- + base/third_party/libevent/min_heap.h | 2 +- + base/third_party/nspr/prtime.cc | 8 +- + base/third_party/nspr/prtime.h | 4 +- + base/third_party/symbolize/symbolize.cc | 4 +- + base/threading/platform_thread_win.cc | 4 +- + base/threading/platform_thread_win.h | 2 +- + base/time/time.h | 2 +- + base/time/time_win.cc | 8 +- + .../heap_profiler_allocation_context.h | 2 +- + base/trace_event/malloc_dump_provider.cc | 4 +- + base/trace_event/process_memory_dump.h | 2 +- + base/trace_event/trace_category.h | 2 +- + base/values.h | 2 +- + base/win/pe_image.h | 2 +- + base/win/registry.cc | 6 +- + base/win/registry.h | 4 +- + base/win/scoped_com_initializer.cc | 2 +- + base/win/shortcut.h | 4 +- + base/win/win_util.cc | 10 +- + base/win/win_util.h | 2 +- + base/win/wincrypt_shim.h | 2 +- + base/win/windows_version.h | 2 +- + base/win/wmi.cc | 2 +- + base/win/wmi.h | 8 +- + build/android/PRESUBMIT.py | 2 +- + build/android/apk_operations.py | 2 +- + build/android/dump_apk_resource_strings.py | 2 +- + build/android/gradle/generate_gradle.py | 2 +- + .../android/gyp/assert_static_initializers.py | 2 +- + build/android/gyp/compile_resources.py | 2 +- + build/android/gyp/javac.py | 4 +- + build/android/gyp/lint.py | 2 +- + build/android/gyp/main_dex_list.py | 2 +- + build/android/gyp/merge_manifest.py | 4 +- + build/android/gyp/proguard.py | 2 +- + .../android/incremental_install/installer.py | 2 +- + .../ClassLoaderPatcher.java | 6 +- + build/android/lint/suppress.py | 2 +- + build/android/lint/suppressions.xml | 4 +- + build/android/pylib/constants/__init__.py | 2 +- + .../android/commands/unzip/Unzip.java | 2 +- + build/android/pylib/device_settings.py | 8 +- + build/android/pylib/dex/dex_parser.py | 10 +- + .../instrumentation/instrumentation_parser.py | 4 +- + .../json_results_generator.py | 2 +- + .../pylib/utils/google_storage_helper.py | 4 +- + build/android/pylib/utils/maven_downloader.py | 2 +- + build/android/pylib/utils/simpleperf.py | 4 +- + build/android/resource_sizes.py | 2 +- + build/build_config.h | 4 +- + build/chromeos/PRESUBMIT.py | 2 +- + build/config/BUILDCONFIG.gn | 2 +- + build/config/android/rules.gni | 2 +- + build/config/chrome_build.gni | 2 +- + build/config/chromeos/rules.gni | 6 +- + build/config/compiler/BUILD.gn | 6 +- + build/config/compiler/compiler.gni | 2 +- + build/config/fuchsia/BUILD.gn | 2 +- + build/config/fuchsia/elfinfo.py | 2 +- + build/config/nacl/BUILD.gn | 2 +- + build/config/nacl/rules.gni | 2 +- + build/config/sanitizers/sanitizers.gni | 2 +- + build/config/win/BUILD.gn | 6 +- + build/linux/install-chromeos-fonts.py | 2 +- + .../linux/sysroot_scripts/install-sysroot.py | 2 +- + .../unbundle/remove_bundled_libraries.py | 2 +- + build/mac/tweak_info_plist.py | 6 +- + build/mac_toolchain.py | 2 +- + build/nocompile.gni | 2 +- + build/package_mac_toolchain.py | 2 +- + build/run_swarming_xcode_install.py | 4 +- + build/sanitizers/lsan_suppressions.cc | 4 +- + build/sanitizers/sanitizer_options.cc | 2 +- + build/sanitizers/tsan_suppressions.cc | 4 +- + build/toolchain/cros_toolchain.gni | 2 +- + build/toolchain/nacl/BUILD.gn | 2 +- + build/toolchain/win/midl.py | 2 +- + build/toolchain/win/rc/rc.py | 2 +- + build/vs_toolchain.py | 2 +- + build/whitespace_file.txt | 2 +- + buildtools/README.txt | 2 +- + buildtools/clang_format/README.txt | 6 +- + buildtools/ensure_gn_version.py | 2 +- + cc/PRESUBMIT.py | 2 +- + cc/animation/animation_delegate.h | 2 +- + cc/input/browser_controls_offset_manager.cc | 2 +- + cc/input/scroll_state.h | 2 +- + cc/tiles/gpu_image_decode_cache.h | 2 +- + cc/trees/layer_tree_host_impl.cc | 2 +- + chrome/BUILD.gn | 2 +- + chrome/PRESUBMIT.py | 2 +- + .../res/values/strings.xml | 4 +- + ...rBrowserCustomizationsProviderExample.java | 4 +- + .../AutofillAssistantClient.java | 2 +- + .../carousel/AssistantChip.java | 6 +- + ...roid_chrome_autofill_assistant_strings.grd | 2 +- + .../media/router/MediaStatusBridge.java | 4 +- + .../chrome/browser/vr/VrShellDelegate.java | 2 +- + .../browser/feed/FeedConfiguration.java | 4 +- + .../browser/omnibox/geo/CellInfoDelegate.java | 2 +- + ...ntent_suggestions_card_modern_reversed.xml | 2 +- + .../java/res/layout/preference_compat.xml | 2 +- + .../java/res/values-sw600dp/values.xml | 2 +- + chrome/android/java/res/values/dimens.xml | 4 +- + chrome/android/java/res/values/strings.xml | 2 +- + chrome/android/java/res/values/values.xml | 2 +- + chrome/android/java/src/PRESUBMIT.py | 2 +- + .../chrome/browser/ChromeApplication.java | 2 +- + .../chrome/browser/ChromeStringConstants.java | 6 +- + .../chrome/browser/ChromeTabbedActivity.java | 4 +- + .../chrome/browser/IntentHandler.java | 6 +- + .../browser/LaunchIntentDispatcher.java | 2 +- + .../chrome/browser/ShortcutHelper.java | 2 +- + .../ClientAppBroadcastReceiver.java | 8 +- + .../browser/browserservices/Relationship.java | 2 +- + .../CompositorSurfaceManagerImpl.java | 2 +- + .../compositor/CompositorViewHolder.java | 2 +- + .../chrome/browser/crash/FirebaseConfig.java | 2 +- + .../customtabs/CustomButtonParams.java | 2 +- + .../directactions/ChromeDirectActionIds.java | 2 +- + .../DirectActionCoordinator.java | 2 +- + .../browser/feedback/ConnectivityChecker.java | 4 +- + .../chrome/browser/help/HelpAndFeedback.java | 2 +- + .../infobar/InfoBarContainerLayout.java | 2 +- + .../chrome/browser/infobar/InfoBarLayout.java | 2 +- + .../browser/modaldialog/ModalDialogView.java | 2 +- + .../RemoteViewsWithNightModeInflater.java | 2 +- + .../notifications/NotificationConstants.java | 2 +- + .../NotificationManagerProxy.java | 4 +- + .../NotificationPlatformBridge.java | 2 +- + .../indicator/ConnectivityDetector.java | 4 +- + .../chrome/browser/omaha/OmahaBase.java | 2 +- + .../browser/omaha/RequestGenerator.java | 4 +- + .../chrome/browser/omaha/ResponseParser.java | 2 +- + .../browser/omnibox/OmniboxUrlEmphasizer.java | 4 +- + .../omnibox/geo/GeolocationHeader.java | 2 +- + .../geo/partner_location_descriptor.proto | 2 +- + .../answer/AnswerSuggestionProcessor.java | 2 +- + .../suggestions/answer/AnswerText.java | 2 +- + .../answer/AnswerTextNewLayout.java | 6 +- + .../basic/SuggestionViewProperties.java | 2 +- + .../entity/EntitySuggestionProcessor.java | 4 +- + .../page_info/ConnectionInfoPopup.java | 2 +- + .../browser/payments/AndroidPaymentApp.java | 8 +- + .../payments/AndroidPaymentAppFinder.java | 2 +- + .../chrome/browser/payments/PaymentApp.java | 4 +- + .../payments/PaymentManifestVerifier.java | 2 +- + .../browser/payments/PaymentRequestImpl.java | 10 +- + .../browser/payments/ui/DimmingDialog.java | 2 +- + .../browser/payments/ui/PaymentRequestUI.java | 2 +- + .../preferences/SearchEngineAdapter.java | 2 +- + .../preferences/password/ExportFlow.java | 2 +- + .../ClearBrowsingDataTabsFragment.java | 2 +- + .../preferences/sync/SyncPreferenceUtils.java | 4 +- + .../snackbar/TemplatePreservingTextView.java | 4 +- + .../browser/ssl/CaptivePortalHelper.java | 2 +- + .../suggestions/SuggestionsConfig.java | 2 +- + .../SuggestionsNavigationDelegate.java | 2 +- + .../browser/sync/GoogleServiceAuthError.java | 2 +- + .../chromium/chrome/browser/tab/TabState.java | 2 +- + .../browser/toolbar/top/CustomTabToolbar.java | 4 +- + .../PackageReplacedBroadcastReceiver.java | 2 +- + .../chrome/browser/vr/ArCoreInstallUtils.java | 2 +- + .../chrome/browser/vr/ArCoreShim.java | 6 +- + .../java/strings/android_chrome_strings.grd | 50 +- + .../chrome/browser/ShortcutHelperTest.java | 42 +- + .../filter/SearchOfflineItemFilterTest.java | 12 +- + .../download/home/list/ShareUtilsTest.java | 92 +- + .../ExploreSitesCategoryUnitTest.java | 10 +- + .../firstrun/FirstRunFlowSequencerTest.java | 2 +- + .../firstrun/ToSAckedReceiverTest.java | 2 +- + .../native_page/NativePageFactoryTest.java | 2 +- + .../CctOfflinePageModelObserverTest.java | 2 +- + .../browser/omaha/ResponseParserTest.java | 2 +- + .../omnibox/AutocompleteEditTextTest.java | 20 +- + .../browser/omnibox/UrlBarUnitTest.java | 6 +- + .../geo/GeolocationHeaderUnitTest.java | 2 +- + .../SearchEngineChoiceNotificationTest.java | 2 +- + .../browser/signin/SigninManagerTest.java | 6 +- + .../browser/signin/SigninPromoUtilTest.java | 14 +- + .../suggestions/tile/TileGroupUnitTest.java | 2 +- + .../browser/tasks/JourneyManagerTest.java | 6 +- + .../browser/util/UrlUtilitiesUnitTest.java | 10 +- + .../browser/webapps/WebApkInfoTest.java | 12 +- + .../webapps/WebappDataStorageTest.java | 4 +- + .../browser/webapps/WebappInfoTest.java | 2 +- + .../webapps/WebappLauncherActivityTest.java | 2 +- + .../browser/webapps/WebappRegistryTest.java | 44 +- + chrome/android/webapk/PRESUBMIT.py | 2 +- + .../lib/client/WebApkValidatorTest.java | 2 +- + .../webapk/lib/client/WebApkValidator.java | 2 +- + .../lib/common/WebApkMetaDataUtils.java | 2 +- + .../HostBrowserLauncherParamsTest.java | 40 +- + .../webapk/shell_apk/MainActivityTest.java | 40 +- + .../webapk/shell_apk/WebApkUtilsTest.java | 18 +- + .../manifest/maps_go_manifest_config.json | 10 +- + .../webapk/shell_apk/res/values/dimens.xml | 2 +- + chrome/app/PRESUBMIT.py | 8 +- + chrome/app/chrome_command_ids.h | 2 +- + chrome/app/chromium_strings.grd | 8 +- + chrome/app/generated_resources.grd | 220 +- + chrome/app/google_chrome_strings.grd | 8 +- + chrome/app/resources/locale_settings.grd | 12 +- + chrome/app/theme/PRESUBMIT.py | 4 +- + chrome/browser/about_flags.cc | 12 +- + .../autofill_assistant/client_android.cc | 2 +- + .../contextual_search_context.h | 2 +- + .../digital_asset_links_handler.cc | 2 +- + .../digital_asset_links_handler.h | 4 +- + .../browser/android/explore_sites/url_util.cc | 2 +- + .../explore_sites/url_util_experimental.cc | 2 +- + .../search_permissions_service.h | 2 +- + chrome/browser/android/tab_android.cc | 2 +- + chrome/browser/android/tab_state.cc | 4 +- + .../android/usage_stats/website_event.proto | 2 +- + chrome/browser/android/vr/PRESUBMIT.py | 2 +- + .../android/webapk/webapk_installer.cc | 2 +- + .../apps/app_service/app_icon_factory.cc | 2 +- + .../apps/platform_apps/install_chrome_app.cc | 2 +- + .../autofill/autofill_gstatic_reader.cc | 4 +- + .../browser_switcher_service.cc | 2 +- + .../browser_switcher/ieem_sitelist_parser.cc | 4 +- + .../browsing_data/cookies_tree_model.cc | 18 +- + .../captive_portal/captive_portal_service.h | 2 +- + .../captive_portal_tab_helper.h | 2 +- + .../browser/chrome_browser_application_mac.mm | 2 +- + .../browser/chrome_content_browser_client.cc | 2 +- + .../chromeos/android_sms/android_sms_urls.cc | 18 +- + .../chromeos/android_sms/android_sms_urls.h | 4 +- + chrome/browser/chromeos/app_mode/fake_cws.cc | 2 +- + .../auth/arc_background_auth_code_fetcher.cc | 2 +- + .../arc/auth/arc_robot_auth_code_fetcher.cc | 2 +- + .../arc/bluetooth/arc_bluetooth_bridge.cc | 6 +- + .../arc/bluetooth/arc_bluetooth_bridge.h | 2 +- + .../chromeos/arc/policy/arc_policy_util.h | 2 +- + .../tracing/arc_app_performance_tracing.cc | 2 +- + .../chromeos/assistant/assistant_util.cc | 6 +- + .../backdrop_wallpaper_handlers.cc | 6 +- + .../browser/chromeos/crostini/crostini_util.h | 2 +- + .../customization/customization_document.cc | 2 +- + .../dbus/proxy_resolution_service_provider.h | 2 +- + .../drive/drive_integration_service.cc | 2 +- + .../chromeos/extensions/default_web_app_ids.h | 8 +- + ...ocal_account_management_policy_provider.cc | 8 +- + .../file_manager/private_api_drive.cc | 2 +- + .../file_manager/private_api_misc.cc | 2 +- + .../file_manager/file_browser_handlers.h | 2 +- + .../file_manager/file_manager_string_util.cc | 10 +- + .../chromeos/file_manager/file_tasks.h | 4 +- + .../fileapi/provider_async_file_util.h | 2 +- + .../first_run/drive_first_run_controller.cc | 4 +- + .../chromeos/first_run/goodies_displayer.cc | 2 +- + chrome/browser/chromeos/hats/hats_dialog.cc | 2 +- + .../hats/hats_notification_controller.cc | 2 +- + .../easy_unlock/easy_unlock_key_names.cc | 2 +- + .../recommend_apps/device_configuration.proto | 18 +- + .../recommend_apps_fetcher_impl.cc | 2 +- + .../login/session/user_session_manager.cc | 4 +- + .../chromeos/login/ui/captive_portal_view.cc | 2 +- + .../login/users/chrome_user_manager_impl.cc | 2 +- + .../policy/active_directory_policy_manager.cc | 2 +- + .../chromeos/policy/heartbeat_scheduler.cc | 6 +- + .../remote_commands/crd_host_delegate.cc | 16 +- + .../status_collector/status_collector.h | 2 +- + .../release_notes/release_notes_storage.cc | 2 +- + .../scheduler_configuration_manager.h | 2 +- + .../chromeos/smb_client/smb_service_helper.h | 2 +- + chrome/browser/chromeos/tpm_firmware_update.h | 2 +- + chrome/browser/chromeos/u2f_notification.cc | 4 +- + .../recovery_component_installer.cc | 2 +- + .../protocol_handler_registry.cc | 4 +- + .../data_reduction_proxy_chrome_settings.cc | 10 +- + .../data_reduction_proxy_settings_android.cc | 2 +- + .../devtools/device/adb/mock_adb_server.cc | 12 +- + chrome/browser/devtools/url_constants.cc | 4 +- + .../engagement/site_engagement_helper.cc | 2 +- + chrome/browser/extensions/api/README.txt | 4 +- + .../cryptotoken_private_api.cc | 10 +- + .../chrome_content_rules_registry.h | 2 +- + .../api/declarative_content/content_action.h | 2 +- + .../declarative_content/content_condition.h | 2 +- + .../declarative_content/content_predicate.h | 8 +- + .../content_predicate_evaluator.h | 4 +- + .../extension_info_generator.cc | 2 +- + .../extensions/api/downloads/downloads_api.h | 2 +- + .../api/identity/gaia_web_auth_flow.h | 2 +- + .../identity_launch_web_auth_flow_function.cc | 2 +- + .../removable_storage_provider.cc | 2 +- + .../removable_storage_provider_linux.cc | 2 +- + .../chrome_management_api_delegate.cc | 2 +- + .../permissions/permissions_api_helpers.cc | 2 +- + .../chrome_extension_browser_constants.cc | 2 +- + .../chrome_extension_function_details.cc | 2 +- + .../whitelist.h | 2 +- + .../extension_browser_window_helper.cc | 2 +- + .../extensions/external_pref_loader.cc | 2 +- + chrome/browser/extensions/install_signer.cc | 2 +- + .../browser/extensions/navigation_observer.cc | 4 +- + .../browser/extensions/permissions_updater.cc | 12 +- + .../scripting_permissions_modifier.cc | 4 +- + .../scripting_permissions_modifier.h | 6 +- + .../chrome_extension_downloader_factory.cc | 2 +- + .../updater/chrome_update_client_config.cc | 4 +- + .../feedback/feedback_uploader_chrome.cc | 2 +- + .../log_sources/crash_ids_source.cc | 4 +- + chrome/browser/flag-metadata.json | 348 +- + chrome/browser/flag_descriptions.cc | 4 +- + ...gle_search_domain_mixing_metrics_emitter.h | 4 +- + ...ch_domain_mixing_metrics_emitter_factory.h | 2 +- + chrome/browser/google/google_update_win.cc | 2 +- + .../context_menu_content_type_web_view.cc | 2 +- + .../browser/importer/firefox_profile_lock.cc | 8 +- + .../browser/importer/firefox_profile_lock.h | 8 +- + .../importer/firefox_profile_lock_posix.cc | 6 +- + .../importer/firefox_profile_lock_win.cc | 6 +- + .../service_discovery_client_mac.mm | 4 +- + .../lookalike_url_navigation_throttle.cc | 16 +- + .../lookalikes/lookalike_url_service.h | 2 +- + .../remote/flinging_controller_bridge.cc | 2 +- + ...ted_media_identifier_permission_context.cc | 2 +- + .../discovery/discovery_network_list_win.cc | 2 +- + .../media/router/media_sinks_observer.h | 2 +- + .../presentation/local_presentation_manager.h | 2 +- + .../cast/cast_media_route_provider.cc | 2 +- + .../dial/dial_media_route_provider.cc | 12 +- + .../media/webrtc/webrtc_event_log_uploader.cc | 2 +- + .../media/webrtc/webrtc_log_uploader.cc | 2 +- + .../fileapi/media_path_filter.cc | 2 +- + .../swap_thrashing_monitor_delegate_win.cc | 2 +- + .../browser/metrics/thread_watcher_android.h | 2 +- + .../nacl_host/nacl_infobar_delegate.cc | 2 +- + chrome/browser/net/dns_probe_runner.cc | 2 +- + chrome/browser/net/dns_probe_runner.h | 2 +- + chrome/browser/net/service_providers_win.cc | 2 +- + ...ial_comparison_cert_verifier_controller.cc | 2 +- + .../notification_permission_context.h | 4 +- + .../notification_platform_bridge_mac.mm | 2 +- + .../win/notification_template_builder.cc | 2 +- + .../amp_page_load_metrics_observer.h | 2 +- + .../from_gws_page_load_metrics_observer.cc | 2 +- + ...rvice_worker_page_load_metrics_observer.cc | 4 +- + .../password_manager_util_win.cc | 2 +- + .../browser/pepper_broker_infobar_delegate.cc | 2 +- + .../permissions/mock_permission_request.cc | 8 +- + .../permissions/permission_context_base.cc | 10 +- + .../browser/permissions/permission_uma_util.h | 2 +- + chrome/browser/platform_util_chromeos.cc | 2 +- + chrome/browser/platform_util_win.cc | 2 +- + chrome/browser/prefs/pref_metrics_service.cc | 2 +- + chrome/browser/process_singleton_posix.cc | 2 +- + chrome/browser/process_singleton_win.cc | 2 +- + .../profile_resetter/reset_report_uploader.cc | 2 +- + chrome/browser/profiles/profile.h | 2 +- + chrome/browser/profiles/profile_impl.cc | 2 +- + chrome/browser/profiles/profile_impl.h | 2 +- + chrome/browser/profiles/profile_manager.h | 2 +- + .../profiles/profile_shortcut_manager_win.cc | 2 +- + chrome/browser/profiles/profile_window.cc | 4 +- + .../push_messaging_constants.cc | 2 +- + .../push_messaging_notification_manager.h | 2 +- + .../push_messaging_service_impl.cc | 2 +- + chrome/browser/resources/PRESUBMIT.py | 2 +- + .../resources/bookmarks/command_manager.js | 2 +- + .../resources/chromeos/about_os_credits.html | 6 +- + .../add_supervision/add_supervision.js | 14 +- + .../chromeos/arc_support/background.js | 14 +- + .../chromeos/arc_support/playstore.js | 6 +- + .../assistant_optin/assistant_value_prop.js | 2 +- + .../camera/src/js/google-analytics-bundle.js | 2 +- + .../resources/chromeos/camera/src/js/util.js | 2 +- + .../chromeos/camera/src/manifest.json | 2 +- + .../chromevox/background/background.js | 2 +- + .../chromevox/background/options.css | 2 +- + .../chromevox/chromevox/background/options.js | 2 +- + .../chromevox/chromevox/background/prefs.js | 6 +- + .../chromevox/injected/event_watcher.js | 2 +- + .../chromevox/chromevox/injected/history.js | 2 +- + .../chromevox/injected/navigation_manager.js | 2 +- + .../chromeos/chromevox/common/dom_util.js | 10 +- + .../chromevox/common/selection_util.js | 14 +- + .../chromevox/common/traverse_table.js | 2 +- + .../chromevox/common/traverse_util.js | 2 +- + .../chromeos/chromevox/common/xpath_util.js | 2 +- + .../cvox2/background/command_handler.js | 2 +- + .../cvox2/background/language_switching.js | 4 +- + .../chromevox/cvox2/background/panel.html | 2 +- + .../chromevox/cvox2/background/tutorial.js | 6 +- + .../chromevox/extensions/searchvox/loader.js | 2 +- + .../chromeos/chromevox/manifest.json.jinja2 | 4 +- + .../chromevox/strings/chromevox_strings.grd | 6 +- + .../tools/webstore_extension_util.py | 10 +- + .../connectivity_diagnostics/manifest.json | 4 +- + .../resources/chromeos/echo/manifest.json | 8 +- + .../resources/chromeos/emulator/icons.html | 2 +- + .../chromeos/genius_app/manifest.json | 32 +- + .../input_method/google_xkb_manifest.json | 8 +- + .../browser/resources/chromeos/login/cr_ui.js | 2 +- + .../modules/discover_module_redeem_offers.js | 2 +- + .../modules/discover_module_sync_files.js | 2 +- + .../chromeos/login/encryption_migration.js | 2 +- + .../chromeos/login/offline_gaia.html | 2 +- + .../resources/chromeos/login/offline_gaia.js | 2 +- + .../login/saml_password_attributes.js | 2 +- + .../login/screen_arc_terms_of_service.js | 6 +- + .../select_to_speak/manifest.json.jinja2 | 8 +- + .../chromeos/select_to_speak/mock_tts.js | 2 +- + .../chromeos/select_to_speak/options.css | 2 +- + .../select_to_speak/select_to_speak.js | 8 +- + .../strings/select_to_speak_strings.grd | 2 +- + .../chromeos/switch_access/switch_access.js | 2 +- + .../chromeos/wallpaper_manager/manifest.json | 2 +- + .../chromeos/zip_archiver/cpp/volume.h | 4 +- + .../zip_archiver/externs_js/chrome.js | 30 +- + .../chromeos/zip_archiver/js/types.js | 12 +- + .../chromeos/zip_archiver/js/volume.js | 2 +- + .../resources/cloud_print_app/manifest.json | 4 +- + chrome/browser/resources/cryptotoken/asn1.js | 2 +- + .../cryptotoken/cryptotokenapprovedorigins.js | 2 +- + .../browser/resources/cryptotoken/enroller.js | 4 +- + .../default_apps/external_extensions.json | 6 +- + .../discards/graph_doc_template.html | 2 +- + chrome/browser/resources/downloads/icons.html | 2 +- + .../resources/feedback/js/feedback_util.js | 10 +- + .../resources/gaia_auth_host/authenticator.js | 6 +- + .../resources/hangout_services/manifest.json | 2 +- + chrome/browser/resources/hats/hats.html | 2 +- + .../scope_approval_dialog.js | 4 +- + chrome/browser/resources/inspect/inspect.html | 4 +- + .../browser/resources/local_ntp/customize.js | 2 +- + chrome/browser/resources/local_ntp/doodles.js | 4 +- + chrome/browser/resources/local_ntp/voice.js | 8 +- + .../resources/media/mei_preload/manifest.json | 2 +- + chrome/browser/resources/media/webrtc_logs.js | 2 +- + .../media_router/extension/manifest.yaml | 8 +- + .../domain_security_policy_view.html | 4 +- + .../domain_security_policy_view.js | 2 +- + .../resources/net_internals/events_view.html | 2 +- + .../network_speech_synthesis/manifest.json | 2 +- + .../network_speech_synthesis/tts_extension.js | 2 +- + chrome/browser/resources/omnibox/omnibox.html | 2 +- + .../resources/omnibox/omnibox_output.js | 8 +- + .../browser/resources/pdf/elements/icons.html | 2 +- + .../plugin_metadata/plugins_chromeos.json | 2 +- + .../plugin_metadata/plugins_linux.json | 4 +- + .../plugin_metadata/plugins_mac.json | 4 +- + .../plugin_metadata/plugins_win.json | 4 +- + .../browser/resources/policy/policy_base.js | 2 +- + .../print_preview/cloud_print_interface_js.js | 2 +- + .../cloud_print_interface_manager.js | 2 +- + .../print_preview/data/destination_store.js | 2 +- + .../resources/settings/a11y_page/a11y_page.js | 2 +- + .../settings/a11y_page/manage_a11y_page.html | 2 +- + .../settings/about_page/about_page.html | 4 +- + .../about_page/channel_switcher_dialog.html | 2 +- + .../appearance_page/appearance_page.js | 2 +- + .../change_password_browser_proxy.js | 2 +- + .../chromeos/os_about_page/os_about_page.html | 2 +- + .../app_management_page/icons.html | 2 +- + .../resources/settings/chromeos/os_icons.html | 2 +- + .../chromeos/os_people_page/os_people_page.js | 4 +- + .../crostini_page/crostini_shared_paths.js | 2 +- + .../resources/settings/device_page/stylus.js | 2 +- + chrome/browser/resources/settings/icons.html | 2 +- + .../incompatible_application_item.js | 2 +- + .../languages_page/edit_dictionary_page.js | 2 +- + .../people_page/users_add_user_dialog.js | 4 +- + .../plugin_vm_page/plugin_vm_shared_paths.js | 2 +- + .../settings/settings_shared_css.html | 2 +- + .../supervised_user_internals.js | 2 +- + .../usb_internals/descriptor_panel.js | 4 +- + .../resources/user_manager/user_manager.js | 2 +- + .../resources/webstore_app/manifest.json | 4 +- + .../certificate_reporting_service.cc | 2 +- + .../chrome_cleaner/srt_field_trial_win.cc | 8 +- + .../chrome_password_protection_service.cc | 8 +- + .../client_side_detection_service.cc | 4 +- + .../binary_upload_service.cc | 2 +- + .../check_client_download_request_base.cc | 4 +- + .../download_protection/download_feedback.cc | 2 +- + .../ppapi_download_request.cc | 6 +- + .../download_protection/two_phase_uploader.h | 2 +- + .../incident_report_uploader_impl.cc | 2 +- + .../default_settings_fetcher.cc | 2 +- + .../background/ntp_background_service.cc | 6 +- + .../search/background/ntp_backgrounds.cc | 10 +- + chrome/browser/search/local_ntp_source.cc | 8 +- + chrome/browser/search/ntp_icon_source.cc | 2 +- + .../one_google_bar_loader_impl.cc | 2 +- + chrome/browser/search/search.h | 4 +- + chrome/browser/sharing/vapid_key_manager.h | 2 +- + ...hrome_signin_proxying_url_loader_factory.h | 2 +- + chrome/browser/signin/signin_ui_util.cc | 2 +- + .../browser/ssl/captive_portal_helper_win.cc | 2 +- + chrome/browser/ssl/cert_logger.proto | 2 +- + .../browser/ssl/connection_help_tab_helper.cc | 2 +- + chrome/browser/ssl/ssl_blocking_page.h | 2 +- + chrome/browser/startup_data.h | 2 +- + .../child_accounts/family_info_fetcher.cc | 2 +- + .../child_accounts/kids_management_api.cc | 2 +- + .../permission_request_creator_apiary.cc | 2 +- + .../kids_chrome_management_client.cc | 6 +- + .../supervised_user/logged_in_user_mixin.cc | 2 +- + .../supervised_user_block_interstitial.html | 2 +- + .../supervised_user_service.cc | 2 +- + .../supervised_user_url_filter.cc | 16 +- + .../supervised_user_url_filter.h | 6 +- + .../sync_sessions_router_tab_helper.h | 2 +- + .../sampling/shared_sampler_win_defines.h | 2 +- + .../browser/themes/theme_syncable_service.cc | 2 +- + .../browser/tracing/crash_service_uploader.cc | 2 +- + .../ui/app_list/app_list_syncable_service.cc | 2 +- + .../arc/arc_app_reinstall_app_result.cc | 2 +- + .../search_result_ranker.cc | 2 +- + .../assistant/proactive_suggestions_loader.cc | 2 +- + .../browser/ui/ash/chrome_shell_delegate.cc | 2 +- + .../safe_browsing_triggered_popup_blocker.h | 4 +- + .../tab_under_navigation_throttle.h | 2 +- + ...r_content_setting_bubble_model_delegate.cc | 2 +- + chrome/browser/ui/browser_navigator_params.h | 2 +- + chrome/browser/ui/chrome_pages.cc | 2 +- + .../ui/cocoa/applescript/tab_applescript.h | 2 +- + .../browser/ui/cocoa/share_menu_controller.mm | 2 +- + .../ui/crypto_module_password_dialog_nss.cc | 2 +- + .../installation_error_infobar_delegate.cc | 2 +- + .../javascript_dialog_tab_helper.cc | 2 +- + chrome/browser/ui/libgtkui/gtk_util.cc | 2 +- + .../browser/ui/media_router/media_cast_mode.h | 2 +- + .../ui/media_router/query_result_manager.h | 2 +- + chrome/browser/ui/page_info/page_info.cc | 4 +- + ...le_password_manager_navigation_throttle.cc | 4 +- + .../passwords/manage_passwords_bubble_model.h | 2 +- + .../passwords/manage_passwords_view_utils.h | 4 +- + .../ui/passwords/passwords_model_delegate.h | 2 +- + .../browser/ui/pdf/adobe_reader_info_win.cc | 2 +- + .../browser/ui/search/ntp_user_data_logger.cc | 2 +- + chrome/browser/ui/search/search_tab_helper.h | 2 +- + chrome/browser/ui/signin_view_controller.cc | 2 +- + .../ui/startup/startup_browser_creator.cc | 2 +- + .../ui/startup/startup_browser_creator_impl.h | 2 +- + chrome/browser/ui/tab_helpers.h | 2 +- + .../toolbar/media_router_contextual_menu.cc | 6 +- + .../views/accessibility/invert_bubble_view.cc | 6 +- + chrome/browser/ui/views/frame/browser_view.h | 2 +- + .../browser/ui/views/hats/hats_web_dialog.cc | 2 +- + .../ui/views/network_profile_bubble_view.cc | 2 +- + .../ui/views/omnibox/omnibox_view_views.cc | 4 +- + .../ui/views/omnibox/omnibox_view_views.h | 4 +- + .../ui/views/outdated_upgrade_bubble_view.cc | 2 +- + .../ui/views/session_crashed_bubble_view.cc | 2 +- + ...rofile_signin_confirmation_dialog_views.cc | 2 +- + chrome/browser/ui/webui/PRESUBMIT.py | 2 +- + .../add_supervision/add_supervision_ui.cc | 4 +- + .../assistant_optin/assistant_optin_utils.cc | 2 +- + .../chromeos/login/gaia_screen_handler.cc | 2 +- + .../chromeos/login/gaia_screen_handler.h | 2 +- + chrome/browser/ui/webui/components_ui.cc | 2 +- + .../ui/webui/interstitials/interstitial_ui.cc | 2 +- + .../browser/ui/webui/management_ui_handler.cc | 2 +- + chrome/browser/ui/webui/ntp/new_tab_ui.cc | 4 +- + .../ui/webui/ntp/ntp_resource_cache.cc | 8 +- + .../browser/ui/webui/profile_info_watcher.h | 2 +- + .../chromeos/parental_controls_handler.cc | 4 +- + .../webui/settings/reset_settings_handler.cc | 2 +- + .../settings/settings_cookies_view_handler.cc | 2 +- + chrome/browser/ui/webui/settings_utils_win.cc | 2 +- + .../ui/webui/welcome/google_apps_handler.cc | 12 +- + .../webui/welcome/ntp_background_handler.cc | 2 +- + .../ui/window_sizer/window_sizer_ash.cc | 2 +- + chrome/browser/vr/PRESUBMIT.py | 2 +- + .../externally_installed_web_app_prefs.cc | 4 +- + .../external_web_app_manager.h | 2 +- + .../web_applications/web_app_install_task.cc | 2 +- + .../chrome_authenticator_request_delegate.cc | 6 +- + .../conflicts/enumerate_shell_extensions.cc | 2 +- + .../win/conflicts/installed_applications.cc | 4 +- + chrome/browser/win/jumplist.cc | 2 +- + chrome/child/delay_load_failure_hook.cc | 2 +- + chrome/chrome_cleaner/PRESUBMIT.py | 2 +- + .../components/recovery_component.cc | 4 +- + .../system_restore_point_component.cc | 2 +- + chrome/chrome_cleaner/crash/crash_keys.cc | 2 +- + .../crash/crashpad_crash_reporter.cc | 6 +- + .../engines/common/registry_util.cc | 2 +- + .../engines/common/registry_util.h | 2 +- + .../engines/controllers/elevating_facade.cc | 2 +- + .../executables/chrome_cleaner_main.cc | 2 +- + chrome/chrome_cleaner/http/http_agent_impl.cc | 2 +- + chrome/chrome_cleaner/ipc/sandbox.cc | 2 +- + .../logging/cleaner_logging_service.cc | 4 +- + .../chrome_cleaner/logging/dummy_api_keys.cc | 4 +- + .../chrome_cleaner/logging/registry_logger.cc | 2 +- + .../logging/reporter_logging_service.cc | 4 +- + .../mojom/engine_requests.mojom | 2 +- + chrome/chrome_cleaner/os/disk_util.cc | 4 +- + .../os/file_path_sanitization.cc | 2 +- + .../os/post_reboot_registration.cc | 2 +- + chrome/chrome_cleaner/os/registry.cc | 2 +- + chrome/chrome_cleaner/os/system_util.h | 4 +- + .../chrome_cleaner/os/system_util_cleaner.cc | 4 +- + chrome/chrome_cleaner/os/task_scheduler.cc | 2 +- + .../shortcut_parser/target/lnk_parser.cc | 2 +- + chrome/chrome_cleaner/pup_data/pup_data.h | 2 +- + chrome/chrome_elf/BUILD.gn | 2 +- + chrome/chrome_elf/chrome_elf_main.cc | 4 +- + chrome/chrome_elf/nt_registry/nt_registry.cc | 4 +- + chrome/chrome_elf/nt_registry/nt_registry.h | 2 +- + .../chrome_elf/pe_image_safe/pe_image_safe.h | 2 +- + .../third_party_dlls/hardcoded_blocklist.cc | 2 +- + chrome/chrome_elf/third_party_dlls/main.h | 2 +- + chrome/common/chrome_features.cc | 6 +- + chrome/common/chrome_switches.cc | 2 +- + chrome/common/client_hints/client_hints.cc | 2 +- + .../cloud_print/cloud_print_constants.cc | 2 +- + chrome/common/conflicts/module_watcher_win.cc | 2 +- + chrome/common/extensions/PRESUBMIT.py | 2 +- + chrome/common/extensions/api/PRESUBMIT.py | 2 +- + .../common/extensions/api/_api_features.json | 4 +- + chrome/common/extensions/api/cookies.json | 2 +- + chrome/common/extensions/api/debugger.json | 8 +- + .../extensions/api/declarative_content.json | 4 +- + .../api/enterprise_device_attributes.idl | 2 +- + chrome/common/extensions/api/gcm.json | 4 +- + chrome/common/extensions/api/i18n.json | 2 +- + chrome/common/extensions/api/identity.idl | 4 +- + .../extensions/api/image_writer_private.idl | 2 +- + chrome/common/extensions/api/instance_id.json | 2 +- + chrome/common/extensions/api/tabs.json | 4 +- + chrome/common/extensions/api/tts.json | 2 +- + .../extensions/api/webrtc_audio_private.idl | 2 +- + chrome/common/extensions/api/webview_tag.json | 4 +- + chrome/common/extensions/api/windows.json | 2 +- + .../extensions/chrome_extensions_client.cc | 6 +- + .../api/bookmarks/basic/manifest.json | 2 +- + .../examples/api/bookmarks/basic/popup.html | 2 +- + .../docs/examples/api/commands/background.js | 2 +- + .../default_command_override/background.js | 2 +- + .../api/deviceInfo/basic/manifest.json | 2 +- + .../examples/api/deviceInfo/basic/popup.html | 2 +- + .../download_filename_controller/bg.js | 2 +- + .../download_filename_controller/options.html | 4 +- + .../api/downloads/download_manager/popup.html | 2 +- + .../api/downloads/download_manager/popup.js | 4 +- + .../api/downloads/downloads_overwrite/bg.js | 2 +- + .../api/eventPage/basic/background.js | 8 +- + .../api/eventPage/basic/manifest.json | 2 +- + .../examples/api/notifications/options.html | 2 +- + .../api/omnibox/newtab_search/background.js | 2 +- + .../override/override_igoogle/redirect.html | 2 +- + .../docs/examples/api/tabs/pin/background.js | 2 +- + .../api/water_alarm_notification/popup.html | 2 +- + .../basic/navigation_collector.js | 4 +- + .../apps/background-simple/index.html | 10 +- + .../apps/hello-java/HelloLicenseServlet.java | 6 +- + .../apps/hello-python/httplib2/__init__.py | 2 +- + .../docs/examples/apps/hello-python/main.py | 6 +- + .../examples/extensions/app_launcher/popup.js | 2 +- + .../docs/examples/extensions/buildbot/bg.js | 16 +- + .../extensions/buildbot/manifest.json | 6 +- + .../examples/extensions/buildbot/popup.js | 6 +- + .../extensions/calendar/javascript/options.js | 2 +- + .../extensions/calendar/views/options.html | 2 +- + .../extensions/chrome_search/background.js | 6 +- + .../extensions/chrome_search/manifest.json | 2 +- + .../extensions/constant_context/background.js | 2 +- + .../extensions/constant_context/manifest.json | 4 +- + .../extensions/download_images/background.js | 2 +- + .../extensions/email_this_page/options.js | 2 +- + .../docs/examples/extensions/fx/bg.js | 10 +- + .../examples/extensions/gdocs/background.html | 10 +- + .../extensions/gdocs/chrome_ex_oauth.html | 2 +- + .../extensions/gdocs/chrome_ex_oauth.js | 4 +- + .../examples/extensions/gdocs/manifest.json | 8 +- + .../examples/extensions/gdocs/options.html | 2 +- + .../docs/examples/extensions/gdocs/popup.html | 18 +- + .../examples/extensions/gmail/background.js | 2 +- + .../examples/extensions/gmail/manifest.json | 2 +- + .../imageinfo/imageinfo/binaryajax.js | 2 +- + .../extensions/imageinfo/imageinfo/exif.js | 2 +- + .../extensions/irc/servlet/index.html | 2 +- + .../irc/servlet/jstemplate/jsevalcontext.js | 2 +- + .../irc/servlet/jstemplate/jstemplate.js | 2 +- + .../extensions/irc/servlet/jstemplate/util.js | 2 +- + .../managed_bookmarks/background.js | 6 +- + .../examples/extensions/mappy/manifest.json | 6 +- + .../docs/examples/extensions/mappy/popup.js | 4 +- + .../extensions/maps_app/manifest.json | 4 +- + .../examples/extensions/news/css/feed.css | 2 +- + .../examples/extensions/news/css/options.css | 2 +- + .../extensions/news/javascript/feed.js | 2 +- + .../extensions/news/javascript/options.js | 2 +- + .../extensions/news/javascript/util.js | 6 +- + .../examples/extensions/news/manifest.json | 2 +- + .../examples/extensions/news/views/feed.html | 6 +- + .../extensions/news/views/options.html | 2 +- + .../examples/extensions/news_a11y/feed.js | 4 +- + .../extensions/news_a11y/manifest.json | 4 +- + .../news_i18n/_locales/en/messages.json | 2 +- + .../extensions/news_i18n/manifest.json | 2 +- + .../extensions/oauth_contacts/background.js | 10 +- + .../oauth_contacts/chrome_ex_oauth.js | 4 +- + .../extensions/oauth_contacts/contacts.html | 2 +- + .../extensions/oauth_contacts/manifest.json | 8 +- + .../proxy_configuration/background.js | 2 +- + .../extensions/proxy_configuration/popup.js | 2 +- + .../proxy_error_handler.js | 2 +- + .../proxy_form_controller.js | 10 +- + .../extensions/talking_alarm_clock/popup.html | 4 +- + .../examples/extensions/ttsdemo/ttsdemo.html | 2 +- + .../howto/tab_shortcuts/tab_shortcuts.js | 2 +- + .../tutorials/analytics/manifest.json | 2 +- + .../examples/tutorials/analytics/popup.js | 4 +- + .../broken_background_color/background.js | 2 +- + .../get_started_complete/background.js | 2 +- + .../examples/tutorials/getstarted/popup.html | 2 +- + .../examples/tutorials/getstarted/popup.js | 10 +- + .../oauth_tutorial_complete/manifest.json | 2 +- + .../oauth_tutorial_complete/oauth.js | 4 +- + .../extensions/docs/server2/PRESUBMIT.py | 2 +- + .../extensions/docs/server2/admin_servlets.py | 2 +- + .../extensions/docs/server2/branch_utility.py | 2 +- + .../extensions/docs/server2/datastore_util.py | 2 +- + .../docs/server2/gcs_file_system.py | 2 +- + .../extensions/docs/server2/patch_servlet.py | 10 +- + .../extensions/docs/server2/redirector.py | 8 +- + .../docs/server2/rietveld_patcher.py | 10 +- + .../common/extensions/docs/server2/servlet.py | 2 +- + .../extensions/docs/server2/update_cache.py | 2 +- + .../extensions/docs/server2/url_constants.py | 12 +- + .../extensions/docs/static/js/search.js | 2 +- + .../common/extensions/docs/static/js/site.js | 2 +- + .../docs/templates/articles/a11y.html | 10 +- + .../docs/templates/articles/about_apps.html | 12 +- + .../docs/templates/articles/activeTab.html | 2 +- + .../docs/templates/articles/analytics.html | 6 +- + .../templates/articles/angular_framework.html | 26 +- + .../docs/templates/articles/api_index.html | 2 +- + .../docs/templates/articles/api_other.html | 2 +- + .../templates/articles/app_architecture.html | 4 +- + .../templates/articles/app_bluetooth.html | 4 +- + .../articles/app_codelab_basics.html | 2 +- + .../articles/app_codelab_filesystem.html | 4 +- + .../articles/app_codelab_images.html | 6 +- + .../articles/app_codelab_import_todomvc.html | 2 +- + .../templates/articles/app_codelab_intro.html | 4 +- + .../articles/app_codelab_publish.html | 2 +- + .../docs/templates/articles/app_external.html | 8 +- + .../templates/articles/app_frameworks.html | 2 +- + .../docs/templates/articles/app_identity.html | 16 +- + .../docs/templates/articles/app_network.html | 2 +- + .../docs/templates/articles/apps.html | 12 +- + .../articles/arc_in_app_payments.html | 14 +- + .../templates/articles/arc_playservices.html | 14 +- + .../docs/templates/articles/autoupdate.html | 10 +- + .../templates/articles/background_pages.html | 2 +- + .../articles/chrome_apps_on_mobile.html | 14 +- + .../articles/contentSecurityPolicy.html | 2 +- + .../templates/articles/content_scripts.html | 4 +- + .../articles/declare_permissions.html | 2 +- + .../articles/desktop_notifications.html | 8 +- + .../docs/templates/articles/develop_apps.html | 4 +- + .../docs/templates/articles/devguide.html | 2 +- + .../docs/templates/articles/devtools.html | 20 +- + .../docs/templates/articles/experimental.html | 8 +- + .../templates/articles/extensions_index.html | 14 +- + .../articles/external_extensions.html | 14 +- + .../docs/templates/articles/faq.html | 20 +- + .../docs/templates/articles/game_engines.html | 4 +- + .../docs/templates/articles/getstarted.html | 8 +- + .../templates/articles/getstarted_arc.html | 20 +- + .../docs/templates/articles/hosting.html | 8 +- + .../templates/articles/hosting_changes.html | 34 +- + .../docs/templates/articles/inform_users.html | 2 +- + .../docs/templates/articles/inline_faq.html | 4 +- + .../templates/articles/linux_hosting.html | 12 +- + .../docs/templates/articles/manifest/app.html | 4 +- + .../articles/manifest/default_locale.html | 2 +- + .../articles/manifest/description.html | 4 +- + .../manifest/externally_connectable.html | 4 +- + .../articles/manifest/homepage_url.html | 4 +- + .../templates/articles/manifest/icons.html | 4 +- + .../docs/templates/articles/manifest/key.html | 10 +- + .../articles/manifest/kiosk_enabled.html | 28 +- + .../articles/manifest/manifest_version.html | 2 +- + .../manifest/minimum_chrome_version.html | 2 +- + .../articles/manifest/nacl_modules.html | 2 +- + .../templates/articles/manifest/name.html | 4 +- + .../articles/manifest/requirements.html | 6 +- + .../templates/articles/manifest/sandbox.html | 10 +- + .../templates/articles/manifest/storage.html | 6 +- + .../articles/manifest/url_handlers.html | 2 +- + .../templates/articles/manifest/version.html | 2 +- + .../manifest/web_accessible_resources.html | 6 +- + .../templates/articles/match_patterns.html | 30 +- + .../docs/templates/articles/messaging.html | 4 +- + .../docs/templates/articles/migration.html | 46 +- + .../templates/articles/nativeMessaging.html | 12 +- + .../docs/templates/articles/npapi.html | 6 +- + .../docs/templates/articles/offline_apps.html | 2 +- + .../templates/articles/offline_storage.html | 10 +- + .../docs/templates/articles/overview.html | 4 +- + .../docs/templates/articles/packaging.html | 6 +- + .../docs/templates/articles/performance.html | 6 +- + .../articles/permission_warnings.html | 6 +- + .../docs/templates/articles/publish_app.html | 6 +- + .../templates/articles/richNotifications.html | 4 +- + .../templates/articles/sandboxingEval.html | 4 +- + .../docs/templates/articles/security.html | 20 +- + .../templates/articles/sencha_framework.html | 2 +- + .../templates/articles/settings_override.html | 8 +- + .../templates/articles/single_purpose.html | 28 +- + .../docs/templates/articles/themes.html | 10 +- + .../templates/articles/tut_analytics.html | 16 +- + .../templates/articles/tut_debugging.html | 10 +- + .../tut_migration_to_manifest_v2.html | 2 +- + .../docs/templates/articles/tut_oauth.html | 22 +- + .../docs/templates/articles/tutorials.html | 2 +- + .../templates/articles/user_interface.html | 12 +- + .../docs/templates/articles/user_privacy.html | 6 +- + .../docs/templates/articles/webstore.html | 2 +- + .../docs/templates/articles/xhr.html | 14 +- + .../intros/bluetooth_low_energy.html | 2 +- + .../docs/templates/intros/bookmarks.html | 4 +- + .../docs/templates/intros/browserAction.html | 2 +- + .../docs/templates/intros/browsingData.html | 2 +- + .../templates/intros/certificateProvider.html | 4 +- + .../docs/templates/intros/commands.html | 2 +- + .../templates/intros/contentSettings.html | 2 +- + .../docs/templates/intros/cookies.html | 4 +- + .../templates/intros/declarativeContent.html | 6 +- + .../intros/declarativeNetRequest.html | 14 +- + .../intros/declarativeWebRequest.html | 10 +- + .../intros/devtools_inspectedWindow.html | 2 +- + .../docs/templates/intros/downloads.html | 2 +- + .../intros/enterprise_deviceAttributes.html | 2 +- + .../intros/enterprise_platformKeys.html | 2 +- + .../docs/templates/intros/events.html | 8 +- + .../docs/templates/intros/fontSettings.html | 2 +- + .../docs/templates/intros/history.html | 4 +- + .../docs/templates/intros/i18n.html | 10 +- + .../docs/templates/intros/input_ime.html | 2 +- + .../templates/intros/networkingPrivate.html | 2 +- + .../docs/templates/intros/pageAction.html | 2 +- + .../docs/templates/intros/permissions.html | 14 +- + .../docs/templates/intros/privacy.html | 2 +- + .../docs/templates/intros/storage.html | 2 +- + .../docs/templates/intros/tabs.html | 2 +- + .../docs/templates/intros/webNavigation.html | 6 +- + .../docs/templates/intros/webRequest.html | 6 +- + .../docs/templates/intros/webview_tag.html | 12 +- + .../docs/templates/intros/windows.html | 6 +- + .../docs/templates/json/apps_sidenav.json | 2 +- + .../docs/templates/json/chrome_sidenav.json | 2 +- + .../templates/json/content_providers.json | 2 +- + .../templates/json/extensions_sidenav.json | 4 +- + .../docs/templates/json/intro_tables.json | 22 +- + .../docs/templates/json/strings.json | 40 +- + .../docs/templates/private/api_reference.html | 2 +- + .../docs/templates/private/article.html | 6 +- + .../docs/templates/private/fatnav.html | 2 +- + .../private/intro_tables/master_message.html | 2 +- + .../private/permissions/background.html | 2 +- + .../private/permissions/favicon.html | 2 +- + .../private/permissions/notifications.html | 4 +- + .../private/permissions/pointer_lock.html | 2 +- + .../docs/templates/private/site.html | 10 +- + .../docs/templates/private/warning_beta.html | 4 +- + .../docs/templates/private/warning_dev.html | 2 +- + .../templates/private/warning_master.html | 2 +- + .../docs/templates/public/apps/redirects.json | 18 +- + .../public/extensions/redirects.json | 10 +- + .../docs/templates/public/owners.html | 2 +- + chrome/common/google_url_loader_throttle.cc | 4 +- + .../common/importer/firefox_importer_utils.cc | 2 +- + chrome/common/media_router/media_source.h | 2 +- + chrome/common/multi_process_lock.h | 2 +- + chrome/common/pref_names.cc | 2 +- + .../common/safe_browsing/client_model.proto | 4 +- + chrome/common/search.mojom | 2 +- + chrome/common/service_process.mojom | 2 +- + chrome/common/url_constants.cc | 194 +- + chrome/common/url_constants.h | 2 +- + .../gaiacp/associated_user_validator.cc | 2 +- + .../credential_provider/gaiacp/auth_utils.cc | 2 +- + chrome/credential_provider/gaiacp/dllmain.cc | 2 +- + .../gaiacp/gaia_credential_base.cc | 12 +- + chrome/credential_provider/gaiacp/gcp_utils.h | 4 +- + .../gaiacp/internet_availability_checker.cc | 2 +- + .../credential_provider/gaiacp/mdm_utils.cc | 4 +- + chrome/docs/devtools-pillar.html | 2 +- + chrome/docs/index.html | 18 +- + chrome/docs/platform-pillar.html | 12 +- + chrome/install_static/install_constants.h | 4 +- + chrome/install_static/install_details.h | 2 +- + chrome/install_static/install_util.cc | 4 +- + chrome/install_static/install_util.h | 4 +- + chrome/install_static/user_data_dir.cc | 2 +- + chrome/installer/gcapi/gcapi.cc | 2 +- + chrome/installer/gcapi/gcapi_dll.cc | 2 +- + .../chromium-browser.appdata.xml | 10 +- + .../mini_installer/mini_installer.cc | 2 +- + chrome/installer/setup/eula/oem_ar.html | 2 +- + chrome/installer/setup/eula/oem_bg.html | 2 +- + chrome/installer/setup/eula/oem_ca.html | 2 +- + chrome/installer/setup/eula/oem_cs.html | 2 +- + chrome/installer/setup/eula/oem_da.html | 2 +- + chrome/installer/setup/eula/oem_de.html | 2 +- + chrome/installer/setup/eula/oem_el.html | 2 +- + chrome/installer/setup/eula/oem_en-GB.html | 2 +- + chrome/installer/setup/eula/oem_en.html | 2 +- + chrome/installer/setup/eula/oem_es-419.html | 2 +- + chrome/installer/setup/eula/oem_es.html | 2 +- + chrome/installer/setup/eula/oem_et.html | 2 +- + chrome/installer/setup/eula/oem_fi.html | 2 +- + chrome/installer/setup/eula/oem_fil.html | 2 +- + chrome/installer/setup/eula/oem_fr.html | 2 +- + chrome/installer/setup/eula/oem_hi.html | 2 +- + chrome/installer/setup/eula/oem_hr.html | 2 +- + chrome/installer/setup/eula/oem_hu.html | 2 +- + chrome/installer/setup/eula/oem_id.html | 2 +- + chrome/installer/setup/eula/oem_it.html | 2 +- + chrome/installer/setup/eula/oem_iw.html | 2 +- + chrome/installer/setup/eula/oem_ja.html | 2 +- + chrome/installer/setup/eula/oem_ko.html | 2 +- + chrome/installer/setup/eula/oem_lt.html | 2 +- + chrome/installer/setup/eula/oem_lv.html | 2 +- + chrome/installer/setup/eula/oem_nl.html | 2 +- + chrome/installer/setup/eula/oem_no.html | 2 +- + chrome/installer/setup/eula/oem_pl.html | 2 +- + chrome/installer/setup/eula/oem_pt-BR.html | 2 +- + chrome/installer/setup/eula/oem_pt-PT.html | 2 +- + chrome/installer/setup/eula/oem_ro.html | 2 +- + chrome/installer/setup/eula/oem_ru.html | 2 +- + chrome/installer/setup/eula/oem_sk.html | 2 +- + chrome/installer/setup/eula/oem_sl.html | 2 +- + chrome/installer/setup/eula/oem_sr.html | 2 +- + chrome/installer/setup/eula/oem_sv.html | 2 +- + chrome/installer/setup/eula/oem_th.html | 2 +- + chrome/installer/setup/eula/oem_tr.html | 2 +- + chrome/installer/setup/eula/oem_uk.html | 2 +- + chrome/installer/setup/eula/oem_vi.html | 2 +- + chrome/installer/setup/eula/oem_zh-CN.html | 2 +- + chrome/installer/setup/eula/oem_zh-TW.html | 2 +- + .../setup/google_chrome_behaviors.cc | 2 +- + chrome/installer/setup/install_worker.cc | 2 +- + chrome/installer/setup/uninstall.cc | 8 +- + .../util/delete_after_reboot_helper.cc | 4 +- + .../util/delete_after_reboot_helper.h | 2 +- + chrome/installer/util/l10n_string_util.cc | 2 +- + chrome/installer/util/master_preferences.h | 10 +- + chrome/installer/util/shell_util.cc | 14 +- + chrome/installer/util/shell_util.h | 8 +- + chrome/installer/util/work_item.h | 2 +- + .../notification_activator.h | 2 +- + .../notification_helper.cc | 2 +- + chrome/renderer/content_settings_observer.cc | 2 +- + chrome/renderer/media/flash_embed_rewrite.cc | 4 +- + .../extensions/identity_custom_bindings.js | 2 +- + chrome/renderer/safe_browsing/features.h | 2 +- + chrome/renderer/searchbox/searchbox.h | 2 +- + .../renderer/searchbox/searchbox_extension.cc | 2 +- + .../renderer/searchbox/searchbox_extension.h | 2 +- + .../subresource_redirect_params.cc | 2 +- + .../subresource_redirect_util.cc | 2 +- + .../cloud_print/cloud_print_connector.cc | 2 +- + chrome/service/service_process.cc | 4 +- + chrome/service/service_process.h | 2 +- + .../public/mojom/app_service.mojom | 2 +- + chrome/services/util_win/av_products.cc | 2 +- + .../nsNSSCertHelper.cpp | 4 +- + .../nsNSSCertHelper.h | 2 +- + .../nsNSSCertificate.cpp | 2 +- + .../nsNSSCertificate.h | 2 +- + .../nsUsageArrayHelper.cpp | 2 +- + .../nsUsageArrayHelper.h | 2 +- + chrome/tools/build/PRESUBMIT.py | 2 +- + chrome/tools/build/win/makecab.py | 2 +- + chrome/tools/weburl_links.txt | 6 +- + chrome/updater/crash_reporter.cc | 4 +- + chrome/updater/updater_constants.cc | 6 +- + chrome/updater/updater_constants.h | 2 +- + chrome/updater/win/installer/installer.cc | 2 +- + chrome/updater/win/task_scheduler.cc | 2 +- + chrome/updater/win/util.cc | 2 +- + .../utility/importer/bookmark_html_reader.h | 2 +- + chrome/utility/importer/firefox_importer.cc | 2 +- + chrome/utility/importer/firefox_importer.h | 2 +- + chrome/utility/importer/ie_importer_win.cc | 6 +- + chrome/utility/importer/nss_decryptor.cc | 8 +- + chrome/utility/importer/nss_decryptor_mac.h | 2 +- + .../importer/nss_decryptor_system_nss.cc | 4 +- + chrome/utility/importer/nss_decryptor_win.h | 2 +- + .../shell_devtools_discovery_page.html | 2 +- + chromecast/base/chromecast_switches.cc | 4 +- + .../chromecast/shell/CastCrashUploader.java | 6 +- + .../shell/CastWebContentsActivity.java | 2 +- + .../shell/CastWebContentsFragment.java | 2 +- + .../shell/LogcatElisionUnitTest.java | 2 +- + .../browser/service/cast_service_simple.cc | 2 +- + chromecast/common/extensions_api/i18n.json | 2 +- + chromecast/common/extensions_api/tabs.json | 4 +- + chromecast/common/extensions_api/windows.json | 2 +- + chromecast/crash/linux/minidump_uploader.cc | 2 +- + .../audio_sink_android_audiotrack_impl.h | 2 +- + .../android/AudioSinkAudioTrackImpl.java | 2 +- + chromecast/net/connectivity_checker_impl.cc | 4 +- + chromecast/net/net_switches.cc | 2 +- + chromecast/public/bluetooth/gatt.h | 6 +- + chromecast/public/output_restrictions.h | 2 +- + chromeos/BUILD.gn | 8 +- + chromeos/components/drivefs/drivefs_auth.cc | 2 +- + chromeos/constants/chromeos_features.cc | 2 +- + chromeos/dbus/arc_obb_mounter_client.h | 2 +- + .../permission_broker_client.h | 2 +- + .../simple_geolocation_provider.cc | 2 +- + chromeos/hugepage_text/hugepage_text.cc | 2 +- + chromeos/hugepage_text/hugepage_text.h | 2 +- + chromeos/network/geolocation_handler.cc | 4 +- + chromeos/network/network_cert_loader.cc | 2 +- + chromeos/network/network_util.h | 2 +- + chromeos/printing/ppd_provider.h | 2 +- + chromeos/printing/printer_configuration.h | 8 +- + .../assistant_manager_service_impl.cc | 2 +- + .../assistant/public/mojom/assistant.mojom | 4 +- + .../public/proto/email_opt_in_ui.proto | 2 +- + chromeos/services/assistant/service.cc | 6 +- + .../device_sync/cryptauth_client_impl.cc | 8 +- + .../proto/cryptauth_client_app_metadata.proto | 2 +- + .../proto/cryptauth_enrollment.proto | 2 +- + chromeos/services/device_sync/switches.cc | 6 +- + chromeos/services/ime/constants.cc | 2 +- + .../ime/public/cpp/shared_lib/interfaces.h | 4 +- + chromeos/timezone/timezone_request.cc | 2 +- + .../virtual_driver/win/install/setup.cc | 2 +- + .../virtual_driver_setup_resources.grd | 2 +- + .../win/port_monitor/port_monitor.cc | 14 +- + components/arc/session/arc_session.h | 2 +- + .../predictor_config_definitions.cc | 2 +- + .../autofill/content/renderer/PRESUBMIT.py | 2 +- + .../autofill/content/renderer/form_cache.cc | 4 +- + .../renderer/page_passwords_analyser.cc | 2 +- + .../password_form_conversion_utils.cc | 2 +- + .../core/browser/autofill_download_manager.cc | 2 +- + .../core/browser/autofill_experiments.cc | 4 +- + .../browser/form_parsing/address_field.cc | 2 +- + .../autofill/core/browser/form_structure.cc | 2 +- + .../credit_card_fido_authenticator.cc | 2 +- + .../core/browser/payments/payments_client.cc | 2 +- + .../browser/payments/payments_service_url.cc | 8 +- + .../autofill/core/browser/proto/api_v1.proto | 2 +- + .../webdata/autofill_profile_sync_bridge.h | 2 +- + .../devtools_api/client_api_generator.py | 2 +- + .../browser/devtools/devtools_client.cc | 2 +- + .../browser/devtools/devtools_client.h | 2 +- + .../browser/devtools/error_reporter.cc | 2 +- + .../browser/devtools/error_reporter.h | 2 +- + .../browser/devtools/message_dispatcher.h | 2 +- + .../browser/devtools/value_conversions.h | 2 +- + .../autofill_assistant/browser/service.proto | 6 +- + components/bookmarks/browser/bookmark_model.h | 4 +- + components/browser_sync/PRESUBMIT.py | 2 +- + .../core/counters/history_counter.cc | 2 +- + .../core/history_notice_utils.cc | 4 +- + .../captive_portal/captive_portal_detector.cc | 2 +- + components/cast_channel/enum_table.h | 2 +- + .../chrome_ct_policy_enforcer.cc | 2 +- + .../chrome_require_ct_delegate.h | 2 +- + .../data/log_list.json | 32 +- + .../public/constants/constants.h | 2 +- + .../chrome_cleaner/public/interfaces/BUILD.gn | 2 +- + .../common/cloud_device_description.h | 2 +- + .../common/cloud_devices_urls.cc | 8 +- + .../common/printer_description.h | 2 +- + .../components_google_chrome_strings.grd | 2 +- + .../core/common/content_settings_pattern.cc | 38 +- + components/cookie_config/cookie_store_util.cc | 2 +- + components/country_codes/country_codes.cc | 2 +- + .../crash/content/app/breakpad_linux.cc | 2 +- + components/crash/content/app/breakpad_win.cc | 2 +- + .../crash/content/app/crash_export_thunks.h | 2 +- + components/crash/content/app/crashpad_mac.mm | 2 +- + components/crash/content/app/crashpad_win.cc | 2 +- + .../content/app/hard_error_handler_win.cc | 2 +- + .../crash/core/browser/resources/crashes.js | 4 +- + components/cronet/PRESUBMIT.py | 2 +- + .../src/org/chromium/net/CronetEngine.java | 6 +- + .../net/ExperimentalCronetEngine.java | 2 +- + .../org/chromium/net/NetworkException.java | 6 +- + .../src/org/chromium/net/QuicException.java | 8 +- + .../org/chromium/net/RequestFinishedInfo.java | 2 +- + .../net/impl/NetworkExceptionImpl.java | 2 +- + .../chromium/net/impl/QuicExceptionImpl.java | 6 +- + .../CronetHttpURLStreamHandler.java | 2 +- + components/cronet/ios/Cronet.h | 2 +- + .../cronet_consumer_app_delegate.mm | 4 +- + .../cronet_consumer_view_controller.m | 4 +- + components/cronet/native/cronet.idl | 14 +- + .../curl_headers/docs/examples/10-at-a-time.c | 8 +- + .../curl_headers/docs/examples/asiohiper.cpp | 4 +- + .../curl_headers/docs/examples/crawler.c | 2 +- + .../curl_headers/docs/examples/synctime.c | 2 +- + components/cronet/tools/cr_cronet.py | 2 +- + components/cronet/tools/generate_javadoc.py | 2 +- + .../data_reduction_proxy_compression_stats.h | 2 +- + .../browser/data_reduction_proxy_config.cc | 4 +- + .../core/common/chrome_proxy_header.txt | 4 +- + .../data_reduction_proxy_bypass_protocol.cc | 2 +- + .../common/data_reduction_proxy_params.cc | 12 +- + .../core/common/data_reduction_proxy_params.h | 2 +- + .../proto/data_store.proto | 4 +- + .../core/javascript/dom_distiller_viewer.js | 2 +- + .../domain_reliability/bake_in_configs.py | 288 +- + components/drive/chromeos/search_metadata.cc | 4 +- + .../drive/chromeos/sync/remove_performer.cc | 2 +- + components/drive/chromeos/team_drive.h | 2 +- + components/drive/drive.proto | 4 +- + components/drive/drive_api_util.h | 4 +- + components/drive/job_scheduler.cc | 4 +- + components/drive/resource_entry_conversion.cc | 2 +- + components/drive/resource_entry_conversion.h | 4 +- + components/drive/service/drive_api_service.cc | 8 +- + .../drive/service/fake_drive_service.cc | 4 +- + .../error_page/common/localized_error.cc | 4 +- + .../favicon/core/favicon_driver_observer.h | 8 +- + components/favicon/core/favicon_service.h | 4 +- + .../favicon/core/large_icon_service_impl.cc | 2 +- + components/favicon_base/favicon_url_parser.h | 4 +- + components/feed/core/feed_networking_host.cc | 2 +- + components/feedback/feedback_common.cc | 2 +- + components/feedback/feedback_report.h | 2 +- + components/feedback/feedback_uploader.cc | 2 +- + components/feedback/feedback_util.cc | 2 +- + components/feedback/feedback_util.h | 2 +- + components/feedback/proto/web.proto | 2 +- + components/flags_ui/resources/flags.html | 4 +- + components/gcm_driver/account_tracker.cc | 2 +- + .../gcm_driver/GoogleCloudMessagingV2.java | 2 +- + components/gcm_driver/gcm_account_mapper.cc | 2 +- + components/gcm_driver/gcm_account_tracker.cc | 4 +- + components/gcm_driver/gcm_client_impl.cc | 2 +- + components/gcm_driver/web_push_sender.cc | 4 +- + components/google/core/common/google_util.cc | 28 +- + .../core/browser/browsing_history_service.cc | 4 +- + .../core/browser/domain_mixing_metrics.h | 2 +- + .../history/core/browser/history_backend.cc | 34 +- + .../history/core/browser/history_backend.h | 8 +- + .../core/browser/history_backend_notifier.h | 4 +- + .../history/core/browser/history_service.cc | 4 +- + .../history/core/browser/history_service.h | 16 +- + .../core/browser/thumbnail_database.cc | 10 +- + .../history/core/browser/thumbnail_database.h | 4 +- + .../core/browser/top_sites_database.cc | 8 +- + .../history/core/browser/top_sites_impl.cc | 2 +- + components/history/core/browser/url_utils.h | 6 +- + .../history/core/browser/visit_database.cc | 4 +- + .../core/browser/web_history_service.cc | 14 +- + .../history/core/common/thumbnail_score.h | 4 +- + components/image_fetcher/ios/webp_decoder.h | 2 +- + .../InvalidationClientService.java | 2 +- + .../impl/gcm_invalidation_bridge.cc | 2 +- + .../invalidation/impl/gcm_network_channel.cc | 2 +- + .../per_user_topic_registration_manager.cc | 4 +- + .../invalidation/impl/push_client_channel.cc | 2 +- + .../core/simple_keyed_service_factory.h | 2 +- + .../metrics/net/net_metrics_log_uploader.cc | 2 +- + components/metrics/persistent_histograms.cc | 2 +- + components/metrics/url_constants.cc | 6 +- + .../MinidumpUploadCallable.java | 4 +- + components/nacl/browser/nacl_process_host.cc | 4 +- + components/nacl/docs/dev/index.html | 4 +- + components/nacl/loader/nacl_helper_linux.h | 2 +- + components/nacl/loader/nacl_listener.cc | 2 +- + .../nacl_main_platform_delegate_linux.cc | 8 +- + .../renderer/plugin/pnacl_translate_thread.cc | 2 +- + components/net_log/resources/net_export.html | 6 +- + .../common/network_switch_list.h | 6 +- + .../network_time/network_time_tracker.cc | 2 +- + components/ntp_snippets/features.cc | 2 +- + .../ntp_snippets/ntp_snippets_constants.cc | 16 +- + components/ntp_snippets/remote/fetch.py | 8 +- + components/ntp_tiles/popular_sites_impl.cc | 2 +- + .../core/prefetch/prefetch_proto_utils.cc | 2 +- + .../core/prefetch/prefetch_server_urls.cc | 2 +- + .../browser/autocomplete_controller.cc | 2 +- + .../omnibox/browser/autocomplete_controller.h | 2 +- + .../omnibox/browser/autocomplete_input.cc | 2 +- + .../omnibox/browser/autocomplete_match.h | 2 +- + .../omnibox/browser/document_provider.cc | 14 +- + .../browser/document_suggestions_service.cc | 4 +- + components/omnibox/browser/history_match.h | 6 +- + .../omnibox/browser/history_quick_provider.cc | 6 +- + .../omnibox/browser/history_url_provider.cc | 6 +- + .../browser/in_memory_url_index_types.h | 4 +- + .../omnibox/browser/omnibox_edit_model.cc | 18 +- + .../omnibox/browser/omnibox_edit_model.h | 4 +- + .../omnibox/browser/scored_history_match.cc | 2 +- + components/omnibox/browser/search_provider.cc | 4 +- + .../browser/search_suggestion_parser.cc | 2 +- + .../omnibox/browser/shortcuts_provider.cc | 2 +- + .../omnibox/browser/suggestion_answer.h | 4 +- + .../omnibox/browser/titled_url_match_utils.cc | 2 +- + .../omnibox/browser/zero_suggest_provider.cc | 2 +- + .../optimization_guide_constants.cc | 2 +- + .../common/page_load_metrics_util.h | 8 +- + .../renderer/fake_page_timing_sender.h | 2 +- + .../affiliation_fetcher.cc | 2 +- + .../android_affiliation/affiliation_utils.h | 2 +- + .../core/browser/form_parsing/form_parser.cc | 4 +- + .../form_parsing/fuzzer/form_data_producer.h | 2 +- + ...password_requirements_spec_fetcher_impl.cc | 4 +- + .../core/browser/hash_password_manager.cc | 2 +- + .../core/browser/import/csv_password.h | 2 +- + .../browser/import/csv_password_iterator.h | 2 +- + .../authenticated_leak_check.cc | 2 +- + .../leak_detection/leak_detection_request.h | 2 +- + .../core/browser/login_database_win.cc | 2 +- + .../password_generation_frame_helper.cc | 4 +- + .../core/browser/password_hash_data.cc | 2 +- + .../core/browser/password_hash_data.h | 2 +- + .../core/browser/password_manager.h | 2 +- + .../browser/password_manager_constants.cc | 4 +- + .../password_manager_metrics_recorder.h | 2 +- + .../core/browser/password_manager_util.h | 4 +- + .../core/browser/password_reuse_detector.cc | 2 +- + .../core/browser/password_store.cc | 12 +- + .../core/browser/password_sync_util.cc | 4 +- + .../core/browser/password_ui_utils.cc | 2 +- + .../core/browser/psl_matching_helper.cc | 6 +- + .../core/browser/sync/password_sync_bridge.h | 2 +- + .../payments/content/payment_request_spec.cc | 4 +- + .../content/utility/payment_manifest_parser.h | 2 +- + components/payments/core/journey_logger.cc | 2 +- + components/payments/core/url_util.h | 8 +- + .../core/browser/browser_policy_connector.cc | 8 +- + .../core/browser/browser_policy_connector.h | 2 +- + .../core/browser/url_blacklist_manager.h | 2 +- + components/policy/core/browser/url_util.cc | 10 +- + .../policy/core/common/policy_loader_win.cc | 2 +- + components/policy/core/common/preg_parser.h | 2 +- + .../policy/proto/chrome_device_policy.proto | 4 +- + .../proto/device_management_backend.proto | 2 +- + components/policy/resources/PRESUBMIT.py | 2 +- + .../policy/resources/policy_templates.json | 742 +- + .../policy/tools/generate_extension_admx.py | 2 +- + .../syntax_check_policy_template_json.py | 2 +- + .../tools/template_writers/PRESUBMIT.py | 2 +- + .../template_writers/writers/adm_writer.py | 4 +- + .../writers/doc_atomic_groups_writer.py | 2 +- + .../template_writers/writers/doc_writer.py | 2 +- + .../writers/template_writer.py | 2 +- + components/prefs/pref_change_registrar.cc | 2 +- + .../previews/content/previews_decider_impl.cc | 2 +- + .../previews/core/previews_experiments.cc | 4 +- + components/previews/core/previews_features.cc | 2 +- + .../renderer/print_render_frame_helper.cc | 2 +- + components/quirks/quirks_client.cc | 2 +- + components/rappor/proto/rappor_metric.proto | 4 +- + .../rappor/public/mojom/rappor_recorder.mojom | 6 +- + components/rappor/public/rappor_parameters.h | 2 +- + components/rappor/rappor_metric.h | 2 +- + components/rappor/rappor_recorder_impl.h | 2 +- + components/rappor/rappor_service_impl.cc | 2 +- + .../resources/terms/chromeos/terms_en.html | 16 +- + components/resources/terms/terms_am.html | 12 +- + components/resources/terms/terms_ar.html | 6 +- + components/resources/terms/terms_bg.html | 8 +- + components/resources/terms/terms_bn.html | 12 +- + components/resources/terms/terms_ca.html | 6 +- + components/resources/terms/terms_cs.html | 8 +- + components/resources/terms/terms_da.html | 6 +- + components/resources/terms/terms_de.html | 2 +- + components/resources/terms/terms_el.html | 6 +- + components/resources/terms/terms_en-GB.html | 6 +- + components/resources/terms/terms_en.html | 12 +- + components/resources/terms/terms_es-419.html | 12 +- + components/resources/terms/terms_es.html | 6 +- + components/resources/terms/terms_et.html | 6 +- + components/resources/terms/terms_fa.html | 12 +- + components/resources/terms/terms_fi.html | 6 +- + components/resources/terms/terms_fil.html | 12 +- + components/resources/terms/terms_fr.html | 12 +- + components/resources/terms/terms_gu.html | 12 +- + components/resources/terms/terms_he.html | 10 +- + components/resources/terms/terms_hi.html | 12 +- + components/resources/terms/terms_hr.html | 8 +- + components/resources/terms/terms_hu.html | 12 +- + components/resources/terms/terms_id.html | 12 +- + components/resources/terms/terms_it.html | 12 +- + components/resources/terms/terms_ja.html | 12 +- + components/resources/terms/terms_kn.html | 12 +- + components/resources/terms/terms_ko.html | 6 +- + components/resources/terms/terms_lt.html | 10 +- + components/resources/terms/terms_lv.html | 6 +- + components/resources/terms/terms_ml.html | 12 +- + components/resources/terms/terms_mr.html | 12 +- + components/resources/terms/terms_nb.html | 6 +- + components/resources/terms/terms_nl.html | 6 +- + components/resources/terms/terms_pl.html | 12 +- + components/resources/terms/terms_pt-BR.html | 12 +- + components/resources/terms/terms_pt-PT.html | 8 +- + components/resources/terms/terms_ro.html | 6 +- + components/resources/terms/terms_ru.html | 6 +- + components/resources/terms/terms_sk.html | 6 +- + components/resources/terms/terms_sl.html | 4 +- + components/resources/terms/terms_sr.html | 6 +- + components/resources/terms/terms_sv.html | 6 +- + components/resources/terms/terms_sw.html | 12 +- + components/resources/terms/terms_ta.html | 12 +- + components/resources/terms/terms_te.html | 12 +- + components/resources/terms/terms_th.html | 6 +- + components/resources/terms/terms_tr.html | 12 +- + components/resources/terms/terms_uk.html | 12 +- + components/resources/terms/terms_vi.html | 12 +- + components/resources/terms/terms_zh-CN.html | 12 +- + components/resources/terms/terms_zh-TW.html | 12 +- + components/rlz/rlz_tracker.h | 2 +- + components/safe_browsing/base_ui_manager.cc | 2 +- + .../common/safebrowsing_constants.cc | 2 +- + components/safe_browsing/db/metadata.proto | 2 +- + .../db/v4_get_hash_protocol_manager.cc | 2 +- + .../db/v4_protocol_manager_util.cc | 6 +- + .../db/v4_protocol_manager_util.h | 6 +- + components/safe_browsing/db/v4_store.cc | 2 +- + .../password_protection_service.cc | 2 +- + components/safe_browsing/proto/csd.proto | 10 +- + .../realtime/url_lookup_service.cc | 2 +- + .../safe_browsing/triggers/trigger_util.cc | 2 +- + .../safe_browsing/verdict_cache_manager.cc | 4 +- + .../safe_search_url_checker_client.cc | 2 +- + .../safe_search_api/stub_url_checker.cc | 2 +- + components/search_engines/template_url.cc | 2 +- + components/search_engines/template_url.h | 2 +- + .../search_engines/template_url_service.cc | 2 +- + components/search_engines/util.cc | 2 +- + .../search_provider_logos/google_logo_api.cc | 2 +- + .../search_provider_logos/google_logo_api.h | 2 +- + components/search_provider_logos/switches.cc | 18 +- + .../browser/resources/interstitial_large.js | 2 +- + .../core/controller_client.cc | 2 +- + .../core/safe_browsing_loud_error_ui.cc | 4 +- + .../security_interstitials/core/urls.cc | 4 +- + .../security_state/core/security_state.h | 2 +- + .../font/ppapi_fontconfig_matching.cc | 2 +- + .../heap_profiling/connection_manager.cc | 4 +- + .../services/quarantine/quarantine_mac.mm | 2 +- + .../services/quarantine/quarantine_win.cc | 2 +- + .../signin/AccountManagerFacade.java | 4 +- + .../browser/chrome_connected_header_helper.cc | 8 +- + .../browser/resources/signin_internals.js | 2 +- + .../oauth2_token_service_delegate_android.cc | 2 +- + .../browser/account_consistency_service.mm | 6 +- + components/signin/public/base/signin_client.h | 2 +- + .../signin/public/base/signin_pref_names.cc | 2 +- + .../identity_manager/identity_manager.h | 4 +- + .../spellcheck/SpellCheckerSessionBridge.java | 2 +- + .../browser/spelling_service_client.cc | 4 +- + components/ssl_errors/error_classification.h | 4 +- + .../browser/startup_metric_utils.cc | 4 +- + .../volume_mount_watcher_win.cc | 2 +- + .../browser/subresource_filter_constants.h | 8 +- + .../core/common/PRESUBMIT.py | 2 +- + .../suggestions/suggestions_service_impl.cc | 4 +- + components/sync/PRESUBMIT.py | 2 +- + .../components/sync/SyncConstants.java | 2 +- + .../notifier/InvalidationPreferences.java | 2 +- + components/sync/base/data_type_histogram.h | 2 +- + components/sync/driver/resources/about.js | 2 +- + components/sync/driver/sync_util.cc | 4 +- + .../history_delete_directive_specifics.proto | 2 +- + components/sync/protocol/sync.proto | 4 +- + components/sync_bookmarks/PRESUBMIT.py | 2 +- + .../sync_bookmarks/bookmark_model_merger.cc | 2 +- + .../bookmark_model_observer_impl.cc | 2 +- + components/sync_sessions/PRESUBMIT.py | 2 +- + .../local_session_event_router.h | 4 +- + .../sync_sessions/session_sync_bridge.h | 2 +- + .../graphics_memory_dump_provider_android.h | 2 +- + .../core/browser/translate_manager.cc | 2 +- + .../core/browser/translate_ranker_impl.cc | 6 +- + .../core/browser/translate_script.cc | 2 +- + .../translate/core/common/translate_util.cc | 2 +- + components/ui_devtools/agent_util.cc | 4 +- + components/ukm/ukm_reporting_service.cc | 2 +- + .../url_formatter/UrlFormatter.java | 4 +- + components/url_formatter/elide_url.cc | 2 +- + components/url_formatter/elide_url.h | 2 +- + .../spoof_checks/idn_spoof_checker.cc | 2 +- + .../spoof_checks/idn_spoof_checker.h | 2 +- + .../top_domains/make_alexa_top_list.py | 2 +- + .../top_domains/top_domain_util.h | 4 +- + components/url_formatter/url_fixer.cc | 2 +- + components/url_formatter/url_formatter.cc | 4 +- + components/url_formatter/url_formatter.h | 2 +- + components/url_matcher/url_matcher.h | 8 +- + components/url_pattern_index/PRESUBMIT.py | 2 +- + components/user_manager/user.h | 4 +- + .../firstrun/VariationsSeedFetcher.java | 2 +- + components/variations/entropy_provider.h | 2 +- + .../variations/net/variations_http_headers.cc | 4 +- + components/variations/pref_names.cc | 2 +- + components/variations/proto/study.proto | 2 +- + .../variations/service/safe_seed_manager.cc | 18 +- + .../variations/variations_murmur_hash.h | 2 +- + .../variations/variations_url_constants.cc | 4 +- + .../viz/service/display/output_surface.h | 2 +- + components/wifi/wifi_service_win.cc | 2 +- + components/zucchini/disassembler_dex.h | 2 +- + components/zucchini/type_dex.h | 2 +- + .../content_child_process_service_delegate.cc | 2 +- + content/app/resources/README.txt | 4 +- + .../render_widget_host_view_cocoa.mm | 2 +- + .../browser_accessibility_com_win.h | 2 +- + .../appcache/appcache_request_handler.cc | 2 +- + .../browser/appcache/appcache_update_job.cc | 2 +- + .../appcache/appcache_update_url_fetcher.cc | 2 +- + .../appcache/appcache_url_loader_job.cc | 2 +- + .../bluetooth_device_chooser_controller.cc | 2 +- + .../browser_plugin/browser_plugin_guest.cc | 2 +- + content/browser/browser_url_handler_impl.cc | 2 +- + .../browsing_data_filter_builder_impl.cc | 4 +- + content/browser/client_hints/client_hints.cc | 2 +- + .../browser/content_service_delegate_impl.cc | 2 +- + .../browser/devtools/devtools_http_handler.cc | 2 +- + .../devtools_protocol_encoding_cbor_fuzzer.cc | 2 +- + .../fileapi/browser_file_system_helper.cc | 2 +- + .../frame_host/interstitial_page_impl.cc | 2 +- + .../frame_host/navigation_controller_impl.cc | 4 +- + .../browser/frame_host/navigation_request.cc | 6 +- + content/browser/frame_host/navigator_impl.cc | 4 +- + .../frame_host/render_frame_host_impl.cc | 8 +- + .../gpu/gpu_data_manager_impl_private.cc | 2 +- + .../indexed_db/indexed_db_backing_store.cc | 2 +- + .../indexed_db/indexed_db_reporting.cc | 2 +- + content/browser/notification_service_impl.cc | 2 +- + content/browser/plugin_service_impl.cc | 2 +- + .../push_messaging/push_messaging_manager.cc | 2 +- + .../renderer_host/compositor_impl_android.cc | 4 +- + .../dwrite_font_lookup_table_builder_win.cc | 2 +- + .../dwrite_font_proxy_impl_win.cc | 2 +- + .../renderer_host/input/touch_action_filter.h | 2 +- + .../renderer_host/render_process_host_impl.cc | 2 +- + .../renderer_host/render_view_host_impl.h | 2 +- + .../renderer_host/text_input_client_mac.h | 2 +- + content/browser/resources/PRESUBMIT.py | 2 +- + content/browser/resources/gpu/info_view.js | 2 +- + content/browser/sandbox_ipc_linux.h | 2 +- + .../service_worker/service_worker_metrics.cc | 8 +- + content/browser/site_instance_impl.h | 6 +- + .../speech/endpointer/energy_endpointer.cc | 2 +- + .../speech/speech_recognition_engine.cc | 2 +- + content/browser/speech/tts_mac.mm | 2 +- + content/browser/speech/tts_win.cc | 2 +- + .../browser/web_contents/web_contents_impl.cc | 4 +- + .../browser/webauth/authenticator_common.cc | 14 +- + content/common/fetch/fetch_api_request.proto | 2 +- + content/common/input/input_handler.mojom | 2 +- + .../media/peer_connection_tracker.mojom | 2 +- + content/common/net/record_load_histograms.cc | 2 +- + content/common/renderer.mojom | 2 +- + content/public/PRESUBMIT.py | 4 +- + .../android/java/res/values/strings.xml | 2 +- + .../WebContentsAccessibilityImpl.java | 2 +- + .../captioning/CaptioningChangeDelegate.java | 2 +- + .../captioning/CaptioningStyle.java | 2 +- + .../input/ThreadedInputConnection.java | 2 +- + .../browser/browsing_data_filter_builder.h | 4 +- + content/public/browser/payment_app_provider.h | 2 +- + content/public/browser/render_view_host.h | 2 +- + content/public/browser/site_instance.h | 6 +- + content/public/browser/web_contents.h | 2 +- + content/public/common/content_features.cc | 10 +- + content/public/common/content_switches.cc | 6 +- + .../common/resource_request_body_android.cc | 2 +- + content/public/common/url_constants.cc | 2 +- + .../public/renderer/content_renderer_client.h | 4 +- + content/public/renderer/render_view.h | 2 +- + content/renderer/PRESUBMIT.py | 2 +- + .../renderer/loader/resource_dispatcher.cc | 2 +- + content/renderer/loader/resource_dispatcher.h | 2 +- + content/renderer/pepper/message_channel.cc | 2 +- + .../pepper/pepper_media_device_manager.cc | 2 +- + .../renderer/pepper/pepper_plugin_registry.cc | 2 +- + content/renderer/render_thread_impl.cc | 14 +- + content/renderer/render_widget.cc | 4 +- + .../renderer/renderer_blink_platform_impl.h | 2 +- + .../renderer_main_platform_delegate_linux.cc | 2 +- + .../web_service_worker_provider_impl.cc | 2 +- + .../chromium/content_shell/ShellManager.java | 2 +- + .../shell/browser/shell_browser_main_parts.cc | 2 +- + courgette/disassembler_win32.cc | 8 +- + courgette/third_party/bsdiff/bsdiff.h | 4 +- + courgette/third_party/bsdiff/bsdiff_apply.cc | 4 +- + courgette/third_party/bsdiff/bsdiff_create.cc | 10 +- + courgette/third_party/bsdiff/bsdiff_search.h | 6 +- + .../third_party/divsufsort/divsufsort.cc | 2 +- + courgette/third_party/divsufsort/divsufsort.h | 2 +- + .../divsufsort/divsufsort_private.h | 2 +- + courgette/third_party/divsufsort/sssort.cc | 2 +- + courgette/third_party/divsufsort/trsort.cc | 2 +- + courgette/types_win_pe.h | 4 +- + crypto/BUILD.gn | 2 +- + crypto/nss_util.cc | 4 +- + crypto/secure_util.h | 2 +- + device/bluetooth/bluetooth_adapter_android.cc | 4 +- + device/bluetooth/bluetooth_adapter_mac.mm | 2 +- + .../bluetooth_adapter_mac_metrics.mm | 2 +- + device/bluetooth/bluetooth_adapter_winrt.cc | 2 +- + .../bluetooth/bluetooth_classic_device_mac.mm | 4 +- + device/bluetooth/bluetooth_device_win.cc | 2 +- + device/bluetooth/bluetooth_device_winrt.cc | 4 +- + .../bluetooth/bluetooth_task_manager_win.cc | 6 +- + .../bluetooth/dbus/bluetooth_device_client.h | 2 +- + device/fido/fido_constants.h | 8 +- + device/fido/fido_strings.grd | 2 +- + .../gamepad_platform_data_fetcher_win.cc | 2 +- + device/gamepad/public/cpp/BUILD.gn | 2 +- + device/gamepad/raw_input_data_fetcher_win.cc | 2 +- + device/gamepad/xbox_controller_mac.mm | 2 +- + extensions/browser/PRESUBMIT.py | 2 +- + .../api/declarative/declarative_rule.h | 2 +- + .../feedback_private/feedback_private_api.cc | 2 +- + .../web_request/web_request_permissions.cc | 12 +- + ...web_request_proxying_url_loader_factory.cc | 2 +- + extensions/browser/event_listener_map.h | 2 +- + extensions/browser/extension_prefs_observer.h | 2 +- + extensions/browser/image_sanitizer.cc | 2 +- + extensions/browser/info_map.cc | 2 +- + extensions/browser/suggest_permission_util.cc | 4 +- + .../browser/updater/extension_downloader.cc | 6 +- + .../browser/updater/safe_manifest_parser.cc | 2 +- + .../browser/updater/safe_manifest_parser.h | 2 +- + .../browser/url_loader_factory_manager.cc | 2 +- + extensions/common/api/PRESUBMIT.py | 2 +- + extensions/common/api/app_runtime.idl | 4 +- + extensions/common/api/app_window.idl | 2 +- + .../common/api/bluetooth_low_energy.idl | 6 +- + extensions/common/api/bluetooth_socket.idl | 2 +- + .../common/api/extensions_manifest_types.json | 6 +- + extensions/common/api/networking_onc.idl | 2 +- + extensions/common/api/networking_private.idl | 6 +- + extensions/common/api/printer_provider.idl | 6 +- + extensions/common/api/serial.idl | 2 +- + extensions/common/api/socket.idl | 2 +- + extensions/common/api/sockets_tcp.idl | 2 +- + extensions/common/api/sockets_tcp_server.idl | 2 +- + extensions/common/api/sockets_udp.idl | 4 +- + extensions/common/csp_validator.cc | 4 +- + extensions/common/csp_validator.h | 6 +- + extensions/common/event_filtering_info.h | 2 +- + extensions/common/event_matcher.h | 2 +- + extensions/common/extension.cc | 2 +- + extensions/common/extension.h | 2 +- + extensions/common/extension_urls.cc | 10 +- + extensions/common/extension_urls.h | 2 +- + extensions/common/manifest_constants.cc | 2 +- + .../externally_connectable.cc | 4 +- + extensions/common/message_bundle.h | 2 +- + extensions/common/permissions/PRESUBMIT.py | 2 +- + .../common/permissions/api_permission.h | 2 +- + .../common/permissions/api_permission_set.h | 8 +- + .../common/permissions/permissions_data.h | 2 +- + extensions/common/url_pattern.cc | 2 +- + extensions/common/url_pattern.h | 14 +- + extensions/common/url_pattern_set.h | 18 +- + .../resources/permissions_custom_bindings.js | 4 +- + extensions/renderer/resources/platform_app.js | 2 +- + .../renderer/resources/web_request_event.js | 2 +- + extensions/renderer/script_context.cc | 8 +- + extensions/shell/browser/shell_prefs.cc | 2 +- + extensions/strings/extensions_strings.grd | 4 +- + gin/v8_initializer.cc | 4 +- + google_apis/drive/base_requests.cc | 2 +- + google_apis/drive/drive_api_parser.cc | 20 +- + google_apis/drive/drive_api_parser.h | 24 +- + google_apis/drive/drive_api_requests.h | 36 +- + google_apis/drive/drive_api_url_generator.cc | 4 +- + google_apis/gaia/gaia_auth_fetcher.cc | 4 +- + google_apis/gaia/gaia_auth_util.cc | 4 +- + google_apis/gaia/gaia_auth_util.h | 2 +- + google_apis/gaia/gaia_constants.cc | 28 +- + google_apis/gaia/gaia_oauth_client.cc | 6 +- + google_apis/gaia/gaia_oauth_client.h | 12 +- + google_apis/gaia/gaia_switches.h | 10 +- + google_apis/gaia/gaia_urls.cc | 24 +- + google_apis/gaia/google_service_auth_error.h | 2 +- + .../gaia/oauth2_access_token_fetcher_impl.h | 2 +- + .../gaia/oauth2_access_token_manager.cc | 2 +- + google_apis/gcm/base/mcs_util.cc | 2 +- + google_apis/gcm/engine/gservices_settings.cc | 6 +- + google_apis/gcm/engine/mcs_client.cc | 2 +- + google_apis/gcm/protocol/mcs.proto | 2 +- + google_apis/gcm/tools/mcs_probe.cc | 2 +- + google_apis/google_api_keys.cc | 2 +- + google_apis/google_api_keys.h | 4 +- + google_update/google_update_idl.idl | 2 +- + .../CHROMIUM_color_space_metadata.txt | 2 +- + .../CHROMIUM_texture_storage_image.txt | 2 +- + .../CHROMIUM/EGL_CHROMIUM_sync_control.txt | 2 +- + gpu/PRESUBMIT.py | 2 +- + gpu/command_buffer/PRESUBMIT.py | 2 +- + gpu/command_buffer/client/fenced_allocator.h | 2 +- + .../client/shared_memory_limits.h | 2 +- + .../external_vk_image_dawn_representation.cc | 4 +- + .../external_vk_image_dawn_representation.h | 2 +- + .../gles2_cmd_decoder_passthrough_doers.cc | 2 +- + .../shared_image_backing_factory_iosurface.mm | 6 +- + .../service/webgpu_decoder_impl.cc | 2 +- + gpu/config/gpu_info_collector_win.cc | 2 +- + gpu/vulkan/PRESUBMIT.py | 2 +- + headless/app/headless_shell_switches.cc | 2 +- + .../lib/browser/protocol/headless_handler.cc | 2 +- + .../dom_tree_extraction_expected_nodes.txt | 2 +- + .../resources/devtools_discovery_page.html | 2 +- + headless/public/headless_browser.h | 2 +- + infra/config/PRESUBMIT.py | 2 +- + ios/PRESUBMIT.py | 2 +- + ios/README.txt | 2 +- + ios/build/chrome_build.gni | 2 +- + .../app/strings/ios_chromium_strings.grd | 6 +- + .../app/strings/ios_google_chrome_strings.grd | 6 +- + ios/chrome/app/strings/ios_strings.grd | 24 +- + ios/chrome/browser/autofill/BUILD.gn | 4 +- + .../autofill/automation/automation_action.mm | 2 +- + .../browser_state/chrome_browser_state_impl.h | 2 +- + ...chrome_browser_state_removal_controller.mm | 2 +- + ios/chrome/browser/chrome_url_constants.cc | 26 +- + ios/chrome/browser/flags/about_flags.mm | 12 +- + .../omnibox_geolocation_controller.mm | 2 +- + ios/chrome/browser/omaha/omaha_service.mm | 2 +- + .../payments/ios_payment_instrument.mm | 4 +- + .../browser/payments/payment_request.mm | 4 +- + .../search_engines/resources/search_engine.js | 12 +- + .../search_engines/search_engine_tab_helper.h | 4 +- + .../search_engine_tab_helper.mm | 10 +- + .../browser/signin/authentication_service.h | 2 +- + ios/chrome/browser/signin/feature_flags.mm | 2 +- + .../ios_chrome_local_session_event_router.h | 4 +- + ios/chrome/browser/u2f/u2f_controller.mm | 4 +- + .../activity_services/activity_type_util.mm | 2 +- + .../signed_in_accounts_view_controller.mm | 2 +- + .../authentication/signin_earlgrey_utils.mm | 4 +- + .../content_suggestions/ntp_home_mediator.mm | 2 +- + .../welcome_to_chrome_view_controller.mm | 2 +- + ios/chrome/browser/ui/ntp/incognito_view.mm | 2 +- + .../ui/ntp/notification_promo_whats_new.mm | 2 +- + .../popup/autocomplete_match_formatter.mm | 2 +- + .../ui/payments/cells/page_info_item.mm | 2 +- + .../ui/payments/payment_request_manager.h | 2 +- + .../ui/settings/cells/search_engine_item.h | 2 +- + .../table_cell_catalog_view_controller.mm | 8 +- + .../translate_table_view_controller.mm | 2 +- + ios/chrome/browser/web/resources/print.js | 2 +- + ios/net/crn_http_protocol_handler.mm | 2 +- + .../browser/signin/chrome_identity_service.h | 4 +- + .../browser/signin/chrome_identity_service.mm | 4 +- + .../signin/fake_chrome_identity_service.mm | 2 +- + ios/showcase/alert/sc_alert_coordinator.mm | 8 +- + .../fake_autocomplete_suggestion.mm | 4 +- + ios/third_party/firebase/BUILD.gn | 2 +- + ios/third_party/firebase/cipd.yaml | 4 +- + ios/web/js_messaging/resources/setup_frame.js | 2 +- + ios/web/js_messaging/resources/window_id.js | 2 +- + .../navigation/error_retry_state_machine.h | 2 +- + ios/web/navigation/navigation_manager_impl.mm | 6 +- + ios/web/web_state/js/resources/base.js | 2 +- + .../js/resources/plugin_placeholder.js | 2 +- + ios/web_view/internal/cwv_flags.mm | 2 +- + ios/web_view/public/cwv_credit_card.h | 2 +- + ios/web_view/public/cwv_identity.h | 2 +- + .../public/cwv_translation_language.h | 2 +- + ios/web_view/public/cwv_web_view.h | 4 +- + ios/web_view/shell/shell_view_controller.m | 2 +- + ipc/ipc_channel.h | 2 +- + ipc/ipc_message_macros.h | 2 +- + .../notifier/base/gaia_token_pre_xmpp_auth.cc | 2 +- + jingle/notifier/base/notifier_options_util.cc | 4 +- + .../communicator/single_login_attempt.cc | 2 +- + media/PRESUBMIT.py | 4 +- + .../android/audio_track_output_stream.cc | 2 +- + media/audio/android/opensles_util.cc | 4 +- + .../audio/win/audio_low_latency_input_win.cc | 2 +- + .../audio/win/audio_low_latency_output_win.h | 2 +- + media/audio/win/core_audio_util_win.cc | 2 +- + media/audio/win/core_audio_util_win.h | 4 +- + .../media/AudioTrackOutputStream.java | 4 +- + .../org/chromium/media/MediaCodecUtil.java | 2 +- + .../chromium/media/MediaFormatBuilder.java | 2 +- + media/base/android/media_drm_bridge.cc | 8 +- + media/base/android/media_drm_key_type.h | 2 +- + media/base/android/media_player_bridge.h | 2 +- + media/base/container_names.cc | 2 +- + media/base/key_systems.cc | 2 +- + media/base/media_log.h | 2 +- + media/base/media_switches.cc | 2 +- + media/base/video_codecs.h | 2 +- + .../chromium/media/VideoCaptureCamera.java | 2 +- + .../chromium/media/VideoCaptureCamera2.java | 2 +- + .../android/video_capture_device_android.h | 2 +- + .../video/chromeos/camera_3a_controller.cc | 2 +- + .../video/chromeos/camera_3a_controller.h | 2 +- + .../video/linux/v4l2_capture_delegate.cc | 4 +- + .../video/video_capture_device_client.cc | 2 +- + media/capture/video/win/sink_filter_win.h | 2 +- + .../win/video_capture_device_factory_win.cc | 2 +- + .../win/video_capture_device_utils_win.cc | 2 +- + .../video/win/video_capture_device_win.cc | 6 +- + media/filters/dav1d_video_decoder.cc | 2 +- + media/filters/decrypting_audio_decoder.h | 2 +- + media/filters/decrypting_video_decoder.h | 2 +- + media/filters/video_cadence_estimator.h | 2 +- + .../android_video_encode_accelerator.h | 2 +- + media/gpu/windows/d3d11_cdm_proxy.cc | 6 +- + media/gpu/windows/d3d11_cdm_proxy.h | 4 +- + media/gpu/windows/d3d11_decryptor.cc | 4 +- + media/gpu/windows/d3d11_vp9_accelerator.cc | 2 +- + .../dxva_video_decode_accelerator_win.cc | 6 +- + .../dxva_video_decode_accelerator_win.h | 2 +- + ...foundation_video_encode_accelerator_win.cc | 4 +- + .../chromium/midi/UsbMidiDeviceAndroid.java | 2 +- + media/parsers/webp_parser.cc | 8 +- + media/parsers/webp_parser.h | 2 +- + .../renderers/paint_canvas_video_renderer.cc | 4 +- + media/renderers/video_resource_updater.cc | 2 +- + mojo/PRESUBMIT.py | 2 +- + mojo/core/channel.h | 2 +- + mojo/core/platform_handle_in_transit.cc | 2 +- + .../chromium/mojo/system/impl/CoreImpl.java | 2 +- + native_client_sdk/PRESUBMIT.py | 2 +- + .../doc_generated/cds2014/cpp.html | 12 +- + .../doc_generated/cds2014/python.html | 12 +- + .../community/application-gallery.html | 48 +- + .../doc_generated/community/index.html | 2 +- + .../doc_generated/community/middleware.html | 4 +- + .../devguide/coding/3D-graphics.html | 8 +- + .../coding/application-structure.html | 2 +- + .../doc_generated/devguide/coding/audio.html | 2 +- + .../devguide/coding/file-io.html | 2 +- + .../devguide/devcycle/building.html | 4 +- + .../devguide/devcycle/debugging.html | 8 +- + .../devguide/devcycle/dynamic-loading.html | 4 +- + .../devguide/devcycle/running.html | 8 +- + .../devguide/devcycle/vs-addin.html | 6 +- + .../doc_generated/devguide/distributing.html | 4 +- + .../doc_generated/devguide/index.html | 2 +- + .../devguide/tutorial/tutorial-part1.html | 4 +- + .../devguide/tutorial/tutorial-part2.html | 4 +- + native_client_sdk/doc_generated/faq.html | 36 +- + native_client_sdk/doc_generated/help.html | 16 +- + native_client_sdk/doc_generated/index.html | 8 +- + native_client_sdk/doc_generated/io2014.html | 6 +- + .../doc_generated/migration/index.html | 4 +- + .../doc_generated/nacl-and-pnacl.html | 2 +- + native_client_sdk/doc_generated/overview.html | 4 +- + .../c/struct_p_p_b___file_system__1__0.html | 2 +- + .../c/struct_p_p_b___host_resolver__1__0.html | 2 +- + .../struct_p_p_b___network_monitor__1__0.html | 2 +- + .../c/struct_p_p_b___network_proxy__1__0.html | 2 +- + .../c/struct_p_p_b___t_c_p_socket__1__2.html | 2 +- + .../c/struct_p_p_b___u_d_p_socket__1__2.html | 2 +- + .../cpp/classpp_1_1_file_system.html | 2 +- + .../cpp/classpp_1_1_host_resolver.html | 2 +- + .../cpp/classpp_1_1_network_proxy.html | 2 +- + .../cpp/classpp_1_1_t_c_p_socket.html | 2 +- + .../cpp/classpp_1_1_u_d_p_socket.html | 2 +- + .../c/struct_p_p_b___file_system__1__0.html | 2 +- + .../c/struct_p_p_b___host_resolver__1__0.html | 2 +- + .../struct_p_p_b___network_monitor__1__0.html | 2 +- + .../c/struct_p_p_b___network_proxy__1__0.html | 2 +- + .../c/struct_p_p_b___t_c_p_socket__1__2.html | 2 +- + .../c/struct_p_p_b___u_d_p_socket__1__2.html | 2 +- + .../cpp/classpp_1_1_file_system.html | 2 +- + .../cpp/classpp_1_1_host_resolver.html | 2 +- + .../cpp/classpp_1_1_network_proxy.html | 2 +- + .../cpp/classpp_1_1_t_c_p_socket.html | 2 +- + .../cpp/classpp_1_1_u_d_p_socket.html | 2 +- + .../c/struct_p_p_b___file_system__1__0.html | 2 +- + .../c/struct_p_p_b___host_resolver__1__0.html | 2 +- + .../struct_p_p_b___network_monitor__1__0.html | 2 +- + .../c/struct_p_p_b___network_proxy__1__0.html | 2 +- + .../c/struct_p_p_b___t_c_p_socket__1__2.html | 2 +- + .../c/struct_p_p_b___u_d_p_socket__1__2.html | 2 +- + .../cpp/classpp_1_1_file_system.html | 2 +- + .../cpp/classpp_1_1_host_resolver.html | 2 +- + .../cpp/classpp_1_1_network_proxy.html | 2 +- + .../cpp/classpp_1_1_t_c_p_socket.html | 2 +- + .../cpp/classpp_1_1_u_d_p_socket.html | 2 +- + .../publications-and-presentations.html | 48 +- + .../doc_generated/reference/design-docs.html | 30 +- + .../doc_generated/reference/ideas.html | 18 +- + .../pnacl-c-cpp-language-support.html | 2 +- + .../reference/pnacl-undefined-behavior.html | 12 +- + .../sandbox_internals/arm-32-bit-sandbox.html | 6 +- + .../reference/sandbox_internals/index.html | 6 +- + .../sandbox_internals/x86-64-sandbox.html | 2 +- + .../doc_generated/rest-devsite-examples.html | 2 +- + .../doc_generated/sdk/download.html | 4 +- + .../doc_generated/sdk/release-notes.html | 22 +- + .../src/build_tools/build_artifacts.py | 2 +- + .../src/build_tools/build_paths.py | 2 +- + .../src/build_tools/build_sdk.py | 2 +- + .../src/build_tools/buildbot_common.py | 2 +- + .../src/build_tools/buildbot_run.py | 2 +- + .../build_tools/json/naclsdk_manifest.json | 32 +- + .../build_tools/json/naclsdk_manifest0.json | 2 +- + .../build_tools/json/naclsdk_manifest2.json | 4 +- + .../src/build_tools/make_simple.py | 2 +- + .../src/build_tools/nacl-mono-buildbot.py | 2 +- + .../src/build_tools/nacl-mono-builder.py | 2 +- + .../src/build_tools/sdk_tools/cacerts.txt | 2 +- + .../src/build_tools/sdk_tools/config.py | 2 +- + .../build_tools/sdk_tools/sdk_update_main.py | 2 +- + .../third_party/fancy_urllib/__init__.py | 4 +- + .../src/build_tools/update_nacl_manifest.py | 6 +- + .../src/build_tools/update_sdktools.py | 2 +- + native_client_sdk/src/doc/Makefile | 2 +- + native_client_sdk/src/doc/_book.yaml | 2 +- + .../src/doc/_sphinxext/chromesite_builder.py | 2 +- + .../src/doc/_sphinxext/devsite_builder.py | 2 +- + native_client_sdk/src/doc/conf.py | 2 +- + .../src/doc/doxygen/generate_docs.py | 2 +- + .../src/examples/api/socket/index.html | 2 +- + .../api/url_loader/url_loader_handler.h | 2 +- + .../src/examples/demo/drive/drive.cc | 20 +- + .../src/examples/demo/drive/index.html | 2 +- + .../src/examples/demo/nacl_io_demo/index.html | 6 +- + .../src/gonacl_appengine/gonacl.py | 8 +- + .../static/bullet/fullscreen.html | 4 +- + .../gonacl_appengine/static/bullet/index.html | 4 +- + .../gonacl_appengine/static/bullet/main.js | 2 +- + .../gonacl_appengine/static/cube/example.js | 4 +- + .../gonacl_appengine/static/cube/index.html | 2 +- + .../gonacl_appengine/static/earth/example.js | 4 +- + .../gonacl_appengine/static/earth/index.html | 2 +- + .../gonacl_appengine/static/home/index.html | 2 +- + .../src/gonacl_appengine/static/index.html | 6 +- + .../gonacl_appengine/static/life/example.js | 2 +- + .../gonacl_appengine/static/life/index.html | 2 +- + .../gonacl_appengine/static/lua/index.html | 6 +- + .../src/gonacl_appengine/static/lua/lua.js | 2 +- + .../gonacl_appengine/static/lua/naclterm.js | 2 +- + .../static/smoothlife/example.js | 2 +- + .../static/smoothlife/index.html | 4 +- + .../static/voronoi/example.js | 2 +- + .../static/voronoi/index.html | 2 +- + .../src/libraries/nacl_io/include/sys/time.h | 2 +- + .../src/libraries/nacl_io/include/utime.h | 2 +- + .../src/libraries/nacl_io/syscalls/isatty.c | 2 +- + .../src/libraries/nacl_io/syscalls/truncate.c | 2 +- + native_client_sdk/src/resources/common.js | 2 +- + native_client_sdk/src/tools/fix_manifest.py | 2 +- + native_client_sdk/src/web/manifest.html | 6 +- + net/BUILD.gn | 2 +- + net/android/cellular_signal_strength.cc | 2 +- + net/android/http_auth_negotiate_android.h | 2 +- + .../chromium/net/AndroidNetworkLibrary.java | 2 +- + .../net/HttpNegotiateAuthenticator.java | 2 +- + .../net/NetworkChangeNotifierAutoDetect.java | 4 +- + .../java/src/org/chromium/net/X509Util.java | 2 +- + net/base/data_url.cc | 4 +- + net/base/file_stream_context.h | 2 +- + net/base/filename_util.cc | 2 +- + net/base/filename_util_internal.cc | 4 +- + net/base/load_timing_info.h | 2 +- + net/base/network_change_notifier_mac.cc | 2 +- + net/base/network_change_notifier_win.cc | 4 +- + net/base/network_interfaces_win.cc | 4 +- + net/base/platform_mime_util_mac.mm | 2 +- + .../registry_controlled_domain.cc | 4 +- + .../registry_controlled_domain.h | 24 +- + net/base/url_util.cc | 4 +- + net/cert/cert_verifier.h | 2 +- + net/cert/cert_verify_proc.cc | 4 +- + net/cert/cert_verify_proc.h | 2 +- + net/cert/cert_verify_proc_mac.cc | 2 +- + net/cert/cert_verify_proc_nss.cc | 2 +- + net/cert/cert_verify_proc_win.cc | 2 +- + net/cert/internal/signature_algorithm.cc | 2 +- + net/cert/internal/verify_certificate_chain.cc | 2 +- + net/cert/known_roots_nss.cc | 2 +- + net/cert/nss_cert_database.cc | 2 +- + net/cert/symantec_certs.h | 6 +- + net/cert/x509_certificate.cc | 2 +- + net/cert/x509_util_mac.cc | 2 +- + net/cert/x509_util_mac.h | 2 +- + net/cookies/canonical_cookie.cc | 4 +- + net/cookies/cookie_monster.cc | 6 +- + net/cookies/cookie_monster.h | 8 +- + net/cookies/cookie_util.h | 4 +- + net/cookies/parsed_cookie.cc | 4 +- + net/cookies/parsed_cookie.h | 4 +- + .../http_security_header_047.txt | Bin 166 -> 169 bytes + net/disk_cache/disk_cache.h | 2 +- + net/disk_cache/simple/simple_backend_impl.h | 2 +- + net/disk_cache/simple/simple_index.cc | 2 +- + net/dns/dns_config_service_win.cc | 2 +- + net/dns/dns_config_service_win.h | 2 +- + net/dns/dns_transaction.cc | 2 +- + net/dns/dns_util.cc | 2 +- + net/dns/dns_util.h | 2 +- + net/dns/mdns_client.h | 2 +- + net/dns/notify_watcher_mac.cc | 4 +- + .../sqlite/sqlite_persistent_cookie_store.cc | 12 +- + net/http/alternative_service.h | 2 +- + net/http/http_auth_challenge_tokenizer.cc | 2 +- + net/http/http_auth_handler_negotiate.cc | 8 +- + net/http/http_auth_handler_ntlm.cc | 2 +- + net/http/http_auth_handler_ntlm_win.cc | 4 +- + net/http/http_auth_sspi_win.cc | 4 +- + net/http/http_cache_transaction.cc | 2 +- + net/http/http_chunked_decoder.cc | 2 +- + net/http/http_chunked_decoder.h | 2 +- + net/http/http_network_transaction.cc | 2 +- + net/http/http_response_headers.cc | 4 +- + net/http/http_server_properties.cc | 4 +- + net/http/http_server_properties.h | 4 +- + net/http/http_server_properties_manager.cc | 6 +- + net/http/http_stream_parser.cc | 2 +- + net/http/http_util.cc | 2 +- + net/http/transport_security_state.cc | 2 +- + net/http/transport_security_state.h | 2 +- + net/http/transport_security_state_static.json | 494 +- + net/http/url_security_manager_win.cc | 6 +- + net/log/file_net_log_observer.cc | 2 +- + net/log/net_log.h | 2 +- + net/nqe/network_quality_estimator_params.cc | 4 +- + net/nqe/socket_watcher.cc | 2 +- + net/ntlm/ntlm.h | 2 +- + net/ntlm/ntlm_buffer_reader.h | 2 +- + net/ntlm/ntlm_buffer_writer.h | 2 +- + net/ntlm/ntlm_client.cc | 4 +- + net/ntlm/ntlm_client.h | 8 +- + .../dhcp_pac_file_adapter_fetcher_win.cc | 4 +- + net/proxy_resolution/pac_file_decider.cc | 2 +- + net/proxy_resolution/pac_js_library.h | 6 +- + net/proxy_resolution/proxy_bypass_rules.cc | 2 +- + net/proxy_resolution/proxy_bypass_rules.h | 6 +- + net/proxy_resolution/proxy_config.h | 2 +- + .../proxy_config_service_android.cc | 4 +- + .../proxy_config_service_linux.cc | 6 +- + .../proxy_resolution_service.cc | 2 +- + net/proxy_resolution/proxy_resolver_mac.h | 2 +- + .../proxy_resolver_v8_tracing.cc | 2 +- + .../proxy_resolver_v8_tracing.h | 2 +- + .../proxy_resolver_winhttp.cc | 4 +- + net/quic/crypto/proof_verifier_chromium.cc | 2 +- + net/quic/quic_stream_factory.cc | 8 +- + net/socket/socket_options.h | 2 +- + net/socket/tcp_socket_win.cc | 4 +- + net/socket/udp_socket_posix.h | 2 +- + net/socket/udp_socket_win.h | 4 +- + net/spdy/spdy_session.cc | 2 +- + net/ssl/client_cert_store_mac.cc | 2 +- + net/ssl/client_cert_store_win.cc | 2 +- + net/ssl/openssl_ssl_util.cc | 2 +- + net/ssl/ssl_key_logger.h | 2 +- + net/ssl/ssl_platform_key_mac.cc | 2 +- + .../nsNSSCertificateDB.cpp | 2 +- + .../nsNSSCertificateDB.h | 2 +- + .../mozilla_security_manager/nsPKCS12Blob.cpp | 2 +- + .../mozilla_security_manager/nsPKCS12Blob.h | 2 +- + net/third_party/nss/ssl/cmpcert.cc | 2 +- + net/third_party/nss/ssl/cmpcert.h | 2 +- + net/tools/print_certificates.py | 2 +- + net/tools/quic/quic_simple_client_bin.cc | 18 +- + .../transport_security_state_generator.cc | 2 +- + net/url_request/redirect_util.cc | 2 +- + net/url_request/url_fetcher.h | 2 +- + pdf/document_loader_impl.cc | 2 +- + pdf/out_of_process_instance.h | 2 +- + pdf/paint_aggregator.h | 2 +- + pdf/pdfium/pdfium_engine.cc | 2 +- + ppapi/api/pp_macros.idl | 2 +- + ppapi/api/ppb_file_system.idl | 2 +- + ppapi/api/ppb_host_resolver.idl | 2 +- + ppapi/api/ppb_network_monitor.idl | 2 +- + ppapi/api/ppb_network_proxy.idl | 2 +- + ppapi/api/ppb_tcp_socket.idl | 2 +- + ppapi/api/ppb_udp_socket.idl | 2 +- + .../private/ppp_flash_browser_operations.idl | 4 +- + ppapi/c/dev/ppb_var_deprecated.h | 2 +- + ppapi/c/dev/ppp_class_deprecated.h | 2 +- + ppapi/c/pp_macros.h | 2 +- + ppapi/c/ppb_file_system.h | 2 +- + ppapi/c/ppb_host_resolver.h | 2 +- + ppapi/c/ppb_network_monitor.h | 2 +- + ppapi/c/ppb_network_proxy.h | 2 +- + ppapi/c/ppb_tcp_socket.h | 2 +- + ppapi/c/ppb_udp_socket.h | 2 +- + .../c/private/ppp_flash_browser_operations.h | 4 +- + ppapi/cpp/dev/scriptable_object_deprecated.h | 2 +- + ppapi/cpp/file_system.h | 2 +- + ppapi/cpp/host_resolver.h | 2 +- + ppapi/cpp/network_proxy.h | 2 +- + ppapi/cpp/tcp_socket.h | 2 +- + ppapi/cpp/udp_socket.h | 2 +- + .../untrusted/irt_stub/ppapi_plugin_start.c | 2 +- + ppapi/utility/graphics/paint_aggregator.h | 2 +- + printing/backend/print_backend_win.cc | 2 +- + printing/backend/win_helper.cc | 6 +- + printing/metafile_skia.cc | 2 +- + printing/print_settings_initializer_win.cc | 2 +- + printing/printing_context.h | 2 +- + .../android/java/res/layout/host_offline.xml | 2 +- + .../android/java/res/layout/host_online.xml | 2 +- + .../org/chromium/chromoting/Chromoting.java | 8 +- + .../chromium/chromoting/InputEventSender.java | 2 +- + .../chromoting/PrivacyPolicyActivity.java | 2 +- + .../chromoting/TermsOfServiceActivity.java | 2 +- + .../chromoting/ThirdPartyTokenFetcher.java | 2 +- + .../chromoting/help/HelpAndFeedbackBasic.java | 6 +- + .../chromoting/jni/JniOAuthTokenGetter.java | 6 +- + remoting/base/breakpad_mac.mm | 2 +- + remoting/base/chromium_url_request.cc | 2 +- + remoting/base/oauth_token_exchanger.cc | 2 +- + remoting/base/service_urls.cc | 6 +- + remoting/codec/video_encoder_vpx.cc | 6 +- + remoting/codec/webrtc_video_encoder_vpx.cc | 6 +- + remoting/host/evaluate_capability.cc | 2 +- + remoting/host/input_injector_x11.cc | 2 +- + ...rome.remote_assistance-firefox.json.jinja2 | 2 +- + remoting/host/linux/linux_me2me_host.py | 2 +- + remoting/host/linux/remoting_user_session.cc | 2 +- + remoting/host/remoting_me2me_host.cc | 2 +- + ....chrome.remote_desktop-firefox.json.jinja2 | 2 +- + remoting/host/setup/start_host_main.cc | 2 +- + remoting/host/touch_injector_win.cc | 2 +- + remoting/ios/app/app_delegate.mm | 4 +- + remoting/ios/app/help_view_controller.mm | 2 +- + .../ios/app/host_setup_view_controller.mm | 2 +- + .../ios/app/remoting_menu_view_controller.mm | 10 +- + .../facade/remoting_oauth_authentication.mm | 2 +- + remoting/protocol/fake_session.cc | 2 +- + remoting/protocol/socket_util.cc | 2 +- + remoting/resources/remoting_strings.grd | 18 +- + remoting/tools/build/remoting_localize.py | 6 +- + remoting/tools/zip2msi.py | 2 +- + remoting/webapp/base/js/base.js | 2 +- + remoting/webapp/base/js/oauth2.js | 6 +- + remoting/webapp/base/js/xmpp_connection.js | 16 +- + remoting/webapp/base/js/xmpp_login_handler.js | 2 +- + remoting/webapp/build-webapp.py | 22 +- + remoting/webapp/crd/html/butter_bar.html | 2 +- + .../dialog_client_host_needs_upgrade.html | 2 +- + .../crd/html/dialog_client_pin_prompt.html | 2 +- + .../crd/html/dialog_client_unconnected.html | 2 +- + .../webapp/crd/html/dialog_host_setup.html | 2 +- + remoting/webapp/crd/html/ui_it2me.html | 2 +- + remoting/webapp/crd/js/apps_v2_migration.js | 2 +- + remoting/webapp/crd/js/feedback.js | 2 +- + remoting/webapp/crd/js/gcd_client.js | 2 +- + remoting/webapp/crd/js/host_install_dialog.js | 2 +- + remoting/webapp/crd/js/host_installer.js | 12 +- + remoting/webapp/crd/js/host_screen.js | 2 +- + .../crd/js/third_party_token_fetcher.js | 2 +- + remoting/webapp/crd/manifest.json.jinja2 | 12 +- + remoting/webapp/js_proto/chrome_mocks.js | 2 +- + remoting/webapp/js_proto/dom_proto.js | 4 +- + rlz/lib/financial_ping.cc | 2 +- + sandbox/features.gni | 2 +- + .../syscall_parameters_restrictions.cc | 10 +- + sandbox/linux/services/libc_interceptor.cc | 6 +- + sandbox/linux/services/libc_interceptor.h | 2 +- + .../suid/client/setuid_sandbox_client.cc | 2 +- + .../linux/suid/client/setuid_sandbox_host.cc | 4 +- + sandbox/linux/suid/sandbox.c | 4 +- + sandbox/win/src/interception.cc | 2 +- + sandbox/win/src/interception.h | 2 +- + sandbox/win/src/interception_agent.cc | 2 +- + sandbox/win/src/interception_agent.h | 2 +- + sandbox/win/src/interception_internal.h | 2 +- + sandbox/win/src/named_pipe_dispatcher.cc | 2 +- + sandbox/win/src/nt_internals.h | 4 +- + sandbox/win/src/process_mitigations.cc | 2 +- + sandbox/win/src/resolver.h | 2 +- + sandbox/win/src/sandbox_nt_util.h | 2 +- + sandbox/win/src/sandbox_policy.h | 2 +- + sandbox/win/src/sandbox_rand.cc | 2 +- + sandbox/win/src/security_level.h | 4 +- + services/BUILD.gn | 2 +- + services/audio/audio_sandbox_win.cc | 2 +- + .../platform_sensor_ambient_light_mac.cc | 2 +- + .../platform_sensor_reader_win.cc | 2 +- + .../platform_sensor_reader_winrt.cc | 2 +- + .../geolocation/LocationProviderAndroid.java | 2 +- + .../geolocation/LocationProviderGmsCore.java | 2 +- + .../geolocation/network_location_request.cc | 2 +- + .../src/org/chromium/device/nfc/NFCTest.java | 2 +- + .../device/public/mojom/geoposition.mojom | 2 +- + .../image_annotation_service.h | 2 +- + services/network/cert_verify_proc_chromeos.cc | 2 +- + .../network/cross_origin_read_blocking.cc | 8 +- + services/network/cross_origin_read_blocking.h | 2 +- + .../public/cpp/is_potentially_trustworthy.cc | 2 +- + .../network/public/cpp/network_switches.cc | 2 +- + .../network/public/cpp/resource_response.h | 2 +- + .../network/public/mojom/cookie_manager.mojom | 4 +- + .../public/mojom/network_context.mojom | 4 +- + .../public/mojom/network_service.mojom | 2 +- + .../network/public/mojom/udp_socket.mojom | 2 +- + services/network/websocket_throttler.h | 2 +- + .../queued_request_dispatcher.cc | 2 +- + .../client_process_impl.h | 2 +- + .../tracing_observer.cc | 2 +- + .../memory_instrumentation.mojom | 4 +- + .../service_manager/embedder/descriptors.h | 2 +- + .../service_manager/public/cpp/manifest.h | 2 +- + .../sandbox/linux/sandbox_linux.h | 2 +- + .../sandbox/win/sandbox_win.cc | 8 +- + .../service_process_launcher.cc | 2 +- + .../zygote/host/zygote_communication_linux.h | 2 +- + .../zygote/host/zygote_host_impl_linux.cc | 2 +- + .../zygote/zygote_host_linux.h | 2 +- + .../service_manager/zygote/zygote_linux.cc | 4 +- + .../service_manager/zygote/zygote_linux.h | 2 +- + .../zygote/zygote_main_linux.cc | 2 +- + .../shape_detection/BarcodeDetectionImpl.java | 2 +- + .../shape_detection/FaceDetectionImpl.java | 2 +- + .../text_detection_impl_win.cc | 2 +- + .../perfetto/privacy_filtered_fields-inl.h | 2 +- + services/tracing/public/mojom/constants.mojom | 2 +- + .../public/mojom/perfetto_service.mojom | 4 +- + skia/config/SkUserConfig.h | 4 +- + sql/database.cc | 4 +- + storage/browser/blob/blob_reader.h | 2 +- + storage/browser/fileapi/file_system_backend.h | 2 +- + styleguide/c++/c++11.html | 20 +- + styleguide/c++/chromium-cpp/main.py | 2 +- + .../markdown/extensions/smarty.py | 2 +- + .../abseil-cpp/absl/algorithm/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/base/config.h | 2 +- + .../absl/base/internal/direct_mmap.h | 2 +- + .../abseil-cpp/absl/debugging/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/flags/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/hash/BUILD.gn | 6 +- + .../abseil-cpp/absl/hash/internal/city.h | 2 +- + third_party/abseil-cpp/absl/memory/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/meta/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/random/BUILD.gn | 6 +- + .../abseil-cpp/absl/random/internal/BUILD.gn | 6 +- + .../absl/random/internal/platform.h | 2 +- + third_party/abseil-cpp/absl/strings/BUILD.gn | 6 +- + .../abseil-cpp/absl/strings/string_view.cc | 2 +- + .../abseil-cpp/absl/synchronization/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/time/BUILD.gn | 6 +- + .../absl/time/internal/cctz/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/time/time.h | 2 +- + third_party/abseil-cpp/absl/types/BUILD.gn | 6 +- + third_party/afl/src/Makefile | 4 +- + third_party/afl/src/afl-analyze.c | 4 +- + third_party/afl/src/afl-as.c | 6 +- + third_party/afl/src/afl-as.h | 6 +- + third_party/afl/src/afl-fuzz.c | 6 +- + third_party/afl/src/afl-gcc.c | 4 +- + third_party/afl/src/afl-gotcpu.c | 6 +- + third_party/afl/src/afl-showmap.c | 4 +- + third_party/afl/src/afl-tmin.c | 4 +- + third_party/afl/src/alloc-inl.h | 2 +- + third_party/afl/src/config.h | 2 +- + third_party/afl/src/debug.h | 2 +- + third_party/afl/src/docs/QuickStartGuide.txt | 2 +- + third_party/afl/src/docs/historical_notes.txt | 2 +- + third_party/afl/src/docs/notes_for_asan.txt | 2 +- + third_party/afl/src/docs/sister_projects.txt | 4 +- + .../canvas_harness/canvas_harness.html | 2 +- + .../persistent_demo/persistent_demo.c | 2 +- + .../post_library/post_library.so.c | 2 +- + .../post_library/post_library_png.so.c | 2 +- + third_party/afl/src/hash.h | 2 +- + third_party/afl/src/libdislocator/Makefile | 2 +- + .../afl/src/libdislocator/libdislocator.so.c | 2 +- + third_party/afl/src/libtokencap/Makefile | 2 +- + .../afl/src/libtokencap/libtokencap.so.c | 2 +- + third_party/afl/src/llvm_mode/Makefile | 6 +- + .../afl/src/llvm_mode/afl-clang-fast.c | 8 +- + third_party/afl/src/llvm_mode/afl-llvm-rt.o.c | 4 +- + .../src/qemu_mode/patches/afl-qemu-cpu-inl.h | 4 +- + third_party/afl/src/types.h | 2 +- + .../src/src/crazy_linker_ashmem.h | 2 +- + .../src/src/crazy_linker_debug.h | 2 +- + .../src/src/crazy_linker_library_list.cpp | 2 +- + .../src/src/crazy_linker_rdebug.cpp | 4 +- + .../src/src/crazy_linker_relr_relocations.h | 2 +- + .../src/src/crazy_linker_shared_library.cpp | 4 +- + .../src/src/crazy_linker_system_android.cpp | 2 +- + .../src/src/crazy_linker_wrappers.cpp | 2 +- + .../Android_SDK_License-December_9_2016.txt | 4 +- + .../development/scripts/stack.py | 2 +- + third_party/apple_apsl/cssmapplePriv.h | 2 +- + third_party/ashmem/ashmem-dev.c | 2 +- + third_party/axe-core/axe.js | 2 +- + third_party/axe-core/axe.min.js | 2 +- + third_party/blanketjs/src/blanket.js | 8 +- + third_party/blink/PRESUBMIT.py | 4 +- + .../common/frame/user_activation_state.h | 4 +- + .../public/common/origin_trials/trial_token.h | 2 +- + .../document_metadata/copyless_paste.mojom | 2 +- + .../public/mojom/feature_policy/PRESUBMIT.py | 2 +- + .../mojom/payments/payment_handler_host.mojom | 2 +- + .../mojom/payments/payment_request.mojom | 2 +- + .../mojom/remote_objects/remote_objects.mojom | 2 +- + .../public/mojom/web_feature/PRESUBMIT.py | 2 +- + .../platform/linux/web_sandbox_support.h | 2 +- + third_party/blink/public/platform/platform.h | 4 +- + .../public/platform/web_keyboard_event.h | 2 +- + .../blink/public/platform/web_url_response.h | 2 +- + third_party/blink/public/web/web_node.h | 2 +- + .../blink/renderer/bindings/PRESUBMIT.py | 2 +- + .../blink/renderer/bindings/core/v8/BUILD.gn | 2 +- + .../bindings/core/v8/script_regexp.cc | 2 +- + .../renderer/bindings/core/v8/window_proxy.cc | 4 +- + .../renderer/bindings/core/v8/window_proxy.h | 2 +- + .../scripts/aggregate_generated_bindings.py | 2 +- + .../bindings/scripts/blink_idl_lexer.py | 2 +- + .../bindings/scripts/blink_idl_parser.py | 4 +- + .../bindings/scripts/code_generator_v8.py | 2 +- + .../scripts/compute_global_objects.py | 2 +- + .../compute_interfaces_info_individual.py | 2 +- + .../compute_interfaces_info_overall.py | 2 +- + .../scripts/generate_global_constructors.py | 2 +- + .../renderer/bindings/scripts/idl_compiler.py | 2 +- + .../bindings/scripts/idl_definitions.py | 2 +- + .../renderer/bindings/scripts/idl_reader.py | 4 +- + .../bindings/scripts/idl_validator.py | 2 +- + .../scripts/interface_dependency_resolver.py | 2 +- + .../renderer/bindings/scripts/utilities.py | 2 +- + .../bindings/scripts/v8_attributes.py | 2 +- + .../bindings/scripts/v8_callback_function.py | 2 +- + .../bindings/scripts/v8_callback_interface.py | 2 +- + .../renderer/bindings/scripts/v8_interface.py | 2 +- + .../renderer/bindings/scripts/v8_methods.py | 2 +- + .../renderer/bindings/scripts/v8_types.py | 2 +- + .../renderer/bindings/scripts/v8_utilities.py | 2 +- + .../core/style/make_computed_style_base.py | 2 +- + .../build/scripts/update_css_ranking.py | 4 +- + .../memory_usage_monitor_android.cc | 2 +- + third_party/blink/renderer/core/BUILD.gn | 2 +- + .../renderer/core/animation/sampled_effect.cc | 2 +- + .../renderer/core/clipboard/data_transfer.h | 2 +- + .../css/css_computed_style_declaration.cc | 2 +- + .../renderer/core/css/css_font_face_rule.idl | 2 +- + .../renderer/core/css/css_global_rule_set.h | 2 +- + .../renderer/core/css/css_import_rule.idl | 2 +- + .../renderer/core/css/css_media_rule.idl | 2 +- + .../blink/renderer/core/css/css_page_rule.idl | 2 +- + .../core/css/css_primitive_value_mappings.h | 2 +- + .../core/css/css_properties_ranking.json5 | 2 +- + .../blink/renderer/core/css/css_rule.idl | 2 +- + .../blink/renderer/core/css/css_selector.cc | 2 +- + .../core/css/css_style_declaration.idl | 2 +- + .../renderer/core/css/css_style_rule.idl | 2 +- + .../renderer/core/css/css_style_sheet.idl | 2 +- + .../css/invalidation/pending_invalidations.h | 2 +- + .../core/css/invalidation/style_invalidator.h | 2 +- + .../blink/renderer/core/css/parser/css.proto | 8 +- + .../core/css/parser/css_selector_parser.cc | 6 +- + .../core/css/remote_font_face_source.cc | 2 +- + .../core/css/resolver/style_adjuster.cc | 2 +- + .../core/css/resolver/style_resolver.cc | 2 +- + .../renderer/core/css/rule_feature_set.cc | 2 +- + .../renderer/core/css/selector_checker.cc | 2 +- + .../blink/renderer/core/css/style_engine.cc | 6 +- + .../blink/renderer/core/css/style_sheet.idl | 2 +- + .../renderer/core/css/style_sheet_list.idl | 2 +- + .../renderer/core/dom/abort_controller.h | 2 +- + .../blink/renderer/core/dom/abort_signal.h | 2 +- + third_party/blink/renderer/core/dom/attr.idl | 2 +- + .../blink/renderer/core/dom/cdata_section.idl | 2 +- + .../blink/renderer/core/dom/child_node.idl | 2 +- + .../renderer/core/dom/class_collection.cc | 2 +- + .../renderer/core/dom/class_collection.h | 2 +- + .../blink/renderer/core/dom/comment.idl | 2 +- + .../blink/renderer/core/dom/container_node.cc | 2 +- + .../renderer/core/dom/dom_implementation.idl | 2 +- + .../blink/renderer/core/dom/element.cc | 6 +- + third_party/blink/renderer/core/dom/element.h | 2 +- + .../blink/renderer/core/dom/element.idl | 4 +- + .../renderer/core/dom/element_rare_data.h | 2 +- + .../blink/renderer/core/dom/events/event.cc | 2 +- + .../blink/renderer/core/dom/events/event.h | 2 +- + .../blink/renderer/core/dom/events/event.idl | 2 +- + .../core/dom/events/event_listener.idl | 2 +- + .../renderer/core/dom/events/event_target.cc | 4 +- + .../renderer/core/dom/events/event_target.idl | 2 +- + .../dom/events/registered_event_listener.cc | 2 +- + .../dom/events/registered_event_listener.h | 2 +- + .../core/dom/first_letter_pseudo_element.cc | 2 +- + .../core/dom/first_letter_pseudo_element.h | 2 +- + .../blink/renderer/core/dom/iterator.idl | 2 +- + .../renderer/core/dom/named_node_map.idl | 2 +- + third_party/blink/renderer/core/dom/node.idl | 2 +- + .../renderer/core/dom/node_computed_style.h | 2 +- + .../blink/renderer/core/dom/node_filter.idl | 2 +- + .../blink/renderer/core/dom/node_iterator.cc | 2 +- + .../blink/renderer/core/dom/node_iterator.h | 2 +- + .../blink/renderer/core/dom/node_iterator.idl | 2 +- + .../renderer/core/dom/node_iterator_base.cc | 2 +- + .../renderer/core/dom/node_iterator_base.h | 2 +- + .../blink/renderer/core/dom/node_list.idl | 2 +- + .../renderer/core/dom/node_lists_node_data.h | 2 +- + .../blink/renderer/core/dom/node_rare_data.h | 2 +- + .../core/dom/processing_instruction.idl | 2 +- + third_party/blink/renderer/core/dom/range.cc | 4 +- + third_party/blink/renderer/core/dom/range.idl | 2 +- + .../renderer/core/dom/space_split_string.cc | 2 +- + .../renderer/core/dom/transform_source.h | 2 +- + .../blink/renderer/core/dom/tree_walker.cc | 2 +- + .../blink/renderer/core/dom/tree_walker.h | 2 +- + .../blink/renderer/core/dom/tree_walker.idl | 2 +- + .../editing/commands/smart_replace_icu.cc | 2 +- + .../renderer/core/editing/dom_selection.cc | 4 +- + .../renderer/core/editing/editing_behavior.cc | 4 +- + .../core/editing/editing_utilities.cc | 2 +- + .../core/editing/finder/find_buffer.h | 2 +- + .../cold_mode_spell_check_requester.h | 2 +- + .../hot_mode_spell_check_requester.h | 2 +- + .../spellcheck/idle_spell_check_controller.h | 2 +- + .../events/application_cache_error_event.idl | 2 +- + .../core/events/before_unload_event.cc | 2 +- + .../core/events/before_unload_event.h | 2 +- + .../renderer/core/events/clipboard_event.cc | 2 +- + .../renderer/core/events/clipboard_event.h | 2 +- + .../blink/renderer/core/events/input_event.cc | 2 +- + .../renderer/core/events/keyboard_event.cc | 2 +- + .../renderer/core/events/keyboard_event.h | 2 +- + .../renderer/core/events/keyboard_event.idl | 2 +- + .../blink/renderer/core/events/mouse_event.cc | 2 +- + .../blink/renderer/core/events/mouse_event.h | 2 +- + .../renderer/core/events/mutation_event.cc | 2 +- + .../renderer/core/events/mutation_event.h | 2 +- + .../blink/renderer/core/events/touch_event.cc | 2 +- + .../blink/renderer/core/events/ui_event.cc | 2 +- + .../blink/renderer/core/events/ui_event.h | 2 +- + .../core/events/ui_event_with_key_state.h | 2 +- + .../blink/renderer/core/events/wheel_event.cc | 4 +- + .../blink/renderer/core/events/wheel_event.h | 2 +- + .../renderer/core/events/wheel_event.idl | 2 +- + .../exported/web_plugin_container_impl.cc | 2 +- + .../core/exported/web_searchable_form_data.cc | 2 +- + .../core/fileapi/file_reader_loader_client.h | 2 +- + .../blink/renderer/core/frame/PRESUBMIT.py | 2 +- + .../blink/renderer/core/frame/deprecation.cc | 52 +- + .../core/frame/embedded_content_view.h | 2 +- + third_party/blink/renderer/core/frame/frame.h | 2 +- + .../renderer/core/frame/frame_serializer.cc | 2 +- + .../renderer/core/frame/local_dom_window.h | 2 +- + .../blink/renderer/core/frame/local_frame.cc | 4 +- + .../blink/renderer/core/frame/local_frame.h | 4 +- + .../renderer/core/frame/local_frame_view.cc | 2 +- + .../renderer/core/frame/local_frame_view.h | 2 +- + .../blink/renderer/core/frame/navigator.cc | 4 +- + .../blink/renderer/core/frame/settings.h | 2 +- + .../blink/renderer/core/frame/settings.json5 | 4 +- + .../core/frame/web_frame_serializer_impl.cc | 2 +- + .../core/frame/web_view_frame_widget.h | 2 +- + .../core/html/custom/element_internals.idl | 2 +- + .../core/html/custom/validity_state_flags.idl | 2 +- + .../core/html/forms/base_text_input_type.cc | 2 +- + .../core/html/forms/email_input_type.cc | 2 +- + .../core/html/forms/html_button_element.idl | 2 +- + .../forms/html_form_controls_collection.cc | 2 +- + .../forms/html_form_controls_collection.idl | 2 +- + .../core/html/forms/html_form_element.idl | 2 +- + .../core/html/forms/html_input_element.idl | 2 +- + .../core/html/forms/html_label_element.idl | 2 +- + .../core/html/forms/html_legend_element.idl | 2 +- + .../core/html/forms/html_option_element.idl | 2 +- + .../html/forms/html_options_collection.idl | 2 +- + .../core/html/forms/html_select_element.idl | 2 +- + .../html/forms/html_text_area_element.idl | 2 +- + .../core/html/forms/validity_state.cc | 2 +- + .../renderer/core/html/forms/validity_state.h | 2 +- + .../core/html/forms/validity_state.idl | 2 +- + .../renderer/core/html/html_anchor_element.cc | 2 +- + .../core/html/html_anchor_element.idl | 2 +- + .../renderer/core/html/html_area_element.idl | 2 +- + .../renderer/core/html/html_body_element.idl | 2 +- + .../renderer/core/html/html_collection.cc | 2 +- + .../renderer/core/html/html_collection.idl | 2 +- + .../blink/renderer/core/html/html_document.cc | 2 +- + .../renderer/core/html/html_document.idl | 2 +- + .../blink/renderer/core/html/html_element.idl | 4 +- + .../renderer/core/html/html_embed_element.idl | 2 +- + .../renderer/core/html/html_frame_element.idl | 2 +- + .../core/html/html_frame_set_element.idl | 2 +- + .../renderer/core/html/html_iframe_element.cc | 2 +- + .../core/html/html_iframe_element.idl | 2 +- + .../renderer/core/html/html_image_element.idl | 2 +- + .../renderer/core/html/html_link_element.cc | 2 +- + .../renderer/core/html/html_link_element.idl | 2 +- + .../renderer/core/html/html_map_element.idl | 2 +- + .../core/html/html_object_element.idl | 2 +- + .../renderer/core/html/html_pre_element.idl | 2 +- + .../renderer/core/html/html_style_element.idl | 2 +- + .../core/html/html_table_caption_element.idl | 2 +- + .../core/html/html_table_cell_element.idl | 2 +- + .../core/html/html_table_col_element.idl | 2 +- + .../renderer/core/html/html_table_element.idl | 2 +- + .../core/html/html_table_row_element.idl | 2 +- + .../core/html/html_table_section_element.idl | 2 +- + .../core/html/media/autoplay_policy.cc | 4 +- + .../core/html/media/html_media_element.cc | 4 +- + .../core/input/pointer_event_manager.cc | 2 +- + .../intersection_observer_controller.h | 2 +- + .../activate_invisible_event.idl | 2 +- + .../core/layout/adjust_for_absolute_zoom.h | 2 +- + .../core/layout/collapsed_border_value.h | 2 +- + .../renderer/core/layout/floating_objects.cc | 2 +- + .../renderer/core/layout/floating_objects.h | 2 +- + .../core/layout/geometry/logical_offset.h | 2 +- + .../core/layout/geometry/logical_rect.h | 2 +- + .../core/layout/geometry/logical_size.h | 2 +- + .../core/layout/geometry/physical_offset.h | 2 +- + .../core/layout/geometry/physical_rect.h | 2 +- + .../core/layout/geometry/physical_size.h | 2 +- + .../renderer/core/layout/layout_block.cc | 2 +- + .../blink/renderer/core/layout/layout_block.h | 2 +- + .../renderer/core/layout/layout_block_flow.cc | 2 +- + .../renderer/core/layout/layout_block_flow.h | 2 +- + .../blink/renderer/core/layout/layout_box.cc | 4 +- + .../core/layout/layout_box_model_object.cc | 2 +- + .../renderer/core/layout/layout_image.cc | 2 +- + .../blink/renderer/core/layout/layout_image.h | 2 +- + .../core/layout/layout_image_resource.cc | 2 +- + .../core/layout/layout_image_resource.h | 2 +- + .../layout_image_resource_style_image.cc | 2 +- + .../layout_image_resource_style_image.h | 2 +- + .../layout/layout_multi_column_flow_thread.h | 2 +- + .../renderer/core/layout/layout_object.h | 2 +- + .../renderer/core/layout/layout_table.cc | 2 +- + .../blink/renderer/core/layout/layout_text.cc | 2 +- + .../core/layout/layout_text_combine.cc | 2 +- + .../core/layout/layout_theme_default.h | 2 +- + .../blink/renderer/core/layout/layout_view.cc | 2 +- + .../blink/renderer/core/layout/layout_view.h | 2 +- + .../ng/inline/ng_inline_items_builder.h | 2 +- + .../core/layout/ng/inline/ng_offset_mapping.h | 4 +- + .../ng/inline/ng_offset_mapping_builder.h | 2 +- + .../core/layout/svg/layout_svg_path.cc | 2 +- + .../core/layout/svg/layout_svg_shape.cc | 2 +- + .../core/layout/text_run_constructor.h | 2 +- + .../renderer/core/loader/document_loader.cc | 2 +- + .../renderer/core/loader/frame_loader.cc | 6 +- + .../blink/renderer/core/loader/image_loader.h | 4 +- + .../core/loader/interactive_detector.h | 2 +- + .../core/loader/mixed_content_checker.cc | 4 +- + .../loader/previews_resource_loading_hints.cc | 2 +- + .../resource/css_style_sheet_resource.cc | 2 +- + .../resource/css_style_sheet_resource.h | 2 +- + .../core/loader/resource/document_resource.cc | 4 +- + .../core/loader/resource/document_resource.h | 4 +- + .../core/loader/resource/image_resource.cc | 4 +- + .../core/loader/resource/image_resource.h | 6 +- + .../loader/resource/image_resource_content.h | 4 +- + .../loader/resource/image_resource_observer.h | 2 +- + .../multipart_image_resource_parser.h | 4 +- + .../core/loader/resource/script_resource.cc | 2 +- + .../core/loader/resource/script_resource.h | 4 +- + .../resource/xsl_style_sheet_resource.cc | 2 +- + .../resource/xsl_style_sheet_resource.h | 2 +- + .../core/loader/subresource_filter.cc | 2 +- + .../renderer/core/loader/threadable_loader.cc | 2 +- + .../renderer/core/messaging/message_port.cc | 2 +- + .../core/page/scrolling/scroll_state.idl | 2 +- + .../core/page/scrolling/scroll_state_init.idl | 2 +- + .../renderer/core/paint/box_border_painter.cc | 2 +- + .../compositing/composited_layer_mapping.cc | 2 +- + .../paint/first_meaningful_paint_detector.cc | 2 +- + .../paint/first_meaningful_paint_detector.h | 2 +- + .../core/paint/image_paint_timing_detector.h | 2 +- + .../blink/renderer/core/paint/paint_layer.cc | 4 +- + .../blink/renderer/core/paint/paint_layer.h | 10 +- + .../core/paint/paint_layer_clipper.cc | 2 +- + .../renderer/core/paint/paint_layer_clipper.h | 2 +- + .../core/paint/paint_layer_painter.cc | 2 +- + .../core/paint/paint_layer_painting_info.h | 2 +- + .../core/paint/paint_layer_scrollable_area.cc | 6 +- + .../core/paint/paint_layer_scrollable_area.h | 2 +- + .../core/paint/paint_layer_stacking_node.cc | 2 +- + .../core/paint/paint_layer_stacking_node.h | 4 +- + .../core/paint/paint_timing_detector.h | 2 +- + .../core/paint/text_paint_timing_detector.h | 2 +- + .../core/paint/theme_painter_default.h | 2 +- + .../renderer/core/paint/theme_painter_mac.mm | 2 +- + .../script/document_write_intervention.cc | 6 +- + .../core/script/document_write_intervention.h | 2 +- + .../blink/renderer/core/script/layered_api.h | 2 +- + .../renderer/core/scroll/scroll_alignment.cc | 2 +- + .../renderer/core/scroll/scroll_alignment.h | 2 +- + .../blink/renderer/core/streams/PRESUBMIT.py | 4 +- + .../core/streams/transferable_streams.cc | 4 +- + .../blink/renderer/core/style/border_style.h | 2 +- + .../blink/renderer/core/style/border_value.h | 2 +- + .../renderer/core/style/computed_style.h | 4 +- + .../core/style/computed_style_constants.h | 2 +- + .../blink/renderer/core/style/content_data.h | 2 +- + .../renderer/core/style/counter_content.h | 2 +- + .../renderer/core/style/counter_directives.h | 2 +- + .../blink/renderer/core/style/cursor_data.h | 2 +- + .../blink/renderer/core/style/fill_layer.h | 2 +- + .../blink/renderer/core/style/shadow_data.h | 2 +- + .../renderer/core/style/style_reflection.h | 2 +- + .../svg/graphics/filters/svg_filter_builder.h | 2 +- + .../blink/renderer/core/svg/svg_angle.idl | 2 +- + .../renderer/core/svg/svg_animated_number.idl | 2 +- + .../renderer/core/svg/svg_circle_element.idl | 2 +- + .../core/svg/svg_clip_path_element.idl | 2 +- + .../blink/renderer/core/svg/svg_element.idl | 2 +- + .../renderer/core/svg/svg_filter_element.cc | 2 +- + .../renderer/core/svg/svg_filter_element.h | 2 +- + .../renderer/core/svg/svg_filter_element.idl | 2 +- + ...g_filter_primitive_standard_attributes.idl | 2 +- + .../renderer/core/svg/svg_fit_to_view_box.idl | 2 +- + .../blink/renderer/core/svg/svg_length.idl | 2 +- + .../renderer/core/svg/svg_length_list.idl | 2 +- + .../blink/renderer/core/svg/svg_matrix.idl | 2 +- + .../blink/renderer/core/svg/svg_number.idl | 2 +- + .../renderer/core/svg/svg_number_list.idl | 2 +- + .../renderer/core/svg/svg_path_element.idl | 2 +- + .../blink/renderer/core/svg/svg_point.idl | 2 +- + .../blink/renderer/core/svg/svg_rect.idl | 2 +- + .../renderer/core/svg/svg_rect_element.idl | 2 +- + .../renderer/core/svg/svg_style_element.idl | 2 +- + .../renderer/core/svg/svg_svg_element.idl | 2 +- + .../core/svg/svg_text_path_element.cc | 2 +- + .../renderer/core/svg/svg_transform_list.idl | 2 +- + .../renderer/core/svg/svg_uri_reference.idl | 2 +- + .../renderer/core/svg/svg_zoom_and_pan.idl | 2 +- + .../renderer/core/timing/memory_info.idl | 2 +- + .../renderer/core/timing/performance.idl | 2 +- + .../core/timing/performance_resource_timing.h | 4 +- + .../core/timing/window_performance.cc | 2 +- + .../core/workers/worklet_global_scope.h | 2 +- + .../renderer/core/xml/xpath_expression.idl | 2 +- + .../renderer/core/xml/xpath_functions.cc | 2 +- + .../renderer/core/xml/xpath_ns_resolver.idl | 2 +- + .../renderer/core/xml/xslt_processor.idl | 2 +- + .../blink/renderer/devtools/PRESUBMIT.py | 2 +- + .../front_end/audits/AuditsStartView.js | 2 +- + .../front_end/audits/lighthouse/report.js | 4 +- + .../lighthouse/lighthouse-dt-bundle.js | 44 +- + .../front_end/bindings/ResourceUtils.js | 2 +- + .../devtools/front_end/cm/codemirror.js | 2 +- + .../devtools/front_end/cm_modes/stylus.js | 2 +- + .../front_end/color_picker/ContrastDetails.js | 2 +- + .../devtools/front_end/common/UIString.js | 2 +- + .../devtools/front_end/devices/DevicesView.js | 6 +- + .../devtools/front_end/devtools_app.html | 2 +- + .../front_end/devtools_compatibility.js | 2 +- + .../front_end/formatter_worker/acorn/acorn.js | 4 +- + .../renderer/devtools/front_end/help/Help.js | 2 +- + .../front_end/help/ReleaseNoteText.js | 256 +- + .../devtools/front_end/inspector.html | 2 +- + .../renderer/devtools/front_end/js_app.html | 2 +- + .../renderer/devtools/front_end/main/Main.js | 2 +- + .../renderer/devtools/front_end/ndb_app.html | 2 +- + .../front_end/network/NetworkConfigView.js | 4 +- + .../front_end/network/NetworkLogView.js | 2 +- + .../renderer/devtools/front_end/node_app.html | 2 +- + .../front_end/product_registry/BadgePool.js | 2 +- + .../front_end/resources/AppManifestView.js | 2 +- + .../resources/ApplicationPanelSidebar.js | 12 +- + .../resources/BackgroundServiceView.js | 2 +- + .../front_end/resources/ClearStorageView.js | 2 +- + .../devtools/front_end/sdk/CSSMetadata.js | 2 +- + .../devtools/front_end/sdk/NetworkLog.js | 2 +- + .../devtools/front_end/sdk/NetworkManager.js | 2 +- + .../front_end/settings/SettingsScreen.js | 2 +- + .../front_end/sources/SourcesNavigator.js | 8 +- + .../devtools/front_end/sources/SourcesView.js | 2 +- + .../front_end/timeline/TimelinePanel.js | 2 +- + .../front_end/timeline/TimelineUIUtils.js | 4 +- + .../devtools/front_end/ui/SearchableView.js | 2 +- + .../renderer/devtools/front_end/ui/UIUtils.js | 4 +- + .../devtools/front_end/worker_app.html | 2 +- + .../blink/renderer/devtools/package.json | 6 +- + .../blink/renderer/devtools/protocol.json | 6 +- + .../chrome_debug_launcher/launch_chrome.js | 6 +- + .../chrome_debug_launcher/package.json | 4 +- + .../scripts/devtools_run/package.json | 4 +- + .../devtools/scripts/hosted_mode/server.js | 6 +- + .../scripts/jsdoc_validator/PRESUBMIT.py | 2 +- + .../localization_utils/localization_utils.js | 2 +- + .../modules/accessibility/ax_layout_object.cc | 2 +- + .../background_fetch_manager.cc | 2 +- + .../modules/bluetooth/bluetooth_error.cc | 16 +- + .../credentials_container.cc | 4 +- + .../modules/crypto/crypto_histograms.h | 2 +- + .../encryptedmedia/encrypted_media_utils.h | 2 +- + .../modules/gamepad/gamepad_axis_event.idl | 2 +- + .../gamepad/gamepad_axis_event_init.idl | 2 +- + .../modules/gamepad/gamepad_button_event.idl | 2 +- + .../gamepad/gamepad_button_event_init.idl | 2 +- + .../gamepad/gamepad_effect_parameters.idl | 2 +- + .../modules/geolocation/geolocation.cc | 2 +- + .../modules/geolocation/geolocation.h | 2 +- + .../modules/indexeddb/idb_value_wrapping.cc | 2 +- + .../media_capabilities/media_capabilities.cc | 2 +- + .../media_stream_video_renderer_sink.h | 2 +- + .../payments/android_pay_method_data.idl | 2 +- + .../payments/android_pay_tokenization.idl | 2 +- + .../modules/payments/payment_request.cc | 4 +- + .../modules/payments/skip_to_gpay_utils.cc | 8 +- + .../modules/payments/skip_to_gpay_utils.h | 4 +- + .../adapters/ice_transport_adapter_impl.cc | 2 +- + .../peerconnection/rtc_peer_connection.idl | 2 +- + .../presentation_connection_available_event.h | 2 +- + .../renderer/modules/scheduler/scheduler.idl | 2 +- + .../scheduler/scheduler_post_task_options.idl | 2 +- + .../blink/renderer/modules/scheduler/task.idl | 2 +- + .../renderer/modules/scheduler/task_queue.idl | 2 +- + .../task_queue_post_task_options.idl | 2 +- + .../modules/scheduler/window_scheduler.idl | 2 +- + .../service_worker_global_scope.cc | 2 +- + .../modules/vibration/navigator_vibration.cc | 4 +- + .../modules/vibration/navigator_vibration.idl | 2 +- + .../modules/webaudio/audio_context.cc | 4 +- + .../modules/webgpu/gpu_canvas_context.cc | 2 +- + .../modules/webgpu/gpu_render_pipeline.cc | 2 +- + .../renderer/modules/webgpu/gpu_swap_chain.cc | 2 +- + .../modules/webmidi/navigator_web_midi.cc | 2 +- + .../modules/websockets/websocket_stream.h | 2 +- + third_party/blink/renderer/modules/xr/xr.cc | 2 +- + .../blink/renderer/platform/PRESUBMIT.py | 2 +- + .../platform/animation/timing_function.h | 2 +- + .../fonts/bitmap_glyphs_block_list.cc | 2 +- + .../fonts/font_custom_platform_data.cc | 2 +- + .../platform/fonts/font_description.cc | 2 +- + .../platform/fonts/mac/font_cache_mac.mm | 4 +- + .../opentype/open_type_caps_support_mpl.cc | 2 +- + .../platform/fonts/opentype/open_type_types.h | 2 +- + .../fonts/opentype/open_type_vertical_data.cc | 2 +- + .../fonts/opentype/open_type_vertical_data.h | 2 +- + .../platform/fonts/script_run_iterator.cc | 2 +- + .../platform/fonts/shaping/shape_result.cc | 2 +- + .../fonts/shaping/shape_result_view.cc | 2 +- + .../platform/fonts/simple_font_data.cc | 2 +- + .../platform/fonts/simple_font_data.h | 2 +- + .../platform/fonts/skia/skia_text_metrics.cc | 4 +- + .../renderer/platform/fonts/vdmx_parser.cc | 2 +- + .../platform/fonts/web_font_decoder.cc | 2 +- + .../fonts/web_font_typeface_factory.h | 2 +- + .../platform/fonts/win/font_cache_skia_win.cc | 4 +- + .../platform/fonts/win/font_fallback_win.cc | 2 +- + .../renderer/platform/geometry/float_quad.cc | 2 +- + .../platform/graphics/bitmap_image.cc | 2 +- + .../renderer/platform/graphics/bitmap_image.h | 2 +- + .../graphics/filters/distant_light_source.h | 2 +- + .../platform/graphics/filters/fe_tile.cc | 2 +- + .../graphics/filters/filter_effect.cc | 2 +- + .../platform/graphics/filters/filter_effect.h | 2 +- + .../platform/graphics/filters/light_source.h | 2 +- + .../graphics/filters/point_light_source.h | 2 +- + .../graphics/filters/source_graphic.h | 2 +- + .../graphics/filters/spot_light_source.cc | 2 +- + .../graphics/filters/spot_light_source.h | 2 +- + .../graphics/gpu/webgl_image_conversion.cc | 2 +- + .../gpu/webgpu_swap_buffer_provider.cc | 4 +- + .../blink/renderer/platform/graphics/image.cc | 2 +- + .../blink/renderer/platform/graphics/image.h | 2 +- + .../graphics/paint/geometry_mapper.cc | 2 +- + .../paint/geometry_mapper_transform_cache.h | 2 +- + .../platform/graphics/placeholder_image.cc | 4 +- + .../platform/heap/heap_linked_stack.h | 4 +- + .../image-decoders/jpeg/jpeg_image_decoder.cc | 4 +- + .../image-decoders/png/png_image_decoder.cc | 4 +- + .../image-decoders/png/png_image_reader.cc | 4 +- + .../image-decoders/webp/webp_image_decoder.cc | 2 +- + .../platform/instrumentation/use_counter.h | 2 +- + .../platform/loader/fetch/raw_resource.h | 2 +- + .../platform/loader/fetch/resource.cc | 2 +- + .../renderer/platform/loader/fetch/resource.h | 2 +- + .../platform/loader/fetch/resource_error.cc | 2 +- + .../loader/fetch/resource_load_scheduler.cc | 2 +- + .../platform/loader/fetch/resource_loader.cc | 2 +- + .../platform/loader/fetch/resource_request.h | 2 +- + .../platform/loader/fetch/resource_response.h | 2 +- + .../platform/network/form_data_encoder.cc | 2 +- + .../network/network_state_notifier.cc | 4 +- + .../parsed_content_header_field_parameters.h | 2 +- + .../blink/renderer/platform/png_fuzzer.cc | 2 +- + .../platform/runtime_enabled_features.json5 | 2 +- + .../main_thread/memory_purge_manager.h | 2 +- + .../main_thread/page_scheduler_impl.cc | 2 +- + .../scheduler/public/rail_mode_observer.h | 2 +- + .../text/hyphenation/hyphenation_minikin.cc | 2 +- + .../blink/renderer/platform/text/icu_error.cc | 2 +- + .../renderer/platform/text/locale_win.cc | 4 +- + .../renderer/platform/text/unicode_range.cc | 2 +- + .../renderer/platform/text/unicode_range.h | 2 +- + .../transforms/identity_transform_operation.h | 2 +- + .../transforms/matrix_transform_operation.h | 2 +- + .../transforms/rotate_transform_operation.h | 2 +- + .../transforms/scale_transform_operation.h | 2 +- + .../transforms/skew_transform_operation.h | 2 +- + .../platform/transforms/transform_operation.h | 2 +- + .../transforms/transform_operations.h | 2 +- + .../translate_transform_operation.h | 2 +- + .../blink/renderer/platform/weborigin/kurl.cc | 2 +- + .../platform/weborigin/security_origin.cc | 2 +- + .../platform/weborigin/security_origin.h | 4 +- + .../blink/renderer/platform/wtf/assertions.h | 2 +- + .../blink/renderer/platform/wtf/date_math.cc | 2 +- + .../blink/renderer/platform/wtf/date_math.h | 2 +- + .../blink/renderer/platform/wtf/deque.h | 2 +- + .../platform/wtf/dynamic_annotations.h | 2 +- + .../blink/renderer/platform/wtf/hash_table.h | 2 +- + .../renderer/platform/wtf/linked_hash_set.h | 2 +- + .../renderer/platform/wtf/list_hash_set.h | 2 +- + .../blink/renderer/platform/wtf/stack_util.cc | 2 +- + .../renderer/platform/wtf/text/string_impl.h | 2 +- + .../renderer/platform/wtf/thread_specific.h | 2 +- + .../common/checkout/baseline_optimizer.py | 4 +- + .../tools/blinkpy/common/net/buildbot.py | 6 +- + .../blink/tools/blinkpy/common/pretty_diff.py | 2 +- + .../tools/blinkpy/common/system/filesystem.py | 4 +- + .../tools/blinkpy/common/system/profiler.py | 2 +- + .../blink/tools/blinkpy/style/checker.py | 2 +- + .../blink/tools/blinkpy/style/filereader.py | 2 +- + .../blink/tools/blinkpy/style/filter.py | 2 +- + .../blink/tools/blinkpy/style/patchreader.py | 2 +- + .../blink/tools/blinkpy/third_party/pep8.py | 2 +- + .../wpt/tools/webdriver/webdriver/client.py | 2 +- + .../third_party/wpt/wpt/tools/wpt/browser.py | 26 +- + .../third_party/wpt/wpt/tools/wpt/run.py | 4 +- + .../tools/blinkpy/w3c/chromium_commit.py | 2 +- + .../tools/blinkpy/w3c/chromium_commit_mock.py | 2 +- + third_party/blink/tools/blinkpy/w3c/common.py | 4 +- + third_party/blink/tools/blinkpy/w3c/gerrit.py | 8 +- + .../tools/blinkpy/w3c/import_notifier.py | 2 +- + .../blink/tools/blinkpy/w3c/monorail.py | 4 +- + .../tools/blinkpy/w3c/pr_cleanup_tool.py | 2 +- + third_party/blink/tools/check_blink_style.py | 2 +- + third_party/blink/tools/move_blink_source.py | 2 +- + third_party/boringssl/roll_boringssl.py | 2 +- + .../src/example-app-build/AndroidManifest.xml | 2 +- + .../cacheinvalidation/channel_common.proto | 2 +- + .../channel/AndroidChannelConstants.java | 4 +- + .../channel/GcmUpstreamSenderService.java | 2 +- + .../examples/android2/AndroidManifest.xml | 2 +- + .../examples/android2/MainActivity.java | 2 +- + third_party/chaijs/chai.js | 12 +- + .../injected/mathjax_external_util.js | 2 +- + .../closure/bin/build/depstree.py | 2 +- + .../closure/bin/build/source.py | 2 +- + .../closure/bin/build/treescan.py | 2 +- + .../closure-library/closure/goog/base.js | 4 +- + .../externs/accessibility_private.js | 2 +- + .../externs/activity_log_private.js | 2 +- + .../externs/arc_apps_private.js | 2 +- + third_party/closure_compiler/externs/audio.js | 42 +- + .../externs/autofill_private.js | 2 +- + .../closure_compiler/externs/automation.js | 398 +- + .../closure_compiler/externs/bluetooth.js | 34 +- + .../externs/bluetooth_private.js | 2 +- + .../externs/bookmark_manager_private.js | 2 +- + .../closure_compiler/externs/chrome.js | 44 +- + .../externs/chrome_extensions.js | 1126 +- + .../closure_compiler/externs/clipboard.js | 12 +- + .../externs/command_line_private.js | 4 +- + .../externs/developer_private.js | 2 +- + .../externs/file_system_provider.js | 116 +- + .../externs/input_method_private.js | 2 +- + .../externs/language_settings_private.js | 2 +- + .../closure_compiler/externs/management.js | 46 +- + .../externs/metrics_private.js | 2 +- + .../externs/mime_handler_private.js | 2 +- + .../externs/networking_private.js | 2 +- + .../externs/passwords_private.js | 2 +- + .../externs/quick_unlock_private.js | 2 +- + .../externs/safe_browsing_private.js | 2 +- + .../externs/settings_private.js | 2 +- + .../externs/system_display.js | 58 +- + .../closure_compiler/externs/users_private.js | 2 +- + .../closure_compiler/externs/webview_tag.js | 74 +- + .../interfaces/bluetooth_interface.js | 18 +- + .../interfaces/bluetooth_private_interface.js | 16 +- + .../input_method_private_interface.js | 36 +- + .../language_settings_private_interface.js | 36 +- + .../networking_private_interface.js | 50 +- + .../quick_unlock_private_interface.js | 16 +- + .../interfaces/settings_private_interface.js | 12 +- + .../interfaces/system_display_interface.js | 28 +- + .../crashpad/build/install_linux_sysroot.py | 6 +- + .../crashpad/build/run_fuchsia_qemu.py | 2 +- + .../client/crashpad_client_fuchsia.cc | 2 +- + .../crashpad/client/crashpad_client_win.cc | 6 +- + .../crashpad/client/prune_crash_reports.cc | 2 +- + .../crashpad/compat/android/dlfcn_internal.h | 2 +- + .../crashpad/compat/android/sys/mman.h | 2 +- + .../crashpad/compat/linux/sys/ptrace.h | 2 +- + .../crashpad/crashpad/compat/win/winnt.h | 2 +- + .../crashpad/crashpad/doc/appengine/main.go | 4 +- + .../crashpad/doc/support/crashpad.doxy.h | 2 +- + .../crashpad/crashpad/handler/handler_main.cc | 6 +- + .../handler/linux/exception_handler_server.cc | 2 +- + .../handler/mac/file_limit_annotation.h | 2 +- + .../handler/win/crash_other_program.cc | 2 +- + .../crashpad/minidump/minidump_extensions.h | 2 +- + .../minidump/minidump_memory_writer.cc | 2 +- + .../minidump/minidump_memory_writer.h | 2 +- + third_party/crashpad/crashpad/package.h | 4 +- + .../crashpad/crashpad/snapshot/BUILD.gn | 4 +- + .../crashpad/snapshot/elf/elf_image_reader.cc | 2 +- + .../snapshot/elf/module_snapshot_elf.cc | 2 +- + .../snapshot/elf/module_snapshot_elf.h | 2 +- + .../fuchsia/process_reader_fuchsia.cc | 4 +- + .../fuchsia/process_snapshot_fuchsia.cc | 6 +- + .../fuchsia/system_snapshot_fuchsia.cc | 6 +- + .../crashpad/snapshot/handle_snapshot.h | 2 +- + .../snapshot/linux/system_snapshot_linux.cc | 6 +- + .../mac/mach_o_image_segment_reader.cc | 2 +- + .../mac/mach_o_image_symbol_table_reader.cc | 2 +- + .../minidump/module_snapshot_minidump.cc | 4 +- + .../minidump/process_snapshot_minidump.cc | 12 +- + .../minidump/system_snapshot_minidump.cc | 18 +- + .../snapshot/win/exception_snapshot_win.cc | 2 +- + .../snapshot/win/module_snapshot_win.cc | 2 +- + .../snapshot/win/module_snapshot_win.h | 4 +- + .../crashpad/snapshot/win/pe_image_reader.cc | 4 +- + .../snapshot/win/pe_image_resource_reader.cc | 2 +- + .../snapshot/win/process_reader_win.cc | 4 +- + .../snapshot/win/process_snapshot_win.cc | 8 +- + .../crashpad/third_party/zlib/BUILD.gn | 2 +- + .../crashpad/crashpad/tools/generate_dump.cc | 2 +- + .../crashpad/crashpad/util/file/file_io.h | 4 +- + .../crashpad/util/linux/memory_map.cc | 2 +- + .../util/misc/capture_context_win.asm | 4 +- + .../util/misc/capture_context_win_arm64.asm | 2 +- + .../crashpad/util/misc/paths_fuchsia.cc | 2 +- + .../util/net/http_transport_socket.cc | 2 +- + .../crashpad/util/posix/close_multiple.cc | 2 +- + .../crashpad/util/posix/process_info.h | 2 +- + .../crashpad/util/win/command_line.cc | 2 +- + .../crashpad/crashpad/util/win/handle.h | 4 +- + .../crashpad/crashpad/util/win/nt_internals.h | 2 +- + .../crashpad/crashpad/util/win/process_info.h | 4 +- + .../crashpad/util/win/process_structs.h | 6 +- + .../util/win/registration_protocol_win.cc | 2 +- + .../util/win/safe_terminate_process.h | 2 +- + .../crashpad/crashpad/util/win/xp_compat.h | 4 +- + third_party/crashpad/update.py | 2 +- + third_party/dav1d/BUILD.gn | 2 +- + third_party/dav1d/generate_source.py | 2 +- + .../protoc_plugins/util/plugin_protos.py | 4 +- + third_party/flot/jquery.flot.navigate.min.js | 2 +- + .../include/freetype-custom-config/ftoption.h | 6 +- + .../fuchsia-sdk/gen_fidl_response_file.py | 2 +- + .../android/gifplayer/BaseGifDrawable.java | 2 +- + third_party/google-truth/cipd.yaml | 2 +- + .../cloudstorage/cloudstorage_api.py | 2 +- + .../cloudstorage/errors.py | 2 +- + .../cloudstorage/storage_api.py | 10 +- + .../src/chrome/os/inputview/adapter.js | 4 +- + .../src/chrome/os/inputview/canvas.js | 2 +- + .../src/chrome/os/inputview/dom.js | 2 +- + .../src/chrome/os/inputview/hwt_css.js | 2 +- + .../src/chrome/os/inputview/hwt_eventtype.js | 2 +- + .../src/chrome/os/inputview/hwt_util.js | 2 +- + .../src/chrome/os/inputview/inputtool.js | 2 +- + .../src/chrome/os/inputview/strokehandler.js | 2 +- + .../closure/bin/build/closurebuilder.py | 2 +- + .../closure/bin/build/depstree.py | 2 +- + .../closure/bin/build/depswriter.py | 2 +- + .../closure/bin/build/jscompiler.py | 2 +- + .../closure/bin/build/source.py | 2 +- + .../closure/bin/build/treescan.py | 2 +- + .../closure_library/closure/bin/scopify.py | 2 +- + .../closure/goog/array/array.js | 2 +- + .../closure/goog/asserts/asserts.js | 2 +- + .../closure/goog/async/animationdelay.js | 2 +- + .../closure/goog/async/delay.js | 2 +- + .../closure/goog/async/nexttick.js | 2 +- + .../closure_library/closure/goog/base.js | 4 +- + .../closure/goog/debug/entrypointregistry.js | 2 +- + .../closure/goog/debug/logbuffer.js | 2 +- + .../closure/goog/debug/logger.js | 4 +- + .../closure/goog/disposable/disposable.js | 2 +- + .../closure/goog/disposable/idisposable.js | 2 +- + .../closure/goog/dom/browserfeature.js | 2 +- + .../closure_library/closure/goog/dom/dom.js | 8 +- + .../closure/goog/events/browserevent.js | 6 +- + .../closure/goog/events/event.js | 2 +- + .../closure/goog/events/events.js | 2 +- + .../closure/goog/events/eventtarget.js | 2 +- + .../closure/goog/events/eventtype.js | 12 +- + .../closure/goog/events/eventwrapper.js | 2 +- + .../closure/goog/events/keycodes.js | 4 +- + .../closure/goog/events/keyhandler.js | 4 +- + .../closure/goog/events/listenable.js | 2 +- + .../closure/goog/functions/functions.js | 4 +- + .../closure/goog/fx/anim/anim.js | 4 +- + .../closure/goog/fx/animation.js | 2 +- + .../closure_library/closure/goog/fx/easing.js | 2 +- + .../closure/goog/fx/transition.js | 2 +- + .../closure_library/closure/goog/iter/iter.js | 4 +- + .../closure/goog/labs/useragent/browser.js | 8 +- + .../closure/goog/labs/useragent/engine.js | 2 +- + .../closure/goog/labs/useragent/util.js | 2 +- + .../closure_library/closure/goog/log/log.js | 2 +- + .../closure_library/closure/goog/math/size.js | 2 +- + .../closure/goog/object/object.js | 2 +- + .../goog/positioning/abstractposition.js | 2 +- + .../goog/positioning/anchoredposition.js | 2 +- + .../positioning/anchoredviewportposition.js | 2 +- + .../closure/goog/positioning/positioning.js | 2 +- + .../closure/goog/reflect/reflect.js | 4 +- + .../closure/goog/string/string.js | 10 +- + .../closure/goog/structs/collection.js | 2 +- + .../closure/goog/structs/map.js | 2 +- + .../closure/goog/structs/set.js | 2 +- + .../closure/goog/structs/structs.js | 2 +- + .../closure/goog/style/style.js | 6 +- + .../closure/goog/timer/timer.js | 2 +- + .../closure/goog/ui/component.js | 4 +- + .../closure/goog/ui/container.js | 2 +- + .../closure/goog/ui/containerrenderer.js | 2 +- + .../closure/goog/ui/control.js | 6 +- + .../closure/goog/ui/controlcontent.js | 2 +- + .../closure/goog/ui/controlrenderer.js | 2 +- + .../closure/goog/ui/decorate.js | 2 +- + .../closure/goog/ui/menuseparatorrenderer.js | 2 +- + .../closure/goog/ui/registry.js | 2 +- + .../closure/goog/ui/separator.js | 2 +- + .../closure_library/closure/goog/uri/utils.js | 8 +- + .../closure/goog/useragent/useragent.js | 2 +- + .../closure/goog/mochikit/async/deferred.js | 6 +- + .../hunspell/src/hunspell/affentry.cxx | 2 +- + .../hunspell/src/hunspell/affentry.hxx | 2 +- + .../hunspell/src/hunspell/affixmgr.cxx | 2 +- + .../hunspell/src/hunspell/affixmgr.hxx | 2 +- + third_party/hunspell/src/hunspell/atypes.hxx | 2 +- + .../hunspell/src/hunspell/baseaffix.hxx | 2 +- + third_party/hunspell/src/hunspell/csutil.cxx | 2 +- + third_party/hunspell/src/hunspell/csutil.hxx | 2 +- + third_party/hunspell/src/hunspell/filemgr.cxx | 2 +- + third_party/hunspell/src/hunspell/filemgr.hxx | 2 +- + third_party/hunspell/src/hunspell/hashmgr.cxx | 2 +- + third_party/hunspell/src/hunspell/hashmgr.hxx | 2 +- + third_party/hunspell/src/hunspell/htypes.hxx | 2 +- + .../hunspell/src/hunspell/hunspell.cxx | 2 +- + third_party/hunspell/src/hunspell/hunspell.h | 2 +- + .../hunspell/src/hunspell/hunspell.hxx | 2 +- + third_party/hunspell/src/hunspell/hunzip.cxx | 2 +- + third_party/hunspell/src/hunspell/hunzip.hxx | 2 +- + third_party/hunspell/src/hunspell/langnum.hxx | 2 +- + third_party/hunspell/src/hunspell/replist.cxx | 2 +- + third_party/hunspell/src/hunspell/replist.hxx | 2 +- + .../hunspell/src/hunspell/suggestmgr.cxx | 2 +- + .../hunspell/src/hunspell/suggestmgr.hxx | 2 +- + third_party/hunspell/src/hunspell/w_char.hxx | 2 +- + .../hunspell/src/parsers/firstparser.cxx | 2 +- + .../hunspell/src/parsers/firstparser.hxx | 2 +- + .../hunspell/src/parsers/htmlparser.cxx | 2 +- + .../hunspell/src/parsers/htmlparser.hxx | 2 +- + .../hunspell/src/parsers/latexparser.cxx | 2 +- + .../hunspell/src/parsers/latexparser.hxx | 2 +- + .../hunspell/src/parsers/manparser.cxx | 2 +- + .../hunspell/src/parsers/manparser.hxx | 2 +- + .../hunspell/src/parsers/odfparser.cxx | 2 +- + .../hunspell/src/parsers/odfparser.hxx | 2 +- + .../hunspell/src/parsers/textparser.cxx | 2 +- + .../hunspell/src/parsers/textparser.hxx | 2 +- + .../hunspell/src/parsers/xmlparser.cxx | 2 +- + .../hunspell/src/parsers/xmlparser.hxx | 2 +- + third_party/iaccessible2/ia2_api_all.idl | 8 +- + .../inspector_protocol/encoding/encoding.cc | 4 +- + third_party/inspector_protocol/roll.py | 4 +- + .../scripts/unpack_binaries.py | 2 +- + third_party/isimpledom/ISimpleDOMDocument.idl | 4 +- + third_party/isimpledom/ISimpleDOMNode.idl | 4 +- + third_party/isimpledom/ISimpleDOMText.idl | 2 +- + third_party/jstemplate/compile.py | 4 +- + third_party/jstemplate/jsevalcontext.js | 2 +- + third_party/jstemplate/jstemplate.js | 2 +- + .../jstemplate/jstemplate_example.html | 2 +- + third_party/jstemplate/jstemplate_example.js | 2 +- + third_party/jstemplate/jstemplate_jsunit.html | 10 +- + third_party/libaddressinput/BUILD.gn | 2 +- + .../chromium/chrome_address_validator.h | 2 +- + .../chromium/fallback_data_store.cc | 2 +- + .../chromium/tools/require_fields.py | 2 +- + third_party/libaom/BUILD.gn | 2 +- + third_party/libjingle_xmpp/xmpp/constants.cc | 24 +- + third_party/libjingle_xmpp/xmpp/xmppclient.cc | 12 +- + third_party/libjpeg/jconfig.h | 4 +- + third_party/liblouis/wasm/liblouis_wasm.js | 2 +- + .../libpng/contrib/oss-fuzz/README.txt | 2 +- + .../contrib/oss-fuzz/libpng_read_fuzzer.cc | 2 +- + .../libusb/src/libusb/os/threads_windows.c | 2 +- + .../libusb/src/libusb/os/threads_windows.h | 2 +- + third_party/libusb/src/libusb/os/wince_usb.c | 4 +- + third_party/libusb/src/libusb/os/wince_usb.h | 2 +- + .../libusb/src/libusb/os/windows_usb.c | 12 +- + third_party/libusb/src/msvc/inttypes.h | 2 +- + third_party/libusb/src/msvc/stdint.h | 2 +- + third_party/libvpx/BUILD.gn | 2 +- + third_party/libwebp/BUILD.gn | 4 +- + third_party/libwebp/examples/cwebp.c | 2 +- + third_party/libwebp/examples/dwebp.c | 2 +- + third_party/libwebp/examples/stopwatch.h | 2 +- + third_party/libwebp/examples/unicode.h | 2 +- + third_party/libwebp/imageio/image_dec.h | 2 +- + third_party/libwebp/imageio/image_enc.h | 2 +- + third_party/libwebp/src/dec/alpha_dec.c | 2 +- + third_party/libwebp/src/dec/alphai_dec.h | 2 +- + third_party/libwebp/src/dec/buffer_dec.c | 2 +- + third_party/libwebp/src/dec/common_dec.h | 2 +- + third_party/libwebp/src/dec/frame_dec.c | 2 +- + third_party/libwebp/src/dec/idec_dec.c | 2 +- + third_party/libwebp/src/dec/io_dec.c | 2 +- + third_party/libwebp/src/dec/quant_dec.c | 2 +- + third_party/libwebp/src/dec/tree_dec.c | 2 +- + third_party/libwebp/src/dec/vp8_dec.c | 2 +- + third_party/libwebp/src/dec/vp8_dec.h | 2 +- + third_party/libwebp/src/dec/vp8i_dec.h | 2 +- + third_party/libwebp/src/dec/vp8l_dec.c | 4 +- + third_party/libwebp/src/dec/vp8li_dec.h | 4 +- + third_party/libwebp/src/dec/webp_dec.c | 2 +- + third_party/libwebp/src/dec/webpi_dec.h | 2 +- + .../libwebp/src/dsp/alpha_processing.c | 2 +- + .../libwebp/src/dsp/alpha_processing_neon.c | 2 +- + .../libwebp/src/dsp/alpha_processing_sse2.c | 2 +- + .../libwebp/src/dsp/alpha_processing_sse41.c | 2 +- + third_party/libwebp/src/dsp/common_sse2.h | 2 +- + third_party/libwebp/src/dsp/common_sse41.h | 2 +- + third_party/libwebp/src/dsp/cost.c | 2 +- + third_party/libwebp/src/dsp/cost_sse2.c | 2 +- + third_party/libwebp/src/dsp/cpu.c | 2 +- + third_party/libwebp/src/dsp/dec.c | 2 +- + third_party/libwebp/src/dsp/dec_clip_tables.c | 2 +- + third_party/libwebp/src/dsp/dec_neon.c | 4 +- + third_party/libwebp/src/dsp/dec_sse2.c | 4 +- + third_party/libwebp/src/dsp/dec_sse41.c | 2 +- + third_party/libwebp/src/dsp/dsp.h | 2 +- + third_party/libwebp/src/dsp/enc.c | 2 +- + third_party/libwebp/src/dsp/enc_sse2.c | 2 +- + third_party/libwebp/src/dsp/enc_sse41.c | 2 +- + third_party/libwebp/src/dsp/filters.c | 2 +- + third_party/libwebp/src/dsp/filters_neon.c | 2 +- + third_party/libwebp/src/dsp/filters_sse2.c | 2 +- + third_party/libwebp/src/dsp/lossless.c | 6 +- + third_party/libwebp/src/dsp/lossless.h | 4 +- + third_party/libwebp/src/dsp/lossless_common.h | 6 +- + third_party/libwebp/src/dsp/lossless_enc.c | 6 +- + .../libwebp/src/dsp/lossless_enc_neon.c | 2 +- + .../libwebp/src/dsp/lossless_enc_sse2.c | 2 +- + .../libwebp/src/dsp/lossless_enc_sse41.c | 2 +- + third_party/libwebp/src/dsp/lossless_neon.c | 2 +- + third_party/libwebp/src/dsp/lossless_sse2.c | 2 +- + third_party/libwebp/src/dsp/rescaler.c | 2 +- + third_party/libwebp/src/dsp/rescaler_neon.c | 2 +- + third_party/libwebp/src/dsp/rescaler_sse2.c | 2 +- + third_party/libwebp/src/dsp/ssim.c | 2 +- + third_party/libwebp/src/dsp/ssim_sse2.c | 2 +- + third_party/libwebp/src/dsp/upsampling.c | 2 +- + third_party/libwebp/src/dsp/upsampling_neon.c | 2 +- + third_party/libwebp/src/dsp/upsampling_sse2.c | 2 +- + .../libwebp/src/dsp/upsampling_sse41.c | 2 +- + third_party/libwebp/src/dsp/yuv.c | 2 +- + third_party/libwebp/src/dsp/yuv.h | 2 +- + third_party/libwebp/src/dsp/yuv_neon.c | 2 +- + third_party/libwebp/src/dsp/yuv_sse2.c | 2 +- + third_party/libwebp/src/dsp/yuv_sse41.c | 2 +- + third_party/libwebp/src/enc/alpha_enc.c | 4 +- + third_party/libwebp/src/enc/analysis_enc.c | 2 +- + .../src/enc/backward_references_cost_enc.c | 2 +- + .../libwebp/src/enc/backward_references_enc.c | 2 +- + .../libwebp/src/enc/backward_references_enc.h | 2 +- + third_party/libwebp/src/enc/config_enc.c | 2 +- + third_party/libwebp/src/enc/cost_enc.c | 2 +- + third_party/libwebp/src/enc/cost_enc.h | 2 +- + third_party/libwebp/src/enc/filter_enc.c | 2 +- + third_party/libwebp/src/enc/frame_enc.c | 2 +- + third_party/libwebp/src/enc/histogram_enc.c | 2 +- + third_party/libwebp/src/enc/histogram_enc.h | 2 +- + third_party/libwebp/src/enc/iterator_enc.c | 2 +- + .../libwebp/src/enc/near_lossless_enc.c | 4 +- + third_party/libwebp/src/enc/picture_csp_enc.c | 2 +- + third_party/libwebp/src/enc/picture_enc.c | 2 +- + .../libwebp/src/enc/picture_psnr_enc.c | 2 +- + .../libwebp/src/enc/picture_rescale_enc.c | 2 +- + .../libwebp/src/enc/picture_tools_enc.c | 2 +- + third_party/libwebp/src/enc/predictor_enc.c | 8 +- + third_party/libwebp/src/enc/quant_enc.c | 2 +- + third_party/libwebp/src/enc/syntax_enc.c | 2 +- + third_party/libwebp/src/enc/token_enc.c | 2 +- + third_party/libwebp/src/enc/tree_enc.c | 2 +- + third_party/libwebp/src/enc/vp8i_enc.h | 2 +- + third_party/libwebp/src/enc/vp8l_enc.c | 2 +- + third_party/libwebp/src/enc/vp8li_enc.h | 2 +- + third_party/libwebp/src/enc/webp_enc.c | 2 +- + third_party/libwebp/src/mux/animi.h | 2 +- + third_party/libwebp/src/mux/muxedit.c | 4 +- + third_party/libwebp/src/mux/muxi.h | 2 +- + third_party/libwebp/src/mux/muxinternal.c | 4 +- + third_party/libwebp/src/mux/muxread.c | 4 +- + .../libwebp/src/utils/bit_reader_inl_utils.h | 2 +- + .../libwebp/src/utils/bit_reader_utils.c | 2 +- + .../libwebp/src/utils/bit_reader_utils.h | 4 +- + .../libwebp/src/utils/bit_writer_utils.c | 4 +- + .../libwebp/src/utils/bit_writer_utils.h | 2 +- + .../libwebp/src/utils/color_cache_utils.c | 2 +- + .../libwebp/src/utils/color_cache_utils.h | 4 +- + third_party/libwebp/src/utils/filters_utils.c | 2 +- + third_party/libwebp/src/utils/filters_utils.h | 2 +- + .../libwebp/src/utils/huffman_encode_utils.c | 2 +- + .../libwebp/src/utils/huffman_encode_utils.h | 2 +- + third_party/libwebp/src/utils/huffman_utils.c | 2 +- + third_party/libwebp/src/utils/huffman_utils.h | 2 +- + .../src/utils/quant_levels_dec_utils.c | 2 +- + .../src/utils/quant_levels_dec_utils.h | 2 +- + .../libwebp/src/utils/quant_levels_utils.c | 2 +- + .../libwebp/src/utils/quant_levels_utils.h | 2 +- + third_party/libwebp/src/utils/random_utils.c | 2 +- + third_party/libwebp/src/utils/random_utils.h | 2 +- + .../libwebp/src/utils/rescaler_utils.c | 2 +- + .../libwebp/src/utils/rescaler_utils.h | 2 +- + third_party/libwebp/src/utils/thread_utils.c | 2 +- + third_party/libwebp/src/utils/thread_utils.h | 2 +- + third_party/libwebp/src/utils/utils.c | 2 +- + third_party/libwebp/src/utils/utils.h | 4 +- + third_party/libwebp/src/webp/decode.h | 2 +- + third_party/libwebp/src/webp/encode.h | 2 +- + .../libwebp/src/webp/format_constants.h | 2 +- + third_party/libwebp/src/webp/mux.h | 4 +- + third_party/libwebp/src/webp/mux_types.h | 2 +- + third_party/libwebp/src/webp/types.h | 2 +- + third_party/libxml/src/aclocal.m4 | 2 +- + third_party/libxml/src/xmlstring.c | 2 +- + third_party/libxslt/chromium/roll.py | 2 +- + third_party/lottie/lottie_worker.js | 2 +- + third_party/mako/doc/_static/doctools.js | 2 +- + third_party/mako/doc/_static/jquery-3.2.1.js | 18 +- + third_party/metrics_proto/PRESUBMIT.py | 2 +- + .../chrome_user_metrics_extension.proto | 2 +- + third_party/metrics_proto/omnibox_event.proto | 2 +- + .../metrics_proto/translate_event.proto | 2 +- + third_party/metrics_proto/ukm/source.proto | 4 +- + third_party/mocha/mocha.js | 26 +- + third_party/mozilla/NSPasteboard+Utils.h | 2 +- + third_party/mozilla/NSPasteboard+Utils.mm | 2 +- + third_party/mozilla/NSString+Utils.h | 2 +- + third_party/mozilla/NSString+Utils.mm | 2 +- + third_party/mozilla/NSURL+Utils.h | 2 +- + third_party/mozilla/NSURL+Utils.m | 2 +- + third_party/mozilla/NSWorkspace+Utils.h | 4 +- + third_party/mozilla/NSWorkspace+Utils.m | 4 +- + third_party/node/package.json | 2 +- + .../opus/src/doc/draft-ietf-codec-oggopus.xml | 2 +- + .../src/doc/draft-ietf-codec-opus-update.xml | 2 +- + .../opus/src/doc/draft-ietf-codec-opus.xml | 4 +- + .../src/doc/draft-ietf-payload-rtp-opus.xml | 8 +- + third_party/opus/src/doc/opus_in_isobmff.html | 2 +- + third_party/opus/src/doc/release.txt | 6 +- + third_party/ots/src/cff.cc | 4 +- + third_party/ots/src/cmap.cc | 2 +- + third_party/ots/src/cvt.cc | 2 +- + third_party/ots/src/fpgm.cc | 2 +- + third_party/ots/src/gasp.cc | 2 +- + third_party/ots/src/gdef.cc | 2 +- + third_party/ots/src/glyf.cc | 2 +- + third_party/ots/src/gpos.cc | 2 +- + third_party/ots/src/gsub.cc | 2 +- + third_party/ots/src/hdmx.cc | 4 +- + third_party/ots/src/head.cc | 2 +- + third_party/ots/src/hhea.cc | 2 +- + third_party/ots/src/hmtx.cc | 2 +- + third_party/ots/src/kern.cc | 2 +- + third_party/ots/src/layout.cc | 4 +- + third_party/ots/src/layout.h | 2 +- + third_party/ots/src/loca.cc | 2 +- + third_party/ots/src/ltsh.cc | 2 +- + third_party/ots/src/math.cc | 2 +- + third_party/ots/src/maxp.cc | 2 +- + third_party/ots/src/metrics.cc | 4 +- + third_party/ots/src/name.cc | 2 +- + third_party/ots/src/os2.cc | 8 +- + third_party/ots/src/ots.cc | 4 +- + third_party/ots/src/post.cc | 2 +- + third_party/ots/src/prep.cc | 2 +- + third_party/ots/src/vdmx.cc | 2 +- + third_party/ots/src/vhea.cc | 2 +- + third_party/ots/src/vmtx.cc | 2 +- + third_party/ots/src/vorg.cc | 2 +- + third_party/polymer/v1_0/PRESUBMIT.py | 2 +- + .../iron-a11y-keys-behavior-extracted.js | 2 +- + .../iron-flex-layout/iron-flex-layout.html | 2 +- + .../iron-icon/iron-icon.html | 2 +- + .../iron-location/iron-location-extracted.js | 2 +- + .../iron-focusables-helper-extracted.js | 2 +- + .../iron-overlay-manager-extracted.js | 2 +- + .../neon-animation/neon-animated-pages.html | 2 +- + .../paper-progress/paper-progress.html | 2 +- + .../paper-ripple/paper-ripple.html | 2 +- + .../paper-spinner/paper-spinner-lite.html | 2 +- + .../paper-styles/default-theme.html | 2 +- + .../element-styles/paper-material-styles.html | 2 +- + .../paper-styles/typography.html | 2 +- + .../paper-tooltip/paper-tooltip.html | 2 +- + .../iron-a11y-keys-behavior.js | 2 +- + .../iron-flex-layout/iron-flex-layout.js | 2 +- + .../iron-focusables-helper.js | 2 +- + .../iron-overlay-manager.js | 2 +- + .../neon-animation/neon-animated-pages.js | 2 +- + .../paper-progress/paper-progress.js | 2 +- + .../paper-spinner/paper-spinner-lite.js | 2 +- + .../paper-styles/default-theme.js | 2 +- + .../element-styles/paper-item-styles.js | 2 +- + .../element-styles/paper-material-styles.js | 2 +- + .../paper-styles/typography.js | 2 +- + .../paper-tooltip/paper-tooltip.js | 2 +- + .../polymer/polymer_bundled.js | 2 +- + third_party/polymer/v3_0/package.json | 2 +- + third_party/protobuf/CHANGES.txt | 12 +- + third_party/protobuf/CONTRIBUTORS.txt | 68 +- + .../protobuf/benchmarks/benchmarks.proto | 2 +- + .../protobuf/benchmarks/cpp/cpp_benchmark.cc | 2 +- + third_party/protobuf/cmake/CMakeLists.txt | 2 +- + third_party/protobuf/composer.json | 2 +- + third_party/protobuf/configure.ac | 2 +- + .../binary_json_conformance_suite.cc | 48 +- + .../binary_json_conformance_suite.h | 2 +- + .../protobuf/conformance/conformance.proto | 4 +- + .../protobuf/conformance/conformance_cpp.cc | 4 +- + .../conformance/conformance_nodejs.js | 2 +- + .../protobuf/conformance/conformance_objc.m | 2 +- + .../conformance/conformance_python.py | 2 +- + .../protobuf/conformance/conformance_ruby.rb | 2 +- + .../text_format_conformance_suite.cc | 8 +- + .../text_format_conformance_suite.h | 2 +- + .../conformance/update_failure_list.py | 2 +- + .../protobuf/examples/addressbook.proto | 2 +- + third_party/protobuf/java/bom/pom.xml | 8 +- + third_party/protobuf/java/core/pom.xml | 2 +- + .../com/google/protobuf/AbstractMessage.java | 4 +- + .../google/protobuf/AbstractMessageLite.java | 4 +- + .../com/google/protobuf/AbstractParser.java | 4 +- + .../google/protobuf/AbstractProtobufList.java | 2 +- + .../java/com/google/protobuf/Android.java | 2 +- + .../google/protobuf/BlockingRpcChannel.java | 6 +- + .../com/google/protobuf/BlockingService.java | 6 +- + .../com/google/protobuf/BooleanArrayList.java | 4 +- + .../com/google/protobuf/ByteBufferWriter.java | 2 +- + .../java/com/google/protobuf/ByteOutput.java | 2 +- + .../java/com/google/protobuf/ByteString.java | 14 +- + .../com/google/protobuf/CodedInputStream.java | 4 +- + .../google/protobuf/CodedOutputStream.java | 2 +- + .../java/com/google/protobuf/Descriptors.java | 4 +- + .../protobuf/DiscardUnknownFieldsParser.java | 2 +- + .../com/google/protobuf/DoubleArrayList.java | 4 +- + .../com/google/protobuf/DynamicMessage.java | 4 +- + .../com/google/protobuf/ExperimentalApi.java | 2 +- + .../java/com/google/protobuf/Extension.java | 4 +- + .../com/google/protobuf/ExtensionLite.java | 2 +- + .../google/protobuf/ExtensionRegistry.java | 4 +- + .../protobuf/ExtensionRegistryFactory.java | 2 +- + .../protobuf/ExtensionRegistryLite.java | 4 +- + .../java/com/google/protobuf/FieldSet.java | 4 +- + .../com/google/protobuf/FloatArrayList.java | 4 +- + .../com/google/protobuf/GeneratedMessage.java | 4 +- + .../google/protobuf/GeneratedMessageLite.java | 4 +- + .../google/protobuf/GeneratedMessageV3.java | 4 +- + .../com/google/protobuf/IntArrayList.java | 4 +- + .../java/com/google/protobuf/Internal.java | 4 +- + .../InvalidProtocolBufferException.java | 4 +- + .../IterableByteBufferInputStream.java | 2 +- + .../java/com/google/protobuf/LazyField.java | 4 +- + .../com/google/protobuf/LazyFieldLite.java | 4 +- + .../google/protobuf/LazyStringArrayList.java | 4 +- + .../com/google/protobuf/LazyStringList.java | 4 +- + .../com/google/protobuf/LongArrayList.java | 4 +- + .../java/com/google/protobuf/MapEntry.java | 2 +- + .../com/google/protobuf/MapEntryLite.java | 2 +- + .../java/com/google/protobuf/MapField.java | 2 +- + .../com/google/protobuf/MapFieldLite.java | 2 +- + .../java/com/google/protobuf/Message.java | 4 +- + .../java/com/google/protobuf/MessageLite.java | 4 +- + .../google/protobuf/MessageLiteOrBuilder.java | 4 +- + .../google/protobuf/MessageLiteToString.java | 2 +- + .../com/google/protobuf/MessageOrBuilder.java | 4 +- + .../google/protobuf/MessageReflection.java | 4 +- + .../com/google/protobuf/MutabilityOracle.java | 2 +- + .../com/google/protobuf/NioByteString.java | 2 +- + .../main/java/com/google/protobuf/Parser.java | 4 +- + .../PrimitiveNonBoxingCollection.java | 2 +- + .../google/protobuf/ProtobufArrayList.java | 2 +- + .../google/protobuf/ProtocolMessageEnum.java | 2 +- + .../google/protobuf/ProtocolStringList.java | 2 +- + .../google/protobuf/RepeatedFieldBuilder.java | 4 +- + .../protobuf/RepeatedFieldBuilderV3.java | 4 +- + .../com/google/protobuf/RopeByteString.java | 4 +- + .../java/com/google/protobuf/RpcCallback.java | 4 +- + .../java/com/google/protobuf/RpcChannel.java | 4 +- + .../com/google/protobuf/RpcController.java | 4 +- + .../java/com/google/protobuf/RpcUtil.java | 4 +- + .../java/com/google/protobuf/Service.java | 4 +- + .../com/google/protobuf/ServiceException.java | 4 +- + .../google/protobuf/SingleFieldBuilder.java | 4 +- + .../google/protobuf/SingleFieldBuilderV3.java | 4 +- + .../com/google/protobuf/SmallSortedMap.java | 4 +- + .../java/com/google/protobuf/TextFormat.java | 6 +- + .../google/protobuf/TextFormatEscaper.java | 2 +- + .../protobuf/TextFormatParseInfoTree.java | 2 +- + .../protobuf/TextFormatParseLocation.java | 2 +- + .../UninitializedMessageException.java | 4 +- + .../com/google/protobuf/UnknownFieldSet.java | 4 +- + .../google/protobuf/UnknownFieldSetLite.java | 4 +- + .../protobuf/UnmodifiableLazyStringList.java | 4 +- + .../google/protobuf/UnsafeByteOperations.java | 2 +- + .../java/com/google/protobuf/UnsafeUtil.java | 2 +- + .../main/java/com/google/protobuf/Utf8.java | 4 +- + .../java/com/google/protobuf/WireFormat.java | 4 +- + third_party/protobuf/java/lite/pom.xml | 2 +- + third_party/protobuf/java/pom.xml | 6 +- + third_party/protobuf/java/util/pom.xml | 2 +- + .../com/google/protobuf/util/Durations.java | 2 +- + .../google/protobuf/util/FieldMaskTree.java | 2 +- + .../google/protobuf/util/FieldMaskUtil.java | 2 +- + .../com/google/protobuf/util/JsonFormat.java | 2 +- + .../com/google/protobuf/util/TimeUtil.java | 2 +- + .../com/google/protobuf/util/Timestamps.java | 2 +- + third_party/protobuf/js/binary/arith.js | 4 +- + third_party/protobuf/js/binary/constants.js | 4 +- + third_party/protobuf/js/binary/decoder.js | 16 +- + third_party/protobuf/js/binary/encoder.js | 6 +- + third_party/protobuf/js/binary/reader.js | 6 +- + third_party/protobuf/js/binary/utils.js | 4 +- + third_party/protobuf/js/binary/writer.js | 6 +- + third_party/protobuf/js/data.proto | 4 +- + third_party/protobuf/js/debug.js | 2 +- + third_party/protobuf/js/map.js | 4 +- + third_party/protobuf/js/message.js | 6 +- + third_party/protobuf/js/node_loader.js | 2 +- + .../protobuf/m4/ax_cxx_compile_stdcxx.m4 | 4 +- + .../protobuf/objectivec/DevTools/pddm.py | 2 +- + third_party/protobuf/objectivec/GPBArray.h | 2 +- + third_party/protobuf/objectivec/GPBArray.m | 2 +- + .../objectivec/GPBArray_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBBootstrap.h | 2 +- + .../protobuf/objectivec/GPBCodedInputStream.h | 2 +- + .../protobuf/objectivec/GPBCodedInputStream.m | 4 +- + .../GPBCodedInputStream_PackagePrivate.h | 2 +- + .../objectivec/GPBCodedOutputStream.h | 2 +- + .../objectivec/GPBCodedOutputStream.m | 2 +- + .../GPBCodedOutputStream_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBDescriptor.h | 2 +- + .../protobuf/objectivec/GPBDescriptor.m | 2 +- + .../objectivec/GPBDescriptor_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBDictionary.h | 2 +- + .../protobuf/objectivec/GPBDictionary.m | 2 +- + .../objectivec/GPBDictionary_PackagePrivate.h | 2 +- + .../objectivec/GPBExtensionInternals.h | 2 +- + .../objectivec/GPBExtensionInternals.m | 2 +- + .../objectivec/GPBExtensionRegistry.h | 2 +- + .../objectivec/GPBExtensionRegistry.m | 2 +- + third_party/protobuf/objectivec/GPBMessage.h | 2 +- + third_party/protobuf/objectivec/GPBMessage.m | 2 +- + .../objectivec/GPBMessage_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBProtocolBuffers.h | 2 +- + .../protobuf/objectivec/GPBProtocolBuffers.m | 2 +- + .../GPBProtocolBuffers_RuntimeSupport.h | 2 +- + .../protobuf/objectivec/GPBRootObject.h | 2 +- + .../protobuf/objectivec/GPBRootObject.m | 2 +- + .../objectivec/GPBRootObject_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBRuntimeTypes.h | 2 +- + .../protobuf/objectivec/GPBUnknownField.h | 2 +- + .../protobuf/objectivec/GPBUnknownField.m | 2 +- + .../protobuf/objectivec/GPBUnknownFieldSet.h | 2 +- + .../protobuf/objectivec/GPBUnknownFieldSet.m | 2 +- + .../GPBUnknownFieldSet_PackagePrivate.h | 2 +- + .../GPBUnknownField_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBUtilities.h | 2 +- + .../protobuf/objectivec/GPBUtilities.m | 2 +- + .../objectivec/GPBUtilities_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBWellKnownTypes.h | 8 +- + .../protobuf/objectivec/GPBWellKnownTypes.m | 4 +- + .../protobuf/objectivec/GPBWireFormat.h | 2 +- + .../protobuf/objectivec/GPBWireFormat.m | 2 +- + .../OSXCocoaPodsTester/AppDelegate.h | 2 +- + .../OSXCocoaPodsTester/AppDelegate.m | 2 +- + .../OSXCocoaPodsTester/main.m | 2 +- + .../iOSCocoaPodsTester/AppDelegate.h | 2 +- + .../iOSCocoaPodsTester/AppDelegate.m | 2 +- + .../iOSCocoaPodsTester/ViewController.h | 2 +- + .../iOSCocoaPodsTester/ViewController.m | 2 +- + .../iOSCocoaPodsTester/main.m | 2 +- + .../protobuf/objectivec/Tests/GPBArrayTests.m | 2 +- + .../Tests/GPBCodedInputStreamTests.m | 2 +- + .../Tests/GPBCodedOuputStreamTests.m | 2 +- + .../objectivec/Tests/GPBCompileTest01.m | 2 +- + .../objectivec/Tests/GPBCompileTest02.m | 2 +- + .../objectivec/Tests/GPBCompileTest03.m | 2 +- + .../objectivec/Tests/GPBCompileTest04.m | 2 +- + .../objectivec/Tests/GPBCompileTest05.m | 2 +- + .../objectivec/Tests/GPBCompileTest06.m | 2 +- + .../objectivec/Tests/GPBCompileTest07.m | 2 +- + .../objectivec/Tests/GPBCompileTest08.m | 2 +- + .../objectivec/Tests/GPBCompileTest09.m | 2 +- + .../objectivec/Tests/GPBCompileTest10.m | 2 +- + .../objectivec/Tests/GPBCompileTest11.m | 2 +- + .../objectivec/Tests/GPBCompileTest12.m | 2 +- + .../objectivec/Tests/GPBCompileTest13.m | 2 +- + .../objectivec/Tests/GPBCompileTest14.m | 2 +- + .../objectivec/Tests/GPBCompileTest15.m | 2 +- + .../objectivec/Tests/GPBCompileTest16.m | 2 +- + .../objectivec/Tests/GPBCompileTest17.m | 2 +- + .../objectivec/Tests/GPBCompileTest18.m | 2 +- + .../objectivec/Tests/GPBCompileTest19.m | 2 +- + .../objectivec/Tests/GPBCompileTest20.m | 2 +- + .../objectivec/Tests/GPBCompileTest21.m | 2 +- + .../objectivec/Tests/GPBCompileTest22.m | 2 +- + .../objectivec/Tests/GPBCompileTest23.m | 2 +- + .../objectivec/Tests/GPBCompileTest24.m | 2 +- + .../objectivec/Tests/GPBCompileTest25.m | 2 +- + .../objectivec/Tests/GPBConcurrencyTests.m | 2 +- + .../objectivec/Tests/GPBDescriptorTests.m | 2 +- + .../Tests/GPBDictionaryTests+Bool.m | 2 +- + .../Tests/GPBDictionaryTests+Int32.m | 2 +- + .../Tests/GPBDictionaryTests+Int64.m | 2 +- + .../Tests/GPBDictionaryTests+String.m | 2 +- + .../Tests/GPBDictionaryTests+UInt32.m | 2 +- + .../Tests/GPBDictionaryTests+UInt64.m | 2 +- + .../objectivec/Tests/GPBDictionaryTests.m | 2 +- + .../Tests/GPBExtensionRegistryTest.m | 2 +- + .../objectivec/Tests/GPBMessageTests+Merge.m | 2 +- + .../Tests/GPBMessageTests+Runtime.m | 2 +- + .../Tests/GPBMessageTests+Serialization.m | 2 +- + .../objectivec/Tests/GPBMessageTests.m | 2 +- + .../Tests/GPBObjectiveCPlusPlusTest.mm | 2 +- + .../protobuf/objectivec/Tests/GPBPerfTests.m | 2 +- + .../objectivec/Tests/GPBTestUtilities.h | 2 +- + .../objectivec/Tests/GPBTestUtilities.m | 2 +- + .../objectivec/Tests/GPBUnknownFieldSetTest.m | 2 +- + .../objectivec/Tests/GPBUtilitiesTests.m | 2 +- + .../objectivec/Tests/GPBWellKnownTypesTest.m | 2 +- + .../objectivec/Tests/GPBWireFormatTests.m | 2 +- + .../objectivec/google/protobuf/Any.pbobjc.h | 8 +- + .../objectivec/google/protobuf/Api.pbobjc.h | 2 +- + .../google/protobuf/Timestamp.pbobjc.h | 4 +- + .../objectivec/google/protobuf/Type.pbobjc.h | 2 +- + third_party/protobuf/php/composer.json | 2 +- + .../protobuf/php/ext/google/protobuf/array.c | 2 +- + .../protobuf/php/ext/google/protobuf/def.c | 2 +- + .../php/ext/google/protobuf/encode_decode.c | 4 +- + .../protobuf/php/ext/google/protobuf/map.c | 2 +- + .../php/ext/google/protobuf/message.c | 6 +- + .../php/ext/google/protobuf/package.xml | 4 +- + .../php/ext/google/protobuf/protobuf.c | 2 +- + .../php/ext/google/protobuf/protobuf.h | 2 +- + .../php/ext/google/protobuf/storage.c | 2 +- + .../php/ext/google/protobuf/type_check.c | 2 +- + .../protobuf/php/ext/google/protobuf/upb.c | 2 +- + .../protobuf/php/ext/google/protobuf/utf8.c | 2 +- + .../protobuf/php/ext/google/protobuf/utf8.h | 2 +- + third_party/protobuf/protoc-artifacts/pom.xml | 2 +- + .../python/google/protobuf/__init__.py | 2 +- + .../python/google/protobuf/descriptor.py | 4 +- + .../google/protobuf/descriptor_database.py | 4 +- + .../python/google/protobuf/descriptor_pool.py | 4 +- + .../google/protobuf/internal/__init__.py | 2 +- + .../protobuf/internal/_parameterized.py | 4 +- + .../protobuf/internal/api_implementation.cc | 2 +- + .../protobuf/internal/api_implementation.py | 2 +- + .../google/protobuf/internal/containers.py | 4 +- + .../google/protobuf/internal/decoder.py | 4 +- + .../google/protobuf/internal/encoder.py | 4 +- + .../protobuf/internal/enum_type_wrapper.py | 4 +- + .../protobuf/internal/extension_dict.py | 2 +- + .../protobuf/internal/message_listener.py | 4 +- + .../internal/message_set_extensions.proto | 2 +- + .../internal/missing_enum_values.proto | 2 +- + .../protobuf/internal/more_extensions.proto | 4 +- + .../internal/more_extensions_dynamic.proto | 4 +- + .../protobuf/internal/more_messages.proto | 4 +- + .../protobuf/internal/python_message.py | 4 +- + .../protobuf/internal/python_protobuf.cc | 4 +- + .../google/protobuf/internal/type_checkers.py | 4 +- + .../protobuf/internal/well_known_types.py | 6 +- + .../google/protobuf/internal/wire_format.py | 4 +- + .../python/google/protobuf/json_format.py | 4 +- + .../python/google/protobuf/message.py | 4 +- + .../python/google/protobuf/message_factory.py | 4 +- + .../python/google/protobuf/proto_api.h | 2 +- + .../python/google/protobuf/proto_builder.py | 2 +- + .../google/protobuf/pyext/cpp_message.py | 4 +- + .../google/protobuf/pyext/descriptor.cc | 4 +- + .../python/google/protobuf/pyext/descriptor.h | 4 +- + .../protobuf/pyext/descriptor_containers.cc | 2 +- + .../protobuf/pyext/descriptor_containers.h | 2 +- + .../protobuf/pyext/descriptor_database.cc | 2 +- + .../protobuf/pyext/descriptor_database.h | 2 +- + .../google/protobuf/pyext/descriptor_pool.cc | 2 +- + .../google/protobuf/pyext/descriptor_pool.h | 2 +- + .../google/protobuf/pyext/extension_dict.cc | 6 +- + .../google/protobuf/pyext/extension_dict.h | 6 +- + .../python/google/protobuf/pyext/field.cc | 2 +- + .../python/google/protobuf/pyext/field.h | 2 +- + .../google/protobuf/pyext/map_container.cc | 4 +- + .../google/protobuf/pyext/map_container.h | 2 +- + .../python/google/protobuf/pyext/message.cc | 6 +- + .../python/google/protobuf/pyext/message.h | 6 +- + .../google/protobuf/pyext/message_factory.cc | 2 +- + .../google/protobuf/pyext/message_factory.h | 2 +- + .../google/protobuf/pyext/message_module.cc | 2 +- + .../python/google/protobuf/pyext/python.proto | 4 +- + .../pyext/repeated_composite_container.cc | 6 +- + .../pyext/repeated_composite_container.h | 6 +- + .../pyext/repeated_scalar_container.cc | 6 +- + .../pyext/repeated_scalar_container.h | 6 +- + .../google/protobuf/pyext/safe_numerics.h | 2 +- + .../protobuf/pyext/scoped_pyobject_ptr.h | 4 +- + .../google/protobuf/pyext/unknown_fields.cc | 2 +- + .../google/protobuf/pyext/unknown_fields.h | 2 +- + .../python/google/protobuf/python_protobuf.h | 4 +- + .../python/google/protobuf/reflection.py | 4 +- + .../python/google/protobuf/service.py | 4 +- + .../google/protobuf/service_reflection.py | 4 +- + .../python/google/protobuf/symbol_database.py | 2 +- + .../python/google/protobuf/text_encoding.py | 2 +- + .../python/google/protobuf/text_format.py | 6 +- + third_party/protobuf/python/mox.py | 2 +- + third_party/protobuf/python/setup.py | 6 +- + third_party/protobuf/python/stubout.py | 2 +- + .../ruby/ext/google/protobuf_c/defs.c | 2 +- + .../ext/google/protobuf_c/encode_decode.c | 4 +- + .../protobuf/ruby/ext/google/protobuf_c/map.c | 2 +- + .../ruby/ext/google/protobuf_c/message.c | 2 +- + .../ruby/ext/google/protobuf_c/protobuf.c | 2 +- + .../ruby/ext/google/protobuf_c/protobuf.h | 2 +- + .../ext/google/protobuf_c/repeated_field.c | 2 +- + .../ruby/ext/google/protobuf_c/storage.c | 2 +- + .../protobuf/ruby/ext/google/protobuf_c/upb.c | 2 +- + .../ruby/ext/google/protobuf_c/wrap_memcpy.c | 2 +- + .../protobuf/ruby/lib/google/protobuf.rb | 2 +- + .../ruby/lib/google/protobuf/message_exts.rb | 2 +- + .../lib/google/protobuf/repeated_field.rb | 2 +- + .../lib/google/protobuf/well_known_types.rb | 6 +- + third_party/protobuf/ruby/pom.xml | 2 +- + .../google/protobuf/jruby/RubyBuilder.java | 2 +- + .../google/protobuf/jruby/RubyDescriptor.java | 2 +- + .../protobuf/jruby/RubyDescriptorPool.java | 2 +- + .../com/google/protobuf/jruby/RubyEnum.java | 2 +- + .../jruby/RubyEnumBuilderContext.java | 2 +- + .../protobuf/jruby/RubyEnumDescriptor.java | 2 +- + .../protobuf/jruby/RubyFieldDescriptor.java | 2 +- + .../com/google/protobuf/jruby/RubyMap.java | 2 +- + .../google/protobuf/jruby/RubyMessage.java | 2 +- + .../jruby/RubyMessageBuilderContext.java | 2 +- + .../jruby/RubyOneofBuilderContext.java | 2 +- + .../google/protobuf/jruby/RubyProtobuf.java | 2 +- + .../protobuf/jruby/RubyRepeatedField.java | 2 +- + .../protobuf/jruby/SentinelOuterClass.java | 2 +- + .../java/com/google/protobuf/jruby/Utils.java | 2 +- + .../main/java/google/ProtobufJavaService.java | 2 +- + .../protobuf/src/google/protobuf/any.cc | 2 +- + .../protobuf/src/google/protobuf/any.h | 22 +- + .../protobuf/src/google/protobuf/any.proto | 10 +- + .../protobuf/src/google/protobuf/any_lite.cc | 6 +- + .../protobuf/src/google/protobuf/api.proto | 4 +- + .../protobuf/src/google/protobuf/arena.cc | 2 +- + .../protobuf/src/google/protobuf/arena.h | 2 +- + .../protobuf/src/google/protobuf/arena_impl.h | 2 +- + .../src/google/protobuf/arenastring.cc | 2 +- + .../src/google/protobuf/arenastring.h | 2 +- + .../protobuf/compiler/code_generator.cc | 4 +- + .../google/protobuf/compiler/code_generator.h | 4 +- + .../compiler/command_line_interface.cc | 4 +- + .../compiler/command_line_interface.h | 4 +- + .../google/protobuf/compiler/cpp/cpp_enum.cc | 4 +- + .../google/protobuf/compiler/cpp/cpp_enum.h | 4 +- + .../protobuf/compiler/cpp/cpp_enum_field.cc | 4 +- + .../protobuf/compiler/cpp/cpp_enum_field.h | 4 +- + .../protobuf/compiler/cpp/cpp_extension.cc | 4 +- + .../protobuf/compiler/cpp/cpp_extension.h | 4 +- + .../google/protobuf/compiler/cpp/cpp_field.cc | 4 +- + .../google/protobuf/compiler/cpp/cpp_field.h | 4 +- + .../google/protobuf/compiler/cpp/cpp_file.cc | 4 +- + .../google/protobuf/compiler/cpp/cpp_file.h | 4 +- + .../protobuf/compiler/cpp/cpp_generator.cc | 4 +- + .../protobuf/compiler/cpp/cpp_generator.h | 4 +- + .../protobuf/compiler/cpp/cpp_helpers.cc | 4 +- + .../protobuf/compiler/cpp/cpp_helpers.h | 4 +- + .../protobuf/compiler/cpp/cpp_map_field.cc | 2 +- + .../protobuf/compiler/cpp/cpp_map_field.h | 2 +- + .../protobuf/compiler/cpp/cpp_message.cc | 4 +- + .../protobuf/compiler/cpp/cpp_message.h | 4 +- + .../compiler/cpp/cpp_message_field.cc | 4 +- + .../protobuf/compiler/cpp/cpp_message_field.h | 4 +- + .../compiler/cpp/cpp_message_layout_helper.h | 4 +- + .../protobuf/compiler/cpp/cpp_options.h | 4 +- + .../compiler/cpp/cpp_padding_optimizer.cc | 2 +- + .../compiler/cpp/cpp_padding_optimizer.h | 4 +- + .../compiler/cpp/cpp_primitive_field.cc | 4 +- + .../compiler/cpp/cpp_primitive_field.h | 4 +- + .../protobuf/compiler/cpp/cpp_service.cc | 4 +- + .../protobuf/compiler/cpp/cpp_service.h | 4 +- + .../protobuf/compiler/cpp/cpp_string_field.cc | 4 +- + .../protobuf/compiler/cpp/cpp_string_field.h | 4 +- + .../compiler/csharp/csharp_doc_comment.cc | 4 +- + .../compiler/csharp/csharp_doc_comment.h | 2 +- + .../protobuf/compiler/csharp/csharp_enum.cc | 2 +- + .../protobuf/compiler/csharp/csharp_enum.h | 2 +- + .../compiler/csharp/csharp_enum_field.cc | 2 +- + .../compiler/csharp/csharp_enum_field.h | 2 +- + .../compiler/csharp/csharp_field_base.cc | 2 +- + .../compiler/csharp/csharp_field_base.h | 2 +- + .../compiler/csharp/csharp_generator.cc | 2 +- + .../compiler/csharp/csharp_generator.h | 2 +- + .../compiler/csharp/csharp_helpers.cc | 4 +- + .../protobuf/compiler/csharp/csharp_helpers.h | 4 +- + .../compiler/csharp/csharp_map_field.cc | 2 +- + .../compiler/csharp/csharp_map_field.h | 2 +- + .../compiler/csharp/csharp_message.cc | 2 +- + .../protobuf/compiler/csharp/csharp_message.h | 2 +- + .../compiler/csharp/csharp_message_field.cc | 2 +- + .../compiler/csharp/csharp_message_field.h | 2 +- + .../protobuf/compiler/csharp/csharp_names.h | 4 +- + .../protobuf/compiler/csharp/csharp_options.h | 2 +- + .../compiler/csharp/csharp_primitive_field.cc | 2 +- + .../compiler/csharp/csharp_primitive_field.h | 2 +- + .../csharp/csharp_reflection_class.cc | 2 +- + .../compiler/csharp/csharp_reflection_class.h | 2 +- + .../csharp/csharp_repeated_enum_field.cc | 2 +- + .../csharp/csharp_repeated_enum_field.h | 2 +- + .../csharp/csharp_repeated_message_field.cc | 2 +- + .../csharp/csharp_repeated_message_field.h | 2 +- + .../csharp/csharp_repeated_primitive_field.cc | 2 +- + .../csharp/csharp_repeated_primitive_field.h | 2 +- + .../csharp/csharp_source_generator_base.cc | 2 +- + .../csharp/csharp_source_generator_base.h | 2 +- + .../compiler/csharp/csharp_wrapper_field.cc | 2 +- + .../compiler/csharp/csharp_wrapper_field.h | 2 +- + .../src/google/protobuf/compiler/importer.cc | 4 +- + .../src/google/protobuf/compiler/importer.h | 4 +- + .../protobuf/compiler/java/java_context.cc | 2 +- + .../protobuf/compiler/java/java_context.h | 2 +- + .../compiler/java/java_doc_comment.cc | 4 +- + .../protobuf/compiler/java/java_doc_comment.h | 4 +- + .../protobuf/compiler/java/java_enum.cc | 4 +- + .../google/protobuf/compiler/java/java_enum.h | 4 +- + .../protobuf/compiler/java/java_enum_field.cc | 4 +- + .../protobuf/compiler/java/java_enum_field.h | 4 +- + .../compiler/java/java_enum_field_lite.cc | 4 +- + .../compiler/java/java_enum_field_lite.h | 4 +- + .../protobuf/compiler/java/java_enum_lite.cc | 4 +- + .../protobuf/compiler/java/java_enum_lite.h | 4 +- + .../protobuf/compiler/java/java_extension.cc | 4 +- + .../protobuf/compiler/java/java_extension.h | 4 +- + .../compiler/java/java_extension_lite.cc | 2 +- + .../compiler/java/java_extension_lite.h | 2 +- + .../protobuf/compiler/java/java_field.cc | 4 +- + .../protobuf/compiler/java/java_field.h | 4 +- + .../protobuf/compiler/java/java_file.cc | 4 +- + .../google/protobuf/compiler/java/java_file.h | 4 +- + .../protobuf/compiler/java/java_generator.cc | 4 +- + .../protobuf/compiler/java/java_generator.h | 4 +- + .../compiler/java/java_generator_factory.cc | 4 +- + .../compiler/java/java_generator_factory.h | 4 +- + .../protobuf/compiler/java/java_helpers.cc | 4 +- + .../protobuf/compiler/java/java_helpers.h | 4 +- + .../protobuf/compiler/java/java_map_field.cc | 2 +- + .../protobuf/compiler/java/java_map_field.h | 2 +- + .../compiler/java/java_map_field_lite.cc | 2 +- + .../compiler/java/java_map_field_lite.h | 2 +- + .../protobuf/compiler/java/java_message.cc | 6 +- + .../protobuf/compiler/java/java_message.h | 4 +- + .../compiler/java/java_message_builder.cc | 4 +- + .../compiler/java/java_message_builder.h | 4 +- + .../java/java_message_builder_lite.cc | 4 +- + .../compiler/java/java_message_builder_lite.h | 4 +- + .../compiler/java/java_message_field.cc | 4 +- + .../compiler/java/java_message_field.h | 4 +- + .../compiler/java/java_message_field_lite.cc | 4 +- + .../compiler/java/java_message_field_lite.h | 4 +- + .../compiler/java/java_message_lite.cc | 4 +- + .../compiler/java/java_message_lite.h | 4 +- + .../compiler/java/java_name_resolver.cc | 2 +- + .../compiler/java/java_name_resolver.h | 2 +- + .../protobuf/compiler/java/java_names.h | 4 +- + .../protobuf/compiler/java/java_options.h | 2 +- + .../compiler/java/java_primitive_field.cc | 4 +- + .../compiler/java/java_primitive_field.h | 4 +- + .../java/java_primitive_field_lite.cc | 4 +- + .../compiler/java/java_primitive_field_lite.h | 4 +- + .../protobuf/compiler/java/java_service.cc | 4 +- + .../protobuf/compiler/java/java_service.h | 4 +- + .../java/java_shared_code_generator.cc | 4 +- + .../java/java_shared_code_generator.h | 4 +- + .../compiler/java/java_string_field.cc | 6 +- + .../compiler/java/java_string_field.h | 6 +- + .../compiler/java/java_string_field_lite.cc | 6 +- + .../compiler/java/java_string_field_lite.h | 6 +- + .../protobuf/compiler/js/js_generator.cc | 6 +- + .../protobuf/compiler/js/js_generator.h | 2 +- + .../compiler/js/well_known_types_embed.cc | 4 +- + .../compiler/js/well_known_types_embed.h | 2 +- + .../src/google/protobuf/compiler/main.cc | 4 +- + .../protobuf/compiler/mock_code_generator.cc | 4 +- + .../protobuf/compiler/mock_code_generator.h | 4 +- + .../compiler/objectivec/objectivec_enum.cc | 2 +- + .../compiler/objectivec/objectivec_enum.h | 2 +- + .../objectivec/objectivec_enum_field.cc | 2 +- + .../objectivec/objectivec_enum_field.h | 2 +- + .../objectivec/objectivec_extension.cc | 2 +- + .../objectivec/objectivec_extension.h | 2 +- + .../compiler/objectivec/objectivec_field.cc | 2 +- + .../compiler/objectivec/objectivec_field.h | 2 +- + .../compiler/objectivec/objectivec_file.cc | 2 +- + .../compiler/objectivec/objectivec_file.h | 2 +- + .../objectivec/objectivec_generator.cc | 2 +- + .../objectivec/objectivec_generator.h | 2 +- + .../compiler/objectivec/objectivec_helpers.cc | 2 +- + .../compiler/objectivec/objectivec_helpers.h | 2 +- + .../objectivec/objectivec_map_field.cc | 2 +- + .../objectivec/objectivec_map_field.h | 2 +- + .../compiler/objectivec/objectivec_message.cc | 2 +- + .../compiler/objectivec/objectivec_message.h | 2 +- + .../objectivec/objectivec_message_field.cc | 2 +- + .../objectivec/objectivec_message_field.h | 2 +- + .../compiler/objectivec/objectivec_oneof.cc | 2 +- + .../compiler/objectivec/objectivec_oneof.h | 2 +- + .../objectivec/objectivec_primitive_field.cc | 2 +- + .../objectivec/objectivec_primitive_field.h | 2 +- + .../google/protobuf/compiler/package_info.h | 4 +- + .../src/google/protobuf/compiler/parser.cc | 12 +- + .../src/google/protobuf/compiler/parser.h | 4 +- + .../protobuf/compiler/php/php_generator.cc | 2 +- + .../protobuf/compiler/php/php_generator.h | 2 +- + .../src/google/protobuf/compiler/plugin.cc | 4 +- + .../src/google/protobuf/compiler/plugin.h | 4 +- + .../src/google/protobuf/compiler/plugin.proto | 4 +- + .../compiler/python/python_generator.cc | 4 +- + .../compiler/python/python_generator.h | 4 +- + .../protobuf/compiler/ruby/ruby_generator.cc | 2 +- + .../protobuf/compiler/ruby/ruby_generator.h | 2 +- + .../src/google/protobuf/compiler/scc.h | 2 +- + .../google/protobuf/compiler/subprocess.cc | 4 +- + .../src/google/protobuf/compiler/subprocess.h | 4 +- + .../google/protobuf/compiler/zip_writer.cc | 10 +- + .../src/google/protobuf/compiler/zip_writer.h | 6 +- + .../src/google/protobuf/descriptor.cc | 4 +- + .../protobuf/src/google/protobuf/descriptor.h | 4 +- + .../src/google/protobuf/descriptor.proto | 8 +- + .../google/protobuf/descriptor_database.cc | 4 +- + .../src/google/protobuf/descriptor_database.h | 4 +- + .../src/google/protobuf/duration.proto | 2 +- + .../src/google/protobuf/dynamic_message.cc | 4 +- + .../src/google/protobuf/dynamic_message.h | 4 +- + .../protobuf/src/google/protobuf/empty.proto | 2 +- + .../src/google/protobuf/extension_set.cc | 4 +- + .../src/google/protobuf/extension_set.h | 4 +- + .../google/protobuf/extension_set_heavy.cc | 4 +- + .../src/google/protobuf/extension_set_inl.h | 2 +- + .../src/google/protobuf/field_mask.proto | 2 +- + .../protobuf/generated_enum_reflection.h | 4 +- + .../google/protobuf/generated_enum_util.cc | 2 +- + .../src/google/protobuf/generated_enum_util.h | 2 +- + .../protobuf/generated_message_reflection.cc | 4 +- + .../protobuf/generated_message_reflection.h | 4 +- + .../generated_message_table_driven.cc | 2 +- + .../protobuf/generated_message_table_driven.h | 2 +- + .../generated_message_table_driven_lite.cc | 2 +- + .../generated_message_table_driven_lite.h | 2 +- + .../google/protobuf/generated_message_util.cc | 4 +- + .../google/protobuf/generated_message_util.h | 4 +- + .../protobuf/src/google/protobuf/has_bits.h | 2 +- + .../google/protobuf/implicit_weak_message.cc | 2 +- + .../google/protobuf/implicit_weak_message.h | 2 +- + .../google/protobuf/inlined_string_field.h | 2 +- + .../src/google/protobuf/io/coded_stream.cc | 4 +- + .../src/google/protobuf/io/coded_stream.h | 4 +- + .../src/google/protobuf/io/coded_stream_inl.h | 4 +- + .../src/google/protobuf/io/gzip_stream.cc | 4 +- + .../src/google/protobuf/io/gzip_stream.h | 4 +- + .../src/google/protobuf/io/io_win32.cc | 4 +- + .../src/google/protobuf/io/io_win32.h | 4 +- + .../src/google/protobuf/io/package_info.h | 4 +- + .../src/google/protobuf/io/printer.cc | 4 +- + .../protobuf/src/google/protobuf/io/printer.h | 4 +- + .../protobuf/src/google/protobuf/io/strtod.cc | 2 +- + .../protobuf/src/google/protobuf/io/strtod.h | 2 +- + .../src/google/protobuf/io/tokenizer.cc | 4 +- + .../src/google/protobuf/io/tokenizer.h | 4 +- + .../google/protobuf/io/zero_copy_stream.cc | 4 +- + .../src/google/protobuf/io/zero_copy_stream.h | 4 +- + .../protobuf/io/zero_copy_stream_impl.cc | 4 +- + .../protobuf/io/zero_copy_stream_impl.h | 4 +- + .../protobuf/io/zero_copy_stream_impl_lite.cc | 4 +- + .../protobuf/io/zero_copy_stream_impl_lite.h | 4 +- + .../protobuf/src/google/protobuf/map.h | 2 +- + .../protobuf/src/google/protobuf/map_entry.h | 2 +- + .../src/google/protobuf/map_entry_lite.h | 2 +- + .../protobuf/src/google/protobuf/map_field.cc | 2 +- + .../protobuf/src/google/protobuf/map_field.h | 2 +- + .../src/google/protobuf/map_field_inl.h | 2 +- + .../src/google/protobuf/map_field_lite.h | 2 +- + .../src/google/protobuf/map_type_handler.h | 2 +- + .../protobuf/src/google/protobuf/message.cc | 4 +- + .../protobuf/src/google/protobuf/message.h | 4 +- + .../src/google/protobuf/message_lite.cc | 6 +- + .../src/google/protobuf/message_lite.h | 6 +- + .../protobuf/src/google/protobuf/metadata.h | 2 +- + .../src/google/protobuf/metadata_lite.h | 2 +- + .../src/google/protobuf/package_info.h | 4 +- + .../src/google/protobuf/parse_context.cc | 2 +- + .../src/google/protobuf/parse_context.h | 2 +- + .../protobuf/src/google/protobuf/reflection.h | 2 +- + .../src/google/protobuf/reflection_internal.h | 2 +- + .../src/google/protobuf/reflection_ops.cc | 4 +- + .../src/google/protobuf/reflection_ops.h | 4 +- + .../src/google/protobuf/repeated_field.cc | 4 +- + .../src/google/protobuf/repeated_field.h | 6 +- + .../protobuf/src/google/protobuf/service.cc | 4 +- + .../protobuf/src/google/protobuf/service.h | 4 +- + .../src/google/protobuf/source_context.proto | 2 +- + .../protobuf/src/google/protobuf/struct.proto | 2 +- + .../src/google/protobuf/stubs/casts.h | 2 +- + .../src/google/protobuf/stubs/common.cc | 4 +- + .../src/google/protobuf/stubs/common.h | 4 +- + .../src/google/protobuf/stubs/fastmem.h | 2 +- + .../protobuf/src/google/protobuf/stubs/hash.h | 4 +- + .../src/google/protobuf/stubs/int128.cc | 2 +- + .../src/google/protobuf/stubs/int128.h | 2 +- + .../src/google/protobuf/stubs/logging.h | 2 +- + .../src/google/protobuf/stubs/macros.h | 2 +- + .../src/google/protobuf/stubs/map_util.h | 2 +- + .../src/google/protobuf/stubs/mathlimits.cc | 2 +- + .../src/google/protobuf/stubs/mathlimits.h | 2 +- + .../src/google/protobuf/stubs/mathutil.h | 2 +- + .../protobuf/src/google/protobuf/stubs/once.h | 2 +- + .../google/protobuf/stubs/platform_macros.h | 4 +- + .../protobuf/src/google/protobuf/stubs/port.h | 4 +- + .../src/google/protobuf/stubs/status.cc | 2 +- + .../src/google/protobuf/stubs/status.h | 2 +- + .../src/google/protobuf/stubs/status_macros.h | 2 +- + .../src/google/protobuf/stubs/statusor.cc | 2 +- + .../src/google/protobuf/stubs/statusor.h | 2 +- + .../src/google/protobuf/stubs/stl_util.h | 2 +- + .../src/google/protobuf/stubs/stringpiece.cc | 2 +- + .../src/google/protobuf/stubs/stringpiece.h | 2 +- + .../src/google/protobuf/stubs/stringprintf.cc | 2 +- + .../src/google/protobuf/stubs/stringprintf.h | 2 +- + .../protobuf/stubs/structurally_valid.cc | 4 +- + .../src/google/protobuf/stubs/strutil.cc | 2 +- + .../src/google/protobuf/stubs/strutil.h | 2 +- + .../src/google/protobuf/stubs/substitute.cc | 4 +- + .../src/google/protobuf/stubs/substitute.h | 4 +- + .../src/google/protobuf/stubs/template_util.h | 2 +- + .../protobuf/src/google/protobuf/stubs/time.h | 2 +- + .../src/google/protobuf/text_format.cc | 8 +- + .../src/google/protobuf/text_format.h | 8 +- + .../src/google/protobuf/timestamp.proto | 6 +- + .../protobuf/src/google/protobuf/type.proto | 4 +- + .../src/google/protobuf/unknown_field_set.cc | 4 +- + .../src/google/protobuf/unknown_field_set.h | 4 +- + .../protobuf/util/delimited_message_util.cc | 4 +- + .../protobuf/util/delimited_message_util.h | 4 +- + .../google/protobuf/util/field_comparator.cc | 4 +- + .../google/protobuf/util/field_comparator.h | 2 +- + .../google/protobuf/util/field_mask_util.cc | 2 +- + .../google/protobuf/util/field_mask_util.h | 2 +- + .../google/protobuf/util/internal/constants.h | 8 +- + .../protobuf/util/internal/datapiece.cc | 2 +- + .../google/protobuf/util/internal/datapiece.h | 2 +- + .../internal/default_value_objectwriter.cc | 2 +- + .../internal/default_value_objectwriter.h | 2 +- + .../protobuf/util/internal/error_listener.cc | 2 +- + .../protobuf/util/internal/error_listener.h | 2 +- + .../util/internal/expecting_objectwriter.h | 2 +- + .../util/internal/field_mask_utility.cc | 2 +- + .../util/internal/field_mask_utility.h | 2 +- + .../protobuf/util/internal/json_escaping.cc | 2 +- + .../protobuf/util/internal/json_escaping.h | 2 +- + .../util/internal/json_objectwriter.cc | 2 +- + .../util/internal/json_objectwriter.h | 2 +- + .../util/internal/json_stream_parser.cc | 2 +- + .../util/internal/json_stream_parser.h | 2 +- + .../protobuf/util/internal/location_tracker.h | 2 +- + .../util/internal/mock_error_listener.h | 2 +- + .../util/internal/object_location_tracker.h | 2 +- + .../protobuf/util/internal/object_source.h | 2 +- + .../protobuf/util/internal/object_writer.cc | 2 +- + .../protobuf/util/internal/object_writer.h | 2 +- + .../protobuf/util/internal/proto_writer.cc | 2 +- + .../protobuf/util/internal/proto_writer.h | 2 +- + .../util/internal/protostream_objectsource.cc | 2 +- + .../util/internal/protostream_objectsource.h | 2 +- + .../util/internal/protostream_objectwriter.cc | 50 +- + .../util/internal/protostream_objectwriter.h | 4 +- + .../util/internal/structured_objectwriter.h | 2 +- + .../protobuf/util/internal/type_info.cc | 2 +- + .../google/protobuf/util/internal/type_info.h | 2 +- + .../google/protobuf/util/internal/utility.cc | 2 +- + .../google/protobuf/util/internal/utility.h | 8 +- + .../protobuf/util/json_format_proto3.proto | 2 +- + .../src/google/protobuf/util/json_util.cc | 4 +- + .../src/google/protobuf/util/json_util.h | 2 +- + .../protobuf/util/message_differencer.cc | 4 +- + .../protobuf/util/message_differencer.h | 6 +- + .../src/google/protobuf/util/package_info.h | 2 +- + .../src/google/protobuf/util/time_util.cc | 2 +- + .../src/google/protobuf/util/time_util.h | 2 +- + .../src/google/protobuf/util/type_resolver.h | 2 +- + .../protobuf/util/type_resolver_util.cc | 2 +- + .../google/protobuf/util/type_resolver_util.h | 2 +- + .../src/google/protobuf/wire_format.cc | 4 +- + .../src/google/protobuf/wire_format.h | 6 +- + .../src/google/protobuf/wire_format_lite.cc | 4 +- + .../src/google/protobuf/wire_format_lite.h | 8 +- + .../src/google/protobuf/wrappers.proto | 2 +- + third_party/protobuf/update_version.py | 4 +- + .../pycoverage/coverage/htmlfiles/pyfile.html | 2 +- + .../src/benchmarks/chromium.linux.json | 152 +- + third_party/pyjson5/src/setup.py | 2 +- + third_party/qcms/src/iccread.c | 2 +- + third_party/qcms/src/transform.c | 2 +- + third_party/qunit/src/qunit.js | 4 +- + third_party/s2cellid/src/s2/_fpcontractoff.h | 2 +- + third_party/s2cellid/src/s2/r1interval.h | 2 +- + third_party/s2cellid/src/s2/r2.h | 2 +- + third_party/s2cellid/src/s2/r2rect.cc | 2 +- + third_party/s2cellid/src/s2/r2rect.h | 2 +- + third_party/s2cellid/src/s2/s1angle.cc | 2 +- + third_party/s2cellid/src/s2/s1angle.h | 2 +- + third_party/s2cellid/src/s2/s2cellid.cc | 2 +- + third_party/s2cellid/src/s2/s2cellid.h | 2 +- + .../s2cellid/src/s2/s2coords-internal.h | 2 +- + third_party/s2cellid/src/s2/s2coords.cc | 2 +- + third_party/s2cellid/src/s2/s2coords.h | 2 +- + third_party/s2cellid/src/s2/s2latlng.cc | 2 +- + third_party/s2cellid/src/s2/s2latlng.h | 2 +- + third_party/s2cellid/src/s2/s2point.h | 2 +- + third_party/simplejson/ordered_dict.py | 4 +- + .../snappy/linux/snappy-stubs-public.h | 2 +- + third_party/snappy/mac/snappy-stubs-public.h | 2 +- + .../snappy/win32/snappy-stubs-public.h | 2 +- + third_party/sqlite/amalgamation/shell/shell.c | 2 +- + third_party/sqlite/amalgamation/sqlite3.c | 10 +- + .../patched/autoconf/tea/tclconfig/tcl.m4 | 6 +- + third_party/sqlite/patched/ext/misc/zipfile.c | 2 +- + third_party/sqlite/patched/src/date.c | 2 +- + third_party/sqlite/patched/src/main.c | 4 +- + third_party/sqlite/patched/src/os_unix.c | 2 +- + third_party/sqlite/patched/src/pager.c | 2 +- + .../autoconf/tea/tclconfig/tcl.m4 | 6 +- + .../sqlite-src-3290000/ext/misc/zipfile.c | 2 +- + .../sqlite/sqlite-src-3290000/src/date.c | 2 +- + .../sqlite/sqlite-src-3290000/src/main.c | 4 +- + .../sqlite/sqlite-src-3290000/src/os_unix.c | 2 +- + .../sqlite/sqlite-src-3290000/src/pager.c | 2 +- + .../tcmalloc/chromium/src/base/abort.h | 2 +- + .../src/base/atomicops-internals-windows.h | 4 +- + .../chromium/src/base/dynamic_annotations.h | 4 +- + .../chromium/src/base/linux_syscall_support.h | 2 +- + .../tcmalloc/chromium/src/central_freelist.cc | 2 +- + .../tcmalloc/chromium/src/central_freelist.h | 2 +- + third_party/tcmalloc/chromium/src/common.cc | 2 +- + third_party/tcmalloc/chromium/src/common.h | 2 +- + .../tcmalloc/chromium/src/config_linux.h | 2 +- + .../tcmalloc/chromium/src/config_win.h | 2 +- + .../tcmalloc/chromium/src/debugallocation.cc | 4 +- + .../tcmalloc/chromium/src/free_list.cc | 2 +- + third_party/tcmalloc/chromium/src/free_list.h | 2 +- + third_party/tcmalloc/chromium/src/getpc.h | 4 +- + .../src/gperftools/malloc_extension.h | 2 +- + .../chromium/src/gperftools/tcmalloc.h | 4 +- + .../tcmalloc/chromium/src/heap-checker.cc | 4 +- + .../tcmalloc/chromium/src/internal_logging.cc | 2 +- + .../tcmalloc/chromium/src/internal_logging.h | 2 +- + .../tcmalloc/chromium/src/libc_override.h | 2 +- + .../chromium/src/libc_override_gcc_and_weak.h | 2 +- + .../chromium/src/libc_override_glibc.h | 2 +- + .../tcmalloc/chromium/src/libc_override_osx.h | 2 +- + .../chromium/src/libc_override_redefine.h | 2 +- + .../tcmalloc/chromium/src/linked_list.h | 2 +- + .../tcmalloc/chromium/src/malloc_extension.cc | 2 +- + .../tcmalloc/chromium/src/malloc_hook.cc | 2 +- + .../chromium/src/malloc_hook_mmap_linux.h | 2 +- + .../tcmalloc/chromium/src/maybe_threads.cc | 2 +- + .../tcmalloc/chromium/src/maybe_threads.h | 2 +- + .../tcmalloc/chromium/src/page_heap.cc | 4 +- + third_party/tcmalloc/chromium/src/page_heap.h | 2 +- + .../chromium/src/page_heap_allocator.h | 2 +- + third_party/tcmalloc/chromium/src/pagemap.h | 2 +- + .../tcmalloc/chromium/src/raw_printer.cc | 2 +- + third_party/tcmalloc/chromium/src/span.cc | 2 +- + third_party/tcmalloc/chromium/src/span.h | 2 +- + .../chromium/src/stacktrace_instrument-inl.h | 2 +- + .../chromium/src/stacktrace_win32-inl.h | 2 +- + .../tcmalloc/chromium/src/static_vars.cc | 2 +- + .../tcmalloc/chromium/src/static_vars.h | 2 +- + third_party/tcmalloc/chromium/src/tcmalloc.cc | 2 +- + third_party/tcmalloc/chromium/src/tcmalloc.h | 2 +- + .../tcmalloc/chromium/src/thread_cache.cc | 2 +- + .../tcmalloc/chromium/src/thread_cache.h | 2 +- + .../chromium/src/windows/addr2line-pdb.c | 2 +- + .../tcmalloc/chromium/src/windows/config.h | 4 +- + .../chromium/src/windows/get_mangled_names.cc | 6 +- + .../src/windows/gperftools/tcmalloc.h | 4 +- + .../tcmalloc/chromium/src/windows/nm-pdb.c | 2 +- + .../src/windows/override_functions.cc | 2 +- + .../chromium/src/windows/patch_functions.cc | 2 +- + .../tcmalloc/chromium/src/windows/port.h | 2 +- + .../tcmalloc/vendor/README_windows.txt | 8 +- + third_party/tcmalloc/vendor/configure.ac | 4 +- + .../src/base/atomicops-internals-windows.h | 4 +- + .../vendor/src/base/dynamic_annotations.h | 4 +- + .../vendor/src/base/linux_syscall_support.h | 2 +- + .../tcmalloc/vendor/src/central_freelist.cc | 2 +- + .../tcmalloc/vendor/src/central_freelist.h | 2 +- + third_party/tcmalloc/vendor/src/common.cc | 2 +- + third_party/tcmalloc/vendor/src/common.h | 2 +- + .../tcmalloc/vendor/src/debugallocation.cc | 4 +- + third_party/tcmalloc/vendor/src/getpc.h | 4 +- + .../vendor/src/gperftools/malloc_extension.h | 2 +- + .../tcmalloc/vendor/src/heap-checker.cc | 4 +- + .../tcmalloc/vendor/src/internal_logging.cc | 2 +- + .../tcmalloc/vendor/src/internal_logging.h | 2 +- + .../tcmalloc/vendor/src/libc_override.h | 2 +- + .../vendor/src/libc_override_gcc_and_weak.h | 2 +- + .../tcmalloc/vendor/src/libc_override_glibc.h | 2 +- + .../tcmalloc/vendor/src/libc_override_osx.h | 2 +- + .../vendor/src/libc_override_redefine.h | 2 +- + third_party/tcmalloc/vendor/src/linked_list.h | 2 +- + .../tcmalloc/vendor/src/malloc_extension.cc | 2 +- + .../tcmalloc/vendor/src/malloc_hook.cc | 2 +- + .../vendor/src/malloc_hook_mmap_linux.h | 2 +- + .../tcmalloc/vendor/src/maybe_threads.cc | 2 +- + .../tcmalloc/vendor/src/maybe_threads.h | 2 +- + third_party/tcmalloc/vendor/src/page_heap.cc | 4 +- + third_party/tcmalloc/vendor/src/page_heap.h | 2 +- + .../tcmalloc/vendor/src/page_heap_allocator.h | 2 +- + third_party/tcmalloc/vendor/src/pagemap.h | 2 +- + .../tcmalloc/vendor/src/raw_printer.cc | 2 +- + third_party/tcmalloc/vendor/src/span.cc | 2 +- + third_party/tcmalloc/vendor/src/span.h | 2 +- + .../vendor/src/stacktrace_instrument-inl.h | 2 +- + .../vendor/src/stacktrace_win32-inl.h | 2 +- + .../tcmalloc/vendor/src/static_vars.cc | 2 +- + third_party/tcmalloc/vendor/src/static_vars.h | 2 +- + third_party/tcmalloc/vendor/src/tcmalloc.cc | 2 +- + third_party/tcmalloc/vendor/src/tcmalloc.h | 2 +- + .../tcmalloc/vendor/src/thread_cache.cc | 2 +- + .../tcmalloc/vendor/src/thread_cache.h | 2 +- + .../vendor/src/windows/addr2line-pdb.c | 2 +- + .../tcmalloc/vendor/src/windows/config.h | 4 +- + .../vendor/src/windows/get_mangled_names.cc | 6 +- + .../vendor/src/windows/gperftools/tcmalloc.h | 4 +- + .../tcmalloc/vendor/src/windows/nm-pdb.c | 2 +- + .../vendor/src/windows/override_functions.cc | 2 +- + .../vendor/src/windows/patch_functions.cc | 2 +- + .../tcmalloc/vendor/src/windows/port.h | 2 +- + third_party/webrtc_overrides/BUILD.gn | 4 +- + third_party/woff2/src/buffer.h | 2 +- + third_party/woff2/src/transform.cc | 2 +- + third_party/woff2/src/woff2_common.h | 2 +- + third_party/woff2/src/woff2_dec.cc | 4 +- + third_party/zlib/google/zip_reader.h | 2 +- + tools/accessibility/nvda/README.txt | 2 +- + .../android_studio/ChromiumInspections.xml | 2 +- + .../android/checkstyle/chromium-style-5.0.xml | 2 +- + tools/android/checkxmlstyle/PRESUBMIT.py | 2 +- + tools/android/checkxmlstyle/checkxmlstyle.py | 4 +- + .../res/values/strings.xml | 4 +- + .../customtabs_benchmark/scripts/PRESUBMIT.py | 2 +- + .../scripts/customtabs_benchmark.py | 2 +- + .../scripts/run_benchmark.py | 2 +- + .../scripts/sample_config.json | 4 +- + .../plugin/NoAndroidAsyncTaskCheck.java | 2 +- + .../NoContextGetApplicationContext.java | 2 +- + .../plugin/NoRedundantFieldInitCheck.java | 2 +- + .../android/memtrack_helper/memtrack_helper.c | 2 +- + tools/android/native_lib_memory/PRESUBMIT.py | 2 +- + tools/android/sdk_updater/update_sdk.py | 2 +- + .../tracing/systrace-extract-startup.py | 2 +- + tools/binary_size/PRESUBMIT.py | 2 +- + tools/binary_size/diagnose_bloat.py | 2 +- + .../binary_size/generate_milestone_reports.py | 2 +- + .../generate_official_build_report.py | 2 +- + tools/binary_size/libsupersize/html_report.py | 2 +- + .../libsupersize/static/index.html | 2 +- + .../libsupersize/static/viewer.html | 4 +- + .../binary_size/trybot_commit_size_checker.py | 6 +- + tools/bisect-builds.py | 30 +- + tools/bisect_repackage/bisect_repackage.py | 4 +- + .../bisect_repackage_utils.py | 4 +- + tools/check_git_config.py | 24 +- + tools/checkbins/checkbins.py | 4 +- + tools/checklicenses/checklicenses.py | 12 +- + tools/checkperms/PRESUBMIT.py | 2 +- + tools/checkteamtags/PRESUBMIT.py | 2 +- + tools/checkteamtags/checkteamtags.py | 12 +- + tools/checkteamtags/extract_components.py | 2 +- + .../open_my_editor/ext/background.js | 26 +- + .../open_my_editor/ext/cr-content.js | 2 +- + .../open_my_editor/ext/cs-content.js | 2 +- + .../open_my_editor/ext/manifest.json | 6 +- + tools/chrome_proxy/webdriver/bypass.py | 44 +- + tools/chrome_proxy/webdriver/client_config.py | 14 +- + tools/chrome_proxy/webdriver/common.py | 2 +- + tools/chrome_proxy/webdriver/decorators.py | 2 +- + tools/chrome_proxy/webdriver/fallback.py | 18 +- + .../chrome_proxy/webdriver/https_previews.py | 24 +- + tools/chrome_proxy/webdriver/lite_page.py | 16 +- + tools/chrome_proxy/webdriver/protocol_fuzz.py | 4 +- + .../webdriver/proxy_connection.py | 8 +- + tools/chrome_proxy/webdriver/quic.py | 4 +- + .../webdriver/reenable_after_bypass.py | 12 +- + tools/chrome_proxy/webdriver/safebrowsing.py | 4 +- + tools/chrome_proxy/webdriver/smoke.py | 24 +- + .../webdriver/subresource_redirect.py | 12 +- + tools/chrome_proxy/webdriver/video.py | 20 +- + tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp | 2 +- + tools/clang/plugins/ChromeClassTester.cpp | 2 +- + tools/clang/scripts/build.py | 4 +- + tools/clang/scripts/package.py | 2 +- + tools/clang/scripts/update.py | 4 +- + tools/code_coverage/coverage.py | 8 +- + .../update_clang_coverage_tools.py | 2 +- + tools/coverity/coverity.py | 2 +- + tools/cr/cr/base/android.py | 2 +- + tools/cr/main.py | 2 +- + tools/cygprofile/PRESUBMIT.py | 2 +- + .../cygprofile/orderfile_generator_backend.py | 4 +- + tools/download_cros_provided_profile.py | 2 +- + .../dromaeo_benchmark_runner.py | 10 +- + tools/emacs/gn.el | 6 +- + tools/emacs/trybot-mac.txt | 232 +- + tools/find_runtime_symbols/PRESUBMIT.py | 2 +- + tools/flags/list_flags.py | 4 +- + tools/generate_stubs/generate_stubs.py | 2 +- + tools/git/suggest_owners.py | 6 +- + tools/gn/bootstrap/bootstrap.py | 4 +- + tools/grit/PRESUBMIT.py | 2 +- + .../grit/grit/format/chrome_messages_json.py | 2 +- + tools/grit/grit/format/rc.py | 6 +- + tools/grit/grit/node/misc.py | 2 +- + tools/grit/grit/pseudo_rtl.py | 2 +- + tools/grit/grit/tool/android2grd.py | 6 +- + tools/grit/grit/tool/build.py | 2 +- + tools/grit/grit/tool/resize.py | 2 +- + tools/grit/pak_util.py | 2 +- + tools/include_tracer.py | 2 +- + tools/infra/PRESUBMIT.py | 2 +- + tools/infra/clobber_cache_utils.py | 4 +- + tools/infra/reproduce.py | 12 +- + tools/json_schema_compiler/PRESUBMIT.py | 2 +- + .../js_externs_generator.py | 4 +- + tools/json_schema_compiler/js_util.py | 8 +- + tools/json_schema_compiler/preview.py | 2 +- + tools/json_to_struct/PRESUBMIT.py | 2 +- + tools/licenses.py | 34 +- + tools/linux/PRESUBMIT.py | 2 +- + tools/mb/mb.py | 8 +- + tools/mb/mb_config.pyl | 6 +- + tools/md_browser/base.css | 4 +- + tools/md_browser/footer.html | 2 +- + tools/md_browser/gitiles_autolink.py | 2 +- + tools/md_browser/gitiles_ext_blocks.py | 2 +- + tools/md_browser/gitiles_smart_quotes.py | 2 +- + tools/md_browser/md_browser.py | 2 +- + .../ff_ext/content/measure_page_load_time.js | 8 +- + tools/memory_inspector/PRESUBMIT.py | 2 +- + .../chrome_app/template/main_window.js | 2 +- + .../memory_inspector/constants.py | 2 +- + .../frontends/www_content/index.html | 10 +- + .../frontends/www_content/js/rootUi.js | 2 +- + tools/metrics/actions/PRESUBMIT.py | 2 +- + tools/metrics/actions/actions.xml | 5508 +- + tools/metrics/common/models.py | 2 +- + tools/metrics/histograms/PRESUBMIT.py | 2 +- + tools/metrics/histograms/enums.xml | 98 +- + tools/metrics/histograms/expand_owners.py | 8 +- + .../metrics/histograms/extract_histograms.py | 8 +- + tools/metrics/histograms/histograms.xml | 41892 ++++++++-------- + tools/metrics/md2xml.py | 4 +- + tools/metrics/rappor/PRESUBMIT.py | 2 +- + tools/metrics/rappor/rappor.xml | 344 +- + tools/metrics/ukm/PRESUBMIT.py | 2 +- + tools/metrics/ukm/ukm.xml | 498 +- + tools/metrics/ukm/xml_validations.py | 4 +- + tools/nocompile_driver.py | 2 +- + tools/omahaproxy.py | 2 +- + tools/perf/PRESUBMIT.py | 2 +- + tools/perf/benchmarks/blink_perf.py | 34 +- + tools/perf/benchmarks/dromaeo.py | 6 +- + tools/perf/benchmarks/dummy_benchmark.py | 6 +- + tools/perf/benchmarks/jetstream.py | 2 +- + tools/perf/benchmarks/jetstream2.py | 2 +- + tools/perf/benchmarks/kraken.py | 4 +- + tools/perf/benchmarks/loading.py | 4 +- + tools/perf/benchmarks/media.py | 8 +- + tools/perf/benchmarks/memory.py | 2 +- + tools/perf/benchmarks/octane.py | 2 +- + tools/perf/benchmarks/power.py | 2 +- + .../benchmarks/rasterize_and_record_micro.py | 8 +- + tools/perf/benchmarks/rendering.py | 4 +- + tools/perf/benchmarks/speedometer.py | 4 +- + tools/perf/benchmarks/speedometer2.py | 4 +- + tools/perf/benchmarks/startup_mobile.py | 4 +- + tools/perf/benchmarks/system_health.py | 24 +- + tools/perf/benchmarks/tab_switching.py | 2 +- + tools/perf/benchmarks/tracing.py | 2 +- + tools/perf/benchmarks/v8.py | 2 +- + tools/perf/benchmarks/v8_browsing.py | 8 +- + tools/perf/benchmarks/webrtc.py | 6 +- + tools/perf/cli_tools/flakiness_cli/api.py | 2 +- + .../perf/cli_tools/pinboard/job_configs.json | 6 +- + .../cli_tools/soundwave/tables/timeseries.py | 2 +- + tools/perf/cli_tools/update_wpr/update_wpr.py | 2 +- + .../blink_layoutng_perf.py | 6 +- + .../blink_layoutng_perf/loading_layout_ng.py | 4 +- + .../cluster_telemetry/ct_benchmarks_util.py | 2 +- + .../cluster_telemetry/generic_trace.py | 4 +- + .../cluster_telemetry/skpicture_printer.py | 2 +- + .../cros_benchmarks/tab_switching_bench.py | 2 +- + .../cros_benchmarks/ui_smoothness_bench.py | 2 +- + .../leak_detection/data/leak_detection.json | 20 +- + .../contrib/leak_detection/leak_detection.py | 2 +- + .../perf/contrib/leak_detection/page_sets.py | 20 +- + .../media_router_benchmarks.py | 4 +- + .../contrib/memory_extras/memory_extras.py | 6 +- + tools/perf/contrib/orderfile/orderfile.py | 16 +- + .../contrib/vr_benchmarks/vr_benchmarks.py | 14 +- + .../vr_benchmarks/vr_browsing_mode_pages.py | 4 +- + tools/perf/core/bot_platforms.py | 2 +- + tools/perf/core/perf_benchmark.py | 2 +- + tools/perf/core/perf_data_generator.py | 44 +- + tools/perf/core/results_dashboard.py | 12 +- + tools/perf/core/results_merger.py | 4 +- + tools/perf/core/retrieve_story_timing.py | 2 +- + .../perf/core/services/buildbucket_service.py | 2 +- + tools/perf/core/services/dashboard_service.py | 4 +- + tools/perf/core/services/isolate_service.py | 2 +- + tools/perf/core/services/pinpoint_service.py | 2 +- + tools/perf/core/services/request.py | 2 +- + .../android-nexus5x-perf_timing.json | 8 +- + .../android-pixel2-perf_timing.json | 8 +- + .../android-pixel2_webview-perf_timing.json | 8 +- + .../android_nexus5_perf_timing.json | 8 +- + .../android_nexus5x_webview_perf_timing.json | 8 +- + .../android_nexus6_webview_perf_timing.json | 8 +- + .../timing_data/linux-perf_timing.json | 38 +- + .../mac-10_12_laptop_low_end-perf_timing.json | 8 +- + ...mac-10_13_laptop_high_end-perf_timing.json | 8 +- + .../timing_data/win-10-perf_timing.json | 38 +- + .../win_7_nvidia_gpu_perf_timing.json | 38 +- + .../timing_data/win_7_perf_timing.json | 38 +- + tools/perf/examples/pinpoint_cli/try_job.json | 2 +- + .../generate_legacy_perf_dashboard_json.py | 2 +- + tools/perf/page_sets/alexa1-10000-urls.json | 124 +- + tools/perf/page_sets/cros_ui_cases.py | 2 +- + tools/perf/page_sets/data/intl_ar_fa_he.json | 4 +- + tools/perf/page_sets/data/intl_ja_zh.json | 4 +- + tools/perf/page_sets/data/kraken.json | 2 +- + .../data/long_running_idle_gmail_page.json | 2 +- + tools/perf/page_sets/data/top_10.json | 10 +- + tools/perf/page_sets/data/top_25.json | 18 +- + tools/perf/page_sets/data/v8_top_25.json | 30 +- + tools/perf/page_sets/desktop_power.py | 2 +- + tools/perf/page_sets/google_pages.py | 4 +- + tools/perf/page_sets/intl_ar_fa_he.py | 2 +- + tools/perf/page_sets/intl_ja_zh.py | 2 +- + .../perf/page_sets/key_mobile_sites_smooth.py | 8 +- + .../page_sets/key_silk_cases/font_wipe.html | 2 +- + .../page_sets/key_silk_cases/inbox_app.html | 2 +- + tools/perf/page_sets/kraken_pages.py | 2 +- + tools/perf/page_sets/loading_mobile.py | 12 +- + .../page_sets/login_helpers/chrome_login.py | 2 +- + .../page_sets/login_helpers/facebook_login.py | 6 +- + .../page_sets/login_helpers/google_login.py | 4 +- + .../page_sets/login_helpers/linkedin_login.py | 4 +- + .../login_helpers/pinterest_login.py | 2 +- + .../rendering/key_desktop_move_cases.py | 2 +- + .../page_sets/rendering/key_silk_cases.py | 12 +- + tools/perf/page_sets/rendering/story_tags.py | 2 +- + .../rendering/top_real_world_desktop.py | 16 +- + .../rendering/top_real_world_mobile.py | 10 +- + .../rendering/tough_animation_cases.py | 2 +- + .../page_sets/rendering/tough_canvas_cases.py | 18 +- + .../rendering/tough_filters_cases.py | 2 +- + .../rendering/tough_pinch_zoom_cases.py | 12 +- + .../tough_pinch_zoom_mobile_cases.py | 2 +- + .../system_health/accessibility_stories.py | 6 +- + .../system_health/background_stories.py | 2 +- + .../system_health/browsing_stories.py | 64 +- + .../system_health/loading_stories.py | 20 +- + .../system_health/long_running_stories.py | 8 +- + .../page_sets/system_health/media_stories.py | 4 +- + .../system_health/system_health_stories.py | 2 +- + tools/perf/page_sets/top_10.py | 10 +- + tools/perf/page_sets/top_pages.py | 16 +- + .../mix_blend_mode_propagating_isolation.html | 2 +- + tools/perf/page_sets/v8_top_25.py | 28 +- + tools/perf/page_sets/webrtc_cases/adapter.js | 6 +- + .../webrtc_cases/codec_constraints.html | 2 +- + tools/perf/process_perf_results.py | 2 +- + tools/polymer/PRESUBMIT.py | 2 +- + tools/python/google/gethash_timer.py | 2 +- + tools/resources/find_unused_resources.py | 2 +- + tools/roll_webgl_conformance.py | 2 +- + tools/run-swarmed.py | 10 +- + tools/site_compare/commands/measure.py | 2 +- + tools/site_compare/commands/scrape.py | 2 +- + .../scrapers/chrome/chromebase.py | 4 +- + .../site_compare/scrapers/firefox/firefox2.py | 2 +- + tools/site_compare/scrapers/ie/ie7.py | 4 +- + tools/site_compare/utils/browser_iterate.py | 2 +- + tools/symsrc/source_index.py | 8 +- + tools/traceline/svgui/traceline.js | 2 +- + .../auditor/traffic_annotation_auditor_ui.cc | 2 +- + .../sample_traffic_annotation.cc | 4 +- + .../scripts/annotation_tools.py | 2 +- + .../scripts/update_annotations_sheet.py | 6 +- + .../traffic_annotation.proto | 2 +- + tools/translation/upload_screenshots.py | 2 +- + tools/usb_gadget/gadget.py | 6 +- + tools/usb_gadget/msos20_descriptors.py | 2 +- + tools/variations/bisect_variations.py | 2 +- + tools/web_dev_style/css_checker.py | 6 +- + tools/web_dev_style/html_checker.py | 2 +- + tools/web_dev_style/js_checker.py | 8 +- + tools/web_dev_style/resource_checker.py | 2 +- + .../CreateTempFilesPerfEval.cc | 2 +- + .../CreateTempFilesPerfEvaluation/ReadMe.txt | 2 +- + tools/win/DebugVisualizers/BUILD.gn | 2 +- + .../system_information_sampler.cpp | 2 +- + tools/win/RetrieveSymbols/RetrieveSymbols.cpp | 2 +- + tools/win/ShowThreadNames/ReadMe.txt | 2 +- + tools/win/chromeexts/commands/hwnd_command.cc | 2 +- + tools/win/sizeviewer/template.html | 2 +- + ui/PRESUBMIT.py | 2 +- + .../ca_renderer_layer_tree.h | 2 +- + ui/accessibility/ax_clipping_behavior.h | 2 +- + ui/accessibility/ax_language_detection.cc | 2 +- + ui/accessibility/ax_offscreen_result.h | 2 +- + ui/accessibility/extensions/alt/background.js | 2 +- + .../extensions/caretbrowsing/caretbrowsing.js | 4 +- + .../extensions/caretbrowsing/traverse_util.js | 2 +- + .../chromevox/background/background.js | 2 +- + .../chromevox/background/prefs.js | 4 +- + .../chromevox/injected/event_watcher.js | 2 +- + .../chromevox/injected/history.js | 2 +- + .../injected/mathjax_external_util.js | 2 +- + .../chromevox/injected/navigation_manager.js | 2 +- + .../chromevoxclassic/closure/base.js | 4 +- + .../chromevoxclassic/common/dom_util.js | 10 +- + .../chromevoxclassic/common/selection_util.js | 14 +- + .../chromevoxclassic/common/traverse_table.js | 2 +- + .../chromevoxclassic/common/traverse_util.js | 2 +- + .../chromevoxclassic/common/xpath_util.js | 2 +- + .../cvox2/background/background.js | 14 +- + .../cvox2/background/panel.html | 2 +- + .../extensions/searchvox/loader.js | 2 +- + .../chromevoxclassic/host/chrome/host.js | 4 +- + .../accessibility_extensions_strings.grd | 2 +- + .../ax_platform_node_delegate_utils_win.cc | 2 +- + ui/android/java/res/values/strings.xml | 2 +- + ui/base/clipboard/clipboard_format_type.h | 2 +- + ui/base/clipboard/clipboard_util_win.cc | 2 +- + ui/base/clipboard/clipboard_win.cc | 4 +- + ui/base/cocoa/base_view.mm | 2 +- + .../constrained_window_animation.mm | 2 +- + ui/base/cocoa/tool_tip_base_view.mm | 2 +- + .../cocoa/underlay_opengl_hosting_window.mm | 2 +- + .../dragdrop/os_exchange_data_provider_win.cc | 2 +- + .../dragdrop/os_exchange_data_provider_win.h | 2 +- + ui/base/ime/PRESUBMIT.py | 2 +- + ui/base/ime/character_composer_sequences.txt | 2 +- + ui/base/ime/text_input_client.h | 2 +- + ui/base/ime/win/input_method_win_imm32.cc | 2 +- + ui/base/ime/win/tsf_bridge.cc | 2 +- + ui/base/ime/win/tsf_input_scope.h | 2 +- + ui/base/ime/win/tsf_text_store.cc | 2 +- + ui/base/ime/win/tsf_text_store.h | 4 +- + ui/base/resource/data_pack.cc | 2 +- + ui/base/resource/resource_bundle.h | 2 +- + ui/base/win/lock_state.cc | 2 +- + ui/base/x/x11_window.cc | 2 +- + ui/events/blink/blink_event_util.cc | 2 +- + .../blink/prediction/linear_resampling.h | 2 +- + .../devices/input_device_observer_win.cc | 2 +- + .../gesture_detection/motion_event_buffer.h | 4 +- + .../touch_disposition_gesture_filter.cc | 2 +- + ui/events/gestures/gesture_recognizer_impl.cc | 2 +- + .../dom/dom_keyboard_layout_map_win.cc | 2 +- + .../keycodes/keyboard_code_conversion_mac.mm | 2 +- + .../keycodes/keyboard_code_conversion_x.cc | 4 +- + ui/events/keycodes/keyboard_codes_posix.h | 2 +- + ui/events/keycodes/platform_key_map_win.cc | 2 +- + ui/events/win/events_win_utils.cc | 2 +- + ui/events/win/modifier_keyboard_hook_win.cc | 4 +- + ui/file_manager/audio_player/manifest.json | 2 +- + ui/file_manager/base/js/mock_chrome.js | 8 +- + ui/file_manager/externs/chrome_cast.js | 100 +- + .../externs/chrome_file_browser_handler.js | 4 +- + ui/file_manager/externs/volume_info.js | 2 +- + .../file_manager/background/js/background.js | 2 +- + .../common/js/files_app_entry_types.js | 6 +- + .../file_manager/common/js/util.js | 2 +- + .../cws_widget/cws_widget_container.js | 4 +- + .../foreground/elements/icons.html | 2 +- + .../foreground/js/file_manager_commands.js | 4 +- + .../foreground/js/ui/file_tap_handler.js | 2 +- + .../foreground/js/web_store_utils.js | 4 +- + ui/file_manager/file_manager/manifest.json | 10 +- + ui/file_manager/gallery/manifest.json | 2 +- + ui/file_manager/image_loader/piex/Makefile | 2 +- + .../image_loader/piex/package.json | 2 +- + ui/file_manager/video_player/manifest.json | 2 +- + ui/gfx/color_analysis.h | 2 +- + ui/gfx/color_space_win.h | 2 +- + ui/gfx/font.h | 2 +- + ui/gfx/font_fallback_win.h | 2 +- + ui/gfx/icon_util.cc | 6 +- + ui/gfx/icon_util.h | 2 +- + ui/gfx/platform_font_win.cc | 2 +- + ui/gfx/platform_font_win.h | 4 +- + ui/gfx/transform.cc | 2 +- + ui/gfx/win/physical_size.cc | 2 +- + ui/gfx/win/singleton_hwnd_hot_key_observer.cc | 2 +- + ui/gl/android/surface_texture.cc | 2 +- + ui/gl/direct_composition_surface_win.cc | 2 +- + ui/gl/gl_image_io_surface_egl.mm | 2 +- + ui/gl/gl_surface_egl.cc | 4 +- + ui/gl/gl_surface_presentation_helper.cc | 2 +- + ui/gl/vsync_thread_win.cc | 2 +- + ui/latency/average_lag_tracker.h | 2 +- + .../account_picker/chromeos_user_pod_row.js | 2 +- + .../chromeos_user_pod_template.html | 2 +- + .../account_picker/user_pod_template.html | 2 +- + ui/native_theme/native_theme_win.h | 2 +- + .../platform/wayland/host/wayland_window.cc | 2 +- + ui/resources/PRESUBMIT.py | 4 +- + ui/resources/resource_check/ico_files.py | 4 +- + .../resource_check/resource_scale_factors.py | 4 +- + ui/strings/ui_strings.grd | 4 +- + ui/views/PRESUBMIT.py | 2 +- + ui/views/animation/ink_drop_ripple.h | 2 +- + ui/views/examples/webview_example.cc | 2 +- + ui/views/view_targeter_delegate.h | 2 +- + ui/views/win/hwnd_message_handler.cc | 2 +- + .../chromeos/quick_unlock/pin_keyboard.html | 2 +- + ui/webui/resources/cr_elements/icons.html | 4 +- + ui/webui/resources/js/ios/web_ui.js | 2 +- + url/gurl.h | 8 +- + url/third_party/mozilla/LICENSE.txt | 4 +- + url/third_party/mozilla/url_parse.cc | 4 +- + url/third_party/mozilla/url_parse.h | 2 +- + url/url_canon_relative.cc | 2 +- + url/url_idna_icu.cc | 2 +- + url/url_util.cc | 2 +- + url/url_util.h | 6 +- + 4548 files changed, 35290 insertions(+), 35290 deletions(-) + +diff --git a/.gn b/.gn +--- a/.gn ++++ b/.gn +@@ -582,7 +582,7 @@ check_targets = [ + "//ui/*", + "//url/*", + +- #"//v8/*", # Errors: https://bugs.chromium.org/p/v8/issues/detail?id=7330 ++ #"//v8/*", # Errors: https://bugs.ch40m1um.qjz9zk/p/v8/issues/detail?id=7330 + + "//weblayer/*", + ] +diff --git a/BUILD.gn b/BUILD.gn +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -997,7 +997,7 @@ if (!is_ios) { + } + } + +- # https://www.chromium.org/developers/testing/webkit-layout-tests ++ # https://www.ch40m1um.qjz9zk/developers/testing/webkit-layout-tests + + # The _exparchive at the end of the name indicates to the isolate recipe + # that the isolate should be archived separately using the `exparchive` +diff --git a/PRESUBMIT.py b/PRESUBMIT.py +--- a/PRESUBMIT.py ++++ b/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Top-level presubmit script for Chromium. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +@@ -110,7 +110,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView addTrackingRect:owner:userData:assumeInside:] is' + 'prohibited. Please use CrTrackingArea instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + False, + ), +@@ -119,7 +119,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of NSTrackingAreas is prohibited. Please use CrTrackingArea', + 'instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + False, + ), +@@ -128,7 +128,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertPointFromBase:] is almost certainly wrong.', + 'Please use |convertPoint:(point) fromView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -137,7 +137,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertPointToBase:] is almost certainly wrong.', + 'Please use |convertPoint:(point) toView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -146,7 +146,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertRectFromBase:] is almost certainly wrong.', + 'Please use |convertRect:(point) fromView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -155,7 +155,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertRectToBase:] is almost certainly wrong.', + 'Please use |convertRect:(point) toView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -164,7 +164,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertSizeFromBase:] is almost certainly wrong.', + 'Please use |convertSize:(point) fromView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -173,7 +173,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertSizeToBase:] is almost certainly wrong.', + 'Please use |convertSize:(point) toView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -667,7 +667,7 @@ _BANNED_CPP_FUNCTIONS = ( + ( + "Don't use CallJavascriptFunctionUnsafe() in new code. Instead, use", + 'AllowJavascript(), OnJavascriptAllowed()/OnJavascriptDisallowed(),', +- 'and CallJavascriptFunction(). See https://goo.gl/qivavq.', ++ 'and CallJavascriptFunction(). See https://goo.gl.qjz9zk.qjz9zk/qivavq.', + ), + False, + ( +@@ -1253,7 +1253,7 @@ _DEPRECATED_MOJO_TYPES = ( + + _IPC_ENUM_TRAITS_DEPRECATED = ( + 'You are using IPC_ENUM_TRAITS() in your code. It has been deprecated.\n' +- 'See http://www.chromium.org/Home/chromium-security/education/' ++ 'See http://www.ch40m1um.qjz9zk/Home/chromium-security/education/' + 'security-tips-for-ipc') + + _LONG_PATH_ERROR = ( +@@ -1375,7 +1375,7 @@ _ALL_PYDEPS_FILES = _ANDROID_SPECIFIC_PYDEPS_FILES + _GENERIC_PYDEPS_FILES + + # Bypass the AUTHORS check for these accounts. + _KNOWN_ROBOTS = set( +- '%s-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com' % s ++ '%s-chromium-autoroll@skia-buildbots.9oo91e.qjz9zk.iam.gserviceaccount.com' % s + for s in ('afdo', 'angle', 'catapult', 'chromite', 'depot-tools', + 'fuchsia-sdk', 'nacl', 'pdfium', 'perfetto', 'skia', + 'spirv', 'src-internal', 'webrtc') +@@ -1385,7 +1385,7 @@ _KNOWN_ROBOTS = set( + for s in ('v8-ci-autoroll-builder', 'wpt-autoroller',) + ) | set('%s@skia-public.iam.gserviceaccount.com' % s + for s in ('chromium-autoroll',) +- ) | set('%s@skia-corp.google.com.iam.gserviceaccount.com' % s ++ ) | set('%s@skia-corp.9oo91e.qjz9zk.iam.gserviceaccount.com' % s + for s in ('chromium-internal-autoroll',)) + + +@@ -1792,7 +1792,7 @@ def _CheckNoDEPSGIT(input_api, output_api): + 'Never commit changes to .DEPS.git. This file is maintained by an\n' + 'automated system based on what\'s in DEPS and your changes will be\n' + 'overwritten.\n' +- 'See https://sites.google.com/a/chromium.org/dev/developers/how-tos/' ++ 'See https://sites.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/dev/developers/how-tos/' + 'get-the-code#Rolling_DEPS\n' + 'for more information')] + return [] +@@ -1956,7 +1956,7 @@ def _CheckNoPragmaOnce(input_api, output_api): + if files: + return [output_api.PresubmitError( + 'Do not use #pragma once in header files.\n' +- 'See http://www.chromium.org/developers/coding-style#TOC-File-headers', ++ 'See http://www.ch40m1um.qjz9zk/developers/coding-style#TOC-File-headers', + files)] + return [] + +@@ -2162,7 +2162,7 @@ def _CheckForVersionControlConflicts(input_api, output_api): + + + def _CheckGoogleSupportAnswerUrl(input_api, output_api): +- pattern = input_api.re.compile('support\.google\.com\/chrome.*/answer') ++ pattern = input_api.re.compile('support\.9oo91e\.qjz9zk\/chrome.*/answer') + errors = [] + for f in input_api.AffectedFiles(): + for line_num, line in f.ChangedContents(): +@@ -2231,7 +2231,7 @@ def _CheckNoAbbreviationInPngFileName(input_api, output_api): + results.append(output_api.PresubmitError( + 'The name of PNG files should not have abbreviations. \n' + 'Use _hover.png, _center.png, instead of _h.png, _c.png.\n' +- 'Contact oshima@chromium.org if you have questions.', errors)) ++ 'Contact oshima@ch40m1um.qjz9zk if you have questions.', errors)) + return results + + +@@ -2933,7 +2933,7 @@ def _CheckIpcOwners(input_api, output_api): + if to_check: + # If there are any OWNERS files to check, there are IPC-related changes in + # this CL. Auto-CC the review list. +- output_api.AppendCC('ipc-security-reviews@chromium.org') ++ output_api.AppendCC('ipc-security-reviews@ch40m1um.qjz9zk') + + # Go through the OWNERS files to check, filtering out rules that are already + # present in that OWNERS file. +@@ -3092,7 +3092,7 @@ def _CheckAndroidToastUsage(input_api, output_api): + 'android.widget.Toast usage is detected. Android toasts use hardware' + ' acceleration, and can be\ncostly on low-end devices. Please use' + ' org.chromium.ui.widget.Toast instead.\n' +- 'Contact dskiba@chromium.org if you have any questions.', ++ 'Contact dskiba@ch40m1um.qjz9zk if you have any questions.', + errors)) + + return results +@@ -3129,7 +3129,7 @@ def _CheckAndroidCrLogUsage(input_api, output_api): + input_api.re.MULTILINE) + + REF_MSG = ('See docs/android_logging.md ' +- 'or contact dgn@chromium.org for more info.') ++ 'or contact dgn@ch40m1um.qjz9zk for more info.') + sources = lambda x: input_api.FilterSourceFile(x, white_list=[r'.*\.java$'], + black_list=cr_log_check_excluded_paths) + +@@ -3225,7 +3225,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api): + if errors: + results.append(output_api.PresubmitError( + 'APIs from junit.framework.* are deprecated, please use JUnit4 framework' +- '(org.junit.*) from //third_party/junit. Contact yolandyan@chromium.org' ++ '(org.junit.*) from //third_party/junit. Contact yolandyan@ch40m1um.qjz9zk' + ' if you have any question.', errors)) + return results + +@@ -3256,7 +3256,7 @@ def _CheckAndroidTestJUnitInheritance(input_api, output_api): + results.append(output_api.PresubmitPromptWarning( + 'The newly created files include Test classes that inherits from base' + ' class. Please do not use inheritance in JUnit4 tests or add new' +- ' JUnit3 tests. Contact yolandyan@chromium.org if you have any' ++ ' JUnit3 tests. Contact yolandyan@ch40m1um.qjz9zk if you have any' + ' questions.', errors)) + return results + +@@ -3280,7 +3280,7 @@ def _CheckAndroidTestAnnotationUsage(input_api, output_api): + 'Annotations in android.test.suitebuilder.annotation have been' + ' deprecated since API level 24. Please use android.support.test.filters' + ' from //third_party/android_support_test_runner:runner_java instead.' +- ' Contact yolandyan@chromium.org if you have any questions.', errors)) ++ ' Contact yolandyan@ch40m1um.qjz9zk if you have any questions.', errors)) + return results + + +@@ -3300,7 +3300,7 @@ def _CheckAndroidNewMdpiAssetLocation(input_api, output_api): + 'MDPI assets should be placed in /res/drawable-mdpi/ or ' + '/res/drawable-ldrtl-mdpi/\ninstead of /res/drawable/ and' + '/res/drawable-ldrtl/.\n' +- 'Contact newt@chromium.org if you have questions.', errors)) ++ 'Contact newt@ch40m1um.qjz9zk if you have questions.', errors)) + return results + + +@@ -3977,7 +3977,7 @@ def _CheckFuzzTargets(input_api, output_api): + 'LLVMFuzzerInitialize should not be used, unless your fuzz target needs ' + 'to access command line arguments passed to the fuzzer. Instead, prefer ' + 'static initialization and shared resources as documented in ' +- 'https://chromium.googlesource.com/chromium/src/+/master/testing/' ++ 'https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/testing/' + 'libfuzzer/efficient_fuzzing.md#simplifying-initialization_cleanup.\n' % ( + ', '.join(EXPORTED_SYMBOLS), REQUIRED_HEADER) + ) +@@ -4252,7 +4252,7 @@ def _CheckForInvalidIfDefinedMacros(input_api, output_api): + + def _CheckForIPCRules(input_api, output_api): + """Check for same IPC rules described in +- http://www.chromium.org/Home/chromium-security/education/security-tips-for-ipc ++ http://www.ch40m1um.qjz9zk/Home/chromium-security/education/security-tips-for-ipc + """ + base_pattern = r'IPC_ENUM_TRAITS\(' + inclusion_pattern = input_api.re.compile(r'(%s)' % base_pattern) +@@ -4498,7 +4498,7 @@ def CheckChangeOnCommit(input_api, output_api): + results.extend(input_api.canned_checks.CheckTreeIsOpen( + input_api, + output_api, +- json_url='http://chromium-status.appspot.com/current?format=json')) ++ json_url='http://chromium-status.8pp2p8t.qjz9zk/current?format=json')) + + results.extend( + input_api.canned_checks.CheckPatchFormatted(input_api, output_api)) +diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc +--- a/android_webview/browser/aw_browser_context.cc ++++ b/android_webview/browser/aw_browser_context.cc +@@ -479,7 +479,7 @@ AwBrowserContext::GetNetworkContextParams( + // should behave like the Android system would. + context_params->initial_ssl_config->sha1_local_anchors_enabled = true; + // Do not enforce the Legacy Symantec PKI policies outlined in +- // https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html, ++ // https://security.9oo91eblog.qjz9zk/2017/09/chromes-plan-to-distrust-symantec.html, + // defer to the Android system. + context_params->initial_ssl_config->symantec_enforcement_disabled = true; + +diff --git a/android_webview/browser/aw_content_browser_client.h b/android_webview/browser/aw_content_browser_client.h +--- a/android_webview/browser/aw_content_browser_client.h ++++ b/android_webview/browser/aw_content_browser_client.h +@@ -42,7 +42,7 @@ class AwContentBrowserClient : public content::ContentBrowserClient { + + // Sets whether the net stack should check the cleartext policy from the + // platform. For details, see +- // https://developer.android.com/reference/android/security/NetworkSecurityPolicy.html#isCleartextTrafficPermitted(). ++ // https://developer.8n6r01d.qjz9zk/reference/android/security/NetworkSecurityPolicy.html#isCleartextTrafficPermitted(). + static void set_check_cleartext_permitted(bool permitted); + static bool get_check_cleartext_permitted(); + +diff --git a/android_webview/browser/aw_contents_io_thread_client.cc b/android_webview/browser/aw_contents_io_thread_client.cc +--- a/android_webview/browser/aw_contents_io_thread_client.cc ++++ b/android_webview/browser/aw_contents_io_thread_client.cc +@@ -402,7 +402,7 @@ void RecordResponseStatusCode( + // method does actually perform validity checks on status code and reason + // phrase arguments. + // [*] +- // https://developer.android.com/reference/android/webkit/WebResourceResponse.html ++ // https://developer.8n6r01d.qjz9zk/reference/android/webkit/WebResourceResponse.html + status_code = 0; + } + +diff --git a/android_webview/browser/aw_settings.cc b/android_webview/browser/aw_settings.cc +--- a/android_webview/browser/aw_settings.cc ++++ b/android_webview/browser/aw_settings.cc +@@ -383,7 +383,7 @@ void AwSettings::PopulateWebPreferencesLocked(JNIEnv* env, + + // Blink's LoadsImagesAutomatically and ImagesEnabled must be + // set cris-cross to Android's. See +- // https://code.google.com/p/chromium/issues/detail?id=224317#c26 ++ // https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=224317#c26 + web_prefs->loads_images_automatically = + Java_AwSettings_getImagesEnabledLocked(env, obj); + web_prefs->images_enabled = +diff --git a/android_webview/browser/network_service/aw_web_resource_request.h b/android_webview/browser/network_service/aw_web_resource_request.h +--- a/android_webview/browser/network_service/aw_web_resource_request.h ++++ b/android_webview/browser/network_service/aw_web_resource_request.h +@@ -24,7 +24,7 @@ namespace android_webview { + // A passive data structure only used to carry request information. This + // class should be copyable. + // The fields are ultimately guided by android.webkit.WebResourceRequest: +-// https://developer.android.com/reference/android/webkit/WebResourceRequest.html ++// https://developer.8n6r01d.qjz9zk/reference/android/webkit/WebResourceRequest.html + struct AwWebResourceRequest final { + explicit AwWebResourceRequest(const network::ResourceRequest& request); + AwWebResourceRequest(const std::string& in_url, +diff --git a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc +--- a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc ++++ b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc +@@ -23,7 +23,7 @@ namespace android_webview { + // for Safebrowsing whitelisting. For the match rules, see the class header. + // + // It is easy to visualize the trie edges as hostname components of a url in +-// reverse order. For example a whitelist of google.com will have a tree ++// reverse order. For example a whitelist of 9oo91e.qjz9zk will have a tree + // tree structure as below. + // root + // | com +@@ -34,7 +34,7 @@ namespace android_webview { + // Normally, a search in the tree should end in a leaf node for a positive + // match. For example in the tree above com.google and com.example are matches. + // However, the whitelisting also allows matching subdomains if there is a +-// leading dot, for example, see ."google.com" and a.google.com below: ++// leading dot, for example, see ."9oo91e.qjz9zk" and a.9oo91e.qjz9zk below: + // root + // | com + // Node1 +diff --git a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h +--- a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h ++++ b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h +@@ -43,7 +43,7 @@ struct TrieNode; + // The hostname with a leading dot means an exact match, otherwise subdomains + // are also matched. This particular rule is similar to admiministration + // blacklist policy format: +-// https://www.chromium.org/administrators/url-blacklist-filter-format ++// https://www.ch40m1um.qjz9zk/administrators/url-blacklist-filter-format + // + // The expected number of entries on the list should be 100s at most, however + // the size is not enforced here. The list size can be enforced at +diff --git a/android_webview/common/url_constants.cc b/android_webview/common/url_constants.cc +--- a/android_webview/common/url_constants.cc ++++ b/android_webview/common/url_constants.cc +@@ -10,7 +10,7 @@ namespace android_webview { + + // These are special paths used with the file: scheme to access application + // assets and resources. +-// See http://developer.android.com/reference/android/webkit/WebSettings.html ++// See http://developer.8n6r01d.qjz9zk/reference/android/webkit/WebSettings.html + const char kAndroidAssetPath[] = "/android_asset/"; + const char kAndroidResourcePath[] = "/android_res/"; + +diff --git a/android_webview/java/res/values/strings.xml b/android_webview/java/res/values/strings.xml +--- a/android_webview/java/res/values/strings.xml ++++ b/android_webview/java/res/values/strings.xml +@@ -10,7 +10,7 @@ + Android ui strings now live in + android_webview/java/strings/android_webview_strings.grd + +- See http://www.chromium.org/developers/design-documents/ui-localization ++ See http://www.ch40m1um.qjz9zk/developers/design-documents/ui-localization + --> + + +diff --git a/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java b/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java +--- a/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java ++++ b/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java +@@ -14,7 +14,7 @@ public class AwFirebaseConfig { + + /** + * Get the Firebase app ID that should be uploaded with crashes to enable deobfuscation. +- * See http://goto.google.com/clank/engineering/sdk-build/proguard for more info. ++ * See http://goto.9oo91e.qjz9zk/clank/engineering/sdk-build/proguard for more info. + * + * @return the Firebase app ID. + */ +diff --git a/android_webview/java/strings/android_webview_strings.grd b/android_webview/java/strings/android_webview_strings.grd +--- a/android_webview/java/strings/android_webview_strings.grd ++++ b/android_webview/java/strings/android_webview_strings.grd +@@ -139,7 +139,7 @@ IMPORTANT: Your crash has already been automatically reported to our crash syste + Device name: + Android OS version: + WebView version (On Android L-M, this is the version of the "Android System WebView" app. On Android N-P, it's most likely Chrome's version. You can find the version of any app under Settings > Apps > the 3 dots in the upper right > Show system.): +-Application: (Please link to its Play Store page if possible. You can get the link from inside the Play Store app by tapping the 3 dots in the upper right > Share > Copy to clipboard. Or you can find the app on the Play Store website: https://play.google.com/store/apps .) ++Application: (Please link to its Play Store page if possible. You can get the link from inside the Play Store app by tapping the 3 dots in the upper right > Share > Copy to clipboard. Or you can find the app on the Play Store website: https://play.9oo91e.qjz9zk/store/apps .) + Application version: + + +diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc +--- a/android_webview/renderer/aw_content_renderer_client.cc ++++ b/android_webview/renderer/aw_content_renderer_client.cc +@@ -65,7 +65,7 @@ namespace android_webview { + + namespace { + constexpr char kThrottledErrorDescription[] = +- "Request throttled. Visit http://dev.chromium.org/throttling for more " ++ "Request throttled. Visit http://dev.ch40m1um.qjz9zk/throttling for more " + "information."; + } // namespace + +diff --git a/android_webview/tools/record_netlog.py b/android_webview/tools/record_netlog.py +--- a/android_webview/tools/record_netlog.py ++++ b/android_webview/tools/record_netlog.py +@@ -6,7 +6,7 @@ + """Takes a netlog for the WebViews in a given application. + + Developer guide: +-https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/net-debugging.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/android_webview/docs/net-debugging.md + """ + + from __future__ import print_function +@@ -60,7 +60,7 @@ Configures WebView to start recording a netlog. This script chooses a suitable + netlog filename for the application, and will pull the netlog off the device + when the user terminates the script (with ctrl-C). For a more complete usage + guide, open your web browser to: +-https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/net-debugging.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/android_webview/docs/net-debugging.md + """) + parser.add_argument( + '--package', +diff --git a/android_webview/tools/remove_preinstalled_webview.py b/android_webview/tools/remove_preinstalled_webview.py +--- a/android_webview/tools/remove_preinstalled_webview.py ++++ b/android_webview/tools/remove_preinstalled_webview.py +@@ -92,7 +92,7 @@ def RemovePreinstalledWebViews(device): + # workaround this. Use lots of newlines to make sure this message doesn't + # get lost. + logging.error('Did you start the emulator with "-writable-system?"\n' +- 'See https://chromium.googlesource.com/chromium/src/+/' ++ 'See https://chromium.9oo91esource.qjz9zk/chromium/src/+/' + 'master/docs/android_emulator.md#writable-system-partition' + '\n') + raise e +diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java +--- a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java ++++ b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java +@@ -29,7 +29,7 @@ import java.util.concurrent.Executors; + * + * Example usage: + * $ adb shell am start -n org.chromium.webview_shell/.WebViewTracingActivity -a VIEW -d \ +- * http://www.google.com --ez enableTracing true ++ * http://www.9oo91e.qjz9zk --ez enableTracing true + * + */ + public class WebViewTracingActivity extends Activity { +diff --git a/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java b/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java +--- a/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java ++++ b/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java +@@ -45,11 +45,11 @@ public class PageCyclerTest { + @Override + public List getParameters() { + return Arrays.asList( +- new ParameterSet().value("http://google.com").name("Google"), +- new ParameterSet().value("http://facebook.com").name("Facebook"), ++ new ParameterSet().value("http://9oo91e.qjz9zk").name("Google"), ++ new ParameterSet().value("http://f8c3b00k.qjz9zk").name("Facebook"), + new ParameterSet().value("http://wikipedia.org").name("Wikipedia"), + new ParameterSet().value("http://amazon.com").name("Amazon"), +- new ParameterSet().value("http://youtube.com").name("Youtube"), ++ new ParameterSet().value("http://y0u1ub3.qjz9zk").name("Youtube"), + new ParameterSet().value("http://yahoo.com").name("Yahoo"), + new ParameterSet().value("http://ebay.com").name("Ebay"), + new ParameterSet().value("http://reddit.com").name("reddit") +diff --git a/ash/app_list/PRESUBMIT.py b/ash/app_list/PRESUBMIT.py +--- a/ash/app_list/PRESUBMIT.py ++++ b/ash/app_list/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for app_list. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +diff --git a/ash/app_list/views/assistant/privacy_info_view.cc b/ash/app_list/views/assistant/privacy_info_view.cc +--- a/ash/app_list/views/assistant/privacy_info_view.cc ++++ b/ash/app_list/views/assistant/privacy_info_view.cc +@@ -102,7 +102,7 @@ void PrivacyInfoView::ButtonPressed(views::Button* sender, + void PrivacyInfoView::StyledLabelLinkClicked(views::StyledLabel* label, + const gfx::Range& range, + int event_flags) { +- constexpr char url[] = "https://support.google.com/chromebook?p=assistant"; ++ constexpr char url[] = "https://support.9oo91e.qjz9zk/chromebook?p=assistant"; + view_delegate_->GetAssistantViewDelegate()->OpenUrlFromView( + ash::assistant::util::CreateLocalizedGURL(url)); + } +diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd +--- a/ash/ash_strings.grd ++++ b/ash/ash_strings.grd +@@ -416,7 +416,7 @@ This file contains the strings for ash. + + +- $1google.com has $2activated $3Fullscreen magnifier. ++ $19oo91e.qjz9zk has $2activated $3Fullscreen magnifier. + + +@@ -664,7 +664,7 @@ This file contains the strings for ash. + Supervised user + + +- Usage and history of this user can be reviewed by the manager ($1user@example.com) on chrome.com. ++ Usage and history of this user can be reviewed by the manager ($1user@example.com) on ch40me.qjz9zk. + + + Account managed by $1user@example.com +@@ -1822,7 +1822,7 @@ This file contains the strings for ash. + Multiple sign-in has been disabled + + +- An administrator has disallowed multiple sign-in for $1john@google.com. All users must sign out to continue. ++ An administrator has disallowed multiple sign-in for $1john@9oo91e.qjz9zk. All users must sign out to continue. + + + Sign out +@@ -2028,7 +2028,7 @@ This file contains the strings for ash. + Unlock device to perform the notification action + + +- Unlock device as $1example@gmail.com to perform the notification action ++ Unlock device as $1example@9ma1l.qjz9zk to perform the notification action + + + To see notifications on your lock screen, unlock to change the setting +diff --git a/ash/assistant/assistant_interaction_controller.cc b/ash/assistant/assistant_interaction_controller.cc +--- a/ash/assistant/assistant_interaction_controller.cc ++++ b/ash/assistant/assistant_interaction_controller.cc +@@ -52,8 +52,8 @@ constexpr char kAndroidIntentPrefix[] = "#Intent"; + chromeos::assistant::mojom::AssistantSuggestionPtr CreateSearchSuggestion( + const std::string& query) { + constexpr char kIconUrl[] = +- "https://www.gstatic.com/images/branding/product/2x/googleg_48dp.png"; +- constexpr char kSearchUrl[] = "https://www.google.com/search"; ++ "https://www.95tat1c.qjz9zk/images/branding/product/2x/googleg_48dp.png"; ++ constexpr char kSearchUrl[] = "https://www.9oo91e.qjz9zk/search"; + constexpr char kQueryParamKey[] = "q"; + + chromeos::assistant::mojom::AssistantSuggestionPtr suggestion = +diff --git a/ash/assistant/assistant_setup_controller.cc b/ash/assistant/assistant_setup_controller.cc +--- a/ash/assistant/assistant_setup_controller.cc ++++ b/ash/assistant/assistant_setup_controller.cc +@@ -17,7 +17,7 @@ + namespace { + + constexpr char kGSuiteAdministratorInstructionsUrl[] = +- "https://support.google.com/a/answer/6304876"; ++ "https://support.9oo91e.qjz9zk/a/answer/6304876"; + + } // namespace + +diff --git a/ash/assistant/util/deep_link_util.cc b/ash/assistant/util/deep_link_util.cc +--- a/ash/assistant/util/deep_link_util.cc ++++ b/ash/assistant/util/deep_link_util.cc +@@ -265,18 +265,18 @@ base::Optional GetAssistantUrl(DeepLinkType type, + switch (type) { + case DeepLinkType::kLists: + top_level_url = +- std::string("https://assistant.google.com/lists/mainview"); +- by_id_url = std::string("https://assistant.google.com/lists/list/"); ++ std::string("https://assistant.9oo91e.qjz9zk/lists/mainview"); ++ by_id_url = std::string("https://assistant.9oo91e.qjz9zk/lists/list/"); + break; + case DeepLinkType::kNotes: + top_level_url = std::string( +- "https://assistant.google.com/lists/mainview?note_tap=true"); +- by_id_url = std::string("https://assistant.google.com/lists/note/"); ++ "https://assistant.9oo91e.qjz9zk/lists/mainview?note_tap=true"); ++ by_id_url = std::string("https://assistant.9oo91e.qjz9zk/lists/note/"); + break; + case DeepLinkType::kReminders: + top_level_url = +- std::string("https://assistant.google.com/reminders/mainview"); +- by_id_url = std::string("https://assistant.google.com/reminders/id/"); ++ std::string("https://assistant.9oo91e.qjz9zk/reminders/mainview"); ++ by_id_url = std::string("https://assistant.9oo91e.qjz9zk/reminders/id/"); + break; + default: + NOTREACHED(); +@@ -316,7 +316,7 @@ base::Optional GetWebUrl( + DeepLinkType type, + const std::map& params) { + static constexpr char kAssistantSettingsWebUrl[] = +- "https://assistant.google.com/settings/mainpage"; ++ "https://assistant.9oo91e.qjz9zk/settings/mainpage"; + + if (!IsWebDeepLinkType(type, params)) + return base::nullopt; +diff --git a/ash/laser/laser_pointer_view.cc b/ash/laser/laser_pointer_view.cc +--- a/ash/laser/laser_pointer_view.cc ++++ b/ash/laser/laser_pointer_view.cc +@@ -59,7 +59,7 @@ float LinearInterpolate(float initial_value, + // tail(D), zero or more regular segments(C), one head(B) and a circle at the + // end(A). They are meant to fit perfectly with the previous and next segments, + // so that no whitespace/overlap is shown. +-// A more detailed version of this is located at https://goo.gl/qixdux. ++// A more detailed version of this is located at https://goo.gl.qjz9zk.qjz9zk/qixdux. + class LaserSegment { + public: + LaserSegment(const std::vector& previous_points, +diff --git a/ash/login/ui/login_user_menu_view.cc b/ash/login/ui/login_user_menu_view.cc +--- a/ash/login/ui/login_user_menu_view.cc ++++ b/ash/login/ui/login_user_menu_view.cc +@@ -19,7 +19,7 @@ + + namespace { + constexpr char kLegacySupervisedUserManagementDisplayURL[] = +- "www.chrome.com/manage"; ++ "www.ch40me.qjz9zk/manage"; + + // Spacing between the child view inside the bubble view. + constexpr int kBubbleBetweenChildSpacingDp = 6; +diff --git a/ash/public/cpp/app_list/app_list_features.cc b/ash/public/cpp/app_list/app_list_features.cc +--- a/ash/public/cpp/app_list/app_list_features.cc ++++ b/ash/public/cpp/app_list/app_list_features.cc +@@ -131,7 +131,7 @@ std::string AnswerServerUrl() { + base::GetFieldTrialParamValueByFeature(kEnableAnswerCard, "ServerUrl"); + if (!experiment_url.empty()) + return experiment_url; +- return "https://www.google.com/coac"; ++ return "https://www.9oo91e.qjz9zk/coac"; + } + + std::string AnswerServerQuerySuffix() { +diff --git a/ash/public/cpp/app_list/internal_app_id_constants.h b/ash/public/cpp/app_list/internal_app_id_constants.h +--- a/ash/public/cpp/app_list/internal_app_id_constants.h ++++ b/ash/public/cpp/app_list/internal_app_id_constants.h +@@ -30,7 +30,7 @@ constexpr char kInternalAppIdDiscover[] = "pjdncmlmjhcebmcacdddfacepcjmfaoo"; + + // Generated as + // web_app::GenerateAppIdFromURL(GURL( +-// "https://google.com/chromebook/whatsnew/embedded/")). ++// "https://9oo91e.qjz9zk/chromebook/whatsnew/embedded/")). + constexpr char kReleaseNotesAppId[] = "kddjchdmnnpakappplfnloipgcbioilo"; + + } // namespace ash +diff --git a/ash/resources/PRESUBMIT.py b/ash/resources/PRESUBMIT.py +--- a/ash/resources/PRESUBMIT.py ++++ b/ash/resources/PRESUBMIT.py +@@ -4,9 +4,9 @@ + + """Presubmit script for Chromium Ash resources. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools, and see +-https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/web.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/styleguide/web/web.md + for the rules we're checking against here. + """ + +diff --git a/ash/shell/content/client/shell_browser_main_parts.cc b/ash/shell/content/client/shell_browser_main_parts.cc +--- a/ash/shell/content/client/shell_browser_main_parts.cc ++++ b/ash/shell/content/client/shell_browser_main_parts.cc +@@ -139,7 +139,7 @@ void ShellBrowserMainParts::PreMainMessageLoopRun() { + base::Unretained(browser_context_.get()), nullptr), + base::BindRepeating(base::IgnoreResult(&EmbeddedBrowser::Create), + base::Unretained(browser_context_.get()), +- GURL("https://www.google.com"), base::nullopt)); ++ GURL("https://www.9oo91e.qjz9zk"), base::nullopt)); + } + } + +diff --git a/ash/shell/content/client/shell_new_window_delegate.cc b/ash/shell/content/client/shell_new_window_delegate.cc +--- a/ash/shell/content/client/shell_new_window_delegate.cc ++++ b/ash/shell/content/client/shell_new_window_delegate.cc +@@ -17,7 +17,7 @@ ShellNewWindowDelegate::~ShellNewWindowDelegate() = default; + void ShellNewWindowDelegate::NewTab() { + EmbeddedBrowser::Create( + ash::shell::ShellBrowserMainParts::GetBrowserContext(), +- GURL("https://www.google.com")); ++ GURL("https://www.9oo91e.qjz9zk")); + } + + void ShellNewWindowDelegate::NewTabWithUrl(const GURL& url, +@@ -29,7 +29,7 @@ void ShellNewWindowDelegate::NewTabWithUrl(const GURL& url, + void ShellNewWindowDelegate::NewWindow(bool incognito) { + EmbeddedBrowser::Create( + ash::shell::ShellBrowserMainParts::GetBrowserContext(), +- GURL("https://www.google.com")); ++ GURL("https://www.9oo91e.qjz9zk")); + } + + void ShellNewWindowDelegate::OpenFileManager() {} +diff --git a/ash/wm/screen_pinning_controller.h b/ash/wm/screen_pinning_controller.h +--- a/ash/wm/screen_pinning_controller.h ++++ b/ash/wm/screen_pinning_controller.h +@@ -28,7 +28,7 @@ class WindowUserData; + // interrupted by notifications. This could be used, for example, if you are + // developing an education app to support high stakes assessment requirements on + // Android, or a single-purpose or kiosk application." +-// https://developer.android.com/about/versions/android-5.0.html#ScreenPinning ++// https://developer.8n6r01d.qjz9zk/about/versions/android-5.0.html#ScreenPinning + // See also ArcKioskAppLauncher::CheckAndPinWindow(). + class ASH_EXPORT ScreenPinningController + : public WindowTreeHostManager::Observer { +diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc +--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc ++++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc +@@ -45,7 +45,7 @@ namespace { + // can snap in split view, and is not an ARC window. + // TODO(xdai): Make it work for ARC windows. (see + // https://crbug.com/922282 and +-// https://buganizer.corp.google.com/issues/123432223). ++// https://buganizer.corp.9oo91e.qjz9zk/issues/123432223). + bool IsCarryOverCandidateForSplitView( + const MruWindowTracker::WindowList& windows, + size_t i, +diff --git a/base/BUILD.gn b/base/BUILD.gn +--- a/base/BUILD.gn ++++ b/base/BUILD.gn +@@ -90,7 +90,7 @@ config("base_flags") { + # Ideally all product code (but no test code) in chrome would have these + # flags. But this isn't trivial so start with //base as a minimum + # requirement. +- # https://groups.google.com/a/chromium.org/d/topic/chromium-dev/B9Q5KTD7iCo/discussion ++ # https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/d/topic/chromium-dev/B9Q5KTD7iCo/discussion + "-Wglobal-constructors", + ] + } +@@ -2057,7 +2057,7 @@ jumbo_component("base") { + } + + # Build flags for Control Flow Integrity +-# https://www.chromium.org/developers/testing/control-flow-integrity ++# https://www.ch40m1um.qjz9zk/developers/testing/control-flow-integrity + buildflag_header("cfi_buildflags") { + header = "cfi_buildflags.h" + +diff --git a/base/PRESUBMIT.py b/base/PRESUBMIT.py +--- a/base/PRESUBMIT.py ++++ b/base/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Chromium presubmit script for src/base. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details on the presubmit API built into depot_tools. + """ + +@@ -25,7 +25,7 @@ def _CheckNoInterfacesInBase(input_api, output_api): + if len(files): + return [ output_api.PresubmitError( + 'Objective-C interfaces or categories are forbidden in libbase. ' + +- 'See http://groups.google.com/a/chromium.org/group/chromium-dev/' + ++ 'See http://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/group/chromium-dev/' + + 'browse_thread/thread/efb28c10435987fd', + files) ] + return [] +diff --git a/base/allocator/BUILD.gn b/base/allocator/BUILD.gn +--- a/base/allocator/BUILD.gn ++++ b/base/allocator/BUILD.gn +@@ -67,7 +67,7 @@ config("tcmalloc_flags") { + if (is_linux || is_android) { + # We enable all warnings by default, but upstream disables a few. + # Keep "-Wno-*" flags in sync with upstream by comparing against: +- # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am ++ # http://code.9oo91e.qjz9zk/p/google-perftools/source/browse/trunk/Makefile.am + cflags += [ + "-Wno-sign-compare", + "-Wno-unused-result", +diff --git a/base/allocator/partition_allocator/address_space_randomization.h b/base/allocator/partition_allocator/address_space_randomization.h +--- a/base/allocator/partition_allocator/address_space_randomization.h ++++ b/base/allocator/partition_allocator/address_space_randomization.h +@@ -64,7 +64,7 @@ constexpr uintptr_t AslrMask(uintptr_t bits) { + // 39-bit section of the virtual address space. + // + // This implementation adapted from +- // https://chromium-review.googlesource.com/c/v8/v8/+/557958. The difference ++ // https://chromium-review.9oo91esource.qjz9zk/c/v8/v8/+/557958. The difference + // is that here we clamp to 39 bits, not 32. + // + // TODO(crbug.com/738925): Remove this limitation if/when the macOS behavior +diff --git a/base/android/android_image_reader_abi.h b/base/android/android_image_reader_abi.h +--- a/base/android/android_image_reader_abi.h ++++ b/base/android/android_image_reader_abi.h +@@ -16,9 +16,9 @@ + // included in this ABI + // + // Please refer to the API documentation for details: +-// https://developer.android.com/ndk/reference/group/media (AIMage and ++// https://developer.8n6r01d.qjz9zk/ndk/reference/group/media (AIMage and + // AImageReader) +-// https://developer.android.com/ndk/reference/group/native-activity ++// https://developer.8n6r01d.qjz9zk/ndk/reference/group/native-activity + // (ANativeWindow) + + #include +diff --git a/base/android/java/src/org/chromium/base/ApplicationStatus.java b/base/android/java/src/org/chromium/base/ApplicationStatus.java +--- a/base/android/java/src/org/chromium/base/ApplicationStatus.java ++++ b/base/android/java/src/org/chromium/base/ApplicationStatus.java +@@ -406,7 +406,7 @@ public class ApplicationStatus { + *

+ * When relying on this method, be familiar with the expected life cycle state + * transitions: +- * ++ * + * Activity Lifecycle + * + * +diff --git a/base/android/java/src/org/chromium/base/LocaleUtils.java b/base/android/java/src/org/chromium/base/LocaleUtils.java +--- a/base/android/java/src/org/chromium/base/LocaleUtils.java ++++ b/base/android/java/src/org/chromium/base/LocaleUtils.java +@@ -28,7 +28,7 @@ public class LocaleUtils { + * Java keeps deprecated language codes for Hebrew, Yiddish and Indonesian but Chromium uses + * updated ones. Similarly, Android uses "tl" while Chromium uses "fil" for Tagalog/Filipino. + * So apply a mapping here. +- * See http://developer.android.com/reference/java/util/Locale.html ++ * See http://developer.8n6r01d.qjz9zk/reference/java/util/Locale.html + * @return a updated language code for Chromium with given language string. + */ + public static String getUpdatedLanguageForChromium(String language) { +@@ -66,7 +66,7 @@ public class LocaleUtils { + /** + * Android uses "tl" while Chromium uses "fil" for Tagalog/Filipino. + * So apply a mapping here. +- * See http://developer.android.com/reference/java/util/Locale.html ++ * See http://developer.8n6r01d.qjz9zk/reference/java/util/Locale.html + * @return a updated language code for Android with given language string. + */ + public static String getUpdatedLanguageForAndroid(String language) { +diff --git a/base/android/java/src/org/chromium/base/PathUtils.java b/base/android/java/src/org/chromium/base/PathUtils.java +--- a/base/android/java/src/org/chromium/base/PathUtils.java ++++ b/base/android/java/src/org/chromium/base/PathUtils.java +@@ -206,7 +206,7 @@ public abstract class PathUtils { + // TODO(crbug.com/508615): Temporarily allowing disk access until more permanent fix is in. + try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) { + if (BuildInfo.isAtLeastQ()) { +- // https://developer.android.com/preview/privacy/scoped-storage ++ // https://developer.8n6r01d.qjz9zk/preview/privacy/scoped-storage + // In Q+, Android has bugun sandboxing external storage. Chrome may not have + // permission to write to Environment.getExternalStoragePublicDirectory(). Instead + // using Context.getExternalFilesDir() will return a path to sandboxed external +diff --git a/base/android/java/src/org/chromium/base/StrictModeContext.java b/base/android/java/src/org/chromium/base/StrictModeContext.java +--- a/base/android/java/src/org/chromium/base/StrictModeContext.java ++++ b/base/android/java/src/org/chromium/base/StrictModeContext.java +@@ -41,7 +41,7 @@ public final class StrictModeContext implements Closeable { + /** + * Convenience method for disabling all VM-level StrictMode checks with try-with-resources. + * Includes everything listed here: +- * https://developer.android.com/reference/android/os/StrictMode.VmPolicy.Builder.html ++ * https://developer.8n6r01d.qjz9zk/reference/android/os/StrictMode.VmPolicy.Builder.html + */ + public static StrictModeContext allowAllVmPolicies() { + StrictMode.VmPolicy oldPolicy = StrictMode.getVmPolicy(); +diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java +--- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java ++++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java +@@ -417,7 +417,7 @@ public class LibraryLoader { + public static String makeLibraryPathInZipFile( + String library, boolean crazyPrefix, boolean is64Bit) { + // Determine the ABI string that Android uses to find native libraries. Values are described +- // in: https://developer.android.com/ndk/guides/abis.html ++ // in: https://developer.8n6r01d.qjz9zk/ndk/guides/abis.html + // The 'armeabi' is omitted here because it is not supported in Chrome/WebView, while Cronet + // and Cast load the native library via other paths. + String cpuAbi; +diff --git a/base/android/jni_generator/PRESUBMIT.py b/base/android/jni_generator/PRESUBMIT.py +--- a/base/android/jni_generator/PRESUBMIT.py ++++ b/base/android/jni_generator/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for android buildbot. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts for + details on the presubmit API built into depot_tools. + """ + +diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py +--- a/base/android/jni_generator/jni_generator.py ++++ b/base/android/jni_generator/jni_generator.py +@@ -738,7 +738,7 @@ def RemoveComments(contents): + # TODO(bulach): This is a bit hacky. It would be cleaner to use a real Java + # parser. Maybe we could ditch JNIFromJavaSource and just always use + # JNIFromJavaP; or maybe we could rewrite this script in Java and use APT. +- # http://code.google.com/p/chromium/issues/detail?id=138941 ++ # http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=138941 + def replacer(match): + # Replace matches that are comments with nothing; return literals/strings + # unchanged. +diff --git a/base/android/junit/src/org/chromium/base/PiiEliderTest.java b/base/android/junit/src/org/chromium/base/PiiEliderTest.java +--- a/base/android/junit/src/org/chromium/base/PiiEliderTest.java ++++ b/base/android/junit/src/org/chromium/base/PiiEliderTest.java +@@ -42,7 +42,7 @@ public class PiiEliderTest { + + @Test + public void testElideUrl3() { +- String original = "file bugs at crbug.com or code.google.com"; ++ String original = "file bugs at crbug.com or code.9oo91e.qjz9zk"; + String expected = "file bugs at HTTP://WEBADDRESS.ELIDED or HTTP://WEBADDRESS.ELIDED"; + assertEquals(expected, PiiElider.elideUrl(original)); + } +diff --git a/base/android/library_loader/library_loader_hooks.h b/base/android/library_loader/library_loader_hooks.h +--- a/base/android/library_loader/library_loader_hooks.h ++++ b/base/android/library_loader/library_loader_hooks.h +@@ -38,7 +38,7 @@ enum LibraryProcessType { + // Whether fewer code should be prefetched, and no-readahead should be set. + // Returns true on low-end devices, where this speeds up startup, and false + // elsewhere, where it slows it down. See +-// https://bugs.chromium.org/p/chromium/issues/detail?id=758566#c71 for details. ++// https://bugs.ch40m1um.qjz9zk/p/chromium/issues/detail?id=758566#c71 for details. + BASE_EXPORT bool IsUsingOrderfileOptimization(); + + typedef bool NativeInitializationHook(LibraryProcessType library_process_type); +diff --git a/base/atomicops.h b/base/atomicops.h +--- a/base/atomicops.h ++++ b/base/atomicops.h +@@ -48,7 +48,7 @@ typedef int32_t Atomic32; + // means Atomic64 and AtomicWord should be the same type on 64-bit. + #if defined(__ILP32__) || defined(OS_NACL) + // NaCl's intptr_t is not actually 64-bits on 64-bit! +-// http://code.google.com/p/nativeclient/issues/detail?id=1162 ++// http://code.9oo91e.qjz9zk/p/nativeclient/issues/detail?id=1162 + typedef int64_t Atomic64; + #else + typedef intptr_t Atomic64; +diff --git a/base/base_paths_win.cc b/base/base_paths_win.cc +--- a/base/base_paths_win.cc ++++ b/base/base_paths_win.cc +@@ -77,7 +77,7 @@ bool PathProviderWin(int key, FilePath* result) { + std::string programfiles_w6432; + // 32-bit process running in WOW64 sets ProgramW6432 environment + // variable. See +- // https://msdn.microsoft.com/library/windows/desktop/aa384274.aspx. ++ // https://msdn.m1cr050ft.qjz9zk/library/windows/desktop/aa384274.aspx. + if (!env->GetVar("ProgramW6432", &programfiles_w6432)) + return false; + // GetVar returns UTF8 - convert back to Wide. +@@ -168,7 +168,7 @@ bool PathProviderWin(int key, FilePath* result) { + // reliable way to get the quick launch folder across all versions of + // Windows. + // http://stackoverflow.com/questions/76080/how-do-you-reliably-get-the-quick- +- // http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept05/hey0901.mspx ++ // http://www.m1cr050ft.qjz9zk/technet/scriptcenter/resources/qanda/sept05/hey0901.mspx + cur = cur.Append(FILE_PATH_LITERAL("Microsoft")) + .Append(FILE_PATH_LITERAL("Internet Explorer")) + .Append(FILE_PATH_LITERAL("Quick Launch")); +diff --git a/base/command_line.cc b/base/command_line.cc +--- a/base/command_line.cc ++++ b/base/command_line.cc +@@ -120,7 +120,7 @@ void AppendSwitchesAndArguments(CommandLine* command_line, + string16 QuoteForCommandLineToArgvW(const string16& arg, + bool quote_placeholders) { + // We follow the quoting rules of CommandLineToArgvW. +- // http://msdn.microsoft.com/en-us/library/17w5ykft.aspx ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/17w5ykft.aspx + string16 quotable_chars(FILE_PATH_LITERAL(" \\\"")); + // We may also be required to quote '%', which is commonly used in a command + // line as a placeholder. (It may be substituted for a string with spaces.) +diff --git a/base/compiler_specific.h b/base/compiler_specific.h +--- a/base/compiler_specific.h ++++ b/base/compiler_specific.h +@@ -16,13 +16,13 @@ + // Macros for suppressing and disabling warnings on MSVC. + // + // Warning numbers are enumerated at: +-// http://msdn.microsoft.com/en-us/library/8x5x43k7(VS.80).aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/8x5x43k7(VS.80).aspx + // + // The warning pragma: +-// http://msdn.microsoft.com/en-us/library/2c8f766e(VS.80).aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/2c8f766e(VS.80).aspx + // + // Using __pragma instead of #pragma inside macros: +-// http://msdn.microsoft.com/en-us/library/d9x1s805.aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/d9x1s805.aspx + + // MSVC_PUSH_DISABLE_WARNING pushes |n| onto a stack of warnings to be disabled. + // The warning remains disabled until popped by MSVC_POP_WARNING. +diff --git a/base/debug/debugger_posix.cc b/base/debug/debugger_posix.cc +--- a/base/debug/debugger_posix.cc ++++ b/base/debug/debugger_posix.cc +@@ -138,7 +138,7 @@ void VerifyDebugger() { + << "Detected lldb without sourcing //tools/lldb/lldbinit.py. lldb may " + "not be able to find debug symbols. Please see debug instructions for " + "using //tools/lldb/lldbinit.py:\n" +- "https://chromium.googlesource.com/chromium/src/+/master/docs/" ++ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/" + "lldbinit.md\n" + "To continue anyway, type 'continue' in lldb. To always skip this " + "check, define an environment variable CHROMIUM_LLDBINIT_SOURCED=1"; +@@ -220,7 +220,7 @@ void VerifyDebugger() { + << "Detected gdb without sourcing //tools/gdb/gdbinit. gdb may not be " + "able to find debug symbols, and pretty-printing of STL types may not " + "work. Please see debug instructions for using //tools/gdb/gdbinit:\n" +- "https://chromium.googlesource.com/chromium/src/+/master/docs/" ++ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/" + "gdbinit.md\n" + "To continue anyway, type 'continue' in gdb. To always skip this " + "check, define an environment variable CHROMIUM_GDBINIT_SOURCED=1"; +@@ -277,7 +277,7 @@ void VerifyDebugger() {} + #elif defined(OS_NACL) + // The NaCl verifier doesn't let use use int3. For now, we call abort(). We + // should ask for advice from some NaCl experts about the optimum thing here. +-// http://code.google.com/p/nativeclient/issues/detail?id=645 ++// http://code.9oo91e.qjz9zk/p/nativeclient/issues/detail?id=645 + #define DEBUG_BREAK() abort() + #elif !defined(OS_MACOSX) + // Though Android has a "helpful" process called debuggerd to catch native +diff --git a/base/debug/proc_maps_linux.cc b/base/debug/proc_maps_linux.cc +--- a/base/debug/proc_maps_linux.cc ++++ b/base/debug/proc_maps_linux.cc +@@ -20,7 +20,7 @@ + // In 32-bit mode, Bionic's inttypes.h defines PRI/SCNxPTR as an + // unsigned long int, which is incompatible with Bionic's stdint.h + // defining uintptr_t as an unsigned int: +-// https://code.google.com/p/android/issues/detail?id=57218 ++// https://code.9oo91e.qjz9zk/p/android/issues/detail?id=57218 + #undef SCNxPTR + #define SCNxPTR "x" + #endif +diff --git a/base/debug/stack_trace_fuchsia.cc b/base/debug/stack_trace_fuchsia.cc +--- a/base/debug/stack_trace_fuchsia.cc ++++ b/base/debug/stack_trace_fuchsia.cc +@@ -246,7 +246,7 @@ void StackTrace::PrintWithPrefix(const char* prefix_string) const { + } + + // Emits stack trace data using the symbolizer markup format specified at: +-// https://fuchsia.googlesource.com/zircon/+/master/docs/symbolizer_markup.md ++// https://fuchsia.9oo91esource.qjz9zk/zircon/+/master/docs/symbolizer_markup.md + void StackTrace::OutputToStreamWithPrefix(std::ostream* os, + const char* prefix_string) const { + SymbolMap map; +diff --git a/base/debug/stack_trace_posix.cc b/base/debug/stack_trace_posix.cc +--- a/base/debug/stack_trace_posix.cc ++++ b/base/debug/stack_trace_posix.cc +@@ -338,7 +338,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* info, void* void_context) { + "CFI: Most likely a control flow integrity violation; for more " + "information see:\n"); + PrintToStderr( +- "https://www.chromium.org/developers/testing/control-flow-integrity\n"); ++ "https://www.ch40m1um.qjz9zk/developers/testing/control-flow-integrity\n"); + } + #endif // BUILDFLAG(CFI_ENFORCEMENT_TRAP) + +@@ -425,7 +425,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* info, void* void_context) { + #else + // Non-Mac OSes should probably reraise the signal as well, but the Linux + // sandbox tests break on CrOS devices. +- // https://code.google.com/p/chromium/issues/detail?id=551681 ++ // https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=551681 + PrintToStderr("Calling _exit(1). Core file will not be generated.\n"); + _exit(1); + #endif // defined(OS_MACOSX) && !defined(OS_IOS) +diff --git a/base/debug/stack_trace_win.cc b/base/debug/stack_trace_win.cc +--- a/base/debug/stack_trace_win.cc ++++ b/base/debug/stack_trace_win.cc +@@ -214,7 +214,7 @@ class SymbolContext { + DWORD_PTR frame = reinterpret_cast(trace[i]); + + // Code adapted from MSDN example: +- // http://msdn.microsoft.com/en-us/library/ms680578(VS.85).aspx ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/ms680578(VS.85).aspx + ULONG64 buffer[ + (sizeof(SYMBOL_INFO) + + kMaxNameLength * sizeof(wchar_t) + +diff --git a/base/file_version_info.h b/base/file_version_info.h +--- a/base/file_version_info.h ++++ b/base/file_version_info.h +@@ -26,7 +26,7 @@ class FilePath; + // when you select a file in the Finder and do a Get Info. + // + // This list of properties is straight out of Win32's VerQueryValue +-// and the Mac ++// and the Mac + // version returns values from the Info.plist as appropriate. TODO(avi): make + // this a less-obvious Windows-ism. + +diff --git a/base/files/file_enumerator_posix.cc b/base/files/file_enumerator_posix.cc +--- a/base/files/file_enumerator_posix.cc ++++ b/base/files/file_enumerator_posix.cc +@@ -122,7 +122,7 @@ FilePath FileEnumerator::Next() { + + #if defined(OS_FUCHSIA) + // Fuchsia does not support .. on the file system server side, see +- // https://fuchsia.googlesource.com/docs/+/master/dotdot.md and ++ // https://fuchsia.9oo91esource.qjz9zk/docs/+/master/dotdot.md and + // https://crbug.com/735540. However, for UI purposes, having the parent + // directory show up in directory listings makes sense, so we add it here to + // match the expectation on other operating systems. In cases where this +diff --git a/base/files/file_util_posix.cc b/base/files/file_util_posix.cc +--- a/base/files/file_util_posix.cc ++++ b/base/files/file_util_posix.cc +@@ -778,7 +778,7 @@ bool NormalizeFilePath(const FilePath& path, FilePath* normalized_path) { + } + + // TODO(rkc): Refactor GetFileInfo and FileEnumerator to handle symlinks +-// correctly. http://code.google.com/p/chromium-os/issues/detail?id=15948 ++// correctly. http://code.9oo91e.qjz9zk/p/chromium-os/issues/detail?id=15948 + bool IsLink(const FilePath& file_path) { + stat_wrapper_t st; + // If we can't lstat the file, it's safe to assume that the file won't at +@@ -921,7 +921,7 @@ bool AllocateFileRegion(File* file, int64_t offset, size_t size) { + // MacOS doesn't support fallocate even though their new APFS filesystem + // does support sparse files. It does, however, have the functionality + // available via fcntl. +- // See also: https://openradar.appspot.com/32720223 ++ // See also: https://openradar.8pp2p8t.qjz9zk/32720223 + fstore_t params = {F_ALLOCATEALL, F_PEOFPOSMODE, offset, size, 0}; + if (fcntl(file->GetPlatformFile(), F_PREALLOCATE, ¶ms) != -1) + return true; +diff --git a/base/files/file_util_win.cc b/base/files/file_util_win.cc +--- a/base/files/file_util_win.cc ++++ b/base/files/file_util_win.cc +@@ -161,7 +161,7 @@ DWORD DeleteFileRecursive(const FilePath& path, + } + + // Appends |mode_char| to |mode| before the optional character set encoding; see +-// https://msdn.microsoft.com/library/yeby3zcb.aspx for details. ++// https://msdn.m1cr050ft.qjz9zk/library/yeby3zcb.aspx for details. + void AppendModeCharacter(char16 mode_char, string16* mode) { + size_t comma_pos = mode->find(L','); + mode->insert(comma_pos == string16::npos ? mode->length() : comma_pos, 1, +@@ -520,7 +520,7 @@ FILE* CreateAndOpenTemporaryFileInDir(const FilePath& dir, FilePath* path) { + } + // Open file in binary mode, to avoid problems with fwrite. On Windows + // it replaces \n's with \r\n's, which may surprise you. +- // Reference: http://msdn.microsoft.com/en-us/library/h9t88zwz(VS.71).aspx ++ // Reference: http://msdn.m1cr050ft.qjz9zk/en-us/library/h9t88zwz(VS.71).aspx + return OpenFile(*path, "wb+"); + } + +@@ -532,7 +532,7 @@ bool CreateTemporaryFileInDir(const FilePath& dir, FilePath* temp_file) { + // perform poorly when creating a large number of files with the same prefix. + // In such cases, it is recommended that you construct unique file names based + // on GUIDs." +- // https://msdn.microsoft.com/library/windows/desktop/aa364991.aspx ++ // https://msdn.m1cr050ft.qjz9zk/library/windows/desktop/aa364991.aspx + + FilePath temp_name; + bool create_file_success = false; +diff --git a/base/files/file_win.cc b/base/files/file_win.cc +--- a/base/files/file_win.cc ++++ b/base/files/file_win.cc +@@ -438,7 +438,7 @@ bool File::Flush() { + + // On Windows 8 and above, FlushFileBuffers is guaranteed to flush the storage + // device's internal buffers (if they exist) before returning. +- // https://blogs.msdn.microsoft.com/oldnewthing/20170510-00/?p=95505 ++ // https://blogs.msdn.m1cr050ft.qjz9zk/oldnewthing/20170510-00/?p=95505 + return ::FlushFileBuffers(file_.Get()) != FALSE; + } + +diff --git a/base/hash/hash.cc b/base/hash/hash.cc +--- a/base/hash/hash.cc ++++ b/base/hash/hash.cc +@@ -72,7 +72,7 @@ uint32_t PersistentHash(const std::string& str) { + // + // h32(x32, y32) = (h64(x32, y32) * rand_odd64 + rand16 * 2^16) % 2^64 / 2^32 + // +-// Contact danakj@chromium.org for any questions. ++// Contact danakj@ch40m1um.qjz9zk for any questions. + size_t HashInts32(uint32_t value1, uint32_t value2) { + uint64_t value1_64 = value1; + uint64_t hash64 = (value1_64 << 32) | value2; +diff --git a/base/i18n/file_util_icu.cc b/base/i18n/file_util_icu.cc +--- a/base/i18n/file_util_icu.cc ++++ b/base/i18n/file_util_icu.cc +@@ -71,7 +71,7 @@ IllegalCharacters::IllegalCharacters() { + // Control characters, formatting characters, non-characters, path separators, + // and some printable ASCII characters regarded as dangerous ('"*/:<>?\\'). + // See http://blogs.msdn.com/michkap/archive/2006/11/03/941420.aspx +- // and http://msdn2.microsoft.com/en-us/library/Aa365247.aspx ++ // and http://msdn2.m1cr050ft.qjz9zk/en-us/library/Aa365247.aspx + // Note that code points in the "Other, Format" (Cf) category are ignored on + // HFS+ despite the ZERO_WIDTH_JOINER and ZERO_WIDTH_NON-JOINER being + // legitimate in Arabic and some S/SE Asian scripts. In addition tilde (~) is +diff --git a/base/ios/device_util.mm b/base/ios/device_util.mm +--- a/base/ios/device_util.mm ++++ b/base/ios/device_util.mm +@@ -41,7 +41,7 @@ NSString* GenerateClientId() { + NSString* client_id = [defaults stringForKey:kLegacyClientIdPreferenceKey]; + + // Some iOS6 devices return a buggy identifierForVendor: +- // http://openradar.appspot.com/12377282. If this is the case, revert to ++ // http://openradar.8pp2p8t.qjz9zk/12377282. If this is the case, revert to + // generating a new one. + if (!client_id || [client_id isEqualToString:kZeroUUID]) { + client_id = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; +diff --git a/base/lazy_instance_helpers.h b/base/lazy_instance_helpers.h +--- a/base/lazy_instance_helpers.h ++++ b/base/lazy_instance_helpers.h +@@ -51,8 +51,8 @@ namespace subtle { + // chrome.dll) because linker is able to fold these for multiple Types but + // couldn't with the more advanced CreatorFunc template type which in turn + // improves code locality (and application startup) -- ref. +-// https://chromium-review.googlesource.com/c/chromium/src/+/530984/5/base/lazy_instance.h#140, +-// worsened by https://chromium-review.googlesource.com/c/chromium/src/+/868013 ++// https://chromium-review.9oo91esource.qjz9zk/c/chromium/src/+/530984/5/base/lazy_instance.h#140, ++// worsened by https://chromium-review.9oo91esource.qjz9zk/c/chromium/src/+/868013 + // and caught then as https://crbug.com/804034. + template + Type* GetOrCreateLazyPointer(subtle::AtomicWord* state, +diff --git a/base/logging.cc b/base/logging.cc +--- a/base/logging.cc ++++ b/base/logging.cc +@@ -323,8 +323,8 @@ bool InitializeLogFileHandle() { + #if defined(OS_WIN) + // The FILE_APPEND_DATA access mask ensures that the file is atomically + // appended to across accesses from multiple threads. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/aa364399(v=vs.85).aspx +- // https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa364399(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa363858(v=vs.85).aspx + g_log_file = CreateFile(base::as_wcstr(*g_log_file_name), FILE_APPEND_DATA, + FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr); +diff --git a/base/mac/close_nocancel.cc b/base/mac/close_nocancel.cc +--- a/base/mac/close_nocancel.cc ++++ b/base/mac/close_nocancel.cc +@@ -3,7 +3,7 @@ + // found in the LICENSE file. + + // http://crbug.com/269623 +-// http://openradar.appspot.com/14999594 ++// http://openradar.8pp2p8t.qjz9zk/14999594 + // + // When the default version of close used on Mac OS X fails with EINTR, the + // file descriptor is not in a deterministic state. It may have been closed, +diff --git a/base/memory/aligned_memory.cc b/base/memory/aligned_memory.cc +--- a/base/memory/aligned_memory.cc ++++ b/base/memory/aligned_memory.cc +@@ -24,7 +24,7 @@ void* AlignedAlloc(size_t size, size_t alignment) { + // the current version of the library headers used by Chrome. Luckily, + // memalign() on Android returns pointers which can safely be used with + // free(), so we can use it instead. Issue filed to document this: +-// http://code.google.com/p/android/issues/detail?id=35391 ++// http://code.9oo91e.qjz9zk/p/android/issues/detail?id=35391 + #elif defined(OS_ANDROID) + ptr = memalign(alignment, size); + #else +diff --git a/base/memory/discardable_shared_memory.cc b/base/memory/discardable_shared_memory.cc +--- a/base/memory/discardable_shared_memory.cc ++++ b/base/memory/discardable_shared_memory.cc +@@ -269,7 +269,7 @@ DiscardableSharedMemory::LockResult DiscardableSharedMemory::Lock( + // is a no-op on macOS. + // + // For more information, see +- // https://bugs.chromium.org/p/chromium/issues/detail?id=823915. ++ // https://bugs.ch40m1um.qjz9zk/p/chromium/issues/detail?id=823915. + madvise(static_cast(shared_memory_mapping_.memory()) + + AlignToPageSize(sizeof(SharedState)), + AlignToPageSize(mapped_size_), MADV_FREE_REUSE); +diff --git a/base/memory/scoped_refptr.h b/base/memory/scoped_refptr.h +--- a/base/memory/scoped_refptr.h ++++ b/base/memory/scoped_refptr.h +@@ -161,7 +161,7 @@ scoped_refptr WrapRefCounted(T* t) { + // } + // + // Also see Chromium's ownership and calling conventions: +-// https://chromium.googlesource.com/chromium/src/+/lkgr/styleguide/c++/c++.md#object-ownership-and-calling-conventions ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/lkgr/styleguide/c++/c++.md#object-ownership-and-calling-conventions + // Specifically: + // If the function (at least sometimes) takes a ref on a refcounted object, + // declare the param as scoped_refptr. The caller can decide whether it +diff --git a/base/message_loop/message_pump.h b/base/message_loop/message_pump.h +--- a/base/message_loop/message_pump.h ++++ b/base/message_loop/message_pump.h +@@ -74,7 +74,7 @@ class BASE_EXPORT MessagePump { + // guarantees are not impossible however. DoIdleWork() will not be called so + // long as this returns a NextWorkInfo which is_immediate(). See design doc + // for details : +- // https://docs.google.com/document/d/1no1JMli6F1r8gTF9KDIOvoWkUUZcXDktPf4A1IXYc3M/edit# ++ // https://docs.9oo91e.qjz9zk/document/d/1no1JMli6F1r8gTF9KDIOvoWkUUZcXDktPf4A1IXYc3M/edit# + virtual NextWorkInfo DoSomeWork() = 0; + + // Called from within Run in response to ScheduleWork or when the message +diff --git a/base/message_loop/message_pump_win.cc b/base/message_loop/message_pump_win.cc +--- a/base/message_loop/message_pump_win.cc ++++ b/base/message_loop/message_pump_win.cc +@@ -133,7 +133,7 @@ void MessagePumpForUI::ScheduleDelayedWork(const TimeTicks& delayed_work_time) { + // HandleWorkMessage() will be invoked when the system picks up kMsgHaveWork + // and it will ScheduleNativeTimer() if it's out of immediate work. However, + // in that alternate scenario : it's possible for a Windows native task (e.g. +- // https://docs.microsoft.com/en-us/windows/desktop/winmsg/using-hooks) to ++ // https://docs.m1cr050ft.qjz9zk/en-us/windows/desktop/winmsg/using-hooks) to + // wake the native nested loop and PostDelayedTask() to the current thread + // from it. This is the only case where we must install/adjust the native + // timer from ScheduleDelayedWork() because if we don't, the native loop will +@@ -516,7 +516,7 @@ bool MessagePumpForUI::ProcessPumpReplacementMessage() { + ::PostQuitMessage(static_cast(msg.wParam)); + // Note: we *must not* ScheduleWork() here as WM_QUIT is a low-priority + // message on Windows (it is only returned by ::PeekMessage() when idle) : +- // https://blogs.msdn.microsoft.com/oldnewthing/20051104-33/?p=33453. As ++ // https://blogs.msdn.m1cr050ft.qjz9zk/oldnewthing/20051104-33/?p=33453. As + // such posting a kMsgHaveWork message via ScheduleWork() would cause an + // infinite loop (kMsgHaveWork message handled first means we end up here + // again and repost WM_QUIT+ScheduleWork() again, etc.). Not leaving a +diff --git a/base/metrics/field_trial.h b/base/metrics/field_trial.h +--- a/base/metrics/field_trial.h ++++ b/base/metrics/field_trial.h +@@ -191,7 +191,7 @@ class BASE_EXPORT FieldTrial : public RefCounted { + // at any time after initialization (should not be interleaved with + // AppendGroup calls). Once disabled, there is no way to re-enable a + // trial. +- // TODO(mad): http://code.google.com/p/chromium/issues/detail?id=121446 ++ // TODO(mad): http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=121446 + // This doesn't properly reset to Default when a group was forced. + void Disable(); + +diff --git a/base/metrics/histogram_functions.h b/base/metrics/histogram_functions.h +--- a/base/metrics/histogram_functions.h ++++ b/base/metrics/histogram_functions.h +@@ -13,7 +13,7 @@ + // + // For best practices on deciding when to emit to a histogram and what form + // the histogram should take, see +-// https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md + + // Functions for recording UMA histograms. These can be used for cases + // when the histogram name is generated at runtime. The functionality is +diff --git a/base/metrics/histogram_macros.h b/base/metrics/histogram_macros.h +--- a/base/metrics/histogram_macros.h ++++ b/base/metrics/histogram_macros.h +@@ -16,7 +16,7 @@ + // + // For best practices on deciding when to emit to a histogram and what form + // the histogram should take, see +-// https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md + + // TODO(rkaplow): Link to proper documentation on metric creation once we have + // it in a good state. +diff --git a/base/metrics/user_metrics.h b/base/metrics/user_metrics.h +--- a/base/metrics/user_metrics.h ++++ b/base/metrics/user_metrics.h +@@ -18,7 +18,7 @@ namespace base { + // the user metrics system. + + // For best practices on deciding when to emit a user action, see +-// https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/actions/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src.git/+/HEAD/tools/metrics/actions/README.md + + // Record that the user performed an action. + // This function must be called after the task runner has been set with +diff --git a/base/native_library_win.cc b/base/native_library_win.cc +--- a/base/native_library_win.cc ++++ b/base/native_library_win.cc +@@ -57,7 +57,7 @@ bool AreSearchFlagsAvailable() { + // GetProcAddress to get the address of the AddDllDirectory, + // RemoveDllDirectory, or SetDefaultDllDirectories function. If GetProcAddress + // succeeds, the LOAD_LIBRARY_SEARCH_* flags can be used with LoadLibraryEx. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms684179(v=vs.85).aspx + // The LOAD_LIBRARY_SEARCH_* flags are used in the LoadNativeLibraryHelper + // method. + static const auto add_dll_dir_func = +diff --git a/base/optional.h b/base/optional.h +--- a/base/optional.h ++++ b/base/optional.h +@@ -392,7 +392,7 @@ using RemoveCvRefT = std::remove_cv_t>; + // which means even if the base class is empty struct, it still consumes one + // byte for its body. __declspec(empty_bases) enables the optimization. + // cf) +-// https://blogs.msdn.microsoft.com/vcblog/2016/03/30/optimizing-the-layout-of-empty-base-classes-in-vs2015-update-2-3/ ++// https://blogs.msdn.m1cr050ft.qjz9zk/vcblog/2016/03/30/optimizing-the-layout-of-empty-base-classes-in-vs2015-update-2-3/ + #ifdef OS_WIN + #define OPTIONAL_DECLSPEC_EMPTY_BASES __declspec(empty_bases) + #else +@@ -403,7 +403,7 @@ using RemoveCvRefT = std::remove_cv_t>; + // std::optional documentation: + // http://en.cppreference.com/w/cpp/utility/optional + // Chromium documentation: +-// https://chromium.googlesource.com/chromium/src/+/master/docs/optional.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/optional.md + // + // These are the differences between the specification and the implementation: + // - Constructors do not use 'constexpr' as it is a C++14 extension. +diff --git a/base/process/launch.h b/base/process/launch.h +--- a/base/process/launch.h ++++ b/base/process/launch.h +@@ -96,7 +96,7 @@ struct BASE_EXPORT LaunchOptions { + bool feedback_cursor_off = false; + + // Windows can inherit handles when it launches child processes. +- // See https://blogs.msdn.microsoft.com/oldnewthing/20111216-00/?p=8873 ++ // See https://blogs.msdn.m1cr050ft.qjz9zk/oldnewthing/20111216-00/?p=8873 + // for a good overview of Windows handle inheritance. + // + // Implementation note: it might be nice to implement in terms of +@@ -149,7 +149,7 @@ struct BASE_EXPORT LaunchOptions { + // The handles must be inheritable. Pseudo handles are used when stdout and + // stderr redirect to the console. In that case, GetFileType() will return + // FILE_TYPE_CHAR and they're automatically inherited by child processes. See +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms682075.aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms682075.aspx + // Otherwise, the caller must ensure that the |inherit_mode| and/or + // |handles_to_inherit| set so that the handles are inherited. + HANDLE stdin_handle = nullptr; +diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc +--- a/base/process/launch_posix.cc ++++ b/base/process/launch_posix.cc +@@ -99,7 +99,7 @@ sigset_t SetSignalMask(const sigset_t& new_sigmask) { + #if defined(OS_ANDROID) + // POSIX says pthread_sigmask() must be used in multi-threaded processes, + // but Android's pthread_sigmask() was broken until 4.1: +- // https://code.google.com/p/android/issues/detail?id=15337 ++ // https://code.9oo91e.qjz9zk/p/android/issues/detail?id=15337 + // http://stackoverflow.com/questions/13777109/pthread-sigmask-on-android-not-working + RAW_CHECK(sigprocmask(SIG_SETMASK, &new_sigmask, &old_sigmask) == 0); + #else +diff --git a/base/process/memory.h b/base/process/memory.h +--- a/base/process/memory.h ++++ b/base/process/memory.h +@@ -44,7 +44,7 @@ BASE_EXPORT bool AdjustOOMScore(ProcessId process, int score); + namespace win { + + // Custom Windows exception code chosen to indicate an out of memory error. +-// See https://msdn.microsoft.com/en-us/library/het71c37.aspx. ++// See https://msdn.m1cr050ft.qjz9zk/en-us/library/het71c37.aspx. + // "To make sure that you do not define a code that conflicts with an existing + // exception code" ... "The resulting error code should therefore have the + // highest four bits set to hexadecimal E." +diff --git a/base/process/memory_win.cc b/base/process/memory_win.cc +--- a/base/process/memory_win.cc ++++ b/base/process/memory_win.cc +@@ -46,7 +46,7 @@ namespace { + NOINLINE int OnNoMemory(size_t size) { + // Kill the process. This is important for security since most of code + // does not check the result of memory allocation. +- // https://msdn.microsoft.com/en-us/library/het71c37.aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/het71c37.aspx + // Pass the size of the failed request in an exception argument. + ULONG_PTR exception_args[] = {size}; + ::RaiseException(win::kOomExceptionCode, EXCEPTION_NONCONTINUABLE, +diff --git a/base/process/process.h b/base/process/process.h +--- a/base/process/process.h ++++ b/base/process/process.h +@@ -104,7 +104,7 @@ class BASE_EXPORT Process { + // uniquely identify a process. + // + // Not available on Android because /proc/stat/ cannot be accessed on O+. +- // https://issuetracker.google.com/issues/37140047 ++ // https://issuetracker.9oo91e.qjz9zk/issues/37140047 + Time CreationTime() const; + #endif // !defined(OS_ANDROID) + +diff --git a/base/process/process_metrics.h b/base/process/process_metrics.h +--- a/base/process/process_metrics.h ++++ b/base/process/process_metrics.h +@@ -69,7 +69,7 @@ BASE_EXPORT int64_t TimeValToMicroseconds(const struct timeval& tv); + // To obtain consistent memory metrics, use the memory_instrumentation service. + // + // For further documentation on memory, see +-// https://chromium.googlesource.com/chromium/src/+/HEAD/docs/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/docs/README.md + class BASE_EXPORT ProcessMetrics { + public: + ~ProcessMetrics(); +diff --git a/base/profiler/metadata_recorder.h b/base/profiler/metadata_recorder.h +--- a/base/profiler/metadata_recorder.h ++++ b/base/profiler/metadata_recorder.h +@@ -243,7 +243,7 @@ class BASE_EXPORT MetadataRecorder { + // otherwise cause mismatches between metadata name hashes and values. + // + // For the rationale behind this design (along with others considered), see +- // https://docs.google.com/document/d/18shLhVwuFbLl_jKZxCmOfRB98FmNHdKl0yZZZ3aEO4U/edit#. ++ // https://docs.9oo91e.qjz9zk/document/d/18shLhVwuFbLl_jKZxCmOfRB98FmNHdKl0yZZZ3aEO4U/edit#. + std::array items_; + + // The number of item slots used in the metadata map. +diff --git a/base/rand_util_win.cc b/base/rand_util_win.cc +--- a/base/rand_util_win.cc ++++ b/base/rand_util_win.cc +@@ -10,7 +10,7 @@ + + // #define needed to link in RtlGenRandom(), a.k.a. SystemFunction036. See the + // "Community Additions" comment on MSDN here: +-// http://msdn.microsoft.com/en-us/library/windows/desktop/aa387694.aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa387694.aspx + #define SystemFunction036 NTAPI SystemFunction036 + #include + #undef SystemFunction036 +diff --git a/base/synchronization/lock.h b/base/synchronization/lock.h +--- a/base/synchronization/lock.h ++++ b/base/synchronization/lock.h +@@ -72,7 +72,7 @@ class LOCKABLE BASE_EXPORT Lock { + #if defined(OS_WIN) + // Windows mitigates priority inversion by randomly boosting the priority of + // ready threads. +- // https://msdn.microsoft.com/library/windows/desktop/ms684831.aspx ++ // https://msdn.m1cr050ft.qjz9zk/library/windows/desktop/ms684831.aspx + return true; + #elif defined(OS_POSIX) || defined(OS_FUCHSIA) + // POSIX mitigates priority inversion by setting the priority of a thread +diff --git a/base/system/sys_info.h b/base/system/sys_info.h +--- a/base/system/sys_info.h ++++ b/base/system/sys_info.h +@@ -143,7 +143,7 @@ class BASE_EXPORT SysInfo { + // Chrome behave differently for different Chrome OS devices, either directly + // check for the hardware feature that you care about (preferred) or add a + // command-line flag to Chrome and pass it from session_manager (based on +- // whether a USE flag is set or not). See https://goo.gl/BbBkzg for more ++ // whether a USE flag is set or not). See https://goo.gl.qjz9zk.qjz9zk/BbBkzg for more + // details. + static std::string GetLsbReleaseBoard(); + +diff --git a/base/task/sequence_manager/sequence_manager_impl.cc b/base/task/sequence_manager/sequence_manager_impl.cc +--- a/base/task/sequence_manager/sequence_manager_impl.cc ++++ b/base/task/sequence_manager/sequence_manager_impl.cc +@@ -1163,7 +1163,7 @@ void SequenceManagerImpl::RecordCrashKeys(const PendingTask& pending_task) { + // this. + // + // See +- // https://chromium.googlesource.com/chromium/src/+/master/docs/debugging_with_crash_keys.md ++ // https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/debugging_with_crash_keys.md + // for instructions for symbolizing these crash keys. + // + // TODO(skyostil): Find a way to extract the destination function address +diff --git a/base/task/thread_pool/thread_group_native_win.h b/base/task/thread_pool/thread_group_native_win.h +--- a/base/task/thread_pool/thread_group_native_win.h ++++ b/base/task/thread_pool/thread_group_native_win.h +@@ -16,14 +16,14 @@ namespace internal { + // A ThreadGroup implementation backed by the Windows Thread Pool API. + // + // Windows Thread Pool API official documentation: +-// https://msdn.microsoft.com/en-us/library/windows/desktop/ms686766(v=vs.85).aspx ++// https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms686766(v=vs.85).aspx + // + // Blog posts on the Windows Thread Pool API: +-// https://msdn.microsoft.com/magazine/hh335066.aspx +-// https://msdn.microsoft.com/magazine/hh394144.aspx +-// https://msdn.microsoft.com/magazine/hh456398.aspx +-// https://msdn.microsoft.com/magazine/hh547107.aspx +-// https://msdn.microsoft.com/magazine/hh580731.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh335066.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh394144.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh456398.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh547107.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh580731.aspx + class BASE_EXPORT ThreadGroupNativeWin : public ThreadGroupNative { + public: + ThreadGroupNativeWin(TrackedRef task_tracker, +diff --git a/base/third_party/cityhash/city.h b/base/third_party/cityhash/city.h +--- a/base/third_party/cityhash/city.h ++++ b/base/third_party/cityhash/city.h +@@ -20,7 +20,7 @@ + // + // CityHash, by Geoff Pike and Jyrki Alakuijala + // +-// http://code.google.com/p/cityhash/ ++// http://code.9oo91e.qjz9zk/p/cityhash/ + // + // This file provides a few functions for hashing strings. All of them are + // high-quality functions in the sense that they pass standard tests such +diff --git a/base/third_party/dynamic_annotations/dynamic_annotations.h b/base/third_party/dynamic_annotations/dynamic_annotations.h +--- a/base/third_party/dynamic_annotations/dynamic_annotations.h ++++ b/base/third_party/dynamic_annotations/dynamic_annotations.h +@@ -38,7 +38,7 @@ + Actual implementation of these macros may differ depending on the + dynamic analysis tool being used. + +- See http://code.google.com/p/data-race-test/ for more information. ++ See http://code.9oo91e.qjz9zk/p/data-race-test/ for more information. + + This file supports the following dynamic analysis tools: + - None (DYNAMIC_ANNOTATIONS_ENABLED is not defined or zero). +@@ -170,7 +170,7 @@ + of the mutex's critical sections individually using the annotations above. + This annotation makes sense only for hybrid race detectors. For pure + happens-before detectors this is a no-op. For more details see +- http://code.google.com/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */ ++ http://code.9oo91e.qjz9zk/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */ + #define ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) \ + DYNAMIC_ANNOTATIONS_NAME(AnnotateMutexIsUsedAsCondVar)(__FILE__, __LINE__, \ + mu) +diff --git a/base/third_party/libevent/evdns.c b/base/third_party/libevent/evdns.c +--- a/base/third_party/libevent/evdns.c ++++ b/base/third_party/libevent/evdns.c +@@ -2006,7 +2006,7 @@ nameserver_send_probe(struct nameserver *const ns) { + + log(EVDNS_LOG_DEBUG, "Sending probe to %s", debug_ntoa(ns->address)); + +- req = request_new(TYPE_A, "www.google.com", DNS_QUERY_NO_SEARCH, nameserver_probe_callback, ns); ++ req = request_new(TYPE_A, "www.9oo91e.qjz9zk", DNS_QUERY_NO_SEARCH, nameserver_probe_callback, ns); + if (!req) return; + /* we force this into the inflight queue no matter what */ + request_trans_id_set(req, transaction_id_pick()); +diff --git a/base/third_party/libevent/evdns.h b/base/third_party/libevent/evdns.h +--- a/base/third_party/libevent/evdns.h ++++ b/base/third_party/libevent/evdns.h +@@ -152,7 +152,7 @@ + * + * If a nameserver loses too many requests it is considered down and we + * try not to use it. After a while we send a probe to that nameserver +- * (a lookup for google.com) and, if it replies, we consider it working ++ * (a lookup for 9oo91e.qjz9zk) and, if it replies, we consider it working + * again. If the nameserver fails a probe we wait longer to try again + * with the next probe. + */ +diff --git a/base/third_party/libevent/evport.c b/base/third_party/libevent/evport.c +--- a/base/third_party/libevent/evport.c ++++ b/base/third_party/libevent/evport.c +@@ -1,5 +1,5 @@ + /* +- * Submitted by David Pacheco (dp.spambait@gmail.com) ++ * Submitted by David Pacheco (dp.spambait@9ma1l.qjz9zk) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions +diff --git a/base/third_party/libevent/min_heap.h b/base/third_party/libevent/min_heap.h +--- a/base/third_party/libevent/min_heap.h ++++ b/base/third_party/libevent/min_heap.h +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2006 Maxim Yegorushkin ++ * Copyright (c) 2006 Maxim Yegorushkin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +diff --git a/base/third_party/nspr/prtime.cc b/base/third_party/nspr/prtime.cc +--- a/base/third_party/nspr/prtime.cc ++++ b/base/third_party/nspr/prtime.cc +@@ -5,7 +5,7 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +- * http://www.mozilla.org/MPL/ ++ * http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +@@ -54,7 +54,7 @@ + * PR_GMTParameters + * PR_ImplodeTime + * Upstream implementation from +- * http://lxr.mozilla.org/nspr/source/pr/src/misc/prtime.c#221 ++ * http://lxr.m0z111a.qjz9zk/nspr/source/pr/src/misc/prtime.c#221 + * All types and macros are defined in the base/third_party/prtime.h file. + * These have been copied from the following nspr files. We have only copied + * over the types we need. +@@ -1140,11 +1140,11 @@ PR_ParseTimeString( + * mktime will return (time_t) -1 if the input is a date + * after 23:59:59, December 31, 3000, US Pacific Time (not + * UTC as documented): +- * http://msdn.microsoft.com/en-us/library/d1y53h2a(VS.80).aspx ++ * http://msdn.m1cr050ft.qjz9zk/en-us/library/d1y53h2a(VS.80).aspx + * But if the year is 3001, mktime also invokes the invalid + * parameter handler, causing the application to crash. This + * problem has been reported in +- * http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=266036. ++ * http://connect.m1cr050ft.qjz9zk/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=266036. + * We avoid this crash by not calling mktime if the date is + * out of range. To use a simple test that works in any time + * zone, we consider year 3000 out of range as well. (See +diff --git a/base/third_party/nspr/prtime.h b/base/third_party/nspr/prtime.h +--- a/base/third_party/nspr/prtime.h ++++ b/base/third_party/nspr/prtime.h +@@ -5,7 +5,7 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +- * http://www.mozilla.org/MPL/ ++ * http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +@@ -76,7 +76,7 @@ typedef enum { PR_FAILURE = -1, PR_SUCCESS = 0 } PRStatus; + /* + * Long-long (64-bit signed integer type) support macros used by + * PR_ImplodeTime(). +- * See http://lxr.mozilla.org/nspr/source/pr/include/prlong.h ++ * See http://lxr.m0z111a.qjz9zk/nspr/source/pr/include/prlong.h + */ + + #define LL_I2L(l, i) ((l) = (PRInt64)(i)) +diff --git a/base/third_party/symbolize/symbolize.cc b/base/third_party/symbolize/symbolize.cc +--- a/base/third_party/symbolize/symbolize.cc ++++ b/base/third_party/symbolize/symbolize.cc +@@ -872,7 +872,7 @@ public: + bool ready; + SymInitializer() : process(NULL), ready(false) { + // Initialize the symbol handler. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms680344(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms680344(v=vs.85).aspx + process = GetCurrentProcess(); + // Defer symbol loading. + // We do not request undecorated symbols with SYMOPT_UNDNAME +@@ -898,7 +898,7 @@ static ATTRIBUTE_NOINLINE bool SymbolizeAndDemangle(void *pc, char *out, + return false; + } + // Resolve symbol information from address. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms680578(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms680578(v=vs.85).aspx + char buf[sizeof(SYMBOL_INFO) + MAX_SYM_NAME]; + SYMBOL_INFO *symbol = reinterpret_cast(buf); + symbol->SizeOfStruct = sizeof(SYMBOL_INFO); +diff --git a/base/threading/platform_thread_win.cc b/base/threading/platform_thread_win.cc +--- a/base/threading/platform_thread_win.cc ++++ b/base/threading/platform_thread_win.cc +@@ -34,7 +34,7 @@ namespace { + constexpr int kWin7BackgroundThreadModePriority = 4; + + // The information on how to set the thread name comes from +-// a MSDN article: http://msdn2.microsoft.com/en-us/library/xcb2z8hs.aspx ++// a MSDN article: http://msdn2.m1cr050ft.qjz9zk/en-us/library/xcb2z8hs.aspx + const DWORD kVCThreadNameException = 0x406D1388; + + typedef struct tagTHREADNAME_INFO { +@@ -144,7 +144,7 @@ bool CreateThreadInternal(size_t stack_size, + // will have to work running on CreateThread() threads anyway, since we run + // code on the Windows thread pool, etc. For some background on the + // difference: +- // http://www.microsoft.com/msj/1099/win32/win321099.aspx ++ // http://www.m1cr050ft.qjz9zk/msj/1099/win32/win321099.aspx + thread_handle = + ::CreateThread(nullptr, stack_size, ThreadFunc, params, flags, nullptr); + } +diff --git a/base/threading/platform_thread_win.h b/base/threading/platform_thread_win.h +--- a/base/threading/platform_thread_win.h ++++ b/base/threading/platform_thread_win.h +@@ -18,7 +18,7 @@ namespace features { + // ThreadPriority::BACKGROUND threads. This lowers the disk and network I/O + // priority of the thread in addition to the CPU scheduling priority. MSDN + // recommends using this setting for threads that perform background work. +-// https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-setthreadpriority ++// https://docs.m1cr050ft.qjz9zk/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + BASE_EXPORT extern const Feature kWindowsThreadModeBackground; + + } // namespace features +diff --git a/base/time/time.h b/base/time/time.h +--- a/base/time/time.h ++++ b/base/time/time.h +@@ -605,7 +605,7 @@ class BASE_EXPORT Time : public time_internal::TimeBase

This is not the full set of direct actions potentially available in Chrome. The full set might + * not even be available at compile time. For an up-to-date list, see +- * http://go.ext.google.com/chrome-direct-action-list Please update this list when adding a new ++ * http://go.ext.9oo91e.qjz9zk/chrome-direct-action-list Please update this list when adding a new + * direct action to this set. + */ + public class ChromeDirectActionIds { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java +@@ -23,7 +23,7 @@ import java.util.function.Consumer; + * + *

Handlers can define any direct action they want, but the client of direct actions need to be + * aware of them to make use of them. For this to work, if you add a new action here, please list it +- * and document it in http://go.ext.google.com/chrome-direct-action-list ++ * and document it in http://go.ext.9oo91e.qjz9zk/chrome-direct-action-list + */ + @TargetApi(29) + public abstract class DirectActionCoordinator { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java +@@ -30,9 +30,9 @@ public final class ConnectivityChecker { + private static final String TAG = "feedback"; + + private static final String DEFAULT_HTTP_NO_CONTENT_URL = +- "http://clients4.google.com/generate_204"; ++ "http://clients4.9oo91e.qjz9zk/generate_204"; + private static final String DEFAULT_HTTPS_NO_CONTENT_URL = +- "https://clients4.google.com/generate_204"; ++ "https://clients4.9oo91e.qjz9zk/generate_204"; + + private static String sHttpNoContentUrl = DEFAULT_HTTP_NO_CONTENT_URL; + private static String sHttpsNoContentUrl = DEFAULT_HTTPS_NO_CONTENT_URL; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java b/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java +@@ -137,7 +137,7 @@ public class HelpAndFeedback { + return context.getString(R.string.help_context_bookmarks); + } else if (url.equals(UrlConstants.HISTORY_URL)) { + return context.getString(R.string.help_context_history); +- // Note: For www.google.com the following function returns false. ++ // Note: For www.9oo91e.qjz9zk the following function returns false. + } else if (UrlUtilitiesJni.get().isGoogleSearchUrl(url)) { + return context.getString(R.string.help_context_search_results); + // For incognito NTP, we want to show incognito help. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java +@@ -55,7 +55,7 @@ import java.util.ArrayList; + * + * TODO(newt): use hardware acceleration? See + * http://blog.danlew.net/2015/10/20/using-hardware-layers-to-improve-animation-performance/ +- * and http://developer.android.com/guide/topics/graphics/hardware-accel.html#layers ++ * and http://developer.8n6r01d.qjz9zk/guide/topics/graphics/hardware-accel.html#layers + * + * TODO(newt): handle tall infobars on small devices. Use a ScrollView inside the InfoBarWrapper? + * Make sure InfoBarContainerLayout doesn't extend into tabstrip on tablet. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java +@@ -331,7 +331,7 @@ public final class InfoBarLayout extends ViewGroup implements View.OnClickListen + /** + * Measures and determines where children should go. + * +- * For current specs, see https://goto.google.com/infobar-spec ++ * For current specs, see https://goto.9oo91e.qjz9zk/infobar-spec + * + * All controls are padded from the infobar boundary by the same amount, but different types of + * control groups are bound by different widths and have different margins: +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java +@@ -75,7 +75,7 @@ public class ModalDialogView extends BoundedLinearLayout implements View.OnClick + + // If the scroll view can not be scrolled, make the scroll view not focusable so that the + // focusing behavior for hardware keyboard is less confusing. +- // See https://codereview.chromium.org/2939883002. ++ // See https://codereview.ch40m1um.qjz9zk/2939883002. + mScrollView.addOnLayoutChangeListener( + (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + boolean isScrollable = v.canScrollVertically(-1) || v.canScrollVertically(1); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java b/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java +@@ -22,7 +22,7 @@ import org.chromium.base.Log; + /** + * Performs inflation of {@link RemoteViews} taking into account the local night mode. + * {@link RemoteViews#apply} always uses resource configuration corresponding to system +- * settings, see https://buganizer.corp.google.com/issues/133424086, http://crbug.com/1626864. ++ * settings, see https://buganizer.corp.9oo91e.qjz9zk/issues/133424086, http://crbug.com/1626864. + */ + public class RemoteViewsWithNightModeInflater { + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java +@@ -141,7 +141,7 @@ public class NotificationConstants { + public static final String GROUP_SHARED_CLIPBOARD = "SharedClipboard"; + + // Web notification group names are set dynamically as this prefix + notification origin. +- // For example, 'Web:chromium.org' for a notification from chromium.org. ++ // For example, 'Web:ch40m1um.qjz9zk' for a notification from ch40m1um.qjz9zk. + static final String GROUP_WEB_PREFIX = "Web:"; + + // Default notificationId until it has been set. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java +@@ -16,8 +16,8 @@ import java.util.List; + * A proxy for the Android Notification Manager. This allows tests to be written without having to + * use the real Notification Manager. + * +- * @see +- * https://developer.android.com/reference/android/app/NotificationManager.html ++ * @see ++ * https://developer.8n6r01d.qjz9zk/reference/android/app/NotificationManager.html + */ + public interface NotificationManagerProxy { + // Implemented by NotificationManagerCompat and thus available on all API levels. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java +@@ -480,7 +480,7 @@ public class NotificationPlatformBridge { + * notification is replacing another notification. + * @param silent Whether the default sound, vibration and lights should be suppressed. + * @param actions Action buttons to display alongside the notification. +- * @see ++ * @see + * Android Notification API + */ + @CalledByNative +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java +@@ -188,9 +188,9 @@ public class ConnectivityDetector implements NetworkChangeNotifier.ConnectionTyp + + private static final String USER_AGENT_HEADER_NAME = "User-Agent"; + // Send the HTTPS probe first since the captive portals cannot see the encrypted URL path. +- private static final String DEFAULT_PROBE_URL = "https://www.google.com/generate_204"; ++ private static final String DEFAULT_PROBE_URL = "https://www.9oo91e.qjz9zk/generate_204"; + private static final String FALLBACK_PROBE_URL = +- "http://connectivitycheck.gstatic.com/generate_204"; ++ "http://connectivitycheck.95tat1c.qjz9zk/generate_204"; + private static final String PROBE_METHOD = "GET"; + private static final int SOCKET_TIMEOUT_MS = 5000; + private static final int CONNECTIVITY_CHECK_INITIAL_DELAY_MS = 5000; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java +@@ -53,7 +53,7 @@ import java.util.Date; + * Status is saved directly to the the disk after every run of the pipeline. + * + * Implementation notes: +- * http://docs.google.com/a/google.com/document/d/1scTCovqASf5ktkOeVj8wFRkWTCeDYw2LrOBNn05CDB0/edit ++ * http://docs.9oo91e.qjz9zk/a/9oo91e.qjz9zk/document/d/1scTCovqASf5ktkOeVj8wFRkWTCeDYw2LrOBNn05CDB0/edit + */ + public class OmahaBase { + // Used in various org.chromium.chrome.browser.omaha files. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java +@@ -39,7 +39,7 @@ public abstract class RequestGenerator { + public static final int INSTALL_AGE_IMMEDIATELY_AFTER_INSTALLING = -1; + + private static final String SALT = "omahaSalt"; +- private static final String URL_OMAHA_SERVER = "https://update.googleapis.com/service/update2"; ++ private static final String URL_OMAHA_SERVER = "https://update.9oo91eapis.qjz9zk/service/update2"; + + private final Context mApplicationContext; + +@@ -200,7 +200,7 @@ public abstract class RequestGenerator { + // so have to make sure AccountManagerFacade instance is initialized. + int numAccounts = 0; + try { +- // TODO(waffles@chromium.org): Ideally, this should be asynchronous. ++ // TODO(waffles@ch40m1um.qjz9zk): Ideally, this should be asynchronous. + PostTask.runSynchronously(UiThreadTaskTraits.DEFAULT, + () -> ProcessInitializationHandler.getInstance().initializePreNative()); + numAccounts = AccountManagerFacade.get().getGoogleAccounts().size(); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java +@@ -19,7 +19,7 @@ import org.chromium.chrome.browser.omaha.XMLParser.Node; + * + * + * +- * ++ * + * + * + * +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java +@@ -296,8 +296,8 @@ public class OmniboxUrlEmphasizer { + * + * For example, HTTP and HTTPS urls return the index of the first character + * after the domain: +- * http://www.google.com/?q=foo => 21 (up to the 'm' in google.com) +- * https://www.google.com/?q=foo => 22 ++ * http://www.9oo91e.qjz9zk/?q=foo => 21 (up to the 'm' in 9oo91e.qjz9zk) ++ * https://www.9oo91e.qjz9zk/?q=foo => 22 + * + * Data urls always return 0, since they do not contain an origin: + * data:kf94hfJEj#N => 0 +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java +@@ -44,7 +44,7 @@ import java.util.Set; + * Provides methods for building the X-Geo HTTP header, which provides device location to a server + * when making an HTTP request. + * +- * X-Geo header spec: https://goto.google.com/xgeospec. ++ * X-Geo header spec: https://goto.9oo91e.qjz9zk/xgeospec. + */ + public class GeolocationHeader { + private static final String TAG = "GeolocationHeader"; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto +@@ -11,7 +11,7 @@ + // + // NOTE: This is currently using a Google-defined structure. This explains the + // jumps in values. New fields cannot be added to this proto directly. See +-// https://goto.google.com/partner_location_proto ++// https://goto.9oo91e.qjz9zk/partner_location_proto + + syntax = "proto2"; + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java +@@ -109,7 +109,7 @@ public class AnswerSuggestionProcessor extends BaseSuggestionViewProcessor { + @Override + public void recordSuggestionUsed(OmniboxSuggestion suggestion, PropertyModel model) { + // Bookkeeping handled in C++: +- // https://cs.chromium.org/Omnibox.SuggestionUsed.AnswerInSuggest ++ // https://cs.ch40m1um.qjz9zk/Omnibox.SuggestionUsed.AnswerInSuggest + } + + /** +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java +@@ -132,7 +132,7 @@ abstract class AnswerText { + /** + * Return the TextAppearanceSpan array specifying text decorations for a given field type. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return TextAppearanceSpan array specifying styles to be used to present text field. + */ + protected abstract MetricAffectingSpan[] getAppearanceForText(@AnswerTextType int type); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java +@@ -123,7 +123,7 @@ class AnswerTextNewLayout extends AnswerText { + /** + * Return the TextAppearanceSpan array specifying text decorations for a given field type. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return TextAppearanceSpan array specifying styles to be used to present text field. + */ + @Override +@@ -134,7 +134,7 @@ class AnswerTextNewLayout extends AnswerText { + /** + * Return text styles for elements in main line holding answer. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return array of TextAppearanceSpan objects defining style for the text. + */ + private MetricAffectingSpan[] getAppearanceForAnswerText(@AnswerTextType int type) { +@@ -179,7 +179,7 @@ class AnswerTextNewLayout extends AnswerText { + /** + * Return text styles for elements in second line holding query. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return array of TextAppearanceSpan objects defining style for the text. + */ + private MetricAffectingSpan[] getAppearanceForQueryText(@AnswerTextType int type) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java +@@ -32,7 +32,7 @@ public class SuggestionViewProperties { + @Retention(RetentionPolicy.SOURCE) + public @interface SuggestionIcon { + // This enum is used to back UMA histograms, and should therefore be treated as append-only. +- // See http://cs.chromium.org/SuggestionIconOrFaviconType ++ // See http://cs.ch40m1um.qjz9zk/SuggestionIconOrFaviconType + int UNSET = 0; + int BOOKMARK = 1; + int HISTORY = 2; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java +@@ -53,7 +53,7 @@ public class EntitySuggestionProcessor implements SuggestionProcessor { + + // These values are used with UMA to report Omnibox.RichEntity.DecorationType histograms, and + // should therefore be treated as append-only. +- // See http://cs.chromium.org/Omnibox.RichEntity.DecorationType. ++ // See http://cs.ch40m1um.qjz9zk/Omnibox.RichEntity.DecorationType. + private static final int DECORATION_TYPE_ICON = 0; + private static final int DECORATION_TYPE_COLOR = 1; + private static final int DECORATION_TYPE_IMAGE = 2; +@@ -115,7 +115,7 @@ public class EntitySuggestionProcessor implements SuggestionProcessor { + @Override + public void recordSuggestionUsed(OmniboxSuggestion suggestion, PropertyModel model) { + // Bookkeeping handled in C++: +- // http://cs.chromium.org/Omnibox.SuggestionUsed.RichEntity ++ // http://cs.ch40m1um.qjz9zk/Omnibox.SuggestionUsed.RichEntity + } + + private void fetchEntityImage(OmniboxSuggestion suggestion, PropertyModel model) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java +@@ -42,7 +42,7 @@ public class ConnectionInfoPopup implements OnClickListener, ModalDialogProperti + private static final String TAG = "ConnectionInfoPopup"; + + private static final String HELP_URL = +- "https://support.google.com/chrome?p=android_connection_info"; ++ "https://support.9oo91e.qjz9zk/chrome?p=android_connection_info"; + + private final Context mContext; + private final ModalDialogManager mModalDialogManager; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java +@@ -50,7 +50,7 @@ import java.util.Set; + + /** + * The point of interaction with a locally installed 3rd party native Android payment app. +- * https://docs.google.com/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE ++ * https://docs.9oo91e.qjz9zk/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE + */ + public class AndroidPaymentApp + extends PaymentInstrument implements PaymentApp, WindowAndroid.IntentCallback { +@@ -177,7 +177,7 @@ public class AndroidPaymentApp + // ServiceConnection itself -- this binding to the service will remain active, and you + // will receive a call to onServiceConnected(ComponentName, IBinder) when the Service is + // next running." +- // https://developer.android.com/reference/android/content/ServiceConnection.html#onServiceDisconnected(android.content.ComponentName) ++ // https://developer.8n6r01d.qjz9zk/reference/android/content/ServiceConnection.html#onServiceDisconnected(android.content.ComponentName) + @Override + public void onServiceDisconnected(ComponentName name) { + // Do not wait for the service to restart. +@@ -194,7 +194,7 @@ public class AndroidPaymentApp + // service or if your client doesn't have permission to bind to it. If this value is + // true, you should later call unbindService(ServiceConnection) to release the + // connection." +- // https://developer.android.com/reference/android/content/Context.html#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int) ++ // https://developer.8n6r01d.qjz9zk/reference/android/content/Context.html#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int) + mIsServiceBindingInitiated = ContextUtils.getApplicationContext().bindService( + mIsReadyToPayIntent, mServiceConnection, Context.BIND_AUTO_CREATE); + } catch (SecurityException e) { +@@ -215,7 +215,7 @@ public class AndroidPaymentApp + if (mServiceConnection != null) { + if (mIsServiceBindingInitiated) { + // mServiceConnection "parameter must not be null." +- // https://developer.android.com/reference/android/content/Context.html#unbindService(android.content.ServiceConnection) ++ // https://developer.8n6r01d.qjz9zk/reference/android/content/Context.html#unbindService(android.content.ServiceConnection) + ContextUtils.getApplicationContext().unbindService(mServiceConnection); + mIsServiceBindingInitiated = false; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java +@@ -124,7 +124,7 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback { + * + * @param webContents The web contents that invoked the web payments API. + * @param methods The list of payment methods requested by the merchant. For +- * example, "https://bobpay.com", "https://android.com/pay", ++ * example, "https://bobpay.com", "https://8n6r01d.qjz9zk/pay", + * "basic-card". + * @param webDataService The web data service to cache manifest. + * @param downloader The manifest downloader. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java +@@ -42,7 +42,7 @@ public interface PaymentApp { + * interaction until updateWith() or noUpdatedPaymentDetails(). + * https://w3c.github.io/payment-request/#paymentmethodchangeevent-interface + * +- * @param methodName Method name. For example, "https://google.com/pay". Should not ++ * @param methodName Method name. For example, "https://9oo91e.qjz9zk/pay". Should not + * be null or empty. + * @param stringifiedDetails JSON-serialized object. For example, {"type": "debit"}. Should + * not be null. +@@ -122,7 +122,7 @@ public interface PaymentApp { + + /** + * Returns the identifier for this payment app to be saved in user preferences. For +- * example, this can be "autofill", "https://android.com/pay", or ++ * example, this can be "autofill", "https://8n6r01d.qjz9zk/pay", or + * "com.example.app.ExamplePaymentApp". + * + * @return The identifier for this payment app. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java +@@ -35,7 +35,7 @@ import java.util.Set; + * names, versions, and signatures to the apps. + * + * Spec: +- * https://docs.google.com/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE/edit#heading=h.cjp3jlnl47h5 ++ * https://docs.9oo91e.qjz9zk/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE/edit#heading=h.cjp3jlnl47h5 + */ + public class PaymentManifestVerifier + implements ManifestDownloadCallback, ManifestParseCallback, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java +@@ -226,8 +226,8 @@ public class PaymentRequestImpl + public static final int SUGGESTIONS_LIMIT = 4; + + private static final String TAG = "cr_PaymentRequest"; +- private static final String ANDROID_PAY_METHOD_NAME = "https://android.com/pay"; +- private static final String PAY_WITH_GOOGLE_METHOD_NAME = "https://google.com/pay"; ++ private static final String ANDROID_PAY_METHOD_NAME = "https://8n6r01d.qjz9zk/pay"; ++ private static final String PAY_WITH_GOOGLE_METHOD_NAME = "https://9oo91e.qjz9zk/pay"; + // Reverse order of the comparator to sort in descending order of completeness scores. + private static final Comparator COMPLETENESS_COMPARATOR = + (a, b) -> (compareCompletablesByCompleteness(b, a)); +@@ -999,7 +999,7 @@ public class PaymentRequestImpl + + if (googlePayBridgeEligible) { + // If skip-to-GPay flow is activated, ignore all other payment methods, which can be +- // either "basic-card" or "https://android.com/pay". The latter is safe to ignore ++ // either "basic-card" or "https://8n6r01d.qjz9zk/pay". The latter is safe to ignore + // because merchant has already requested Google Pay. + if (!method.equals(PAY_WITH_GOOGLE_METHOD_NAME)) continue; + if (methodData[i].gpayBridgeData != null +@@ -1105,10 +1105,10 @@ public class PaymentRequestImpl + if (TextUtils.isEmpty(canDedupedApplicationId)) continue; + canDedupedApplicationIds.add(canDedupedApplicationId); + // Add the trailing slash, because Service worker registration scope is a directory path +- // that must end with a '/' (e.g., "https://google.com/pay/"), whereas ++ // that must end with a '/' (e.g., "https://9oo91e.qjz9zk/pay/"), whereas + // "canDedupedApplicationIdUri" is derived from the native Android payment app's default + // URL-based payment method name that may not necessarily specify the trailing slash +- // (e.g., "https://google.com/pay"). ++ // (e.g., "https://9oo91e.qjz9zk/pay"). + if (canDedupedApplicationId.charAt(canDedupedApplicationId.length() - 1) != '/') { + canDedupedApplicationIds.add(canDedupedApplicationId + '/'); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java +@@ -153,7 +153,7 @@ import java.util.Collection; + /** + * Computes the maximum possible width for a dialog box. + * +- * Follows https://www.google.com/design/spec/components/dialogs.html#dialogs-simple-dialogs ++ * Follows https://www.9oo91e.qjz9zk/design/spec/components/dialogs.html#dialogs-simple-dialogs + * + * @param context Context to pull resources from. + * @param availableWidth Available width for the dialog. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java +@@ -334,7 +334,7 @@ public class PaymentRequestUI implements DialogInterface.OnDismissListener, View + * @param origin The origin (https://tools.ietf.org/html/rfc6454) to show under + * the title. For example, "https://shop.momandpop.com". If the + * origin is too long for the UI, it should elide according to: +- * https://www.chromium.org/Home/chromium-security/enamel#TOC-Eliding-Origin-Names-And-Hostnames ++ * https://www.ch40m1um.qjz9zk/Home/chromium-security/enamel#TOC-Eliding-Origin-Names-And-Hostnames + * @param securityLevel The security level of the page that invoked PaymentRequest. + * @param shippingStrings The string resource identifiers to use in the shipping sections. + */ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java +@@ -382,7 +382,7 @@ public class SearchEngineAdapter extends BaseAdapter + + // To improve the explore-by-touch experience, the radio button is hidden from accessibility + // and instead, "checked" or "not checked" is read along with the search engine's name, e.g. +- // "google.com checked" or "google.com not checked". ++ // "9oo91e.qjz9zk checked" or "9oo91e.qjz9zk not checked". + radioButton.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); + description.setAccessibilityDelegate(new AccessibilityDelegate() { + @Override +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java +@@ -450,7 +450,7 @@ public class ExportFlow { + == R.string.save_password_preferences_export_learn_google_drive) { + // Link to the help article about how to use Google Drive. + Intent intent = new Intent(Intent.ACTION_VIEW, +- Uri.parse("https://support.google.com/drive/answer/2424384")); ++ Uri.parse("https://support.9oo91e.qjz9zk/drive/answer/2424384")); + intent.setPackage(mDelegate.getActivity().getPackageName()); + mDelegate.getActivity().startActivity(intent); + } else if (positiveButtonLabelId == R.string.try_again) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java +@@ -57,7 +57,7 @@ public class ClearBrowsingDataTabsFragment extends Fragment { + } + + /* +- * RTL is broken for ViewPager: https://code.google.com/p/android/issues/detail?id=56831 ++ * RTL is broken for ViewPager: https://code.9oo91e.qjz9zk/p/android/issues/detail?id=56831 + * This class works around this issue by inserting the tabs in inverse order if RTL is active. + * The TabLayout needs to be set to LTR for this to work. + * TODO(dullweber): Extract the RTL code into a wrapper class if other places in Chromium need +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +@@ -37,8 +37,8 @@ import org.chromium.ui.UiUtils; + * Helper methods for sync preferences. + */ + public class SyncPreferenceUtils { +- private static final String DASHBOARD_URL = "https://www.google.com/settings/chrome/sync"; +- private static final String MY_ACCOUNT_URL = "https://myaccount.google.com/smartlink/home"; ++ private static final String DASHBOARD_URL = "https://www.9oo91e.qjz9zk/settings/chrome/sync"; ++ private static final String MY_ACCOUNT_URL = "https://myaccount.9oo91e.qjz9zk/smartlink/home"; + + /** + * Checks if sync error icon should be shown. Show sync error icon if sync is off because +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java +@@ -19,10 +19,10 @@ import android.widget.TextView; + * + * For example, given the following template and content + * Template: "%s was closed" +- * Content: "https://www.google.com/webhp?sourceid=chrome-instant&q=potato" ++ * Content: "https://www.9oo91e.qjz9zk/webhp?sourceid=chrome-instant&q=potato" + * + * the TemplatePreservingTextView would truncate the content but not the template text: +- * "https://www.google.com/webh... was closed" ++ * "https://www.9oo91e.qjz9zk/webh... was closed" + */ + public class TemplatePreservingTextView extends AppCompatTextView { + private String mTemplate; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java +@@ -22,7 +22,7 @@ import java.lang.reflect.Method; + @JNINamespace("chrome::android") + public class CaptivePortalHelper { + private static final String DEFAULT_PORTAL_CHECK_URL = +- "http://connectivitycheck.gstatic.com/generate_204"; ++ "http://connectivitycheck.95tat1c.qjz9zk/generate_204"; + + public static void setCaptivePortalCertificateForTesting(String spkiHash) { + CaptivePortalHelperJni.get().setCaptivePortalCertificateForTesting(spkiHash); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java +@@ -40,7 +40,7 @@ public final class SuggestionsConfig { + * It must be kept in sync with //components/ntp_suggestions/features.cc + */ + private static final String DEFAULT_CONTENT_SUGGESTIONS_REFERRER_URL = +- "https://www.googleapis.com/auth/chrome-content-suggestions"; ++ "https://www.9oo91eapis.qjz9zk/auth/chrome-content-suggestions"; + + private SuggestionsConfig() {} + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java +@@ -27,7 +27,7 @@ import org.chromium.ui.mojom.WindowOpenDisposition; + * Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods. + */ + public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateImpl { +- private static final String NEW_TAB_URL_HELP = "https://support.google.com/chrome/?p=new_tab"; ++ private static final String NEW_TAB_URL_HELP = "https://support.9oo91e.qjz9zk/chrome/?p=new_tab"; + + public SuggestionsNavigationDelegate(ChromeActivity activity, Profile profile, + NativePageHost host, TabModelSelector tabModelSelector) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java +@@ -39,7 +39,7 @@ public class GoogleServiceAuthError { + // DEPRECATED. + // The user needs to satisfy a CAPTCHA challenge to unlock their account. + // If no other information is available, this can be resolved by visiting +- // https://www.google.com/accounts/DisplayUnlockCaptcha. Otherwise, ++ // https://www.9oo91e.qjz9zk/accounts/DisplayUnlockCaptcha. Otherwise, + // captcha() will provide details about the associated challenge. + // int CAPTCHA_REQUIRED = 4; + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java +@@ -345,7 +345,7 @@ public class TabState { + } else { + // For JellyBean and below a bug in MappedByteBufferAdapter causes rewind to not be + // propagated to the underlying ByteBuffer, and results in an underflow exception. See: +- // http://b.android.com/53637. ++ // http://b.8n6r01d.qjz9zk/53637. + for (int i = 0; i < buffer.limit(); i++) contentsStateBytes[i] = buffer.get(i); + } + return contentsStateBytes; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java +@@ -535,8 +535,8 @@ public class CustomTabToolbar extends ToolbarLayout implements View.OnLongClickL + + private static String parsePublisherNameFromUrl(String url) { + // TODO(ianwen): Make it generic to parse url from URI path. http://crbug.com/599298 +- // The url should look like: https://www.google.com/amp/s/www.nyt.com/ampthml/blogs.html +- // or https://www.google.com/amp/www.nyt.com/ampthml/blogs.html. ++ // The url should look like: https://www.9oo91e.qjz9zk/amp/s/www.nyt.com/ampthml/blogs.html ++ // or https://www.9oo91e.qjz9zk/amp/www.nyt.com/ampthml/blogs.html. + Uri uri = Uri.parse(url); + List segments = uri.getPathSegments(); + if (segments.size() >= 3) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java b/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java +@@ -18,7 +18,7 @@ import org.chromium.chrome.browser.vr.VrModuleProvider; + * Triggered when Chrome's package is replaced (e.g. when it is upgraded). + * + * Before changing this class, you must understand both the Receiver and Process Lifecycles: +- * http://developer.android.com/reference/android/content/BroadcastReceiver.html#ReceiverLifecycle ++ * http://developer.8n6r01d.qjz9zk/reference/android/content/BroadcastReceiver.html#ReceiverLifecycle + * + * - This process runs in the foreground as long as {@link #onReceive} is running. If there are no + * other application components running, Android will aggressively kill it. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java +@@ -111,7 +111,7 @@ public class ArCoreInstallUtils implements ModuleInstallUi.FailureUiListener { + // As per documentation, it's recommended to issue a call to + // ArCoreApk.checkAvailability() early in application lifecycle & ignore the result + // so that subsequent calls can return cached result: +- // https://developers.google.com/ar/develop/java/enable-arcore ++ // https://developers.9oo91e.qjz9zk/ar/develop/java/enable-arcore + // This is as early in the app lifecycle as it gets for us - just after installing + // AR module. + getArCoreInstallStatus(); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java +@@ -16,14 +16,14 @@ import java.lang.annotation.RetentionPolicy; + * Interface used to wrap around ArCore SDK Java interface. + * + * For detailed documentation of the below methods, please see: +- * https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk ++ * https://developers.9oo91e.qjz9zk/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk + */ + public interface ArCoreShim { + /** + * Equivalent of ArCoreApk.ArInstallStatus enum. + * + * For detailed description, please see: +- * https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.InstallStatus ++ * https://developers.9oo91e.qjz9zk/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.InstallStatus + */ + @IntDef({InstallStatus.INSTALLED, InstallStatus.INSTALL_REQUESTED}) + @Retention(RetentionPolicy.SOURCE) +@@ -36,7 +36,7 @@ public interface ArCoreShim { + * Equivalent of ArCoreApk.Availability enum. + * + * For detailed description, please see: +- * https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.Availability ++ * https://developers.9oo91e.qjz9zk/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.Availability + */ + @IntDef({Availability.SUPPORTED_APK_TOO_OLD, Availability.SUPPORTED_INSTALLED, + Availability.SUPPORTED_NOT_INSTALLED, Availability.UNKNOWN_CHECKING, +diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd +--- a/chrome/android/java/strings/android_chrome_strings.grd ++++ b/chrome/android/java/strings/android_chrome_strings.grd +@@ -9,7 +9,7 @@ FAQ: + Yes, indeed. Just add your string before the branch point and + make the description good. + - Tell me more, please? +- Ok: http://www.chromium.org/developers/design-documents/ui-localization ++ Ok: http://www.ch40m1um.qjz9zk/developers/design-documents/ui-localization + + CHAR-LIMIT guidelines: + Certain strings need character limits to prevent a long translation from breaking the UI. +@@ -758,7 +758,7 @@ For example, some websites may respond to this request by showing you ads that a + + The selected data has been removed from Chrome and your synced devices. + +-Your Google account may have other forms of browsing history like searches and activity from other Google services at <link>myactivity.google.com</link>. ++Your Google account may have other forms of browsing history like searches and activity from other Google services at <link>myactivity.9oo91e.qjz9zk</link>. + + + Cached images and files +@@ -779,10 +779,10 @@ Your Google account may have other forms of browsing history like searches and a + Clears history and autocompletions in the address bar. + + +- Clears history and autocompletions in the address bar. Your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. ++ Clears history and autocompletions in the address bar. Your Google Account may have other forms of browsing history at <link>myactivity.9oo91e.qjz9zk</link>. + + +- Clears history from all signed-in devices. Your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. ++ Clears history from all signed-in devices. Your Google Account may have other forms of browsing history at <link>myactivity.9oo91e.qjz9zk</link>. + + + Saved passwords +@@ -833,7 +833,7 @@ Your Google account may have other forms of browsing history like searches and a + Basic + + +- Your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. ++ Your Google Account may have other forms of browsing history at <link>myactivity.9oo91e.qjz9zk</link>. + + + Blocked site +@@ -975,7 +975,7 @@ Your Google account may have other forms of browsing history like searches and a + Add + + +- Site %1$sgoogle.com added ++ Site %1$s9oo91e.qjz9zk added + + + Allow autoplay of muted videos for a specific site. +@@ -1179,7 +1179,7 @@ Your Google account may have other forms of browsing history like searches and a + Open notification settings + + +- Embedded in %1$sgoogle.com ++ Embedded in %1$s9oo91e.qjz9zk + + + +@@ -1370,7 +1370,7 @@ Your Google account may have other forms of browsing history like searches and a + In Lite mode, Chrome loads pages faster and uses up to 60 percent less data. To optimize the pages that you visit, Chrome sends your web traffic to Google. <link>Learn more</link> + + +- https://support.google.com/chrome/?p=lite_mode ++ https://support.9oo91e.qjz9zk/chrome/?p=lite_mode + + + Turn on Lite mode +@@ -1502,7 +1502,7 @@ Your Google account may have other forms of browsing history like searches and a + Signed in to Google as + + +- Syncing to %1$sjohndoe@gmail.com ++ Syncing to %1$sjohndoe@9ma1l.qjz9zk + + + Sign out of Chrome +@@ -1516,10 +1516,10 @@ Your Google account may have other forms of browsing history like searches and a + Waiting for details of parents. + + +- This account is managed by %1$sparent1@gmail.com. ++ This account is managed by %1$sparent1@9ma1l.qjz9zk. + + +- This account is managed by %1$sparent1@gmail.com and %2$sparent2@gmail.com. ++ This account is managed by %1$sparent1@9ma1l.qjz9zk and %2$sparent2@9ma1l.qjz9zk. + + + Content +@@ -1575,13 +1575,13 @@ Your Google account may have other forms of browsing history like searches and a + Chrome Privacy Notice + + +- https://www.google.com/intl/$LOCALE/chrome/browser/privacy/ ++ https://www.9oo91e.qjz9zk/intl/$LOCALE/chrome/browser/privacy/ + + +- https://www.google.com/intl/$LOCALE/chrome/browser/privacy/eula_text.html ++ https://www.9oo91e.qjz9zk/intl/$LOCALE/chrome/browser/privacy/eula_text.html + + +- https://families.google.com/intl/$LOCALE/familylink/privacy/child-policy/ ++ https://families.9oo91e.qjz9zk/intl/$LOCALE/familylink/privacy/child-policy/ + + + +@@ -1614,7 +1614,7 @@ Your Google account may have other forms of browsing history like searches and a + Also clear your Chrome data from this device + + +- Because you're signing out of an account managed by %1$sgoogle.com, your Chrome data will be deleted from this device. It will remain in your Google Account. ++ Because you're signing out of an account managed by %1$s9oo91e.qjz9zk, your Chrome data will be deleted from this device. It will remain in your Google Account. + + + Contacting Google. This may take a minute… +@@ -1756,7 +1756,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$shttps://www.google.com wants to pair ++ %1$shttps://www.9oo91e.qjz9zk wants to pair + + <link>Get help</link> while scanning for devices… + +@@ -1801,7 +1801,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$swww.google.com wants to scan for nearby Bluetooth devices. The following devices have been found: ++ %1$swww.9oo91e.qjz9zk wants to scan for nearby Bluetooth devices. The following devices have been found: + + + Unknown or unsupported device (%1$sA1:B2:C3:D4:E5:F6) +@@ -1990,7 +1990,7 @@ To change this setting, <resetlink>reset sync

+ Translate + +- ++ + Never translate this site + + +@@ -2260,7 +2260,7 @@ To change this setting, <resetlink>reset sync

+ +- This content is from %1$sgoogle.com, delivered by Google. ++ This content is from %1$s9oo91e.qjz9zk, delivered by Google. + + + Open Online +@@ -2269,7 +2269,7 @@ To change this setting, <resetlink>reset sync

+ +- <link>Load original page</link> from %1$sgoogle.com ++ <link>Load original page</link> from %1$s9oo91e.qjz9zk + + + +@@ -3247,7 +3247,7 @@ To change this setting, <resetlink>reset sync

+ +- Touch to return to %1$shttps://apprtc.appspot.com ++ Touch to return to %1$shttps://apprtc.8pp2p8t.qjz9zk + + + Tap to go to site +@@ -3259,7 +3259,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$shttps://apprtc.appspot.com is sharing your screen ++ %1$shttps://apprtc.8pp2p8t.qjz9zk is sharing your screen + + + A site is sharing your screen +@@ -3459,7 +3459,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$shttps://www.google.com wants to connect ++ %1$shttps://www.9oo91e.qjz9zk wants to connect + + + No compatible devices found +@@ -3502,7 +3502,7 @@ To change this setting, <resetlink>reset sync

+ +- The contacts you select will be shared with <b>%1$shttps://www.google.com</b>. ++ The contacts you select will be shared with <b>%1$shttps://www.9oo91e.qjz9zk</b>. + + + +@@ -3791,7 +3791,7 @@ The site does NOT gain access to the camera. The camera images are only visible + Sending to %1$sTanya's Pixel 2... + + +- %1$swww.google.com - Sent from %2$sTanya's Pixel 2XL ++ %1$swww.9oo91e.qjz9zk - Sent from %2$sTanya's Pixel 2XL + + + Tab received +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java +@@ -23,28 +23,28 @@ public class ShortcutHelperTest { + */ + @Test + public void testGetScopeFromUrl() { +- String url1 = "https://www.google.com"; +- String url2 = "https://www.google.com/"; +- String url3 = "https://www.google.com/maps.htm"; +- String url4 = "https://www.google.com/maps/"; +- String url5 = "https://www.google.com/index.html"; +- String url6 = "https://www.google.com/index.html?q=maps"; +- String url7 = "https://www.google.com/index.html#maps/"; +- String url8 = "https://www.google.com/maps/au/index.html"; +- String url9 = "https://www.google.com/maps/au/north"; +- String url10 = "https://www.google.com/maps/au/north/"; +- String url11 = "https://www.google.com/maps/au/index.html?q=maps#fragment/"; +- String url12 = "http://www.google.com:8000/maps/au/index.html?q=maps#fragment/"; +- String url13 = "https://www.google.com/maps/au/north/?q=maps#fragment"; +- String url14 = "https://www.google.com/maps/au/north?q=maps#fragment"; +- String url15 = "https://www.google.com/a=b/c"; ++ String url1 = "https://www.9oo91e.qjz9zk"; ++ String url2 = "https://www.9oo91e.qjz9zk/"; ++ String url3 = "https://www.9oo91e.qjz9zk/maps.htm"; ++ String url4 = "https://www.9oo91e.qjz9zk/maps/"; ++ String url5 = "https://www.9oo91e.qjz9zk/index.html"; ++ String url6 = "https://www.9oo91e.qjz9zk/index.html?q=maps"; ++ String url7 = "https://www.9oo91e.qjz9zk/index.html#maps/"; ++ String url8 = "https://www.9oo91e.qjz9zk/maps/au/index.html"; ++ String url9 = "https://www.9oo91e.qjz9zk/maps/au/north"; ++ String url10 = "https://www.9oo91e.qjz9zk/maps/au/north/"; ++ String url11 = "https://www.9oo91e.qjz9zk/maps/au/index.html?q=maps#fragment/"; ++ String url12 = "http://www.9oo91e.qjz9zk:8000/maps/au/index.html?q=maps#fragment/"; ++ String url13 = "https://www.9oo91e.qjz9zk/maps/au/north/?q=maps#fragment"; ++ String url14 = "https://www.9oo91e.qjz9zk/maps/au/north?q=maps#fragment"; ++ String url15 = "https://www.9oo91e.qjz9zk/a=b/c"; + +- String url2_scope = "https://www.google.com/"; +- String url4_scope = "https://www.google.com/maps/"; +- String url8_scope = "https://www.google.com/maps/au/"; +- String url10_scope = "https://www.google.com/maps/au/north/"; +- String url12_scope = "http://www.google.com:8000/maps/au/"; +- String url15_scope = "https://www.google.com/a=b/"; ++ String url2_scope = "https://www.9oo91e.qjz9zk/"; ++ String url4_scope = "https://www.9oo91e.qjz9zk/maps/"; ++ String url8_scope = "https://www.9oo91e.qjz9zk/maps/au/"; ++ String url10_scope = "https://www.9oo91e.qjz9zk/maps/au/north/"; ++ String url12_scope = "http://www.9oo91e.qjz9zk:8000/maps/au/"; ++ String url15_scope = "https://www.9oo91e.qjz9zk/a=b/"; + + assertEquals(url2_scope, ShortcutHelper.getScopeFromUrl(url1)); + assertEquals(url2_scope, ShortcutHelper.getScopeFromUrl(url2)); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java +@@ -89,9 +89,9 @@ public class SearchOfflineItemFilterTest { + + @Test + public void testUrlFiltering() { +- OfflineItem item1 = buildItem("", "http://www.google.com"); +- OfflineItem item2 = buildItem("", "http://www.google.com/dogs"); +- OfflineItem item3 = buildItem("", "http://www.google.com/dogs-are-fun"); ++ OfflineItem item1 = buildItem("", "http://www.9oo91e.qjz9zk"); ++ OfflineItem item2 = buildItem("", "http://www.9oo91e.qjz9zk/dogs"); ++ OfflineItem item3 = buildItem("", "http://www.9oo91e.qjz9zk/dogs-are-fun"); + Collection sourceItems = CollectionUtil.newHashSet(item1, item2, item3); + when(mSource.getItems()).thenReturn(sourceItems); + +@@ -139,9 +139,9 @@ public class SearchOfflineItemFilterTest { + + @Test + public void testUrlOrTitleFiltering() { +- OfflineItem item1 = buildItem("cat", "http://www.google.com/dog"); +- OfflineItem item2 = buildItem("dog", "http://www.google.com/cat"); +- OfflineItem item3 = buildItem("cow", "http://www.google.com/pig"); ++ OfflineItem item1 = buildItem("cat", "http://www.9oo91e.qjz9zk/dog"); ++ OfflineItem item2 = buildItem("dog", "http://www.9oo91e.qjz9zk/cat"); ++ OfflineItem item3 = buildItem("cow", "http://www.9oo91e.qjz9zk/pig"); + Collection sourceItems = CollectionUtil.newHashSet(item1, item2, item3); + when(mSource.getItems()).thenReturn(sourceItems); + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java +@@ -32,112 +32,112 @@ public class ShareUtilsTest { + @Test + public void testAction() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertEquals(Intent.ACTION_SEND, intent.getAction()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", null))); + Assert.assertEquals(Intent.ACTION_SEND, intent.getAction()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("", "text/plain", "", "http://www.chrome.com"))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("", "text/plain", "", "http://www.ch40me.qjz9zk"))); + Assert.assertEquals(Intent.ACTION_SEND_MULTIPLE, intent.getAction()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("", "text/plain", "", "http://www.chrome.com"))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("", "text/plain", "", "http://www.ch40me.qjz9zk"))); + Assert.assertEquals(Intent.ACTION_SEND_MULTIPLE, intent.getAction()); + } + + @Test + public void testFlags() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertNotEquals(0, intent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK); + } + + @Test + public void testExtraText() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); +- Assert.assertEquals("http://www.google.com", intent.getStringExtra(Intent.EXTRA_TEXT)); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); ++ Assert.assertEquals("http://www.9oo91e.qjz9zk", intent.getStringExtra(Intent.EXTRA_TEXT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", "http://www.chrome.com"))); +- Assert.assertEquals("http://www.google.com", intent.getStringExtra(Intent.EXTRA_TEXT)); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", "http://www.ch40me.qjz9zk"))); ++ Assert.assertEquals("http://www.9oo91e.qjz9zk", intent.getStringExtra(Intent.EXTRA_TEXT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", null))); +- Assert.assertEquals("http://www.google.com\nhttp://www.chrome.com", ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", null))); ++ Assert.assertEquals("http://www.9oo91e.qjz9zk\nhttp://www.ch40me.qjz9zk", + intent.getStringExtra(Intent.EXTRA_TEXT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_TEXT)); + } + + @Test + public void testExtraSubject() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "title", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "title", null))); + Assert.assertEquals("title", intent.getStringExtra(Intent.EXTRA_SUBJECT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "title1", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "title1", null), + createItem( +- "http://www.chrome.com", "text/plain", "title2", "http://www.chrome.com"))); ++ "http://www.ch40me.qjz9zk", "text/plain", "title2", "http://www.ch40me.qjz9zk"))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_SUBJECT)); + } + + @Test + public void testExtraStream() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_STREAM)); + Assert.assertNull(intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"))); + Assert.assertEquals( +- Uri.parse("http://www.google.com"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); ++ Uri.parse("http://www.9oo91e.qjz9zk"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", "http://www.google.com"))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", "http://www.9oo91e.qjz9zk"))); + Assert.assertEquals( +- Uri.parse("http://www.google.com"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); ++ Uri.parse("http://www.9oo91e.qjz9zk"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("http://www.chrome.com", "text/plain", "", ""))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", ""))); + Assert.assertEquals( +- Uri.parse("http://www.google.com"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); ++ Uri.parse("http://www.9oo91e.qjz9zk"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("http://www.chrome.com", "text/plain", "", "http://www.chrome.com"))); +- Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.google.com"), +- Uri.parse("http://www.chrome.com")), ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", "http://www.ch40me.qjz9zk"))); ++ Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.9oo91e.qjz9zk"), ++ Uri.parse("http://www.ch40me.qjz9zk")), + intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("", "text/plain", "", "http://www.chrome.com"))); +- Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.google.com"), +- Uri.parse("http://www.chrome.com")), ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("", "text/plain", "", "http://www.ch40me.qjz9zk"))); ++ Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.9oo91e.qjz9zk"), ++ Uri.parse("http://www.ch40me.qjz9zk")), + intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_STREAM)); + Assert.assertNull(intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", null))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_STREAM)); + Assert.assertNull(intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + } +@@ -145,19 +145,19 @@ public class ShareUtilsTest { + @Test + public void testType() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertEquals(Intent.normalizeMimeType("text/plain"), intent.getType()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.google.com", "text/html", "", null), +- createItem("http://www.google.com", "text/html", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/html", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/html", "", null))); + Assert.assertEquals(Intent.normalizeMimeType("text/*"), intent.getType()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.google.com", "application/octet-stream", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "application/octet-stream", "", null))); + Assert.assertEquals(Intent.normalizeMimeType("*/*"), intent.getType()); + } + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java +@@ -27,7 +27,7 @@ public class ExploreSitesCategoryUnitTest { + final int interactionCount = 3; + final int siteId = 100; + final String title = "test"; +- final String url = "http://www.google.com"; ++ final String url = "http://www.9oo91e.qjz9zk"; + final String categoryTitle = "Movies"; + + ExploreSitesCategory category = +@@ -61,10 +61,10 @@ public class ExploreSitesCategoryUnitTest { + final String title2 = "Chromium"; + final String title3 = "YouTube"; + final String title4 = "GMail"; +- final String url1 = "http://www.google.com"; +- final String url2 = "http://chromium.org"; +- final String url3 = "http://youtube.com"; +- final String url4 = "http://gmail.com"; ++ final String url1 = "http://www.9oo91e.qjz9zk"; ++ final String url2 = "http://ch40m1um.qjz9zk"; ++ final String url3 = "http://y0u1ub3.qjz9zk"; ++ final String url4 = "http://9ma1l.qjz9zk"; + final String categoryTitle = "Science"; + + ExploreSitesCategory category = new ExploreSitesCategory( +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java +@@ -38,7 +38,7 @@ import java.util.List; + public class FirstRunFlowSequencerTest { + /** Information for Google OS account */ + private static final String GOOGLE_ACCOUNT_TYPE = "com.google"; +- private static final String DEFAULT_ACCOUNT = "test@gmail.com"; ++ private static final String DEFAULT_ACCOUNT = "test@9ma1l.qjz9zk"; + + /** + * Testing version of FirstRunFlowSequencer that allows us to override all needed checks. +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java +@@ -30,7 +30,7 @@ import java.util.Set; + @RunWith(BaseRobolectricTestRunner.class) + @Config(manifest = Config.NONE) + public class ToSAckedReceiverTest { +- private static final String GOOGLE_ACCOUNT = "TestyMcTesterson@gmail.com"; ++ private static final String GOOGLE_ACCOUNT = "TestyMcTesterson@9ma1l.qjz9zk"; + + private ToSAckedReceiver mReceiver; + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java +@@ -124,7 +124,7 @@ public class NativePageFactoryTest { + null, + "", + "newtab", +- "newtab@google.com:80", ++ "newtab@9oo91e.qjz9zk:80", + "/newtab", + "://newtab", + "chrome://", +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java +@@ -47,7 +47,7 @@ import java.util.List; + public class CctOfflinePageModelObserverTest { + private static final String APP_NAME = "abc.xyz"; + private static final String ORIGIN_STRING = "[abc.xyz, []]"; +- private static final String URL = "http://www.google.com"; ++ private static final String URL = "http://www.9oo91e.qjz9zk"; + + @Mock + private Context mContext; +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java +@@ -26,7 +26,7 @@ import java.io.StringWriter; + public class ResponseParserTest { + // Note that the Omaha server appends "/" to the end of the URL codebase. + private static final String STRIPPED_URL = +- "https://play.google.com/store/apps/details?id=com.google.android.apps.chrome"; ++ "https://play.9oo91e.qjz9zk/store/apps/details?id=com.google.android.apps.chrome"; + private static final String URL = STRIPPED_URL + "/"; + private static final String NEXT_VERSION = "1.2.3.4"; + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java +@@ -1084,7 +1084,7 @@ public class AutocompleteEditTextTest { + } + + private void internalTestAppend_AfterSelectAll() { +- final String url = "https://www.google.com/"; ++ final String url = "https://www.9oo91e.qjz9zk/"; + mAutocomplete.setText(url); + mAutocomplete.setSelection(0, url.length()); + assertTrue(mAutocomplete.isCursorVisible()); +@@ -1109,7 +1109,7 @@ public class AutocompleteEditTextTest { + } + + private void internalTestIgnoreAndGet() { +- final String url = "https://www.google.com/"; ++ final String url = "https://www.9oo91e.qjz9zk/"; + mAutocomplete.setIgnoreTextChangesForAutocomplete(true); + mAutocomplete.setText(url); + mAutocomplete.setIgnoreTextChangesForAutocomplete(false); +@@ -1146,7 +1146,7 @@ public class AutocompleteEditTextTest { + } + + private void internalTestFocusInAndSelectAll() { +- final String url = "https://google.com"; ++ final String url = "https://9oo91e.qjz9zk"; + final int len = url.length(); + mAutocomplete.setIgnoreTextChangesForAutocomplete(true); + mAutocomplete.setText(url); +@@ -1260,14 +1260,14 @@ public class AutocompleteEditTextTest { + assertTrue(mInputConnection.setComposingText("goo", 1)); + assertTrue(mAutocomplete.shouldAutocomplete()); + mAutocomplete.setAutocompleteText("goo", "gle.com"); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + // User presses 'GO' key on the keyboard. + assertTrue(mInputConnection.commitText("goo", 1)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + assertTrue(mInputConnection.performEditorAction(EditorInfo.IME_ACTION_GO)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + } + + // crbug.com/810704 +@@ -1278,20 +1278,20 @@ public class AutocompleteEditTextTest { + assertTrue(mInputConnection.setComposingText("goo", 1)); + assertTrue(mAutocomplete.shouldAutocomplete()); + mAutocomplete.setAutocompleteText("goo", "gle.com"); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + // User presses 'GO' key on the keyboard. + mInputConnection.beginBatchEdit(); + + assertTrue(mInputConnection.commitText("goo", 1)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + assertTrue(mInputConnection.performEditorAction(EditorInfo.IME_ACTION_GO)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + mInputConnection.endBatchEdit(); + +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + } + + // crbug.com/759876 +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java +@@ -52,13 +52,13 @@ public class UrlBarUnitTest { + @MinAndroidSdkLevel(Build.VERSION_CODES.O) + @Feature("Omnibox") + public void testAutofillStructureReceivesFullURL() { +- mUrlBar.setTextForAutofillServices("https://www.google.com"); +- mUrlBar.setText("www.google.com"); ++ mUrlBar.setTextForAutofillServices("https://www.9oo91e.qjz9zk"); ++ mUrlBar.setText("www.9oo91e.qjz9zk"); + mUrlBar.onProvideAutofillStructure(mViewStructure, 0); + + ArgumentCaptor haveUrl = + ArgumentCaptor.forClass(SpannableStringBuilder.class); + verify(mViewStructure).setText(haveUrl.capture()); +- Assert.assertEquals("https://www.google.com", haveUrl.getValue().toString()); ++ Assert.assertEquals("https://www.9oo91e.qjz9zk", haveUrl.getValue().toString()); + } + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java +@@ -50,7 +50,7 @@ import java.util.HashSet; + @RunWith(BaseRobolectricTestRunner.class) + @Config(manifest = Config.NONE) + public class GeolocationHeaderUnitTest { +- private static final String SEARCH_URL = "https://www.google.com/search?q=potatoes"; ++ private static final String SEARCH_URL = "https://www.9oo91e.qjz9zk/search?q=potatoes"; + + private static final double LOCATION_LAT = 20.3; + private static final double LOCATION_LONG = 155.8; +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java +@@ -48,7 +48,7 @@ import java.util.HashMap; + @RunWith(BaseRobolectricTestRunner.class) + @Config(manifest = Config.NONE, shadows = {ShadowRecordHistogram.class}) + public final class SearchEngineChoiceNotificationTest { +- private static final String TEST_INITIAL_ENGINE = "google.com"; ++ private static final String TEST_INITIAL_ENGINE = "9oo91e.qjz9zk"; + private static final String TEST_ALTERNATIVE_ENGINE = "duckduckgo.com"; + + @Rule +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java +@@ -209,9 +209,9 @@ public class SigninManagerTest { + + @Test + public void callbackNotifiedOnSignin() { +- CoreAccountInfo account = new CoreAccountInfo(new CoreAccountId("test_at_gmail.com"), +- new Account("test@gmail.com", AccountManagerFacade.GOOGLE_ACCOUNT_TYPE), +- "test_at_gmail.com"); ++ CoreAccountInfo account = new CoreAccountInfo(new CoreAccountId("test_at_9ma1l.qjz9zk"), ++ new Account("test@9ma1l.qjz9zk", AccountManagerFacade.GOOGLE_ACCOUNT_TYPE), ++ "test_at_9ma1l.qjz9zk"); + + // No need to seed accounts to the native code. + doReturn(true).when(mAccountTrackerService).checkAndSeedSystemAccounts(); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java +@@ -107,33 +107,33 @@ public class SigninPromoUtilTest { + // Old implementation hasn't been storing account list + when(mPreferenceManager.getSigninPromoLastAccountNames()).thenReturn(null); + Assert.assertTrue(SigninPromoUtil.shouldLaunchSigninPromo( +- mPreferenceManager, 42, false, false, accountsSupplier("test@gmail.com"))); ++ mPreferenceManager, 42, false, false, accountsSupplier("test@9ma1l.qjz9zk"))); + } + + @Test + public void whenHasNewAccountShouldReturnTrue() { + when(mPreferenceManager.getSigninPromoLastShownVersion()).thenReturn(40); + when(mPreferenceManager.getSigninPromoLastAccountNames()) +- .thenReturn(ImmutableSet.of("test@gmail.com")); ++ .thenReturn(ImmutableSet.of("test@9ma1l.qjz9zk")); + Assert.assertTrue(SigninPromoUtil.shouldLaunchSigninPromo(mPreferenceManager, 42, false, +- false, accountsSupplier("test@gmail.com", "test2@gmail.com"))); ++ false, accountsSupplier("test@9ma1l.qjz9zk", "test2@9ma1l.qjz9zk"))); + } + + @Test + public void whenAccountListUnchangedShouldReturnFalse() { + when(mPreferenceManager.getSigninPromoLastShownVersion()).thenReturn(40); + when(mPreferenceManager.getSigninPromoLastAccountNames()) +- .thenReturn(ImmutableSet.of("test@gmail.com")); ++ .thenReturn(ImmutableSet.of("test@9ma1l.qjz9zk")); + Assert.assertFalse(SigninPromoUtil.shouldLaunchSigninPromo( +- mPreferenceManager, 42, false, false, accountsSupplier("test@gmail.com"))); ++ mPreferenceManager, 42, false, false, accountsSupplier("test@9ma1l.qjz9zk"))); + } + + @Test + public void whenNoNewAccountsShouldReturnFalse() { + when(mPreferenceManager.getSigninPromoLastShownVersion()).thenReturn(40); + when(mPreferenceManager.getSigninPromoLastAccountNames()) +- .thenReturn(ImmutableSet.of("test@gmail.com", "test2@gmail.com")); ++ .thenReturn(ImmutableSet.of("test@9ma1l.qjz9zk", "test2@9ma1l.qjz9zk")); + Assert.assertFalse(SigninPromoUtil.shouldLaunchSigninPromo( +- mPreferenceManager, 42, false, false, accountsSupplier("test2@gmail.com"))); ++ mPreferenceManager, 42, false, false, accountsSupplier("test2@9ma1l.qjz9zk"))); + } + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java +@@ -66,7 +66,7 @@ import java.util.List; + public class TileGroupUnitTest { + private static final int MAX_TILES_TO_FETCH = 4; + private static final int TILE_TITLE_LINES = 1; +- private static final String[] URLS = {"https://www.google.com", "https://tellmedadjokes.com"}; ++ private static final String[] URLS = {"https://www.9oo91e.qjz9zk", "https://tellmedadjokes.com"}; + + @Rule + public TestRule mFeaturesProcessor = new Features.JUnitProcessor(); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java +@@ -348,7 +348,7 @@ public final class JourneyManagerTest { + + mTabModelSelectorTabObserver.onShown(mTab, TabSelectionType.FROM_USER); + +- LoadUrlParams params = new LoadUrlParams("http://google.com", PageTransition.FORWARD_BACK); ++ LoadUrlParams params = new LoadUrlParams("http://9oo91e.qjz9zk", PageTransition.FORWARD_BACK); + + mTabModelSelectorTabObserver.onLoadUrl(mTab, params, 0); + +@@ -374,7 +374,7 @@ public final class JourneyManagerTest { + mTabModelSelectorTabObserver.onShown(mTab, TabSelectionType.FROM_USER); + + LoadUrlParams params = new LoadUrlParams( +- "http://google.com", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); ++ "http://9oo91e.qjz9zk", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); + + mTabModelSelectorTabObserver.onLoadUrl(mTab, params, 0); + +@@ -400,7 +400,7 @@ public final class JourneyManagerTest { + mTabModelSelectorTabObserver.onShown(mTab, TabSelectionType.FROM_USER); + + LoadUrlParams params = new LoadUrlParams( +- "http://google.com", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); ++ "http://9oo91e.qjz9zk", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); + + mTabModelSelectorTabObserver.onLoadUrl(mTab, params, 0); + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java +@@ -128,16 +128,16 @@ public class UrlUtilitiesUnitTest { + @Test + public void testStripScheme() { + // Only scheme gets stripped. +- Assert.assertEquals("cs.chromium.org", UrlUtilities.stripScheme("https://cs.chromium.org")); +- Assert.assertEquals("cs.chromium.org", UrlUtilities.stripScheme("http://cs.chromium.org")); ++ Assert.assertEquals("cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme("https://cs.ch40m1um.qjz9zk")); ++ Assert.assertEquals("cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme("http://cs.ch40m1um.qjz9zk")); + // If there is no scheme, nothing changes. +- Assert.assertEquals("cs.chromium.org", UrlUtilities.stripScheme("cs.chromium.org")); ++ Assert.assertEquals("cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme("cs.ch40m1um.qjz9zk")); + // Path is not touched/changed. +- String urlWithPath = "code.google.com/p/chromium/codesearch#search" ++ String urlWithPath = "code.9oo91e.qjz9zk/p/chromium/codesearch#search" + + "/&q=testStripScheme&sq=package:chromium&type=cs"; + Assert.assertEquals(urlWithPath, UrlUtilities.stripScheme("https://" + urlWithPath)); + // Beginning and ending spaces get trimmed. + Assert.assertEquals( +- "cs.chromium.org", UrlUtilities.stripScheme(" https://cs.chromium.org ")); ++ "cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme(" https://cs.ch40m1um.qjz9zk ")); + } + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java +@@ -42,8 +42,8 @@ public class WebApkInfoTest { + private static final String UNBOUND_WEBAPK_PACKAGE_NAME = "unbound.webapk"; + + // Android Manifest meta data for {@link PACKAGE_NAME}. +- private static final String START_URL = "https://www.google.com/scope/a_is_for_apple"; +- private static final String SCOPE = "https://www.google.com/scope"; ++ private static final String START_URL = "https://www.9oo91e.qjz9zk/scope/a_is_for_apple"; ++ private static final String SCOPE = "https://www.9oo91e.qjz9zk/scope"; + private static final String NAME = "name"; + private static final String SHORT_NAME = "short_name"; + private static final String DISPLAY_MODE = "minimal-ui"; +@@ -51,8 +51,8 @@ public class WebApkInfoTest { + private static final String THEME_COLOR = "1L"; + private static final String BACKGROUND_COLOR = "2L"; + private static final int SHELL_APK_VERSION = 3; +- private static final String MANIFEST_URL = "https://www.google.com/alphabet.json"; +- private static final String ICON_URL = "https://www.google.com/scope/worm.png"; ++ private static final String MANIFEST_URL = "https://www.9oo91e.qjz9zk/alphabet.json"; ++ private static final String ICON_URL = "https://www.9oo91e.qjz9zk/scope/worm.png"; + private static final String ICON_MURMUR2_HASH = "5"; + private static final int SOURCE = ShortcutSource.NOTIFICATION; + +@@ -206,7 +206,7 @@ public class WebApkInfoTest { + */ + @Test + public void testUseStartUrlOverride() { +- String intentStartUrl = "https://www.google.com/master_override"; ++ String intentStartUrl = "https://www.9oo91e.qjz9zk/master_override"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, START_URL); +@@ -231,7 +231,7 @@ public class WebApkInfoTest { + @Test + public void testDefaultScopeFromManifestStartUrl() { + String manifestStartUrl = START_URL; +- String intentStartUrl = "https://www.google.com/a/b/c"; ++ String intentStartUrl = "https://www.9oo91e.qjz9zk/a/b/c"; + + String scopeFromManifestStartUrl = ShortcutHelper.getScopeFromUrl(manifestStartUrl); + String scopeFromIntentStartUrl = ShortcutHelper.getScopeFromUrl(intentStartUrl); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java +@@ -137,7 +137,7 @@ public class WebappDataStorageTest { + @Test + @Feature({"Webapp"}) + public void testScopeRetrieval() { +- String scope = "http://drive.google.com"; ++ String scope = "http://drive.9oo91e.qjz9zk"; + mSharedPreferences.edit().putString(WebappDataStorage.KEY_SCOPE, scope).apply(); + assertEquals(scope, new WebappDataStorage("test").getScope()); + } +@@ -145,7 +145,7 @@ public class WebappDataStorageTest { + @Test + @Feature({"Webapp"}) + public void testUrlRetrieval() { +- String url = "https://www.google.com"; ++ String url = "https://www.9oo91e.qjz9zk"; + mSharedPreferences.edit().putString(WebappDataStorage.KEY_URL, url).apply(); + assertEquals(url, new WebappDataStorage("test").getUrl()); + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java +@@ -43,7 +43,7 @@ public class WebappInfoTest { + String id = "webapp id"; + String name = "longName"; + String shortName = "name"; +- String url = "http://google.com"; ++ String url = "http://9oo91e.qjz9zk"; + + Intent intent = WebappTestHelper.createMinimalWebappIntent(id, url); + intent.putExtra(ShortcutHelper.EXTRA_NAME, name); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java +@@ -23,7 +23,7 @@ import org.chromium.webapk.test.WebApkTestHelper; + @Config(manifest = Config.NONE) + public class WebappLauncherActivityTest { + private static final String WEBAPK_PACKAGE_NAME = "org.chromium.webapk.test_package"; +- private static final String START_URL = "https://www.google.com/scope/a_is_for_apple"; ++ private static final String START_URL = "https://www.9oo91e.qjz9zk/scope/a_is_for_apple"; + + /** + * Test that WebappLauncherActivity#tryCreateWebappInfo() modifies the passed-in intent so +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java +@@ -157,8 +157,8 @@ public class WebappRegistryTest { + public void testUnregisterClearsRegistry() throws Exception { + Map apps = new HashMap<>(); + apps.put("webapp1", "http://example.com/index.html"); +- apps.put("webapp2", "https://www.google.com/foo/bar"); +- apps.put("webapp3", "https://www.chrome.com"); ++ apps.put("webapp2", "https://www.9oo91e.qjz9zk/foo/bar"); ++ apps.put("webapp3", "https://www.ch40me.qjz9zk"); + + for (Map.Entry app : apps.entrySet()) { + registerWebapp(app.getKey(), createShortcutWebappInfo(app.getValue())); +@@ -185,8 +185,8 @@ public class WebappRegistryTest { + public void testUnregisterClearsWebappDataStorage() throws Exception { + Map apps = new HashMap<>(); + apps.put("webapp1", "http://example.com/index.html"); +- apps.put("webapp2", "https://www.google.com/foo/bar"); +- apps.put("webapp3", "https://www.chrome.com"); ++ apps.put("webapp2", "https://www.9oo91e.qjz9zk/foo/bar"); ++ apps.put("webapp3", "https://www.ch40me.qjz9zk"); + + for (Map.Entry app : apps.entrySet()) { + registerWebapp(app.getKey(), createShortcutWebappInfo(app.getValue())); +@@ -421,8 +421,8 @@ public class WebappRegistryTest { + @Test + @Feature({"Webapp"}) + public void testClearWebappHistory() throws Exception { +- final String webapp1Url = "https://www.google.com"; +- final String webapp2Url = "https://drive.google.com"; ++ final String webapp1Url = "https://www.9oo91e.qjz9zk"; ++ final String webapp2Url = "https://drive.9oo91e.qjz9zk"; + WebappInfo webappInfo1 = createShortcutWebappInfo(webapp1Url); + WebappInfo webappInfo2 = createShortcutWebappInfo(webapp2Url); + +@@ -521,8 +521,8 @@ public class WebappRegistryTest { + @Test + @Feature({"Webapp"}) + public void testUpdateAfterClearWebappHistory() throws Exception { +- final String webappUrl = "http://www.google.com"; +- final String webappScope = "http://www.google.com/"; ++ final String webappUrl = "http://www.9oo91e.qjz9zk"; ++ final String webappScope = "http://www.9oo91e.qjz9zk/"; + final WebappInfo webappInfo = createShortcutWebappInfo(webappUrl); + registerWebapp("webapp", webappInfo); + +@@ -556,20 +556,20 @@ public class WebappRegistryTest { + public void testGetWebappDataStorageForUrl() throws Exception { + // Ensure that getWebappDataStorageForUrl returns the correct WebappDataStorage object. + // URLs should return the WebappDataStorage with the longest scope that the URL starts with. +- final String webapp1Url = "https://www.google.com/"; +- final String webapp2Url = "https://drive.google.com/"; +- final String webapp3Url = "https://www.google.com/drive/index.html"; +- final String webapp4Url = "https://www.google.com/drive/docs/index.html"; +- +- final String webapp3Scope = "https://www.google.com/drive/"; +- final String webapp4Scope = "https://www.google.com/drive/docs/"; +- +- final String test1Url = "https://www.google.com/index.html"; +- final String test2Url = "https://www.google.com/drive/recent.html"; +- final String test3Url = "https://www.google.com/drive/docs/recent.html"; +- final String test4Url = "https://www.google.com/drive/docs/recent/index.html"; +- final String test5Url = "https://drive.google.com/docs/recent/trash"; +- final String test6Url = "https://maps.google.com/"; ++ final String webapp1Url = "https://www.9oo91e.qjz9zk/"; ++ final String webapp2Url = "https://drive.9oo91e.qjz9zk/"; ++ final String webapp3Url = "https://www.9oo91e.qjz9zk/drive/index.html"; ++ final String webapp4Url = "https://www.9oo91e.qjz9zk/drive/docs/index.html"; ++ ++ final String webapp3Scope = "https://www.9oo91e.qjz9zk/drive/"; ++ final String webapp4Scope = "https://www.9oo91e.qjz9zk/drive/docs/"; ++ ++ final String test1Url = "https://www.9oo91e.qjz9zk/index.html"; ++ final String test2Url = "https://www.9oo91e.qjz9zk/drive/recent.html"; ++ final String test3Url = "https://www.9oo91e.qjz9zk/drive/docs/recent.html"; ++ final String test4Url = "https://www.9oo91e.qjz9zk/drive/docs/recent/index.html"; ++ final String test5Url = "https://drive.9oo91e.qjz9zk/docs/recent/trash"; ++ final String test6Url = "https://maps.9oo91e.qjz9zk/"; + + WebappInfo webappInfo1 = createShortcutWebappInfo(webapp1Url); + WebappInfo webappInfo2 = createShortcutWebappInfo(webapp2Url); +diff --git a/chrome/android/webapk/PRESUBMIT.py b/chrome/android/webapk/PRESUBMIT.py +--- a/chrome/android/webapk/PRESUBMIT.py ++++ b/chrome/android/webapk/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for changes affecting chrome/android/webapk/shell_apk:webapk + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + + This presubmit checks for three rules: +diff --git a/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java b/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java +--- a/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java ++++ b/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java +@@ -45,7 +45,7 @@ public class WebApkValidatorTest { + private static final String TEST_DATA_DIR = "webapks/"; + private static final String TEST_STARTURL = "https://non-empty.com/starturl"; + private static final String MAPSLITE_PACKAGE_NAME = "com.google.android.apps.mapslite"; +- private static final String MAPSLITE_EXAMPLE_STARTURL = "https://www.google.com/maps"; ++ private static final String MAPSLITE_EXAMPLE_STARTURL = "https://www.9oo91e.qjz9zk/maps"; + + private static final byte[] EXPECTED_SIGNATURE = new byte[] {48, -126, 3, -121, 48, -126, 2, + 111, -96, 3, 2, 1, 2, 2, 4, 20, -104, -66, -126, 48, 13, 6, 9, 42, -122, 72, -122, -9, +diff --git a/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java b/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java +--- a/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java ++++ b/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java +@@ -40,7 +40,7 @@ public class WebApkValidator { + private static final String KEY_FACTORY = "EC"; // aka "ECDSA" + private static final String MAPSLITE_PACKAGE_NAME = "com.google.android.apps.mapslite"; + private static final String MAPSLITE_URL_PREFIX = +- "https://www.google.com/maps"; // Matches scope. ++ "https://www.9oo91e.qjz9zk/maps"; // Matches scope. + private static final boolean DEBUG = false; + + private static byte[] sExpectedSignature; +diff --git a/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java b/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java +--- a/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java ++++ b/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java +@@ -19,7 +19,7 @@ public class WebApkMetaDataUtils { + String value = metaData.getString(name); + + // The value should be terminated with 'L' to force the value to be a string. According to +- // https://developer.android.com/guide/topics/manifest/meta-data-element.html numeric ++ // https://developer.8n6r01d.qjz9zk/guide/topics/manifest/meta-data-element.html numeric + // meta data values can only be retrieved via {@link Bundle#getInt()} and + // {@link Bundle#getFloat()}. We cannot use {@link Bundle#getFloat()} due to loss of + // precision. +diff --git a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java +--- a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java ++++ b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java +@@ -35,20 +35,20 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("foo", "bar")); + + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?title=mytitle&foo=bar", uri); + + uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst/", params); +- Assert.assertEquals("https://www.chromium.org/wst/?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/wst/", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst/?title=mytitle&foo=bar", uri); + + uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/base/wst.html", params); +- Assert.assertEquals("https://www.chromium.org/base/wst.html?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/base/wst.html", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/base/wst.html?title=mytitle&foo=bar", uri); + + uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/base/wst.html/", params); +- Assert.assertEquals("https://www.chromium.org/base/wst.html/?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/base/wst.html/", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/base/wst.html/?title=mytitle&foo=bar", uri); + } + + /* +@@ -65,8 +65,8 @@ public class HostBrowserLauncherParamsTest { + // The baseUrl, shareAction and params are checked to be non-null in + // HostBrowserLauncherParams#extractShareTarget. + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst?hello=world", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?hello=world", uri); + } + + /* +@@ -79,8 +79,8 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>(null, null)); + params.add(new Pair<>(null, null)); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst", uri); + } + + /* +@@ -93,8 +93,8 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("a", null)); + params.add(new Pair<>(null, "b")); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst", uri); + } + + /* +@@ -107,8 +107,8 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("hello", "world")); + params.add(new Pair<>("foobar", "baz")); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst?a=b&c=d", params); +- Assert.assertEquals("https://www.chromium.org/wst?hello=world&foobar=baz", uri); ++ "https://www.ch40m1um.qjz9zk/wst?a=b&c=d", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?hello=world&foobar=baz", uri); + } + + /* +@@ -122,9 +122,9 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("foo bar", "baz")); + params.add(new Pair<>("a!\"#$%&'()*+,-./0?@[\\]^_a`{}~", "b")); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst%25%20space", params); ++ "https://www.ch40m1um.qjz9zk/wst%25%20space", params); + Assert.assertEquals( +- "https://www.chromium.org/wst%25%20space?hello=world+!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~&foo+bar=baz&a!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~=b", ++ "https://www.ch40m1um.qjz9zk/wst%25%20space?hello=world+!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~&foo+bar=baz&a!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~=b", + uri); + } + +@@ -137,7 +137,7 @@ public class HostBrowserLauncherParamsTest { + Intent intent = new Intent(); + Bundle metaData = new Bundle(); + +- String shareAction = "https://www.chromium.org/wst"; ++ String shareAction = "https://www.ch40m1um.qjz9zk/wst"; + metaData.putString(WebApkMetaDataKeys.SHARE_ACTION, shareAction); + metaData.putString(WebApkMetaDataKeys.SHARE_METHOD, "GET"); + metaData.putString(WebApkMetaDataKeys.SHARE_PARAM_TITLE, "hello"); +@@ -151,7 +151,7 @@ public class HostBrowserLauncherParamsTest { + String postUri = + HostBrowserLauncherParams.computeStartUrlForShareTarget(metaData, intent); + +- Assert.assertEquals("https://www.chromium.org/wst?hello=world", getUri); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?hello=world", getUri); + Assert.assertEquals(shareAction, postUri); + } + } +diff --git a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java +--- a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java ++++ b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java +@@ -50,10 +50,10 @@ public final class MainActivityTest { + @Test + public void testIntentUrlOutOfScopeBecauseOfScheme() { + final String intentStartUrl = "geo:0,0?q=Kenora"; +- final String manifestStartUrl = "https://www.google.com/index.html"; +- final String manifestScope = "https://www.google.com/"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/index.html"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/"; + final String expectedStartUrl = +- "https://www.google.com/index.html?originalUrl=geo%3A0%2C0%3Fq%3DKenora"; ++ "https://www.9oo91e.qjz9zk/index.html?originalUrl=geo%3A0%2C0%3Fq%3DKenora"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -76,11 +76,11 @@ public final class MainActivityTest { + */ + @Test + public void testIntentUrlOutOfScopeBecauseOfPath() { +- final String intentStartUrl = "https://www.google.com/maps/"; +- final String manifestStartUrl = "https://www.google.com/maps/contrib/startUrl"; +- final String manifestScope = "https://www.google.com/maps/contrib/"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/maps/"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps/contrib/startUrl"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/maps/contrib/"; + final String expectedStartUrl = +- "https://www.google.com/maps/contrib/startUrl?originalUrl=https%3A%2F%2Fwww.google.com%2Fmaps%2F"; ++ "https://www.9oo91e.qjz9zk/maps/contrib/startUrl?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2F"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -103,11 +103,11 @@ public final class MainActivityTest { + */ + @Test + public void testRewriteStartUrlInsideScope() { +- final String intentStartUrl = "https://www.google.com/maps/address?A=a"; +- final String manifestStartUrl = "https://www.google.com/maps/startUrl"; +- final String manifestScope = "https://www.google.com/maps"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/maps/address?A=a"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps/startUrl"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/maps"; + final String expectedStartUrl = +- "https://www.google.com/maps/startUrl?originalUrl=https%3A%2F%2Fwww.google.com%2Fmaps%2Faddress%3FA%3Da"; ++ "https://www.9oo91e.qjz9zk/maps/startUrl?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2Faddress%3FA%3Da"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -131,9 +131,9 @@ public final class MainActivityTest { + @Test + public void testNotRewriteStartUrlWhenContainsTheQueryParameterToAppend() { + final String intentStartUrl = +- "https://www.google.com/maps/startUrl?originalUrl=https%3A%2F%2Fwww.google.com%2Fmaps%2Faddress%3FA%3Da"; +- final String manifestStartUrl = "https://www.google.com/maps/startUrl"; +- final String manifestScope = "https://www.google.com/maps"; ++ "https://www.9oo91e.qjz9zk/maps/startUrl?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2Faddress%3FA%3Da"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps/startUrl"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/maps"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -158,11 +158,11 @@ public final class MainActivityTest { + */ + @Test + public void testRewriteUnicodeHost() { +- final String intentStartUrl = "https://www.google.com/"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/"; + final String manifestStartUrl = "https://www.☺.com/"; + final String scope = "https://www.☺.com/"; + final String expectedStartUrl = +- "https://www.☺.com/?originalUrl=https%3A%2F%2Fwww.google.com%2F"; ++ "https://www.☺.com/?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2F"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -189,7 +189,7 @@ public final class MainActivityTest { + mBrowserInstaller.setInstalledBrowserWithVersion( + nonChromeBrowserPackageName, "10000.0.000.0"); + +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, startUrl); +@@ -213,7 +213,7 @@ public final class MainActivityTest { + public void testShouldLaunchInTabWhenChromeVersionIsTooLow() throws Exception { + mBrowserInstaller.setInstalledBrowserWithVersion(BROWSER_PACKAGE_NAME, "56.0.000.0"); + +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, startUrl); +@@ -237,7 +237,7 @@ public final class MainActivityTest { + public void testShouldNotLaunchInTabWithNewVersionOfChrome() throws Exception { + mBrowserInstaller.setInstalledBrowserWithVersion(BROWSER_PACKAGE_NAME, "57.0.000.0"); + +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, startUrl); +@@ -259,7 +259,7 @@ public final class MainActivityTest { + */ + @Test + public void testPropagatedDeepLinkExtras() { +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle extrasToPropagate = new Bundle(); + // WebAPK should not override these extras if they are provided in the WebAPK launch intent. +diff --git a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java +--- a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java ++++ b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java +@@ -43,11 +43,11 @@ public class WebApkUtilsTest { + */ + @Test + public void testLoggedIntentUrlParamWhenRewriteOutOfScope() { +- final String intentStartUrl = "https://maps.google.com/page?a=A"; +- final String manifestStartUrl = "https://www.google.com/maps"; +- final String manifestScope = "https://www.google.com"; ++ final String intentStartUrl = "https://maps.9oo91e.qjz9zk/page?a=A"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk"; + final String expectedRewrittenStartUrl = +- "https://www.google.com/maps?originalUrl=https%3A%2F%2Fmaps.google.com%2Fpage%3Fa%3DA"; ++ "https://www.9oo91e.qjz9zk/maps?originalUrl=https%3A%2F%2Fmaps.9oo91e.qjz9zk%2Fpage%3Fa%3DA"; + final String browserPackageName = "browser.support.webapks"; + + Bundle bundle = new Bundle(); +@@ -67,12 +67,12 @@ public class WebApkUtilsTest { + */ + @Test + public void testLoggedIntentUrlParamWhenRewriteInScope() { +- final String intentStartUrl = "https://www.google.com/maps/search/A"; +- final String manifestStartUrl = "https://www.google.com/maps?force=qVTs2FOxxTmHHo79-pwa"; +- final String manifestScope = "https://www.google.com"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/maps/search/A"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps?force=qVTs2FOxxTmHHo79-pwa"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk"; + final String expectedRewrittenStartUrl = +- "https://www.google.com/maps?force=qVTs2FOxxTmHHo79-pwa&intent=" +- + "https%3A%2F%2Fwww.google.com%2Fmaps%2Fsearch%2FA"; ++ "https://www.9oo91e.qjz9zk/maps?force=qVTs2FOxxTmHHo79-pwa&intent=" ++ + "https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2Fsearch%2FA"; + final String browserPackageName = "browser.support.webapks"; + + Bundle bundle = new Bundle(); +diff --git a/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json b/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json +--- a/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json ++++ b/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json +@@ -1,19 +1,19 @@ + { +- "scope_url": "https://www.google.com/maps", ++ "scope_url": "https://www.9oo91e.qjz9zk/maps", + "intent_filters": { + "scope_url_scheme": "https", +- "scope_url_host": "www.google.com", ++ "scope_url_host": "www.9oo91e.qjz9zk", + "scope_url_path_type": "android:pathPrefix", + "scope_url_path": "/maps" + }, +- "start_url": "https://www.google.com/maps/@37.7890183,-122.3915063,15z?force=pwa", ++ "start_url": "https://www.9oo91e.qjz9zk/maps/@37.7890183,-122.3915063,15z?force=pwa", + "display_mode": "standalone", + "orientation": "portrait", + "theme_color": "2147483648L", + "background_color": "2147483648L", + "background_color_xml": "#F8F9FA", +- "icon_urls_and_icon_murmur2_hashes": "https://maps.gstatic.com/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_48x48.png 0 https://maps.gstatic.com/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_72x72 0", +- "web_manifest_url": "https://maps.gstatic.com/tactile/worker/ml.json", ++ "icon_urls_and_icon_murmur2_hashes": "https://maps.95tat1c.qjz9zk/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_48x48.png 0 https://maps.95tat1c.qjz9zk/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_72x72 0", ++ "web_manifest_url": "https://maps.95tat1c.qjz9zk/tactile/worker/ml.json", + "distributor": "other", + "version_code": "1", + "version_name": "1.0", +diff --git a/chrome/android/webapk/shell_apk/res/values/dimens.xml b/chrome/android/webapk/shell_apk/res/values/dimens.xml +--- a/chrome/android/webapk/shell_apk/res/values/dimens.xml ++++ b/chrome/android/webapk/shell_apk/res/values/dimens.xml +@@ -9,7 +9,7 @@ + 16sp + 12sp + +- ++ + 24dp + 6dp + 6dp +diff --git a/chrome/app/PRESUBMIT.py b/chrome/app/PRESUBMIT.py +--- a/chrome/app/PRESUBMIT.py ++++ b/chrome/app/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for changes affecting chrome/app/ + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +@@ -15,7 +15,7 @@ def _CheckNoProductNameInGeneratedResources(input_api, output_api): + + These kinds of strings prevent proper localization in some languages. For + more information, see the following chromium-dev thread: +- https://groups.google.com/a/chromium.org/forum/#!msg/chromium-dev/PBs5JfR0Aoc/NOcIHII9u14J ++ https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/forum/#!msg/chromium-dev/PBs5JfR0Aoc/NOcIHII9u14J + """ + + problems = [] +@@ -29,8 +29,8 @@ def _CheckNoProductNameInGeneratedResources(input_api, output_api): + return [output_api.PresubmitPromptWarning( + "Don't use PRODUCT_NAME placeholders in string resources. Instead, add " + "separate strings to google_chrome_strings.grd and " +- "chromium_strings.grd. See http://goo.gl/6614MQ for more information." +- "Problems with this check? Contact dubroy@chromium.org.", ++ "chromium_strings.grd. See http://goo.gl.qjz9zk.qjz9zk/6614MQ for more information." ++ "Problems with this check? Contact dubroy@ch40m1um.qjz9zk.", + items=problems)] + return [] + +diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h +--- a/chrome/app/chrome_command_ids.h ++++ b/chrome/app/chrome_command_ids.h +@@ -394,7 +394,7 @@ + #define IDC_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_TOGGLE_ONCE 52412 + + // NOTE: The last valid command value is 57343 (0xDFFF) +-// See http://msdn.microsoft.com/en-us/library/t2zechd4(VS.71).aspx ++// See http://msdn.m1cr050ft.qjz9zk/en-us/library/t2zechd4(VS.71).aspx + + // Starting command id for menus showing bookmarks (such as the wrench menu). + // While command ids passed to Windows functions must not be higher than 0xDFFF, +diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd +--- a/chrome/app/chromium_strings.grd ++++ b/chrome/app/chromium_strings.grd +@@ -468,7 +468,7 @@ Chromium is unable to recover your settings. + + + +- Also clear data from Chromium ($1www.google.com) ++ Also clear data from Chromium ($1www.9oo91e.qjz9zk) + + + +@@ -578,10 +578,10 @@ Chromium is unable to recover your settings. + You're signed in to Chromium! + + +- You're signed in as $1foo@gmail.com. Now you can access your bookmarks, history, and other settings on all your signed in devices. ++ You're signed in as $1foo@9ma1l.qjz9zk. Now you can access your bookmarks, history, and other settings on all your signed in devices. + + +- You were signed in to Chromium as $1foo@gmail.com. Please use the same account to sign in again. ++ You were signed in to Chromium as $1foo@9ma1l.qjz9zk. Please use the same account to sign in again. + + + Someone previously signed in to Chromium on this computer as $1user@example.com. Please create a new Chromium user to keep your information separate. +@@ -614,7 +614,7 @@ Chromium is unable to recover your settings. + + + +- $1foo@gmail.com was previously using Chromium ++ $1foo@9ma1l.qjz9zk was previously using Chromium + + + +diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd +--- a/chrome/app/generated_resources.grd ++++ b/chrome/app/generated_resources.grd +@@ -273,7 +273,7 @@ are declared in tools/grit/grit_rule.gni. + + + +- $1google.com wants to ++ $19oo91e.qjz9zk wants to + + + Allow +@@ -459,7 +459,7 @@ are declared in tools/grit/grit_rule.gni. + Open link as + + +- Open link as $1user@gmail.com ++ Open link as $1user@9ma1l.qjz9zk + + + Open link in $1Gmail App +@@ -602,7 +602,7 @@ are declared in tools/grit/grit_rule.gni. + &Search $1Google for image + + +- &Go to $1http://www.google.com/ ++ &Go to $1http://www.9oo91e.qjz9zk/ + + + Suggest password... +@@ -677,7 +677,7 @@ are declared in tools/grit/grit_rule.gni. + Open Link as + + +- Open Link as $1user@gmail.com ++ Open Link as $1user@9ma1l.qjz9zk + + + Open Link in $1Gmail App +@@ -832,7 +832,7 @@ are declared in tools/grit/grit_rule.gni. + &Search $1Google for Image + + +- &Go to $1http://www.google.com/ ++ &Go to $1http://www.9oo91e.qjz9zk/ + + + Suggest Password... +@@ -1030,7 +1030,7 @@ are declared in tools/grit/grit_rule.gni. + + + +- Move window to $1User name ($2john@google.com) ++ Move window to $1User name ($2john@9oo91e.qjz9zk) + + + +@@ -2319,7 +2319,7 @@ are declared in tools/grit/grit_rule.gni. + Share + + +- $1Google Maps ($2https://google.com/maps) ++ $1Google Maps ($2https://9oo91e.qjz9zk/maps) + + + +@@ -2382,10 +2382,10 @@ are declared in tools/grit/grit_rule.gni. + Images were blocked on this page. + + +- Always allow $1mail.google.com to set cookies ++ Always allow $1mail.9oo91e.qjz9zk to set cookies + + +- Always allow $1mail.google.com to show images ++ Always allow $1mail.9oo91e.qjz9zk to show images + + + Continue blocking cookies +@@ -2394,7 +2394,7 @@ are declared in tools/grit/grit_rule.gni. + Continue allowing cookies + + +- Always block cookies on $1mail.google.com ++ Always block cookies on $1mail.9oo91e.qjz9zk + + + Continue blocking images +@@ -2406,7 +2406,7 @@ are declared in tools/grit/grit_rule.gni. + Pop-ups blocked: + + +- Always allow pop-ups and redirects from $1mail.google.com ++ Always allow pop-ups and redirects from $1mail.9oo91e.qjz9zk + + + Continue blocking +@@ -2415,22 +2415,22 @@ are declared in tools/grit/grit_rule.gni. + Manage pop-up blocking... + + +- Always allow $1mail.google.com to access your camera and microphone ++ Always allow $1mail.9oo91e.qjz9zk to access your camera and microphone + + +- Always allow $1mail.google.com to access your microphone ++ Always allow $1mail.9oo91e.qjz9zk to access your microphone + + +- Always allow $1mail.google.com to access your camera ++ Always allow $1mail.9oo91e.qjz9zk to access your camera + + +- Ask if $1mail.google.com wants to access your camera and microphone ++ Ask if $1mail.9oo91e.qjz9zk wants to access your camera and microphone + + +- Ask if $1mail.google.com wants to access your microphone ++ Ask if $1mail.9oo91e.qjz9zk wants to access your microphone + + +- Ask if $1mail.google.com wants to access your camera ++ Ask if $1mail.9oo91e.qjz9zk wants to access your camera + + + Always block camera and microphone access +@@ -2451,13 +2451,13 @@ are declared in tools/grit/grit_rule.gni. + Continue blocking camera access + + +- Continue allowing $1mail.google.com to access your camera and microphone ++ Continue allowing $1mail.9oo91e.qjz9zk to access your camera and microphone + + +- Continue allowing $1mail.google.com to access your microphone ++ Continue allowing $1mail.9oo91e.qjz9zk to access your microphone + + +- Continue allowing $1mail.google.com to access your camera ++ Continue allowing $1mail.9oo91e.qjz9zk to access your camera + + + Pop-up blocked +@@ -2472,7 +2472,7 @@ are declared in tools/grit/grit_rule.gni. + JavaScript was blocked on this page. + + +- Always allow JavaScript on $1mail.google.com ++ Always allow JavaScript on $1mail.9oo91e.qjz9zk + + + Continue blocking JavaScript +@@ -2490,7 +2490,7 @@ are declared in tools/grit/grit_rule.gni. + Sound was muted on this page + + +- Always allow sound on $1mail.google.com ++ Always allow sound on $1mail.9oo91e.qjz9zk + + + Continue muting sound +@@ -2617,7 +2617,7 @@ are declared in tools/grit/grit_rule.gni. + + + +- Certificate Viewer: $1www.google.com ++ Certificate Viewer: $1www.9oo91e.qjz9zk + + + &General +@@ -3147,13 +3147,13 @@ are declared in tools/grit/grit_rule.gni. + + + +- Sharing this tab to $1meet.google.com ++ Sharing this tab to $1meet.9oo91e.qjz9zk + + +- Sharing a tab to $1meet.google.com ++ Sharing a tab to $1meet.9oo91e.qjz9zk + + +- Sharing $1youtube.com to $2meet.google.com ++ Sharing $1y0u1ub3.qjz9zk to $2meet.9oo91e.qjz9zk + + + Share this tab instead +@@ -3358,10 +3358,10 @@ are declared in tools/grit/grit_rule.gni. + Incognito Tab: $1Google + + +- Background App: $1http://www.google.com ++ Background App: $1http://www.9oo91e.qjz9zk + + +- Background Page: $1http://www.google.com ++ Background Page: $1http://www.9oo91e.qjz9zk + + + Plugin: $1Unknown Plugin +@@ -3370,10 +3370,10 @@ are declared in tools/grit/grit_rule.gni. + Plugin Broker: $1Unknown Plugin + + +- Prerender: $1http://www.google.com ++ Prerender: $1http://www.9oo91e.qjz9zk + + +- Renderer: $1http://www.google.com ++ Renderer: $1http://www.9oo91e.qjz9zk + + + Service Worker: $1https://googlechrome.github.io/samples/service-worker/basic/service-worker.js +@@ -3397,10 +3397,10 @@ are declared in tools/grit/grit_rule.gni. + Print: $1Google Maps + + +- Subframe: $1https://youtube.com/ ++ Subframe: $1https://y0u1ub3.qjz9zk/ + + +- Incognito Subframe: $1https://youtube.com/ ++ Incognito Subframe: $1https://y0u1ub3.qjz9zk/ + + + App: $1com.android.systemui +@@ -3579,13 +3579,13 @@ are declared in tools/grit/grit_rule.gni. + + The extension "$1Gmail Checker" has been added. + +- ++ + The extension "$1Gmail Checker" was automatically disabled. + + + The app "$1Gmail" has been added. + +- ++ + The app "$1Gmail" was automatically removed. + + +@@ -3597,10 +3597,10 @@ are declared in tools/grit/grit_rule.gni. + + + +- $1http://www.google.com wants to communicate with the app "$2Gmail" ++ $1http://www.9oo91e.qjz9zk wants to communicate with the app "$2Gmail" + + +- $1http://www.google.com wants to communicate with the extension "$2Gmail Checker" ++ $1http://www.9oo91e.qjz9zk wants to communicate with the extension "$2Gmail Checker" + + + It can: +@@ -3733,22 +3733,22 @@ are declared in tools/grit/grit_rule.gni. + Change your home page to: $1home.page.com/home.html + + +- Read and change your data on $1www.google.com ++ Read and change your data on $1www.9oo91e.qjz9zk + + +- Read your data on $1www.google.com ++ Read your data on $1www.9oo91e.qjz9zk + + +- Read and change your data on $1www.google.com and $2www.reddit.com ++ Read and change your data on $1www.9oo91e.qjz9zk and $2www.reddit.com + + +- Read your data on $1www.google.com and $2www.reddit.com ++ Read your data on $1www.9oo91e.qjz9zk and $2www.reddit.com + + +- Read and change your data on $1www.google.com, $2www.reddit.com, and $3news.ycombinator.com ++ Read and change your data on $1www.9oo91e.qjz9zk, $2www.reddit.com, and $3news.ycombinator.com + + +- Read your data on $1www.google.com, $2www.reddit.com, and $3news.ycombinator.com ++ Read your data on $1www.9oo91e.qjz9zk, $2www.reddit.com, and $3news.ycombinator.com + + + Read and change your data on a number of websites +@@ -3757,10 +3757,10 @@ are declared in tools/grit/grit_rule.gni. + Read your data on a number of websites + + +- all $1google.com sites ++ all $19oo91e.qjz9zk sites + + +- All $1google.com sites ++ All $19oo91e.qjz9zk sites + + + Read and change anything you type +@@ -4118,7 +4118,7 @@ are declared in tools/grit/grit_rule.gni. + When you click the extension + + +- On $1google.com ++ On $19oo91e.qjz9zk + + + On all sites +@@ -4168,7 +4168,7 @@ are declared in tools/grit/grit_rule.gni. + When You Click the Extension + + +- On $1google.com ++ On $19oo91e.qjz9zk + + + On All Sites +@@ -4982,7 +4982,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + + + +- Pa&ste and go to $1http://www.google.com/ ++ Pa&ste and go to $1http://www.9oo91e.qjz9zk/ + + + Pa&ste and search for “$1flowers” +@@ -4990,7 +4990,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + + + +- Pa&ste and Go to $1http://www.google.com/ ++ Pa&ste and Go to $1http://www.9oo91e.qjz9zk/ + + + Pa&ste and Search for “$1flowers” +@@ -5000,7 +5000,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + S&how URL + + +- Press $1Tab to search $2google.com ++ Press $1Tab to search $29oo91e.qjz9zk + + + Press $1Tab to send commands to $2Google Talk +@@ -5009,16 +5009,16 @@ Keep your key file in a safe place. You will need it to create new versions of y + Tab + + +- Search $1google.com ++ Search $19oo91e.qjz9zk + + + Send commands to $1ACME Music App + + +- Search $1google.com: ++ Search $19oo91e.qjz9zk: + + +- Search $1google.com ++ Search $19oo91e.qjz9zk + + + Click to view today’s doodle +@@ -5400,7 +5400,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + Stay in Chrome + + +- From $1https://google.com ++ From $1https://9oo91e.qjz9zk + + + +@@ -5470,7 +5470,7 @@ the Bookmarks menu."> + + + +- $1maps.google.com wants to respond to accessibility events ++ $1maps.9oo91e.qjz9zk wants to respond to accessibility events + + + Accessibility Events +@@ -5483,7 +5483,7 @@ the Bookmarks menu."> + + + +- $1maps.google.com wants to see text and images copied to the clipboard ++ $1maps.9oo91e.qjz9zk wants to see text and images copied to the clipboard + + + Clipboard +@@ -5508,7 +5508,7 @@ the Bookmarks menu."> + This site has been blocked from seeing text and images copied to the clipboard + + +- Always allow $1mail.google.com to see the clipboard ++ Always allow $1mail.9oo91e.qjz9zk to see the clipboard + + + Continue blocking this site from seeing the clipboard +@@ -5577,7 +5577,7 @@ the Bookmarks menu."> + The page has become unresponsive. You can wait for it to become responsive or close it. + + +- $1google.com, in $2YouTube. ++ $19oo91e.qjz9zk, in $2YouTube. + + + Close +@@ -5614,7 +5614,7 @@ the Bookmarks menu."> + Automatically sign in to websites using stored credentials. When the feature is disabled, you will be asked for confirmation every time before signing in to a website. + + +- with $1facebook.com ++ with $1f8c3b00k.qjz9zk + + + Hide +@@ -5882,7 +5882,7 @@ the Bookmarks menu."> + Run Flash + + +- The selected data has been removed from Chrome and synced devices. Your Google Account may have other forms of browsing history like searches and activity from other Google services at <a target="_blank" href="$1">myactivity.google.com</a>. ++ The selected data has been removed from Chrome and synced devices. Your Google Account may have other forms of browsing history like searches and activity from other Google services at <a target="_blank" href="$1">myactivity.9oo91e.qjz9zk</a>. + + + Cleared Chrome data +@@ -6126,7 +6126,7 @@ the Bookmarks menu."> + Uploading ($127%)... + + +- Waiting for $1www.google.com... ++ Waiting for $1www.9oo91e.qjz9zk... + + + +@@ -6263,31 +6263,31 @@ the Bookmarks menu."> + $1html5rocks.com is sharing your screen. + + +- $1html5rocks.com is sharing your screen with $2https://google.com. ++ $1html5rocks.com is sharing your screen with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing your screen and audio. + + +- $1html5rocks.com is sharing your screen and audio with $2https://google.com. ++ $1html5rocks.com is sharing your screen and audio with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing a window. + + +- $1html5rocks.com is sharing a window with $2https://google.com. ++ $1html5rocks.com is sharing a window with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing a Chrome tab. + + +- $1html5rocks.com is sharing a Chrome tab with $2https://google.com. ++ $1html5rocks.com is sharing a Chrome tab with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing a Chrome tab and audio. + + +- $1html5rocks.com is sharing a Chrome tab and audio with $2https://google.com. ++ $1html5rocks.com is sharing a Chrome tab and audio with $2https://9oo91e.qjz9zk. + + + Change source +@@ -6312,7 +6312,7 @@ the Bookmarks menu."> + + + +- Select a certificate to authenticate yourself to $1www.google.com ++ Select a certificate to authenticate yourself to $1www.9oo91e.qjz9zk + + + +@@ -6320,10 +6320,10 @@ the Bookmarks menu."> + Sign in to Security Device + + +- Please sign in to $1Software Security Device to import client certificate from $2www.google.com. ++ Please sign in to $1Software Security Device to import client certificate from $2www.9oo91e.qjz9zk. + + +- Please sign in to $1Software Security Device to authenticate to $2www.google.com with your certificate. ++ Please sign in to $1Software Security Device to authenticate to $2www.9oo91e.qjz9zk with your certificate. + + + Please sign in to $1Software Security Device. +@@ -7308,10 +7308,10 @@ the Bookmarks menu."> + Can't sign in + + +- Can't sign in to $1Jane.Doe@gmail.com ++ Can't sign in to $1Jane.Doe@9ma1l.qjz9zk + + +- Can't sync to $1Jane.Doe@gmail.com ++ Can't sync to $1Jane.Doe@9ma1l.qjz9zk + + + Close +@@ -7336,13 +7336,13 @@ the Bookmarks menu."> + This wasn't me. + + +- Create a new profile for $1foo@gmail.com ++ Create a new profile for $1foo@9ma1l.qjz9zk + + + This was me. + + +- Add my bookmarks, history, passwords, and other settings to $1foo@gmail.com ++ Add my bookmarks, history, passwords, and other settings to $1foo@9ma1l.qjz9zk + + + Cancel +@@ -7386,7 +7386,7 @@ the Bookmarks menu."> + Open $1Adobe Acrobat? + + +- $1https://google.com wants to open this application. ++ $1https://9oo91e.qjz9zk wants to open this application. + + + A website wants to open this application. +@@ -7424,7 +7424,7 @@ the Bookmarks menu."> + Date Modified + + +- Oh, no! This server is sending data $1Google Chrome can't understand. Please <a href="http://code.google.com/p/chromium/issues/entry">report a bug</a></a>, and include the <a href="LOCATION">raw listing</a>. ++ Oh, no! This server is sending data $1Google Chrome can't understand. Please <a href="http://code.9oo91e.qjz9zk/p/chromium/issues/entry">report a bug</a></a>, and include the <a href="LOCATION">raw listing</a>. + + + +@@ -7565,7 +7565,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Signed in as $1foo@gmail.com. ++ Signed in as $1foo@9ma1l.qjz9zk. + + + On - sync everything +@@ -7923,7 +7923,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1mail.google.com wants to send you notifications ++ $1mail.9oo91e.qjz9zk wants to send you notifications + + + +@@ -8002,7 +8002,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Wrong index. + + +- Executing JavaScript through AppleScript is turned off. To turn it on, from the menu bar, go to View > Developer > Allow JavaScript from Apple Events. For more information: https://support.google.com/chrome/?p=applescript ++ Executing JavaScript through AppleScript is turned off. To turn it on, from the menu bar, go to View > Developer > Allow JavaScript from Apple Events. For more information: https://support.9oo91e.qjz9zk/chrome/?p=applescript + + + +@@ -8396,12 +8396,12 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1maps.google.com wants to use your computer's location ++ $1maps.9oo91e.qjz9zk wants to use your computer's location + + + + +- $1maps.google.com wants to use your device's location ++ $1maps.9oo91e.qjz9zk wants to use your device's location + + + Location +@@ -8434,7 +8434,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to get full control of your MIDI devices ++ $1www.9oo91e.qjz9zk wants to get full control of your MIDI devices + + + +@@ -8553,10 +8553,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + Know your unique device identifier + + +- $1https://www.youtube.com wants to play protected content. Your device’s identity will be verified by Google. ++ $1https://www.y0u1ub3.qjz9zk wants to play protected content. Your device’s identity will be verified by Google. + + +- $1https://www.youtube.com wants to play protected content. Your device's identity will be verified by Google and may be accessed by this site. ++ $1https://www.y0u1ub3.qjz9zk wants to play protected content. Your device's identity will be verified by Google and may be accessed by this site. + + + Protected Media Identifier +@@ -8566,7 +8566,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + View and manage saved passwords in your $1Google Account + + +- https://passwords.google.com ++ https://passwords.9oo91e.qjz9zk + + + +@@ -8595,10 +8595,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + Undo + + +- Restore deleted password for $1user@gmail.com ++ Restore deleted password for $1user@9ma1l.qjz9zk + + +- Delete password for $1user@gmail.com ++ Delete password for $1user@9ma1l.qjz9zk + + + +@@ -8709,19 +8709,19 @@ Please help our engineers fix this problem. Tell us what happened right before y + An extension triggered full screen. + + +- $1google.com is now full screen. ++ $19oo91e.qjz9zk is now full screen. + + + This page is now full screen. + + +- $1google.com is now full screen and has disabled your mouse cursor. ++ $19oo91e.qjz9zk is now full screen and has disabled your mouse cursor. + + + This page is now full screen and has disabled your mouse cursor. + + +- $1google.com has disabled your mouse cursor. ++ $19oo91e.qjz9zk has disabled your mouse cursor. + + + This page has disabled your mouse cursor. +@@ -8745,10 +8745,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Allow $1google.com to open all $2search links? ++ Allow $19oo91e.qjz9zk to open all $2search links? + + +- Allow $1google.com to open all $2search links instead of $3Elgoog Search? ++ Allow $19oo91e.qjz9zk to open all $2search links instead of $3Elgoog Search? + + + Open $1search links +@@ -8811,7 +8811,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + This site has been blocked from using motion sensors. + + +- Always allow $1mail.google.com to access sensors ++ Always allow $1mail.9oo91e.qjz9zk to access sensors + + + Continue blocking sensor access +@@ -8838,7 +8838,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Continue allowing sensor access + + +- Always block $1mail.google.com from accessing sensors ++ Always block $1mail.9oo91e.qjz9zk from accessing sensors + + + +@@ -9075,7 +9075,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + $1Google Hangouts wants to share the contents of your screen. Choose what you'd like to share. + + +- $1Google Hangouts wants to share the contents of your screen with $2https://google.com. Choose what you'd like to share. ++ $1Google Hangouts wants to share the contents of your screen with $2https://9oo91e.qjz9zk. Choose what you'd like to share. + + + Share audio +@@ -9206,7 +9206,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Documents are <a is="action-link" href="https://support.google.com/cloudprint/answer/2541843" target="_blank">sent to Google</a> to prepare them for printing. View, edit and manage your printers and printer history on the <a is="action-link" href="https://www.google.com/cloudprint#jobs" target="_blank">Google Cloud Print dashboard</a>. ++ Documents are <a is="action-link" href="https://support.9oo91e.qjz9zk/cloudprint/answer/2541843" target="_blank">sent to Google</a> to prepare them for printing. View, edit and manage your printers and printer history on the <a is="action-link" href="https://www.9oo91e.qjz9zk/cloudprint#jobs" target="_blank">Google Cloud Print dashboard</a>. + + + +@@ -9266,8 +9266,8 @@ Please help our engineers fix this problem. Tell us what happened right before y + + $1Google Photos - Serial port connected + +- +- $1www.google.com - Network error ++ ++ $1www.9oo91e.qjz9zk - Network error + + + $1Google Search - Crashed +@@ -9422,7 +9422,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Go to $1www.google.com to connect. ++ Go to $1www.9oo91e.qjz9zk to connect. + + + $1Nexus 5 detected +@@ -9460,7 +9460,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to pair ++ $1www.9oo91e.qjz9zk wants to pair + + + "$1Chrome Extension Name" wants to pair +@@ -9506,7 +9506,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to connect ++ $1www.9oo91e.qjz9zk wants to connect + + + "$1Chrome Extension Name" wants to connect +@@ -9537,7 +9537,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + No nearby devices found. + + +- $1www.google.com wants to scan for nearby Bluetooth devices. The following devices have been found: ++ $1www.9oo91e.qjz9zk wants to scan for nearby Bluetooth devices. The following devices have been found: + + + Allow +@@ -9569,7 +9569,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to connect to a serial port ++ $1www.9oo91e.qjz9zk wants to connect to a serial port + + + "$1Chrome Extension Name" wants to connect to a serial port +@@ -9588,7 +9588,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to connect to a HID device ++ $1www.9oo91e.qjz9zk wants to connect to a HID device + + + "$1Chrome Extension Name" wants to connect to a HID device +@@ -9735,7 +9735,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1maps.google.com ++ $1maps.9oo91e.qjz9zk + wants to see the make and model of your Security Key + + +@@ -9904,10 +9904,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Use your security key with $1google.com ++ Use your security key with $19oo91e.qjz9zk + + +- $1google.com wants to verify your identity ++ $19oo91e.qjz9zk wants to verify your identity + + + Verifying your identity helps protect your personal information +@@ -9916,7 +9916,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Continue + + +- Verify your identity with $1google.com ++ Verify your identity with $19oo91e.qjz9zk + + + Pick an option +@@ -10122,13 +10122,13 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- ++ + Account + + + Name + +- ++ + Select an account to sign in + + +@@ -10141,7 +10141,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Your security key can't be used with this site + + +- accounts.google.com$1 may require a newer or different kind of security key ++ accounts.9oo91e.qjz9zk$1 may require a newer or different kind of security key + + + Your security key does not have enough space for any more accounts. +@@ -10150,7 +10150,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Allow this site to see your security key? + + +- accounts.google.com$1 wants to see the make and model of your security key ++ accounts.9oo91e.qjz9zk$1 wants to see the make and model of your security key + + + Allow +diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd +--- a/chrome/app/google_chrome_strings.grd ++++ b/chrome/app/google_chrome_strings.grd +@@ -480,7 +480,7 @@ Google Chrome is unable to recover your settings. + + + +- Also clear data from Chrome ($1www.google.com) ++ Also clear data from Chrome ($1www.9oo91e.qjz9zk) + + + +@@ -590,10 +590,10 @@ Google Chrome is unable to recover your settings. + You're signed in to Chrome! + + +- You're signed in as $1foo@gmail.com. Now you can access your bookmarks, history, and other settings on all your signed in devices. ++ You're signed in as $1foo@9ma1l.qjz9zk. Now you can access your bookmarks, history, and other settings on all your signed in devices. + + +- You were signed in to Chrome as $1foo@gmail.com. Please use the same account to sign in again. ++ You were signed in to Chrome as $1foo@9ma1l.qjz9zk. Please use the same account to sign in again. + + + Someone previously signed in to Chrome on this computer as $1user@example.com. Please create a new Chrome user to keep your information separate. +@@ -626,7 +626,7 @@ Google Chrome is unable to recover your settings. + + + +- $1foo@gmail.com was previously using Chrome ++ $1foo@9ma1l.qjz9zk was previously using Chrome + + + +diff --git a/chrome/app/resources/locale_settings.grd b/chrome/app/resources/locale_settings.grd +--- a/chrome/app/resources/locale_settings.grd ++++ b/chrome/app/resources/locale_settings.grd +@@ -150,12 +150,12 @@ + + + +- https://chrome.google.com/webstore?hl=[GRITLANGCODE]&category=theme ++ https://chrome.9oo91e.qjz9zk/webstore?hl=[GRITLANGCODE]&category=theme + + + + +- https://chrome.google.com/webstore?hl=[GRITLANGCODE] ++ https://chrome.9oo91e.qjz9zk/webstore?hl=[GRITLANGCODE] + + + +@@ -172,7 +172,7 @@ + + + +- https://support.google.com/chrome/answer/1181420 ++ https://support.9oo91e.qjz9zk/chrome/answer/1181420 + + + +@@ -209,18 +209,18 @@ + + + +- https://support.google.com/chromebook/answer/183084?hl=[GRITLANGCODE] ++ https://support.9oo91e.qjz9zk/chromebook/answer/183084?hl=[GRITLANGCODE] + + + + + +- https://myactivity.google.com/myactivity/?utm_source=chrome_n ++ https://myactivity.9oo91e.qjz9zk/myactivity/?utm_source=chrome_n + + + + +- https://myactivity.google.com/myactivity/?utm_source=chrome_h ++ https://myactivity.9oo91e.qjz9zk/myactivity/?utm_source=chrome_h + + + +diff --git a/chrome/app/theme/PRESUBMIT.py b/chrome/app/theme/PRESUBMIT.py +--- a/chrome/app/theme/PRESUBMIT.py ++++ b/chrome/app/theme/PRESUBMIT.py +@@ -4,9 +4,9 @@ + + """Presubmit script for Chromium theme resources. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools, and see +-https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/web.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/styleguide/web/web.md + for the rules we're checking against here. + """ + +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -283,14 +283,14 @@ const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { + const FeatureEntry::Choice kTraceUploadURL[] = { + {flags_ui::kGenericExperimentChoiceDisabled, "", ""}, + {flag_descriptions::kTraceUploadUrlChoiceOther, switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,Other"}, ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,Other"}, + {flag_descriptions::kTraceUploadUrlChoiceEmloading, + switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,emloading"}, ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,emloading"}, + {flag_descriptions::kTraceUploadUrlChoiceQa, switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,QA"}, ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,QA"}, + {flag_descriptions::kTraceUploadUrlChoiceTesting, switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,TestingTeam"}}; ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,TestingTeam"}}; + + const FeatureEntry::Choice kPassiveListenersChoices[] = { + {flags_ui::kGenericExperimentChoiceDefault, "", ""}, +@@ -2208,7 +2208,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kSyncSandboxDescription, kOsAll, + SINGLE_VALUE_TYPE_AND_VALUE( + switches::kSyncServiceURL, +- "https://chrome-sync.sandbox.google.com/chrome-sync/alpha")}, ++ "https://chrome-sync.sandbox.9oo91e.qjz9zk/chrome-sync/alpha")}, + #if !defined(OS_ANDROID) + {"load-media-router-component-extension", + flag_descriptions::kLoadMediaRouterComponentExtensionName, +@@ -2455,7 +2455,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kSetMarketUrlForTestingName, + flag_descriptions::kSetMarketUrlForTestingDescription, kOsAndroid, + SINGLE_VALUE_TYPE_AND_VALUE(switches::kMarketUrlForTesting, +- "https://play.google.com/store/apps/" ++ "https://play.9oo91e.qjz9zk/store/apps/" + "details?id=com.android.chrome")}, + #endif // OS_ANDROID + {"tls13-hardening-for-local-anchors", +diff --git a/chrome/browser/android/autofill_assistant/client_android.cc b/chrome/browser/android/autofill_assistant/client_android.cc +--- a/chrome/browser/android/autofill_assistant/client_android.cc ++++ b/chrome/browser/android/autofill_assistant/client_android.cc +@@ -52,7 +52,7 @@ const char* const kAutofillAssistantUrl = "autofill-assistant-url"; + namespace { + + const char* const kDefaultAutofillAssistantServerUrl = +- "https://automate-pa.googleapis.com"; ++ "https://automate-pa.9oo91eapis.qjz9zk"; + + // A direct action that corresponds to pressing the close or cancel button on + // the UI. +diff --git a/chrome/browser/android/contextualsearch/contextual_search_context.h b/chrome/browser/android/contextualsearch/contextual_search_context.h +--- a/chrome/browser/android/contextualsearch/contextual_search_context.h ++++ b/chrome/browser/android/contextualsearch/contextual_search_context.h +@@ -67,7 +67,7 @@ struct ContextualSearchContext { + + // Gets the encoding of the base page. This is not very important, since + // the surrounding text stored here in a base::string16 is implicitly encoded +- // in UTF-16 (see http://www.chromium.org/developers/chromium-string-usage). ++ // in UTF-16 (see http://www.ch40m1um.qjz9zk/developers/chromium-string-usage). + const std::string GetBasePageEncoding() const; + void SetBasePageEncoding(const std::string& base_page_encoding); + +diff --git a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc +--- a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc ++++ b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc +@@ -33,7 +33,7 @@ namespace { + const int kNumNetworkRetries = 1; + + // Location on a website where the asset links file can be found, see +-// https://developers.google.com/digital-asset-links/v1/getting-started. ++// https://developers.9oo91e.qjz9zk/digital-asset-links/v1/getting-started. + const char kAssetLinksAbsolutePath[] = ".well-known/assetlinks.json"; + + GURL GetUrlForAssetLinks(const url::Origin& origin) { +diff --git a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h +--- a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h ++++ b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h +@@ -31,7 +31,7 @@ using RelationshipCheckResultCallback = + + // A handler class for sending REST API requests to DigitalAssetLinks web + // end point. See +-// https://developers.google.com/digital-asset-links/v1/getting-started ++// https://developers.9oo91e.qjz9zk/digital-asset-links/v1/getting-started + // for details of usage and APIs. These APIs are used to verify declared + // relationships between different asset types like web domains or Android apps. + // The lifecycle of this handler will be governed by the owner. +@@ -52,7 +52,7 @@ class DigitalAssetLinksHandler : public content::WebContentsObserver { + // Calling this multiple times on the same handler will cancel the previous + // checks. + // See +- // https://developers.google.com/digital-asset-links/reference/rest/v1/assetlinks/check ++ // https://developers.9oo91e.qjz9zk/digital-asset-links/reference/rest/v1/assetlinks/check + // for details. + bool CheckDigitalAssetLinkRelationship( + RelationshipCheckResultCallback callback, +diff --git a/chrome/browser/android/explore_sites/url_util.cc b/chrome/browser/android/explore_sites/url_util.cc +--- a/chrome/browser/android/explore_sites/url_util.cc ++++ b/chrome/browser/android/explore_sites/url_util.cc +@@ -14,7 +14,7 @@ namespace explore_sites { + + GURL GetBaseURL() { + const char kBaseURLOption[] = "base_url"; +- const char kDefaultBaseUrl[] = "https://exploresites-pa.googleapis.com"; ++ const char kDefaultBaseUrl[] = "https://exploresites-pa.9oo91eapis.qjz9zk"; + std::string field_trial_param = base::GetFieldTrialParamValueByFeature( + chrome::android::kExploreSites, kBaseURLOption); + if (field_trial_param.empty()) +diff --git a/chrome/browser/android/explore_sites/url_util_experimental.cc b/chrome/browser/android/explore_sites/url_util_experimental.cc +--- a/chrome/browser/android/explore_sites/url_util_experimental.cc ++++ b/chrome/browser/android/explore_sites/url_util_experimental.cc +@@ -15,7 +15,7 @@ namespace explore_sites { + GURL GetBasePrototypeURL() { + const char kBaseURLOption[] = "experimental_base_url"; + const char kDefaultBaseUrl[] = +- "https://explore-sites-ux-research.appspot.com"; ++ "https://explore-sites-ux-research.8pp2p8t.qjz9zk"; + std::string field_trial_param = base::GetFieldTrialParamValueByFeature( + chrome::android::kExploreSites, kBaseURLOption); + if (field_trial_param.empty()) +diff --git a/chrome/browser/android/search_permissions/search_permissions_service.h b/chrome/browser/android/search_permissions/search_permissions_service.h +--- a/chrome/browser/android/search_permissions/search_permissions_service.h ++++ b/chrome/browser/android/search_permissions/search_permissions_service.h +@@ -29,7 +29,7 @@ class Profile; + // watching change to the CCTLD and DSE. + // Glossary: + // DSE: Default Search Engine +-// CCTLD: Country Code Top Level Domain (e.g. google.com.au) ++// CCTLD: Country Code Top Level Domain (e.g. 9oo91e.qjz9zk.au) + class SearchPermissionsService : public KeyedService { + public: + // Delegate for search engine related functionality. Can be overridden for +diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc +--- a/chrome/browser/android/tab_android.cc ++++ b/chrome/browser/android/tab_android.cc +@@ -286,7 +286,7 @@ void TabAndroid::DestroyWebContents(JNIEnv* env, + // renderer process. Otherwise, we go with the slow path where renderer + // process shuts down itself when ref count becomes 0. + // This helps the render process exit quickly which avoids some issues +- // during shutdown. See https://codereview.chromium.org/146693011/ ++ // during shutdown. See https://codereview.ch40m1um.qjz9zk/146693011/ + // and http://crbug.com/338709 for details. + content::RenderProcessHost* process = + web_contents()->GetMainFrame()->GetProcess(); +diff --git a/chrome/browser/android/tab_state.cc b/chrome/browser/android/tab_state.cc +--- a/chrome/browser/android/tab_state.cc ++++ b/chrome/browser/android/tab_state.cc +@@ -74,7 +74,7 @@ void WriteStateHeaderToPickle(bool off_the_record, + // chromes. + // + // This uses the fields from SerializedNavigationEntry/TabNavigation from: +-// https://gerrit-int.chromium.org/gitweb?p=clank/internal/apps.git; ++// https://gerrit-int.ch40m1um.qjz9zk/gitweb?p=clank/internal/apps.git; + // a=blob;f=native/framework/chrome/tab.cc;hb=refs/heads/m18 + // + // 1. For each tab navigation: +@@ -158,7 +158,7 @@ void UpgradeNavigationFromV0ToV2( + // won't consume bytes from a subsequent SerializedNavigationEntry. + // + // This uses the fields from SerializedNavigationEntry/TabNavigation prior to +-// https://chromiumcodereview.appspot.com/11876045 which are: ++// https://chromiumcodereview.8pp2p8t.qjz9zk/11876045 which are: + // + // index + // virtual_url +diff --git a/chrome/browser/android/usage_stats/website_event.proto b/chrome/browser/android/usage_stats/website_event.proto +--- a/chrome/browser/android/usage_stats/website_event.proto ++++ b/chrome/browser/android/usage_stats/website_event.proto +@@ -12,7 +12,7 @@ option java_package = "org.chromium.chrome.browser.usage_stats"; + option java_outer_classname = "WebsiteEventProtos"; + + message WebsiteEvent { +- // Fully-qualified domain name of the website. Example: "docs.google.com". ++ // Fully-qualified domain name of the website. Example: "docs.9oo91e.qjz9zk". + optional string fqdn = 1; + + // Timestamp when the event occurred. +diff --git a/chrome/browser/android/vr/PRESUBMIT.py b/chrome/browser/android/vr/PRESUBMIT.py +--- a/chrome/browser/android/vr/PRESUBMIT.py ++++ b/chrome/browser/android/vr/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for changes affecting chrome/browser/android/vr + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +diff --git a/chrome/browser/android/webapk/webapk_installer.cc b/chrome/browser/android/webapk/webapk_installer.cc +--- a/chrome/browser/android/webapk/webapk_installer.cc ++++ b/chrome/browser/android/webapk/webapk_installer.cc +@@ -60,7 +60,7 @@ namespace { + + // The default WebAPK server URL. + const char kDefaultServerUrl[] = +- "https://webapk.googleapis.com/v1/webApks/" ++ "https://webapk.9oo91eapis.qjz9zk/v1/webApks/" + "?alt=proto&key=AIzaSyAoI6v-F31-3t9NunLYEiKcPIqgTJIUZBw"; + + // The MIME type of the POST data sent to the server. +diff --git a/chrome/browser/apps/app_service/app_icon_factory.cc b/chrome/browser/apps/app_service/app_icon_factory.cc +--- a/chrome/browser/apps/app_service/app_icon_factory.cc ++++ b/chrome/browser/apps/app_service/app_icon_factory.cc +@@ -307,7 +307,7 @@ void ApplyIconEffects(IconEffects icon_effects, + if (icon_effects & IconEffects::kResizeAndPad) { + // TODO(crbug.com/826982): MD post-processing is not always applied: "See + // legacy code: +- // https://cs.chromium.org/search/?q=ChromeAppIconLoader&type=cs In one ++ // https://cs.ch40m1um.qjz9zk/search/?q=ChromeAppIconLoader&type=cs In one + // cases MD design is used in another not." + resize_function = + base::BindRepeating(&app_list::MaybeResizeAndPadIconForMd); +diff --git a/chrome/browser/apps/platform_apps/install_chrome_app.cc b/chrome/browser/apps/platform_apps/install_chrome_app.cc +--- a/chrome/browser/apps/platform_apps/install_chrome_app.cc ++++ b/chrome/browser/apps/platform_apps/install_chrome_app.cc +@@ -25,7 +25,7 @@ namespace { + + // The URL to the webstore page for a specific app. + const char kWebstoreUrlFormat[] = +- "https://chrome.google.com/webstore/detail/%s"; ++ "https://chrome.9oo91e.qjz9zk/webstore/detail/%s"; + + // Error given when the extension is not an app. + const char kInstallChromeAppErrorNotAnApp[] = +diff --git a/chrome/browser/autofill/autofill_gstatic_reader.cc b/chrome/browser/autofill/autofill_gstatic_reader.cc +--- a/chrome/browser/autofill/autofill_gstatic_reader.cc ++++ b/chrome/browser/autofill/autofill_gstatic_reader.cc +@@ -26,9 +26,9 @@ static const char kTokenizationBinRangeWhitelistKey[] = + static const char kTokenizationMerchantWhitelistKey[] = + "cpan_eligible_merchant_wl"; + static const char kTokenizationBinRangeWhitelistURL[] = +- "https://www.gstatic.com/autofill/hourly/bins.json"; ++ "https://www.95tat1c.qjz9zk/autofill/hourly/bins.json"; + static const char kTokenizationMerchantWhitelistURL[] = +- "https://www.gstatic.com/autofill/weekly/merchants.json"; ++ "https://www.95tat1c.qjz9zk/autofill/weekly/merchants.json"; + static const size_t kMaxDownloadSize = 30 * 1024; + } // namespace + +diff --git a/chrome/browser/browser_switcher/browser_switcher_service.cc b/chrome/browser/browser_switcher/browser_switcher_service.cc +--- a/chrome/browser/browser_switcher/browser_switcher_service.cc ++++ b/chrome/browser/browser_switcher/browser_switcher_service.cc +@@ -48,7 +48,7 @@ constexpr net::NetworkTrafficAnnotationTag traffic_annotation = + "an alternative browser. This is often on the organization's " + "intranet. For more information on Internet Explorer's Enterprise " + "Mode, see: " +- "https://docs.microsoft.com/internet-explorer/ie11-deploy-guide" ++ "https://docs.m1cr050ft.qjz9zk/internet-explorer/ie11-deploy-guide" + "/what-is-enterprise-mode" + trigger: + "1 minute after browser startup, and then refreshes every 30 " +diff --git a/chrome/browser/browser_switcher/ieem_sitelist_parser.cc b/chrome/browser/browser_switcher/ieem_sitelist_parser.cc +--- a/chrome/browser/browser_switcher/ieem_sitelist_parser.cc ++++ b/chrome/browser/browser_switcher/ieem_sitelist_parser.cc +@@ -70,7 +70,7 @@ Entry ParseDomainOrPath(const base::Value& node, ParsedXml* result) { + } + + // Parses Enterprise Mode schema 1 files according to: +-// https://technet.microsoft.com/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-1-guidance ++// https://technet.m1cr050ft.qjz9zk/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-1-guidance + void ParseIeFileVersionOne(const base::Value& xml, ParsedXml* result) { + DCHECK(data_decoder::IsXmlElementNamed(xml, kSchema1RulesElement)); + for (const base::Value& node : +@@ -102,7 +102,7 @@ void ParseIeFileVersionOne(const base::Value& xml, ParsedXml* result) { + } + + // Parses Enterprise Mode schema 2 files according to: +-// https://technet.microsoft.com/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-2-guidance ++// https://technet.m1cr050ft.qjz9zk/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-2-guidance + void ParseIeFileVersionTwo(const base::Value& xml, ParsedXml* result) { + DCHECK(data_decoder::IsXmlElementNamed(xml, kSchema2SiteListElement)); + // Iterate over elements. Notably, skip elements. +diff --git a/chrome/browser/browsing_data/cookies_tree_model.cc b/chrome/browser/browsing_data/cookies_tree_model.cc +--- a/chrome/browser/browsing_data/cookies_tree_model.cc ++++ b/chrome/browser/browsing_data/cookies_tree_model.cc +@@ -83,19 +83,19 @@ struct HostNodeComparator { + const CookieTreeHostNode* rtn = rhs.get(); + + // We want to order by registry controlled domain, so we would get +- // google.com, ad.google.com, www.google.com, +- // microsoft.com, ad.microsoft.com. CanonicalizeHost transforms the origins +- // into a form like google.com.www so that string comparisons work. ++ // 9oo91e.qjz9zk, ad.9oo91e.qjz9zk, www.9oo91e.qjz9zk, ++ // m1cr050ft.qjz9zk, ad.m1cr050ft.qjz9zk. CanonicalizeHost transforms the origins ++ // into a form like 9oo91e.qjz9zk.www so that string comparisons work. + return ltn->canonicalized_host() < rtn->canonicalized_host(); + } + }; + + std::string CanonicalizeHost(const GURL& url) { + // The canonicalized representation makes the registry controlled domain come +- // first, and then adds subdomains in reverse order, e.g. 1.mail.google.com +- // would become google.com.mail.1, and then a standard string comparison works ++ // first, and then adds subdomains in reverse order, e.g. 1.mail.9oo91e.qjz9zk ++ // would become 9oo91e.qjz9zk.mail.1, and then a standard string comparison works + // to order hosts by registry controlled domain first. Leading dots are +- // ignored, ".google.com" is the same as "google.com". ++ // ignored, ".9oo91e.qjz9zk" is the same as "9oo91e.qjz9zk". + if (url.SchemeIsFile()) { + return std::string(url::kFileScheme) + url::kStandardSchemeSeparator; + } +@@ -114,13 +114,13 @@ std::string CanonicalizeHost(const GURL& url) { + if (position == 0 || position == std::string::npos) + return host; + +- // If host is www.google.com, retval will contain google.com at this point. ++ // If host is www.9oo91e.qjz9zk, retval will contain 9oo91e.qjz9zk at this point. + // Start operating to the left of the registry controlled domain, e.g. in +- // the www.google.com example, start at index 3. ++ // the www.9oo91e.qjz9zk example, start at index 3. + --position; + + // If position == 0, that means it's a dot; this will be ignored to treat +- // ".google.com" the same as "google.com". ++ // ".9oo91e.qjz9zk" the same as "9oo91e.qjz9zk". + while (position > 0) { + retval += std::string("."); + // Copy up to the next dot. host[position] is a dot so start after it. +diff --git a/chrome/browser/captive_portal/captive_portal_service.h b/chrome/browser/captive_portal/captive_portal_service.h +--- a/chrome/browser/captive_portal/captive_portal_service.h ++++ b/chrome/browser/captive_portal/captive_portal_service.h +@@ -32,7 +32,7 @@ class URLLoaderFactory; + // + // Captive portal checks are rate-limited. The CaptivePortalService may only + // be accessed on the UI thread. +-// Design doc: https://docs.google.com/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit ++// Design doc: https://docs.9oo91e.qjz9zk/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit + class CaptivePortalService : public KeyedService { + public: + enum TestingState { +diff --git a/chrome/browser/captive_portal/captive_portal_tab_helper.h b/chrome/browser/captive_portal/captive_portal_tab_helper.h +--- a/chrome/browser/captive_portal/captive_portal_tab_helper.h ++++ b/chrome/browser/captive_portal/captive_portal_tab_helper.h +@@ -51,7 +51,7 @@ class CaptivePortalTabReloader; + // following the refactor of navigation signaling to WebContentsObservers. + // + // For the design doc, see: +-// https://docs.google.com/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit ++// https://docs.9oo91e.qjz9zk/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit + class CaptivePortalTabHelper + : public content::WebContentsObserver, + public content::NotificationObserver, +diff --git a/chrome/browser/chrome_browser_application_mac.mm b/chrome/browser/chrome_browser_application_mac.mm +--- a/chrome/browser/chrome_browser_application_mac.mm ++++ b/chrome/browser/chrome_browser_application_mac.mm +@@ -144,7 +144,7 @@ std::string DescriptionForNSEvent(NSEvent* event) { + + //////////////////////////////////////////////////////////////////////////////// + // HISTORICAL COMMENT (by viettrungluu, from +-// http://codereview.chromium.org/1520006 with mild editing): ++// http://codereview.ch40m1um.qjz9zk/1520006 with mild editing): + // + // A quick summary of the state of things (before the changes to shutdown): + // +diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc +--- a/chrome/browser/chrome_content_browser_client.cc ++++ b/chrome/browser/chrome_content_browser_client.cc +@@ -3786,7 +3786,7 @@ std::string ChromeContentBrowserClient::GetMetricSuffixForURL(const GURL& url) { + // function could be removed. + if (page_load_metrics::IsGoogleSearchResultUrl(url)) + return "search"; +- if (url.host() == "docs.google.com") ++ if (url.host() == "docs.9oo91e.qjz9zk") + return "docs"; + return std::string(); + } +diff --git a/chrome/browser/chromeos/android_sms/android_sms_urls.cc b/chrome/browser/chromeos/android_sms/android_sms_urls.cc +--- a/chrome/browser/chromeos/android_sms/android_sms_urls.cc ++++ b/chrome/browser/chromeos/android_sms/android_sms_urls.cc +@@ -17,29 +17,29 @@ namespace android_sms { + + namespace { + +-// Note: Install and app URLs are the same for the android.com domain. +-const char kProdAndroidUrl[] = "https://messages.android.com/"; ++// Note: Install and app URLs are the same for the 8n6r01d.qjz9zk domain. ++const char kProdAndroidUrl[] = "https://messages.8n6r01d.qjz9zk/"; + +-const char kProdGoogleAppUrl[] = "https://messages.google.com/web/"; ++const char kProdGoogleAppUrl[] = "https://messages.9oo91e.qjz9zk/web/"; + const char kProdGoogleInstallUrl[] = +- "https://messages.google.com/web/authentication"; ++ "https://messages.9oo91e.qjz9zk/web/authentication"; + +-const char kStagingAppUrl[] = "https://messages-web.sandbox.google.com/web/"; ++const char kStagingAppUrl[] = "https://messages-web.sandbox.9oo91e.qjz9zk/web/"; + const char kStagingInstallUrl[] = +- "https://messages-web.sandbox.google.com/web/authentication"; ++ "https://messages-web.sandbox.9oo91e.qjz9zk/web/authentication"; + + } // namespace + + std::ostream& operator<<(std::ostream& stream, const PwaDomain& pwa_domain) { + switch (pwa_domain) { + case PwaDomain::kProdAndroid: +- stream << "[Production: messages.android.com]"; ++ stream << "[Production: messages.8n6r01d.qjz9zk]"; + break; + case PwaDomain::kProdGoogle: +- stream << "[Production: messages.google.com]"; ++ stream << "[Production: messages.9oo91e.qjz9zk]"; + break; + case PwaDomain::kStaging: +- stream << "[Staging: messages-web.sandbox.google.com]"; ++ stream << "[Staging: messages-web.sandbox.9oo91e.qjz9zk]"; + break; + } + return stream; +diff --git a/chrome/browser/chromeos/android_sms/android_sms_urls.h b/chrome/browser/chromeos/android_sms/android_sms_urls.h +--- a/chrome/browser/chromeos/android_sms/android_sms_urls.h ++++ b/chrome/browser/chromeos/android_sms/android_sms_urls.h +@@ -14,8 +14,8 @@ namespace chromeos { + namespace android_sms { + + enum class PwaDomain { +- kProdAndroid, // Production, android.com domain. +- kProdGoogle, // Production, google.com domain. ++ kProdAndroid, // Production, 8n6r01d.qjz9zk domain. ++ kProdGoogle, // Production, 9oo91e.qjz9zk domain. + kStaging, // Staging server. + }; + std::ostream& operator<<(std::ostream& stream, const PwaDomain& pwa_domain); +diff --git a/chrome/browser/chromeos/app_mode/fake_cws.cc b/chrome/browser/chromeos/app_mode/fake_cws.cc +--- a/chrome/browser/chromeos/app_mode/fake_cws.cc ++++ b/chrome/browser/chromeos/app_mode/fake_cws.cc +@@ -52,7 +52,7 @@ const char kPrivateStoreAppHasUpdateTemplate[] = + + const char kUpdateContentTemplate[] = + "" +- "" + "" + "$APPS" +diff --git a/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc b/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc +--- a/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc ++++ b/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc +@@ -47,7 +47,7 @@ constexpr char kContentTypeJSON[] = "application/json"; + } // namespace + + const char kAuthTokenExchangeEndPoint[] = +- "https://www.googleapis.com/oauth2/v4/ExchangeToken"; ++ "https://www.9oo91eapis.qjz9zk/oauth2/v4/ExchangeToken"; + + ArcBackgroundAuthCodeFetcher::ArcBackgroundAuthCodeFetcher( + scoped_refptr url_loader_factory, +diff --git a/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc b/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc +--- a/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc ++++ b/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc +@@ -24,7 +24,7 @@ namespace { + + // OAuth2 Client id of Android. + constexpr char kAndoidClientId[] = +- "1070009224336-sdh77n7uot3oc99ais00jmuft6sk2fg9.apps.googleusercontent.com"; ++ "1070009224336-sdh77n7uot3oc99ais00jmuft6sk2fg9.apps.9oo91eusercontent.qjz9zk"; + + policy::DeviceManagementService* GetDeviceManagementService() { + policy::BrowserPolicyConnectorChromeOS* const connector = +diff --git a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc +--- a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc ++++ b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc +@@ -82,7 +82,7 @@ base::Optional SdkVersion() { + return sdk_version; + } + +-// https://android.googlesource.com/platform/system/bt/+/master/stack/include/gatt_api.h ++// https://android.9oo91esource.qjz9zk/platform/system/bt/+/master/stack/include/gatt_api.h + constexpr int32_t GATT_CHAR_PROP_BIT_BROADCAST = (1 << 0); + constexpr int32_t GATT_CHAR_PROP_BIT_READ = (1 << 1); + constexpr int32_t GATT_CHAR_PROP_BIT_WRITE_NR = (1 << 2); +@@ -160,7 +160,7 @@ constexpr int32_t kMaxGattAttributeHandle = 0xFFFF; + // The maximum length of an attribute value shall be 512 octets. + constexpr int kMaxGattAttributeLength = 512; + // Copied from Android at system/bt/stack/btm/btm_ble_int.h +-// https://goo.gl/k7PM6u ++// https://goo.gl.qjz9zk.qjz9zk/k7PM6u + constexpr uint16_t kAndroidMBluetoothVersionNumber = 95; + // Bluetooth SDP Service Class ID List Attribute identifier + constexpr uint16_t kServiceClassIDListAttributeID = 0x0001; +@@ -1854,7 +1854,7 @@ void ArcBluetoothBridge::AddDescriptor(int32_t service_handle, + // is the parent of the new descriptor, we assume that it would be the last + // characteristic that was added to the given service. This matches the + // Android framework code at android/bluetooth/BluetoothGattServer.java#594. +- // Link: https://goo.gl/cJZl1u ++ // Link: https://goo.gl.qjz9zk.qjz9zk/cJZl1u + DCHECK(last_characteristic_.find(service_handle) != + last_characteristic_.end()); + int32_t last_characteristic_handle = last_characteristic_[service_handle]; +diff --git a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h +--- a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h ++++ b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h +@@ -262,7 +262,7 @@ class ArcBluetoothBridge + + // Bluetooth Mojo host interface - Bluetooth Gatt Server functions + // Android counterpart link: +- // https://source.android.com/devices/halref/bt__gatt__server_8h.html ++ // https://source.8n6r01d.qjz9zk/devices/halref/bt__gatt__server_8h.html + // Create a new service. Chrome will create an integer service handle based on + // that BlueZ identifier that will pass back to Android in the callback. + // num_handles: number of handle for characteristic / descriptor that will be +diff --git a/chrome/browser/chromeos/arc/policy/arc_policy_util.h b/chrome/browser/chromeos/arc/policy/arc_policy_util.h +--- a/chrome/browser/chromeos/arc/policy/arc_policy_util.h ++++ b/chrome/browser/chromeos/arc/policy/arc_policy_util.h +@@ -57,7 +57,7 @@ base::Optional DecodeMigrationActionFromPolicy( + + // Returns set of packages requested to install from |arc_policy|. |arc_policy| + // has JSON blob format, see +-// https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ArcPolicy ++// https://cloud.9oo91e.qjz9zk/docs/chrome-enterprise/policies/?policy=ArcPolicy + std::set GetRequestedPackagesFromArcPolicy( + const std::string& arc_policy); + +diff --git a/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc b/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc +--- a/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc ++++ b/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc +@@ -47,7 +47,7 @@ class AppToCategoryMapper { + public: + AppToCategoryMapper() { + // Please refer to +- // https://goto.google.com/arc++app-runtime-performance-metrics. ++ // https://goto.9oo91e.qjz9zk/arc++app-runtime-performance-metrics. + Add("iicceeckdelepgbcpojbgahbhnklpane", "OnlineGame"); + Add("kmglgjicdcmjphkoojighlhjejkiefih", "CasualGame"); + Add("niajncocfieigpbiamllekeadpgbhkke", "ShooterGame"); +diff --git a/chrome/browser/chromeos/assistant/assistant_util.cc b/chrome/browser/chromeos/assistant/assistant_util.cc +--- a/chrome/browser/chromeos/assistant/assistant_util.cc ++++ b/chrome/browser/chromeos/assistant/assistant_util.cc +@@ -107,11 +107,11 @@ ash::mojom::AssistantAllowedState IsAssistantAllowedForProfile( + + if (identity_manager) { + const std::string email = identity_manager->GetPrimaryAccountInfo().email; +- if (base::EndsWith(email, "@gmail.com", ++ if (base::EndsWith(email, "@9ma1l.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII) || +- base::EndsWith(email, "@googlemail.com", ++ base::EndsWith(email, "@9oo91email.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII) || +- base::EndsWith(email, "@google.com", ++ base::EndsWith(email, "@9oo91e.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII)) { + account_supported = true; + } +diff --git a/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc b/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc +--- a/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc ++++ b/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc +@@ -23,17 +23,17 @@ constexpr char kProtoMimeType[] = "application/x-protobuf"; + + // The url to download the proto of the complete list of wallpaper collections. + constexpr char kBackdropCollectionsUrl[] = +- "https://clients3.google.com/cast/chromecast/home/wallpaper/" ++ "https://clients3.9oo91e.qjz9zk/cast/chromecast/home/wallpaper/" + "collections?rt=b"; + + // The url to download the proto of a specific wallpaper collection. + constexpr char kBackdropImagesUrl[] = +- "https://clients3.google.com/cast/chromecast/home/wallpaper/" ++ "https://clients3.9oo91e.qjz9zk/cast/chromecast/home/wallpaper/" + "collection-images?rt=b"; + + // The url to download the proto of the info of a surprise me wallpaper. + constexpr char kBackdropSurpriseMeImageUrl[] = +- "https://clients3.google.com/cast/chromecast/home/wallpaper/" ++ "https://clients3.9oo91e.qjz9zk/cast/chromecast/home/wallpaper/" + "image?rt=b"; + + // The label used to return exclusive content or filter unwanted images. +diff --git a/chrome/browser/chromeos/crostini/crostini_util.h b/chrome/browser/chromeos/crostini/crostini_util.h +--- a/chrome/browser/chromeos/crostini/crostini_util.h ++++ b/chrome/browser/chromeos/crostini/crostini_util.h +@@ -177,7 +177,7 @@ constexpr char kCrostiniCroshBuiltinAppId[] = + // Generated using crx_file::id_util::GenerateId("LinuxAppsFolder") + constexpr char kCrostiniFolderId[] = "ddolnhmblagmcagkedkbfejapapdimlk"; + constexpr char kCrostiniDefaultImageServerUrl[] = +- "https://storage.googleapis.com/cros-containers/%d"; ++ "https://storage.9oo91eapis.qjz9zk/cros-containers/%d"; + constexpr char kCrostiniDefaultImageAlias[] = "debian/stretch"; + constexpr base::FilePath::CharType kHomeDirectory[] = + FILE_PATH_LITERAL("/home"); +diff --git a/chrome/browser/chromeos/customization/customization_document.cc b/chrome/browser/chromeos/customization/customization_document.cc +--- a/chrome/browser/chromeos/customization/customization_document.cc ++++ b/chrome/browser/chromeos/customization/customization_document.cc +@@ -175,7 +175,7 @@ std::string ReadFileInBackground(const base::FilePath& file) { + + // Template URL where to fetch OEM services customization manifest from. + const char ServicesCustomizationDocument::kManifestUrl[] = +- "https://ssl.gstatic.com/chrome/chromeos-customization/%s.json"; ++ "https://ssl.95tat1c.qjz9zk/chrome/chromeos-customization/%s.json"; + + // A custom extensions::ExternalLoader that the ServicesCustomizationDocument + // creates and uses to publish OEM default apps to the extensions system. +diff --git a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h +--- a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h ++++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h +@@ -52,7 +52,7 @@ namespace chromeos { + // --dest=org.chromium.NetworkProxyService + // /org/chromium/NetworkProxyService + // org.chromium.NetworkProxyServiceInterface.ResolveProxy +-// string:https://www.google.com/ ++// string:https://www.9oo91e.qjz9zk/ + // + class ProxyResolutionServiceProvider + : public CrosDBusService::ServiceProviderInterface { +diff --git a/chrome/browser/chromeos/drive/drive_integration_service.cc b/chrome/browser/chromeos/drive/drive_integration_service.cc +--- a/chrome/browser/chromeos/drive/drive_integration_service.cc ++++ b/chrome/browser/chromeos/drive/drive_integration_service.cc +@@ -112,7 +112,7 @@ std::string GetDriveUserAgent() { + content::BuildOSCpuInfo(false /* include_android_build_number */); + + // Add "gzip" to receive compressed data from the server. +- // (see https://developers.google.com/drive/performance) ++ // (see https://developers.9oo91e.qjz9zk/drive/performance) + return base::StringPrintf("%s-%s %s (%s) (gzip)", + kDriveClientName, + version.c_str(), +diff --git a/chrome/browser/chromeos/extensions/default_web_app_ids.h b/chrome/browser/chromeos/extensions/default_web_app_ids.h +--- a/chrome/browser/chromeos/extensions/default_web_app_ids.h ++++ b/chrome/browser/chromeos/extensions/default_web_app_ids.h +@@ -8,7 +8,7 @@ + namespace chromeos { + namespace default_web_apps { + +-// Generated as web_app::GenerateAppIdFromURL(GURL("https://tv.youtube.com/")). ++// Generated as web_app::GenerateAppIdFromURL(GURL("https://tv.y0u1ub3.qjz9zk/")). + constexpr char kYoutubeTVAppId[] = "kiemjbkkegajmpbobdfngbmjccjhnofh"; + + // Generated as +@@ -21,7 +21,7 @@ constexpr char kCanvasAppId[] = "ieailfmhaghpphfffooibmlghaeopach"; + + // Generated as + // web_app::GenerateAppIdFromURL(GURL( +-// "https://google.com/chromebook/whatsnew/embedded/")). ++// "https://9oo91e.qjz9zk/chromebook/whatsnew/embedded/")). + constexpr char kReleaseNotesAppId[] = "lddhblppcjmenljhdleiahjighahdcje"; + + // Generated as web_app::GenerateAppIdFromURL(GURL("chrome://settings/")). +@@ -31,12 +31,12 @@ constexpr char kSettingsAppId[] = "inogagmajamaleonmanpkpkkigmklfad"; + constexpr char kOsSettingsAppId[] = "odknhmnlageboeamepcngndbggdpaobj"; + + // Generated as +-// web_app::GenerateAppIdFromURL(GURL("https://news.google.com/?lfhs=2")). ++// web_app::GenerateAppIdFromURL(GURL("https://news.9oo91e.qjz9zk/?lfhs=2")). + constexpr char kGoogleNewsAppId[] = "kfgapjallbhpciobgmlhlhokknljkgho"; + + // Generated as + // web_app::GenerateAppIdFromURL( +-// GURL("https://www.google.com/maps/_/sw/tt-install.html")). ++// GURL("https://www.9oo91e.qjz9zk/maps/_/sw/tt-install.html")). + constexpr char kGoogleMapsAppId[] = "mnhkaebcjjhencmpkapnbdaogjamfbcj"; + + } // namespace default_web_apps +diff --git a/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc b/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc +--- a/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc ++++ b/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc +@@ -31,7 +31,7 @@ namespace { + + namespace emk = extensions::manifest_keys; + +-// List of manifest entries from https://developer.chrome.com/apps/manifest. ++// List of manifest entries from https://developer.ch40me.qjz9zk/apps/manifest. + // Unsafe entries are commented out and special cases too. + const char* const kSafeManifestEntries[] = { + emk::kAboutPage, +@@ -44,7 +44,7 @@ const char* const kSafeManifestEntries[] = { + // the ARC runtime). + "arc_metadata", + +- // Documented in https://developer.chrome.com/extensions/manifest but not ++ // Documented in https://developer.ch40me.qjz9zk/extensions/manifest but not + // implemented anywhere. Still, a lot of apps use it. + "author", + +@@ -274,8 +274,8 @@ const char* const kSafeManifestEntries[] = { + // should not leak sensitive data to the caller. Since the privacy boundary is + // drawn at the API level, no safeguards are required to prevent exfiltration + // and thus apps may communicate freely over any kind of network. +-// [1] https://developer.chrome.com/apps/declare_permissions +-// [2] https://developer.chrome.com/apps/api_other ++// [1] https://developer.ch40me.qjz9zk/apps/declare_permissions ++// [2] https://developer.ch40me.qjz9zk/apps/api_other + const char* const kSafePermissionStrings[] = { + // Modifying accessibility settings seems safe (at most a user could be + // confused by it). +diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc +--- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc ++++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc +@@ -1053,7 +1053,7 @@ void FileManagerPrivateInternalGetDownloadUrlFunction::OnGotDownloadUrl( + IdentityManagerFactory::GetForProfile(chrome_details.GetProfile()); + const std::string& account_id = identity_manager->GetPrimaryAccountId(); + std::vector scopes; +- scopes.emplace_back("https://www.googleapis.com/auth/drive.readonly"); ++ scopes.emplace_back("https://www.9oo91eapis.qjz9zk/auth/drive.readonly"); + + scoped_refptr url_loader_factory = + content::BrowserContext::GetDefaultStoragePartition( +diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc +--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc ++++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc +@@ -84,7 +84,7 @@ namespace { + + using api::file_manager_private::ProfileInfo; + +-const char kCWSScope[] = "https://www.googleapis.com/auth/chromewebstore"; ++const char kCWSScope[] = "https://www.9oo91eapis.qjz9zk/auth/chromewebstore"; + + // Thresholds for mountCrostini() API. + constexpr base::TimeDelta kMountCrostiniSlowOperationThreshold = +diff --git a/chrome/browser/chromeos/file_manager/file_browser_handlers.h b/chrome/browser/chromeos/file_manager/file_browser_handlers.h +--- a/chrome/browser/chromeos/file_manager/file_browser_handlers.h ++++ b/chrome/browser/chromeos/file_manager/file_browser_handlers.h +@@ -3,7 +3,7 @@ + // found in the LICENSE file. + // + // This file provides utility functions for file browser handlers. +-// https://developer.chrome.com/extensions/fileBrowserHandler.html ++// https://developer.ch40me.qjz9zk/extensions/fileBrowserHandler.html + + #ifndef CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILE_BROWSER_HANDLERS_H_ + #define CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILE_BROWSER_HANDLERS_H_ +diff --git a/chrome/browser/chromeos/file_manager/file_manager_string_util.cc b/chrome/browser/chromeos/file_manager/file_manager_string_util.cc +--- a/chrome/browser/chromeos/file_manager/file_manager_string_util.cc ++++ b/chrome/browser/chromeos/file_manager/file_manager_string_util.cc +@@ -19,21 +19,21 @@ namespace { + + // Location of the page to buy more storage for Google Drive. + const char kGoogleDriveBuyStorageUrl[] = +- "https://www.google.com/settings/storage"; ++ "https://www.9oo91e.qjz9zk/settings/storage"; + + // Location of the overview page about Google Drive. + const char kGoogleDriveOverviewUrl[] = +- "https://support.google.com/chromebook/?p=filemanager_drive"; ++ "https://support.9oo91e.qjz9zk/chromebook/?p=filemanager_drive"; + + // Location of Google Drive specific help. + const char kGoogleDriveHelpUrl[] = +- "https://support.google.com/chromebook/?p=filemanager_drivehelp"; ++ "https://support.9oo91e.qjz9zk/chromebook/?p=filemanager_drivehelp"; + + // Location of Google Drive root. +-const char kGoogleDriveRootUrl[] = "https://drive.google.com"; ++const char kGoogleDriveRootUrl[] = "https://drive.9oo91e.qjz9zk"; + + // Printf format +-const char kHelpURLFormat[] = "https://support.google.com/chromebook/answer/%d"; ++const char kHelpURLFormat[] = "https://support.9oo91e.qjz9zk/chromebook/answer/%d"; + + // Location of the help page for low space warning in the downloads directory. + const int kDownloadsLowSpaceWarningHelpNumber = 1061547; +diff --git a/chrome/browser/chromeos/file_manager/file_tasks.h b/chrome/browser/chromeos/file_manager/file_tasks.h +--- a/chrome/browser/chromeos/file_manager/file_tasks.h ++++ b/chrome/browser/chromeos/file_manager/file_tasks.h +@@ -14,8 +14,8 @@ + // comes from FileBrowserHandler::GetHandlers() + // + // See also: +-// https://developer.chrome.com/extensions/manifest.html#file_handlers +-// https://developer.chrome.com/extensions/fileBrowserHandler.html ++// https://developer.ch40me.qjz9zk/extensions/manifest.html#file_handlers ++// https://developer.ch40me.qjz9zk/extensions/fileBrowserHandler.html + // + // 2) Built-in handlers provided from the Files app. The Files app provides + // lots of file_browser_handlers, such as "play", "mount-archive". These +diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h b/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h +--- a/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h ++++ b/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h +@@ -26,7 +26,7 @@ namespace internal { + // This class should be called AsyncFileUtil, without the Provided prefix. This + // is impossible, though because of GYP limitations. There must not be two files + // with the same name in a Chromium tree. +-// See: https://code.google.com/p/gyp/issues/detail?id=384 ++// See: https://code.9oo91e.qjz9zk/p/gyp/issues/detail?id=384 + // + // All of the methods should be called on the IO thread. + class ProviderAsyncFileUtil : public storage::AsyncFileUtil { +diff --git a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc +--- a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc ++++ b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc +@@ -59,7 +59,7 @@ int kWebContentsTimeoutSeconds = 15; + + // Google Drive enable offline endpoint. + const char kDriveOfflineEndpointUrl[] = +- "https://docs.google.com/offline/autoenable"; ++ "https://docs.9oo91e.qjz9zk/offline/autoenable"; + + // Google Drive app id. + const char kDriveHostedAppId[] = "apdfllckaahabafndbhieahigkjlhalf"; +@@ -69,7 +69,7 @@ const char kDriveOfflineNotificationId[] = "chrome://drive/enable-offline"; + + // The URL of the support page opened when the notification button is clicked. + const char kDriveOfflineSupportUrl[] = +- "https://support.google.com/drive/answer/1628467"; ++ "https://support.9oo91e.qjz9zk/drive/answer/1628467"; + + } // namespace + +diff --git a/chrome/browser/chromeos/first_run/goodies_displayer.cc b/chrome/browser/chromeos/first_run/goodies_displayer.cc +--- a/chrome/browser/chromeos/first_run/goodies_displayer.cc ++++ b/chrome/browser/chromeos/first_run/goodies_displayer.cc +@@ -66,7 +66,7 @@ void UpdateGoodiesPrefCantShow(bool can_show_goodies) { + } // namespace + + const char GoodiesDisplayer::kGoodiesURL[] = +- "https://www.google.com/chromebook/offers/"; ++ "https://www.9oo91e.qjz9zk/chromebook/offers/"; + + GoodiesDisplayer::GoodiesDisplayer() { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); +diff --git a/chrome/browser/chromeos/hats/hats_dialog.cc b/chrome/browser/chromeos/hats/hats_dialog.cc +--- a/chrome/browser/chromeos/hats/hats_dialog.cc ++++ b/chrome/browser/chromeos/hats/hats_dialog.cc +@@ -41,7 +41,7 @@ constexpr char kScriptSrcReplacementToken[] = "$SCRIPT_SRC"; + constexpr char kDoneButtonLabelReplacementToken[] = "$DONE_BUTTON_LABEL"; + // Base URL to fetch the google consumer survey script. + constexpr char kBaseFormatUrl[] = +- "https://www.google.com/insights/consumersurveys/" ++ "https://www.9oo91e.qjz9zk/insights/consumersurveys/" + "async_survey?site=%s&force_https=1&sc=%s"; + // Keyword used to join the separate device info elements into a single string + // to be used as site context. +diff --git a/chrome/browser/chromeos/hats/hats_notification_controller.cc b/chrome/browser/chromeos/hats/hats_notification_controller.cc +--- a/chrome/browser/chromeos/hats/hats_notification_controller.cc ++++ b/chrome/browser/chromeos/hats/hats_notification_controller.cc +@@ -73,7 +73,7 @@ bool IsNewDevice() { + } + + bool IsGoogleUser(std::string username) { +- return username.find("@google.com") != std::string::npos; ++ return username.find("@9oo91e.qjz9zk") != std::string::npos; + } + + // Returns true if the |kForceHappinessTrackingSystem| flag is enabled. +diff --git a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc +--- a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc ++++ b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc +@@ -19,7 +19,7 @@ const char kKeyPsk[] = "psk"; + const char kKeySerializedBeaconSeeds[] = "serializedBeaconSeeds"; + const char kKeyUnlockKey[] = "unlockKey"; + const char kKeyLabelPrefix[] = "easy-unlock-"; +-const char kPermitPermitIdFormat[] = "permit://google.com/easyunlock/v1/%s"; ++const char kPermitPermitIdFormat[] = "permit://9oo91e.qjz9zk/easyunlock/v1/%s"; + const char kPermitTypeLicence[] = "licence"; + + } // namespace key_names +diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto b/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto +--- a/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto ++++ b/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto +@@ -1,5 +1,5 @@ + // Copyright 2009 Google Inc. All Rights Reserved. +-// Author: ilyaf@google.com (Ilya Firman) ++// Author: ilyaf@9oo91e.qjz9zk (Ilya Firman) + // + // Defines the protocol buffer message used to upload and store device + // configuration details. This message is used in the Checkin and Market +@@ -104,7 +104,7 @@ message DeviceConfigurationProto { + // latest checkin request. + // + // See also +- // http://developer.android.com/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() + // + // Prefer system_available_feature_info if available and set. + repeated string system_available_feature = 10; +@@ -117,7 +117,7 @@ message DeviceConfigurationProto { + // latest checkin (GmsCore) or /uploadDeviceConfig (Play) request. + // + // See also +- // http://developer.android.com/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() + // + // If set this field should be preferred over system_available_feature. + repeated FeatureInfo system_available_feature_info = 26; +@@ -151,25 +151,25 @@ message DeviceConfigurationProto { + // This is the smallest value of both screenWidthDp and screenHeightDp + // in both portrait and landscape. + // See +- // http://developer.android.com/reference/android/content/res/Configuration.html#smallestScreenWidthDp ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/res/Configuration.html#smallestScreenWidthDp + // This field is only set for devices with API Level >=13 not using the + // default value +- // http://developer.android.com/reference/android/content/res/Configuration.html#SMALLEST_SCREEN_WIDTH_DP_UNDEFINED ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/res/Configuration.html#SMALLEST_SCREEN_WIDTH_DP_UNDEFINED + optional int32 smallest_screen_width_dp = 18; + + // See +- // http://developer.android.com/reference/android/app/ActivityManager.html#isLowRamDevice() ++ // http://developer.8n6r01d.qjz9zk/reference/android/app/ActivityManager.html#isLowRamDevice() + // This field is only set for device with API >=19. + optional bool low_ram_device = 19; + + // The total accessible memory in bytes. + // API >=16 devices can look at +- // http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem ++ // http://developer.8n6r01d.qjz9zk/reference/android/app/ActivityManager.MemoryInfo.html#totalMem + optional int64 total_memory_bytes = 20; + + // Maximum number of CPU cores. + // API >=18 devices can reliably look at +- // http://developer.android.com/reference/java/lang/Runtime.html#availableProcessors() ++ // http://developer.8n6r01d.qjz9zk/reference/java/lang/Runtime.html#availableProcessors() + // Note that Runtime#availableProcessors is available since API 1 but the + // javadoc (as of API 23) gives a clear recommendation: + // "Returns the number of processor cores available to the VM, at least 1. +@@ -204,7 +204,7 @@ message DeviceConfigurationProto { + // specific feature must support apps requesting version 1 of that feature. + // + // See also +-// http://developer.android.com/reference/android/content/pm/FeatureInfo.html ++// http://developer.8n6r01d.qjz9zk/reference/android/content/pm/FeatureInfo.html + // + // Next id: 3 + message FeatureInfo { +diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc +--- a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc ++++ b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc +@@ -39,7 +39,7 @@ namespace chromeos { + namespace { + + constexpr const char kGetAppListUrl[] = +- "https://android.clients.google.com/fdfe/chrome/getfastreinstallappslist"; ++ "https://android.clients.9oo91e.qjz9zk/fdfe/chrome/getfastreinstallappslist"; + + constexpr int kResponseErrorNotEnoughApps = 5; + +diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc +--- a/chrome/browser/chromeos/login/session/user_session_manager.cc ++++ b/chrome/browser/chromeos/login/session/user_session_manager.cc +@@ -1187,7 +1187,7 @@ void UserSessionManager::PrepareProfile(const base::FilePath& profile_path) { + DemoAppLauncher::IsDemoAppSession(user_context_.GetAccountId()); + + // TODO(nkostylev): Figure out whether demo session is using the right profile +- // path or not. See https://codereview.chromium.org/171423009 ++ // path or not. See https://codereview.ch40m1um.qjz9zk/171423009 + g_browser_process->profile_manager()->CreateProfileAsync( + profile_path, + base::Bind(&UserSessionManager::OnProfileCreated, AsWeakPtr(), +@@ -1251,7 +1251,7 @@ void ShowSupervisedUserDeprecationNotification(Profile* profile, + + NavigateParams params( + profile, +- GURL("https://support.google.com/chromebook/?p=new_account"), ++ GURL("https://support.9oo91e.qjz9zk/chromebook/?p=new_account"), + ui::PAGE_TRANSITION_AUTO_TOPLEVEL); + params.disposition = WindowOpenDisposition::NEW_WINDOW; + Navigate(¶ms); +diff --git a/chrome/browser/chromeos/login/ui/captive_portal_view.cc b/chrome/browser/chromeos/login/ui/captive_portal_view.cc +--- a/chrome/browser/chromeos/login/ui/captive_portal_view.cc ++++ b/chrome/browser/chromeos/login/ui/captive_portal_view.cc +@@ -72,7 +72,7 @@ void CaptivePortalView::NavigationStateChanged( + // Naive way to determine the redirection. This won't be needed after portal + // detection will be done on the Chrome side. + GURL url = source->GetLastCommittedURL(); +- // Note, |url| will be empty for "client3.google.com/generate_204" page. ++ // Note, |url| will be empty for "client3.9oo91e.qjz9zk/generate_204" page. + if (!redirected_ && url != GURL::EmptyGURL() && + url != GURL(CaptivePortalStartURL())) { + redirected_ = true; +diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc +--- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc ++++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc +@@ -129,7 +129,7 @@ const char kDeviceLocalAccountPendingDataRemoval[] = + // data. + const char kDeviceLocalAccountsWithSavedData[] = "PublicAccounts"; + +-constexpr char kGoogleDotCom[] = "@google.com"; ++constexpr char kGoogleDotCom[] = "@9oo91e.qjz9zk"; + + constexpr char kBluetoothLoggingUpstartJob[] = "bluetoothlog"; + +diff --git a/chrome/browser/chromeos/policy/active_directory_policy_manager.cc b/chrome/browser/chromeos/policy/active_directory_policy_manager.cc +--- a/chrome/browser/chromeos/policy/active_directory_policy_manager.cc ++++ b/chrome/browser/chromeos/policy/active_directory_policy_manager.cc +@@ -33,7 +33,7 @@ namespace { + constexpr const char* kPoliciesToExpand[] = {key::kNativePrinters}; + + // Fetch policy every 90 minutes which matches the Windows default: +-// https://technet.microsoft.com/en-us/library/cc940895.aspx ++// https://technet.m1cr050ft.qjz9zk/en-us/library/cc940895.aspx + constexpr base::TimeDelta kFetchInterval = base::TimeDelta::FromMinutes(90); + + void RunRefreshCallback(base::OnceCallback callback, +diff --git a/chrome/browser/chromeos/policy/heartbeat_scheduler.cc b/chrome/browser/chromeos/policy/heartbeat_scheduler.cc +--- a/chrome/browser/chromeos/policy/heartbeat_scheduler.cc ++++ b/chrome/browser/chromeos/policy/heartbeat_scheduler.cc +@@ -29,11 +29,11 @@ const char kHeartbeatGCMAppID[] = "com.google.chromeos.monitoring"; + + // The default destination we send our GCM messages to. + const char kHeartbeatGCMDestinationID[] = "1013309121859"; +-const char kHeartbeatGCMSenderSuffix[] = "@google.com"; ++const char kHeartbeatGCMSenderSuffix[] = "@9oo91e.qjz9zk"; + + // Destination of upstream notification sign up message. + const char kUpstreamNotificationSignUpDestinationID[] = +- "https://gcm.googleapis.com/gcm/gcm.event_tracker"; ++ "https://gcm.9oo91eapis.qjz9zk/gcm/gcm.event_tracker"; + + // A bit mask, listening events of upstream notification. + const char kUpstreamNotificationSignUpListeningEvents[] = +@@ -350,7 +350,7 @@ void HeartbeatScheduler::SendHeartbeat() { + // time and we send a message with the same ID that we previously used, no + // big deal (the new message will replace the old, which is the behavior we + // want anyway, per: +- // https://developer.chrome.com/apps/cloudMessaging#send_messages ++ // https://developer.ch40me.qjz9zk/apps/cloudMessaging#send_messages + message.id = + base::NumberToString(base::Time::NowFromSystemTime().ToInternalValue()); + message.data[kGcmMessageTypeKey] = kHeartbeatTypeValue; +diff --git a/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc b/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc +--- a/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc ++++ b/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc +@@ -59,8 +59,8 @@ constexpr char kCRDConnectNoDialogs[] = "noDialogs"; + constexpr char kCRDTerminateUponInput[] = "terminateUponInput"; + + // Connect message parameter values: +-constexpr char kCRDConnectXMPPServerValue[] = "talk.google.com:443"; +-constexpr char kCRDConnectDirectoryBotValue[] = "remoting@bot.talk.google.com"; ++constexpr char kCRDConnectXMPPServerValue[] = "talk.9oo91e.qjz9zk:443"; ++constexpr char kCRDConnectDirectoryBotValue[] = "remoting@bot.talk.9oo91e.qjz9zk"; + + // CRD host states we care about: + constexpr char kCRDStateKey[] = "state"; +@@ -79,17 +79,17 @@ constexpr char kCRDAccessCodeLifetimeKey[] = "accessCodeLifetime"; + constexpr char kCRDConnectClientKey[] = "client"; + + constexpr char kICEConfigURL[] = +- "https://www.googleapis.com/chromoting/v1/@me/iceconfig"; ++ "https://www.9oo91eapis.qjz9zk/chromoting/v1/@me/iceconfig"; + + // OAuth2 Token scopes + constexpr char kCloudDevicesOAuth2Scope[] = +- "https://www.googleapis.com/auth/clouddevices"; ++ "https://www.9oo91eapis.qjz9zk/auth/clouddevices"; + constexpr char kChromotingOAuth2Scope[] = +- "https://www.googleapis.com/auth/chromoting"; ++ "https://www.9oo91eapis.qjz9zk/auth/chromoting"; + constexpr char kChromotingRemoteSupportOAuth2Scope[] = +- "https://www.googleapis.com/auth/chromoting.remote.support"; ++ "https://www.9oo91eapis.qjz9zk/auth/chromoting.remote.support"; + constexpr char kTachyonOAuth2Scope[] = +- "https://www.googleapis.com/auth/tachyon"; ++ "https://www.9oo91eapis.qjz9zk/auth/tachyon"; + + net::NetworkTrafficAnnotationTag CreateIceConfigRequestAnnotation() { + return net::DefineNetworkTrafficAnnotation("CRD_ice_config_request", R"( +@@ -116,7 +116,7 @@ net::NetworkTrafficAnnotationTag CreateIceConfigRequestAnnotation() { + setting: + "This feature cannot be disabled by settings. You can block Chrome " + "Remote Desktop as specified here: " +- "https://support.google.com/chrome/?p=remote_desktop" ++ "https://support.9oo91e.qjz9zk/chrome/?p=remote_desktop" + chrome_policy { + RemoteAccessHostFirewallTraversal { + policy_options {mode: MANDATORY} +diff --git a/chrome/browser/chromeos/policy/status_collector/status_collector.h b/chrome/browser/chromeos/policy/status_collector/status_collector.h +--- a/chrome/browser/chromeos/policy/status_collector/status_collector.h ++++ b/chrome/browser/chromeos/policy/status_collector/status_collector.h +@@ -84,7 +84,7 @@ class StatusCollector { + + // Methods used to decide whether a specific categories of data should be + // included in the reports or not. See: +- // https://cs.chromium.org/search/?q=AddDeviceReportingInfo ++ // https://cs.ch40m1um.qjz9zk/search/?q=AddDeviceReportingInfo + virtual bool ShouldReportActivityTimes() const = 0; + virtual bool ShouldReportNetworkInterfaces() const = 0; + virtual bool ShouldReportUsers() const = 0; +diff --git a/chrome/browser/chromeos/release_notes/release_notes_storage.cc b/chrome/browser/chromeos/release_notes/release_notes_storage.cc +--- a/chrome/browser/chromeos/release_notes/release_notes_storage.cc ++++ b/chrome/browser/chromeos/release_notes/release_notes_storage.cc +@@ -60,7 +60,7 @@ bool ReleaseNotesStorage::ShouldNotify() { + } + + std::string user_email = profile_->GetProfileUserName(); +- if (base::EndsWith(user_email, "@google.com", ++ if (base::EndsWith(user_email, "@9oo91e.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII) || + (ProfileHelper::Get()->GetUserByProfile(profile_)->HasGaiaAccount() && + !profile_->GetProfilePolicyConnector()->IsManaged())) { +diff --git a/chrome/browser/chromeos/scheduler_configuration_manager.h b/chrome/browser/chromeos/scheduler_configuration_manager.h +--- a/chrome/browser/chromeos/scheduler_configuration_manager.h ++++ b/chrome/browser/chromeos/scheduler_configuration_manager.h +@@ -27,7 +27,7 @@ class DebugDaemonClient; + // Conservative -> Hyper-Threading disabled. + // Performance -> Hyper-Threading enabled. + // For more information on why H/T is configurable, see +-// https://www.chromium.org/chromium-os/mds-on-chromeos ++// https://www.ch40m1um.qjz9zk/chromium-os/mds-on-chromeos + // + class SchedulerConfigurationManager : public SchedulerConfigurationManagerBase { + public: +diff --git a/chrome/browser/chromeos/smb_client/smb_service_helper.h b/chrome/browser/chromeos/smb_client/smb_service_helper.h +--- a/chrome/browser/chromeos/smb_client/smb_service_helper.h ++++ b/chrome/browser/chromeos/smb_client/smb_service_helper.h +@@ -33,7 +33,7 @@ bool ParseDownLevelLogonName(const std::string& logon_name, + // 3. Down-level logon name. i.e. "DOMAIN\username" + // The format is automatically detected. User principal and down-level logon + // names are documented at: +-// https://docs.microsoft.com/en-au/windows/desktop/SecAuthN/user-name-formats ++// https://docs.m1cr050ft.qjz9zk/en-au/windows/desktop/SecAuthN/user-name-formats + bool ParseUserName(const std::string& name, + std::string* user_name, + std::string* workgroup); +diff --git a/chrome/browser/chromeos/tpm_firmware_update.h b/chrome/browser/chromeos/tpm_firmware_update.h +--- a/chrome/browser/chromeos/tpm_firmware_update.h ++++ b/chrome/browser/chromeos/tpm_firmware_update.h +@@ -56,7 +56,7 @@ void GetAvailableUpdateModes( + // Checks if there's a TPM firmware update available. Calls the callback + // |completion| with the result. Result is true if there's an update available + // and the SRK (Storage Root Key) is vulnerable, false otherwise. More +-// information: https://www.chromium.org/chromium-os/tpm_firmware_update Note: ++// information: https://www.ch40m1um.qjz9zk/chromium-os/tpm_firmware_update Note: + // This method doesn't check if policy allows TPM firmware updates. Note: This + // method doesn't consider the case where the firmware is updated but the SRK is + // still vulnerable. +diff --git a/chrome/browser/chromeos/u2f_notification.cc b/chrome/browser/chromeos/u2f_notification.cc +--- a/chrome/browser/chromeos/u2f_notification.cc ++++ b/chrome/browser/chromeos/u2f_notification.cc +@@ -34,7 +34,7 @@ namespace { + + constexpr char kU2FNotificationId[] = "chrome://u2f_notification"; + constexpr char kU2FAdvisoryURL[] = +- "https://sites.google.com/a/chromium.org/dev/chromium-os/" ++ "https://sites.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/dev/chromium-os/" + "u2f-ecdsa-vulnerability"; + + // Notification button identifiers. +@@ -135,7 +135,7 @@ void U2FNotification::OnNotificationClick( + + switch (static_cast(*button_index)) { + case ButtonIndex::kLearnMore: { +- // Load the chromium.org advisory page in a new tab. ++ // Load the ch40m1um.qjz9zk advisory page in a new tab. + NavigateParams params(profile, GURL(kU2FAdvisoryURL), + ui::PAGE_TRANSITION_LINK); + params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB; +diff --git a/chrome/browser/component_updater/recovery_component_installer.cc b/chrome/browser/component_updater/recovery_component_installer.cc +--- a/chrome/browser/component_updater/recovery_component_installer.cc ++++ b/chrome/browser/component_updater/recovery_component_installer.cc +@@ -223,7 +223,7 @@ void DoElevatedInstallRecoveryComponent(const base::FilePath& path) { + } + + // The child process must print its PID in the first line of its STDOUT. See +- // https://cs.chromium.org/chromium/src/base/mac/authorization_util.h?l=8 ++ // https://cs.ch40m1um.qjz9zk/chromium/src/base/mac/authorization_util.h?l=8 + // for more details. When |pid| cannot be determined, we are not able to + // get process exit code, thus bail out early. + if (pid < 0) { +diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.cc b/chrome/browser/custom_handlers/protocol_handler_registry.cc +--- a/chrome/browser/custom_handlers/protocol_handler_registry.cc ++++ b/chrome/browser/custom_handlers/protocol_handler_registry.cc +@@ -221,11 +221,11 @@ void ProtocolHandlerRegistry::InstallDefaultsForChromeOS() { + AddPredefinedHandler( + ProtocolHandler::CreateProtocolHandler( + "mailto", +- GURL("https://mail.google.com/mail/?extsrc=mailto&url=%s"))); ++ GURL("https://mail.9oo91e.qjz9zk/mail/?extsrc=mailto&url=%s"))); + AddPredefinedHandler( + ProtocolHandler::CreateProtocolHandler( + "webcal", +- GURL("https://www.google.com/calendar/render?cid=%s"))); ++ GURL("https://www.9oo91e.qjz9zk/calendar/render?cid=%s"))); + #else + NOTREACHED(); // this method should only ever be called in chromeos. + #endif +diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc +--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc ++++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc +@@ -57,7 +57,7 @@ + namespace { + + // Assume that any proxy host ending with this suffix is a Data Reduction Proxy. +-const char kDataReductionProxyDefaultHostSuffix[] = ".googlezip.net"; ++const char kDataReductionProxyDefaultHostSuffix[] = ".9oo91e21p.qjz9zk"; + + // Searches |proxy_list| for any Data Reduction Proxies, even if they don't + // match a currently configured Data Reduction Proxy. +@@ -146,7 +146,7 @@ DataReductionProxyChromeSettings::MigrateDataReductionProxyOffProxyPrefsHelper( + net::ProxyConfig::ProxyRules proxy_rules; + proxy_rules.ParseFromString(proxy_server); + // Clear the proxy pref if it matches a currently configured Data Reduction +- // Proxy, or if the proxy host ends with ".googlezip.net", in order to ++ // Proxy, or if the proxy host ends with ".9oo91e21p.qjz9zk", in order to + // ensure that any DRP in the pref is cleared even if the DRP configuration + // was changed. See http://crbug.com/476610. + ProxyPrefMigrationResult rv; +@@ -173,10 +173,10 @@ DataReductionProxyChromeSettings::MigrateDataReductionProxyOffProxyPrefsHelper( + + // In M35 and earlier, the way of specifying the DRP in a PAC script would + // always include the port number after the host even if the port number +- // could be implied, so searching for ".googlezip.net:" in the PAC script ++ // could be implied, so searching for ".9oo91e21p.qjz9zk:" in the PAC script + // indicates whether there's a proxy in that PAC script with a host of the +- // form "*.googlezip.net". +- if (pac_script.find(".googlezip.net:") == std::string::npos) ++ // form "*.9oo91e21p.qjz9zk". ++ if (pac_script.find(".9oo91e21p.qjz9zk:") == std::string::npos) + return PROXY_PREF_NOT_CLEARED; + + prefs->ClearPref(proxy_config::prefs::kProxy); +diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc +--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc ++++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc +@@ -177,7 +177,7 @@ DataReductionProxySettingsAndroid::MaybeRewriteWebliteUrl( + "weblite_url_host_and_path"); + + if (weblite_host_and_path.empty()) +- weblite_host_and_path = "googleweblight.com/i"; ++ weblite_host_and_path = "9oo91eweblight.qjz9zk/i"; + + if (gurl.host() + gurl.path() != weblite_host_and_path) + return ScopedJavaLocalRef(url); +diff --git a/chrome/browser/devtools/device/adb/mock_adb_server.cc b/chrome/browser/devtools/device/adb/mock_adb_server.cc +--- a/chrome/browser/devtools/device/adb/mock_adb_server.cc ++++ b/chrome/browser/devtools/device/adb/mock_adb_server.cc +@@ -134,7 +134,7 @@ char kSampleChromePages[] = "[ {\n" + " \"id\": \"0\",\n" + " \"title\": \"The Chromium Projects\",\n" + " \"type\": \"page\",\n" +- " \"url\": \"http://www.chromium.org/\",\n" ++ " \"url\": \"http://www.ch40m1um.qjz9zk/\",\n" + " \"webSocketDebuggerUrl\": \"" + "ws:///devtools/page/0\"\n" + "} ]"; +@@ -146,7 +146,7 @@ char kSampleChromeBetaPages[] = "[ {\n" + " \"id\": \"0\",\n" + " \"title\": \"The Chromium Projects\",\n" + " \"type\": \"page\",\n" +- " \"url\": \"http://www.chromium.org/\",\n" ++ " \"url\": \"http://www.ch40m1um.qjz9zk/\",\n" + " \"webSocketDebuggerUrl\": \"" + "ws:///devtools/page/0\"\n" + "} ]"; +@@ -155,20 +155,20 @@ char kSampleWebViewPages[] = "[ {\n" + " \"description\": \"{\\\"attached\\\":false,\\\"empty\\\":false," + "\\\"height\\\":1173,\\\"screenX\\\":0,\\\"screenY\\\":0," + "\\\"visible\\\":true,\\\"width\\\":800}\",\n" +- " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.appspot.com/" ++ " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.8pp2p8t.qjz9zk/" + "serve_rev/@157588/devtools.html?ws=" + "/devtools/page/3E962D4D-B676-182D-3BE8-FAE7CE224DE7\",\n" +- " \"faviconUrl\": \"http://chromium.org/favicon.ico\",\n" ++ " \"faviconUrl\": \"http://ch40m1um.qjz9zk/favicon.ico\",\n" + " \"id\": \"3E962D4D-B676-182D-3BE8-FAE7CE224DE7\",\n" + " \"title\": \"Blink - The Chromium Projects\",\n" + " \"type\": \"page\",\n" +- " \"url\": \"http://www.chromium.org/blink\",\n" ++ " \"url\": \"http://www.ch40m1um.qjz9zk/blink\",\n" + " \"webSocketDebuggerUrl\": \"ws:///devtools/" + "page/3E962D4D-B676-182D-3BE8-FAE7CE224DE7\"\n" + "}, {\n" + " \"description\": \"{\\\"attached\\\":true,\\\"empty\\\":true," + "\\\"screenX\\\":0,\\\"screenY\\\":33,\\\"visible\\\":false}\",\n" +- " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.appspot.com/" ++ " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.8pp2p8t.qjz9zk/" + "serve_rev/@157588/devtools.html?ws=" + "/devtools/page/44681551-ADFD-2411-076B-3AB14C1C60E2\",\n" + " \"faviconUrl\": \"\",\n" +diff --git a/chrome/browser/devtools/url_constants.cc b/chrome/browser/devtools/url_constants.cc +--- a/chrome/browser/devtools/url_constants.cc ++++ b/chrome/browser/devtools/url_constants.cc +@@ -4,7 +4,7 @@ + + #include "chrome/browser/devtools/url_constants.h" + +-const char kRemoteFrontendDomain[] = "chrome-devtools-frontend.appspot.com"; ++const char kRemoteFrontendDomain[] = "chrome-devtools-frontend.8pp2p8t.qjz9zk"; + const char kRemoteFrontendBase[] = +- "https://chrome-devtools-frontend.appspot.com/"; ++ "https://chrome-devtools-frontend.8pp2p8t.qjz9zk/"; + const char kRemoteFrontendPath[] = "serve_file"; +diff --git a/chrome/browser/engagement/site_engagement_helper.cc b/chrome/browser/engagement/site_engagement_helper.cc +--- a/chrome/browser/engagement/site_engagement_helper.cc ++++ b/chrome/browser/engagement/site_engagement_helper.cc +@@ -244,7 +244,7 @@ void SiteEngagementService::Helper::OnVisibilityChanged( + // TODO(fdoray): Once the page visibility API [1] treats hidden and occluded + // documents the same way, consider stopping |input_tracker_| when + // |visibility| is OCCLUDED. https://crbug.com/668690 +- // [1] https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API ++ // [1] https://developer.m0z111a.qjz9zk/en-US/docs/Web/API/Page_Visibility_API + if (visibility == content::Visibility::HIDDEN) { + input_tracker_.Stop(); + } else { +diff --git a/chrome/browser/extensions/api/README.txt b/chrome/browser/extensions/api/README.txt +--- a/chrome/browser/extensions/api/README.txt ++++ b/chrome/browser/extensions/api/README.txt +@@ -1,12 +1,12 @@ + This file describes steps and files needed when adding a new API to Chrome. + Before you start coding your new API, though, make sure you follow the process + described at: +- http://www.chromium.org/developers/design-documents/extensions/proposed-changes/apis-under-development ++ http://www.ch40m1um.qjz9zk/developers/design-documents/extensions/proposed-changes/apis-under-development + + Two approaches are available for writing your API specification. The original + approach relies on JSON specification files. The more recent and simpler system + uses Web IDL files, but does not yet support all the features of the JSON files. +-Discuss with a member of the extensions team (aa@chromium.org) before you decide ++Discuss with a member of the extensions team (aa@ch40m1um.qjz9zk) before you decide + which approach is better suited to your API. + + The following steps suppose you're writing an experimental API called "Foo". +diff --git a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc +--- a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc ++++ b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc +@@ -50,10 +50,10 @@ enum class U2FAttestationPromptResult { + kMaxValue = kBlocked, + }; + +-const char kGoogleDotCom[] = "google.com"; ++const char kGoogleDotCom[] = "9oo91e.qjz9zk"; + constexpr const char* kGoogleGstaticAppIds[] = { +- "https://www.gstatic.com/securitykey/origins.json", +- "https://www.gstatic.com/securitykey/a/google.com/origins.json"}; ++ "https://www.95tat1c.qjz9zk/securitykey/origins.json", ++ "https://www.95tat1c.qjz9zk/securitykey/a/9oo91e.qjz9zk/origins.json"}; + + // ContainsAppIdByHash returns true iff the SHA-256 hash of one of the + // elements of |list| equals |hash|. +@@ -141,8 +141,8 @@ CryptotokenPrivateCanOriginAssertAppIdFunction::Run() { + if (origin_etldp1 == app_id_etldp1) { + return RespondNow(OneArgument(std::make_unique(true))); + } +- // For legacy purposes, allow google.com origins to assert certain +- // gstatic.com appIds. ++ // For legacy purposes, allow 9oo91e.qjz9zk origins to assert certain ++ // 95tat1c.qjz9zk appIds. + // TODO(juanlang): remove when legacy constraints are removed. + if (origin_etldp1 == kGoogleDotCom) { + for (const char* id : kGoogleGstaticAppIds) { +diff --git a/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h b/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h +--- a/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h ++++ b/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h +@@ -97,7 +97,7 @@ class ChromeContentRulesRegistry + + private: + // The internal declarative rule representation. Corresponds to a declarative +- // API rule: https://developer.chrome.com/extensions/events.html#declarative. ++ // API rule: https://developer.ch40me.qjz9zk/extensions/events.html#declarative. + struct ContentRule { + public: + ContentRule(const Extension* extension, +diff --git a/chrome/browser/extensions/api/declarative_content/content_action.h b/chrome/browser/extensions/api/declarative_content/content_action.h +--- a/chrome/browser/extensions/api/declarative_content/content_action.h ++++ b/chrome/browser/extensions/api/declarative_content/content_action.h +@@ -29,7 +29,7 @@ class Extension; + // Base class for all ContentActions of the Declarative Content API. + // + // For example, given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, the entity ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, the entity + // rule1['actions'][0] is represented by a ContentAction subclass. + class ContentAction { + public: +diff --git a/chrome/browser/extensions/api/declarative_content/content_condition.h b/chrome/browser/extensions/api/declarative_content/content_condition.h +--- a/chrome/browser/extensions/api/declarative_content/content_condition.h ++++ b/chrome/browser/extensions/api/declarative_content/content_condition.h +@@ -26,7 +26,7 @@ class Extension; + // satisified for the condition to be fulfilled. + // + // For example, given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, the entity ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, the entity + // rule1['conditions'][0] is represented by a ContentCondition. + struct ContentCondition { + public: +diff --git a/chrome/browser/extensions/api/declarative_content/content_predicate.h b/chrome/browser/extensions/api/declarative_content/content_predicate.h +--- a/chrome/browser/extensions/api/declarative_content/content_predicate.h ++++ b/chrome/browser/extensions/api/declarative_content/content_predicate.h +@@ -24,8 +24,8 @@ class Extension; + // associated ContentPredicateEvaluator subclass. + // + // For example, given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, the +-// entities { hostEquals: 'www.google.com', schemes: ['https'] } and ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, the ++// entities { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] } and + // ["input[type='password']"] are both represented by ContentPredicate + // subclasses. + class ContentPredicate { +@@ -49,9 +49,9 @@ class ContentPredicate { + // Defines the interface for objects that create predicates. + // + // Given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, + // ContentPredicateFactories are directly responsible for creating individual +-// predicates from the { hostEquals: 'www.google.com', schemes: ['https'] } and ++// predicates from the { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] } and + // ["input[type='password']"] JSON entities encoded in |value|. + class ContentPredicateFactory { + public: +diff --git a/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h b/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h +--- a/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h ++++ b/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h +@@ -29,7 +29,7 @@ namespace extensions { + // var rule1 = { + // conditions: [ + // new chrome.declarativeContent.PageStateMatcher({ +-// pageUrl: { hostEquals: 'www.google.com', schemes: ['https'] }, ++// pageUrl: { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] }, + // css: ['input[type=\'password\']'] + // }) + // ], +@@ -49,7 +49,7 @@ namespace extensions { + // The subclass of ContentPredicateEvaluator whose + // GetPredicateApiAttributeName() function returns "pageUrl" is responsible for + // creating and managing the predicates +-// { hostEquals: 'www.google.com', schemes: ['https'] } and ++// { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] } and + // { hostEquals: 'www.example.com' }. + // + // The subclass of ContentPredicateEvaluator whose +diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc +--- a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc ++++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc +@@ -233,7 +233,7 @@ std::vector GetSpecificSiteControls( + + // NOTE(devlin): This is similar, but not identical, to our host collapsing + // for permission warnings. The primary difference is that this will not +- // collapse permissions for sites with separate TLDs; i.e., google.com and ++ // collapse permissions for sites with separate TLDs; i.e., 9oo91e.qjz9zk and + // google.net will remain distinct entities in this list. + auto get_distinct_hosts = [](const URLPatternSet& patterns) { + std::vector pathless_hosts; +diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/browser/extensions/api/downloads/downloads_api.h +--- a/chrome/browser/extensions/api/downloads/downloads_api.h ++++ b/chrome/browser/extensions/api/downloads/downloads_api.h +@@ -28,7 +28,7 @@ class DownloadOpenPrompt; + + // Functions in the chrome.downloads namespace facilitate + // controlling downloads from extensions. See the full API doc at +-// http://goo.gl/6hO1n ++// http://goo.gl.qjz9zk.qjz9zk/6hO1n + + namespace download_extension_errors { + +diff --git a/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h b/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h +--- a/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h ++++ b/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h +@@ -30,7 +30,7 @@ namespace extensions { + // use in other contexts. The scheme of the URI is a reversed version + // of the OAuth client ID, and the path starts with the Chrome + // extension ID. For example, an app with the OAuth client ID +-// "32610281651.apps.googleusercontent.com" and a Chrome app ID ++// "32610281651.apps.9oo91eusercontent.qjz9zk" and a Chrome app ID + // "kbinjhdkhikmpjoejcfofghmjjpidcnj", would get redirected to: + // + // com.googleusercontent.apps.32610281651:/kbinjhdkhikmpjoejcfofghmjjpidcnj +diff --git a/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc b/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc +--- a/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc ++++ b/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc +@@ -16,7 +16,7 @@ namespace extensions { + namespace { + + static const char kChromiumDomainRedirectUrlPattern[] = +- "https://%s.chromiumapp.org/"; ++ "https://%s.ch40m1umapp.qjz9zk/"; + + } // namespace + +diff --git a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc +--- a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc ++++ b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc +@@ -17,7 +17,7 @@ static base::LazyInstance>::DestructorAtExit + g_test_device_list = LAZY_INSTANCE_INITIALIZER; + + // TODO(haven): Udev code may be duplicated in the Chrome codebase. +-// https://code.google.com/p/chromium/issues/detail?id=284898 ++// https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=284898 + + void RemovableStorageProvider::GetAllDevices(DeviceListReadyCallback callback) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); +diff --git a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc +--- a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc ++++ b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc +@@ -16,7 +16,7 @@ + + namespace extensions { + // TODO(haven): Udev code may be duplicated in the Chrome codebase. +-// https://code.google.com/p/chromium/issues/detail?id=284898 ++// https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=284898 + + #if defined(USE_UDEV) + // Returns the integer contained in |attr|. Returns 0 on error. +diff --git a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc +--- a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc ++++ b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc +@@ -66,7 +66,7 @@ namespace { + + #if defined(OS_CHROMEOS) + const char kPlayIntentPrefix[] = +- "https://play.google.com/store/apps/details?id="; ++ "https://play.9oo91e.qjz9zk/store/apps/details?id="; + const char kChromeWebStoreReferrer[] = "&referrer=chrome_web_store"; + #endif // OS_CHROMEOS + +diff --git a/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc b/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc +--- a/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc ++++ b/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc +@@ -88,7 +88,7 @@ bool UnpackAPIPermissions(const std::vector& permissions_input, + // This is a compromise: we currently can't switch to a blend of + // objects/strings all the way through the API. Until then, put this + // processing here. +- // http://code.google.com/p/chromium/issues/detail?id=162042 ++ // http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=162042 + size_t delimiter = permission_str.find(kDelimiter); + if (delimiter != std::string::npos) { + base::StringPiece permission_piece(permission_str); +diff --git a/chrome/browser/extensions/chrome_extension_browser_constants.cc b/chrome/browser/extensions/chrome_extension_browser_constants.cc +--- a/chrome/browser/extensions/chrome_extension_browser_constants.cc ++++ b/chrome/browser/extensions/chrome_extension_browser_constants.cc +@@ -8,6 +8,6 @@ namespace chrome_extension_constants { + + // The link to the help article for runtime host permissions. + const char kRuntimeHostPermissionsHelpURL[] = +- "https://support.google.com/chrome?p=enable_extensions"; ++ "https://support.9oo91e.qjz9zk/chrome?p=enable_extensions"; + + } // namespace chrome_extension_constants +diff --git a/chrome/browser/extensions/chrome_extension_function_details.cc b/chrome/browser/extensions/chrome_extension_function_details.cc +--- a/chrome/browser/extensions/chrome_extension_function_details.cc ++++ b/chrome/browser/extensions/chrome_extension_function_details.cc +@@ -65,7 +65,7 @@ Browser* ChromeExtensionFunctionDetails::GetCurrentBrowser() const { + // all of this profile's browser windows may have been closed. + // A similar situation may arise during shutdown. + // TODO(rafaelw): Delay creation of background_page until the browser +- // is available. http://code.google.com/p/chromium/issues/detail?id=13284 ++ // is available. http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=13284 + return NULL; + } + +diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.h b/chrome/browser/extensions/component_extensions_whitelist/whitelist.h +--- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.h ++++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.h +@@ -12,7 +12,7 @@ namespace extensions { + // ============================================================================= + // + // ADDING NEW EXTENSIONS REQUIRES APPROVAL from Extensions Tech Lead: +-// rdevlin.cronin@chromium.org ++// rdevlin.cronin@ch40m1um.qjz9zk + // + // The main acceptable use of extensions in the default Chrome experience (i.e. + // not installed explicitly by the user) are to implement things like the +diff --git a/chrome/browser/extensions/extension_browser_window_helper.cc b/chrome/browser/extensions/extension_browser_window_helper.cc +--- a/chrome/browser/extensions/extension_browser_window_helper.cc ++++ b/chrome/browser/extensions/extension_browser_window_helper.cc +@@ -44,7 +44,7 @@ bool ShouldCloseTabOnExtensionUnload(const ExtensionId& extension_id, + + // Case 2: Check if the page is a page associated with a hosted app, which + // can have non-extension schemes. For example, the Gmail hosted app would +- // have a URL of https://mail.google.com. ++ // have a URL of https://mail.9oo91e.qjz9zk. + if (TabHelper::FromWebContents(web_contents)->GetAppId() == extension_id) { + return true; + } +diff --git a/chrome/browser/extensions/external_pref_loader.cc b/chrome/browser/extensions/external_pref_loader.cc +--- a/chrome/browser/extensions/external_pref_loader.cc ++++ b/chrome/browser/extensions/external_pref_loader.cc +@@ -253,7 +253,7 @@ void ExternalPrefLoader::LoadOnFileThread() { + if (!prefs->empty()) + LOG(WARNING) << "You are using an old-style extension deployment method " + "(external_extensions.json), which will soon be " +- "deprecated. (see http://developer.chrome.com/" ++ "deprecated. (see http://developer.ch40me.qjz9zk/" + "extensions/external_extensions.html)"; + + ReadStandaloneExtensionPrefFiles(prefs.get()); +diff --git a/chrome/browser/extensions/install_signer.cc b/chrome/browser/extensions/install_signer.cc +--- a/chrome/browser/extensions/install_signer.cc ++++ b/chrome/browser/extensions/install_signer.cc +@@ -65,7 +65,7 @@ const int kSignatureFormatVersion = 2; + const size_t kSaltBytes = 32; + + const char kBackendUrl[] = +- "https://www.googleapis.com/chromewebstore/v1.1/items/verify"; ++ "https://www.9oo91eapis.qjz9zk/chromewebstore/v1.1/items/verify"; + + const char kPublicKeyPEM[] = \ + "-----BEGIN PUBLIC KEY-----" \ +diff --git a/chrome/browser/extensions/navigation_observer.cc b/chrome/browser/extensions/navigation_observer.cc +--- a/chrome/browser/extensions/navigation_observer.cc ++++ b/chrome/browser/extensions/navigation_observer.cc +@@ -69,8 +69,8 @@ void NavigationObserver::PromptToEnableExtensionIfNecessary( + + // NOTE: We only consider chrome-extension:// urls, and deliberately don't + // consider hosted app urls. This is because it's really annoying to visit the +- // site associated with a hosted app (like calendar.google.com or +- // drive.google.com) and have it repeatedly prompt you to re-enable an item. ++ // site associated with a hosted app (like calendar.9oo91e.qjz9zk or ++ // drive.9oo91e.qjz9zk) and have it repeatedly prompt you to re-enable an item. + // Visiting a chrome-extension:// url is a much stronger signal, and, without + // the item enabled, we won't show anything. + // TODO(devlin): While true, I still wonder how useful this is. We should get +diff --git a/chrome/browser/extensions/permissions_updater.cc b/chrome/browser/extensions/permissions_updater.cc +--- a/chrome/browser/extensions/permissions_updater.cc ++++ b/chrome/browser/extensions/permissions_updater.cc +@@ -298,10 +298,10 @@ void PermissionsUpdater::GrantRuntimePermissions( + base::OnceClosure completion_callback) { + // We don't want to grant the extension object/process more privilege than it + // requested, even if the user grants additional permission. For instance, if +- // the extension requests https://maps.google.com and the user grants +- // https://*.google.com, we only want to grant the extension itself +- // https://maps.google.com. Since we updated the prefs with the exact +- // granted permissions (*.google.com), if the extension later requests ++ // the extension requests https://maps.9oo91e.qjz9zk and the user grants ++ // https://*.9oo91e.qjz9zk, we only want to grant the extension itself ++ // https://maps.9oo91e.qjz9zk. Since we updated the prefs with the exact ++ // granted permissions (*.9oo91e.qjz9zk), if the extension later requests + // increased permissions that are already covered, they will be auto-granted. + + // Determine which permissions to add to the extension. +@@ -360,8 +360,8 @@ void PermissionsUpdater::RevokeRuntimePermissions( + base::OnceClosure completion_callback) { + // Similar to the process in adding permissions, we might be revoking more + // permissions than the extension currently has explicit access to. For +- // instance, we might be revoking https://*.google.com/* even if the extension +- // only has https://maps.google.com/*. ++ // instance, we might be revoking https://*.9oo91e.qjz9zk/* even if the extension ++ // only has https://maps.9oo91e.qjz9zk/*. + const PermissionSet& active = + extension.permissions_data()->active_permissions(); + // Unlike adding permissions, we should know that any permissions we remove +diff --git a/chrome/browser/extensions/scripting_permissions_modifier.cc b/chrome/browser/extensions/scripting_permissions_modifier.cc +--- a/chrome/browser/extensions/scripting_permissions_modifier.cc ++++ b/chrome/browser/extensions/scripting_permissions_modifier.cc +@@ -41,8 +41,8 @@ bool CanWithholdFromExtension(const Extension& extension) { + // |runtime_granted_permissions|. The returned permission set may contain new + // patterns not found in either |requested_permissions| or + // |runtime_granted_permissions| in the case of overlapping host permissions +-// (such as *://*.google.com/* and https://*/*, which would intersect with +-// https://*.google.com/*). ++// (such as *://*.9oo91e.qjz9zk/* and https://*/*, which would intersect with ++// https://*.9oo91e.qjz9zk/*). + std::unique_ptr PartitionHostPermissions( + const PermissionSet& requested_permissions, + const PermissionSet& runtime_granted_permissions) { +diff --git a/chrome/browser/extensions/scripting_permissions_modifier.h b/chrome/browser/extensions/scripting_permissions_modifier.h +--- a/chrome/browser/extensions/scripting_permissions_modifier.h ++++ b/chrome/browser/extensions/scripting_permissions_modifier.h +@@ -75,8 +75,8 @@ class ScriptingPermissionsModifier { + // on the origin of |url|. This will return true if any permission includes + // access to the origin of |url|, even if the permission includes others + // (such as *://*.com/*) or is restricted to a path (that is, an extension +- // with permission for https://google.com/maps will return true for +- // https://google.com). Note: This checks any runtime-granted permissions, ++ // with permission for https://9oo91e.qjz9zk/maps will return true for ++ // https://9oo91e.qjz9zk). Note: This checks any runtime-granted permissions, + // which includes both granted optional permissions and permissions granted + // through the runtime host permissions feature. + // This may only be called for extensions that can be affected (i.e., for +@@ -85,7 +85,7 @@ class ScriptingPermissionsModifier { + + // Revokes permission to run on the origin of |url|, including any permissions + // that match or overlap with the origin. For instance, removing access to +- // https://google.com will remove access to *://*.com/* as well. ++ // https://9oo91e.qjz9zk will remove access to *://*.com/* as well. + // DCHECKs if |url| has not been granted. + // This may only be called for extensions that can be affected (i.e., for + // which CanAffectExtension() returns true). Anything else will DCHECK. +diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc +--- a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc ++++ b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc +@@ -51,7 +51,7 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory( + manifest_query_params += "&testrequest=1"; + } + downloader->set_manifest_query_params(manifest_query_params); +- downloader->set_ping_enabled_domain("google.com"); ++ downloader->set_ping_enabled_domain("9oo91e.qjz9zk"); + return downloader; + } + +diff --git a/chrome/browser/extensions/updater/chrome_update_client_config.cc b/chrome/browser/extensions/updater/chrome_update_client_config.cc +--- a/chrome/browser/extensions/updater/chrome_update_client_config.cc ++++ b/chrome/browser/extensions/updater/chrome_update_client_config.cc +@@ -178,10 +178,10 @@ ChromeUpdateClientConfig::GetNetworkFetcherFactory() { + content::BrowserContext::GetDefaultStoragePartition(context_) + ->GetURLLoaderFactoryForBrowserProcess(), + // Only extension updates that require authentication are served +- // from chrome.google.com, so send cookies if and only if that is ++ // from chrome.9oo91e.qjz9zk, so send cookies if and only if that is + // the download domain. + base::BindRepeating([](const GURL& url) { +- return url.DomainIs("chrome.google.com"); ++ return url.DomainIs("chrome.9oo91e.qjz9zk"); + })); + } + return network_fetcher_factory_; +diff --git a/chrome/browser/feedback/feedback_uploader_chrome.cc b/chrome/browser/feedback/feedback_uploader_chrome.cc +--- a/chrome/browser/feedback/feedback_uploader_chrome.cc ++++ b/chrome/browser/feedback/feedback_uploader_chrome.cc +@@ -77,7 +77,7 @@ void FeedbackUploaderChrome::StartDispatchingReport() { + + if (identity_manager && identity_manager->HasPrimaryAccount()) { + identity::ScopeSet scopes; +- scopes.insert("https://www.googleapis.com/auth/supportcontent"); ++ scopes.insert("https://www.9oo91eapis.qjz9zk/auth/supportcontent"); + token_fetcher_ = std::make_unique( + "feedback_uploader_chrome", identity_manager, scopes, + base::BindOnce(&FeedbackUploaderChrome::AccessTokenAvailable, +diff --git a/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc b/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc +--- a/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc ++++ b/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc +@@ -24,7 +24,7 @@ constexpr size_t kCrashIdStringSize = 16; + // For recent crashes, which is for all reports, look back one hour. + constexpr base::TimeDelta kOneHourTimeDelta = base::TimeDelta::FromHours(1); + +-// For all crashes, which is for only @google.com reports, look back 120 days. ++// For all crashes, which is for only @9oo91e.qjz9zk reports, look back 120 days. + constexpr base::TimeDelta k120DaysTimeDelta = base::TimeDelta::FromDays(120); + + } // namespace +@@ -56,7 +56,7 @@ void CrashIdsSource::OnUploadListAvailable() { + // We generate two lists of crash IDs. One will be the crashes within the last + // hour, which is included in all feedback reports. The other is all of the + // crash IDs from the past 120 days, which is only included in feedback +- // reports sent from @google.com accounts. ++ // reports sent from @9oo91e.qjz9zk accounts. + std::vector crashes; + crash_upload_list_->GetUploads(kMaxCrashesCountToRetrieve, &crashes); + const base::Time now = base::Time::Now(); +diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json +--- a/chrome/browser/flag-metadata.json ++++ b/chrome/browser/flag-metadata.json +@@ -3,7 +3,7 @@ + // of the review process and to clean up flags that have become obsolete or + // unused. For more details, see: + // +-// https://chromium.googlesource.com/chromium/src/+/master/docs/flag_ownership.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/flag_ownership.md + // + // This file is a list of json objects; each object contains these keys: + // +@@ -18,7 +18,7 @@ + // - A string beginning with '//', which is treated as a path to a file + // containing a list of owners for this flag (commonly an OWNERS file); + // - Any other string, which is treated as the username part of an +-// @chromium.org email address; ++// @ch40m1um.qjz9zk email address; + // + // expiry_milestone: the milestone after which this flag is obsolete. + // Specifically, after the milestone with the given number branches, this flag +@@ -79,7 +79,7 @@ + }, + { + "name": "allow-sync-xhr-in-page-dismissal", +- "owners": [ "kdillon@chromium.org" ], ++ "owners": [ "kdillon@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -119,7 +119,7 @@ + }, + { + "name": "app-service-intent-handling", +- "owners": [ "chromeos-apps-foundation-team@google.com" ], ++ "owners": [ "chromeos-apps-foundation-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -159,14 +159,14 @@ + }, + { + "name": "arc-native-bridge-toggle", +- "owners": [ "levarum@google.com" ], ++ "owners": [ "levarum@9oo91e.qjz9zk" ], + // Used on ChromeOS to compare and debug different ARC native-bridge + // implementations which are normally used on different platforms. + "expiry_milestone": -1 + }, + { + "name": "arc-print-spooler-experiment", +- "owners": [ "jschettler@google.com", "bmgordon@google.com" ], ++ "owners": [ "jschettler@9oo91e.qjz9zk", "bmgordon@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -181,7 +181,7 @@ + }, + { + "name": "arc-vpn", +- "owners": [ "cros-networking@google.com" ], ++ "owners": [ "cros-networking@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -230,7 +230,7 @@ + }, + { + "name": "autofill-always-return-cloud-tokenized-card", +- "owners": [ "aneeshali@google.com", "annelim@google.com", "jsaul@google.com" ], ++ "owners": [ "aneeshali@9oo91e.qjz9zk", "annelim@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 87 + }, + { +@@ -280,18 +280,18 @@ + }, + { + "name": "autofill-keyboard-accessory-view", +- "owners": [ "fhorschig@chromium.org" ], ++ "owners": [ "fhorschig@ch40m1um.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "autofill-no-local-save-on-unmask-success", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + // Must wait for the Autofill Auth Project to be launched. + "expiry_milestone": 84 + }, + { + "name": "autofill-no-local-save-on-upload-success", +- "owners": [ "jsaul@google.com", "annelim@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk", "annelim@9oo91e.qjz9zk" ], + // Must wait for the Autofill Auth Project to be launched. + "expiry_milestone": 84 + }, +@@ -472,7 +472,7 @@ + }, + { + "name": "compositor-threaded-scrollbar-scrolling", +- "owners": [ "arakeri@microsoft.com" ], ++ "owners": [ "arakeri@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -582,7 +582,7 @@ + }, + { + "name": "darken-websites-checkbox-in-themes-setting", +- "owners": [ "lazzzis@google.com", "twellington" ], ++ "owners": [ "lazzzis@9oo91e.qjz9zk", "twellington" ], + "expiry_milestone": 83 + }, + { +@@ -605,17 +605,17 @@ + }, + { + "name": "decode-jpeg-images-to-yuv", +- "owners": [ "sashamcintosh", "chromeos-gfx@google.com" ], ++ "owners": [ "sashamcintosh", "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { + "name": "decode-webp-images-to-yuv", +- "owners": [ "andrescj", "chromeos-gfx@google.com" ], ++ "owners": [ "andrescj", "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "delegate-overscroll-swipes", +- "owners": [ "chrome-android-app@chromium.org" ], ++ "owners": [ "chrome-android-app@ch40m1um.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -645,39 +645,39 @@ + }, + { + "name": "disable-accelerated-mjpeg-decode", +- "owners": [ "chromeos-camera-eng@google.com" ], ++ "owners": [ "chromeos-camera-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW mjpeg + // decoding for debugging purpose and temporary workaround for some issues. + "expiry_milestone": -1 + }, + { + "name": "disable-accelerated-video-decode", +- "owners": [ "chromeos-video-eng@google.com" ], ++ "owners": [ "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // decoding for debugging purpose and temporary workaround for some issues. + "expiry_milestone": -1 + }, + { + "name": "disable-accelerated-video-encode", +- "owners": [ "chromeos-video-eng@google.com" ], ++ "owners": [ "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // encoding for debugging purpose and temporary workaround for some issues. + "expiry_milestone": -1 + }, + { + "name": "disable-best-effort-tasks", +- "owners": [ "catan-team@chromium.org" ], ++ "owners": [ "catan-team@ch40m1um.qjz9zk" ], + "expiry_milestone": 75 + }, + { "name": "disable-cancel-all-touches", +- "owners": [ "chrome-knowledge-eng@google.com" ], ++ "owners": [ "chrome-knowledge-eng@9oo91e.qjz9zk" ], + // This flag is use to disable CancelAllTouches() function, which enable the + // testing for implementation of canceling single touches. + "expiry_milestone": 86 + }, + { + "name": "disable-explicit-dma-fences", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + // This flag is used for QA & debugging on ChromeOS, which has no way to + // customize switches. + "expiry_milestone": -1 +@@ -690,7 +690,7 @@ + { + // See https://crbug.com/882238. + "name": "disable-ipc-flooding-protection", +- "owners": [ "arthursonzogni@chromium.org", "palmer@chromium.org" ], ++ "owners": [ "arthursonzogni@ch40m1um.qjz9zk", "palmer@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -708,8 +708,8 @@ + { + "name": "disable-office-editing-component-app", + "owners": [ +- "chrome-apps-platform-rationalization@google.com", +- "quickoffice-chrome-eng@google.com" ], ++ "chrome-apps-platform-rationalization@9oo91e.qjz9zk", ++ "quickoffice-chrome-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -720,7 +720,7 @@ + { + // See https://crbug.com/882238. + "name": "disable-pushstate-throttle", +- "owners": [ "arthursonzogni@chromium.org", "palmer@chromium.org" ], ++ "owners": [ "arthursonzogni@ch40m1um.qjz9zk", "palmer@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -737,7 +737,7 @@ + }, + { + "name": "disable-webrtc-hw-decoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // decoding only in webrtc usecase for debugging purpose and temporary + // workaround for some issues. +@@ -745,7 +745,7 @@ + }, + { + "name": "disable-webrtc-hw-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // encoding only in webrtc usecase for debugging purpose and temporary + // workaround for some issues. +@@ -769,7 +769,7 @@ + }, + { + "name": "dns-over-https", +- "owners": [ "dalyk", "doh-core@google.com" ], ++ "owners": [ "dalyk", "doh-core@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -804,7 +804,7 @@ + }, + { + "name": "draw-vertically-edge-to-edge", +- "owners": [ "chrome-android-app@chromium.org" ], ++ "owners": [ "chrome-android-app@ch40m1um.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -815,12 +815,12 @@ + }, + { + "name": "enable-accessibility-expose-aria-annotations", +- "owners": [ "aleventhal@chromium.org", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], ++ "owners": [ "aleventhal@ch40m1um.qjz9zk", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 85 + }, + { + "name": "enable-accessibility-expose-display-none", +- "owners": [ "adettenb@microsoft.com", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], ++ "owners": [ "adettenb@m1cr050ft.qjz9zk", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 82 + }, + { +@@ -840,12 +840,12 @@ + }, + { + "name": "enable-ambient-authentication-in-guest-session", +- "owners": ["rhalavati", "chrome-privacy-core@google.com"], ++ "owners": ["rhalavati", "chrome-privacy-core@9oo91e.qjz9zk"], + "expiry_milestone": 87 + }, + { + "name": "enable-ambient-authentication-in-incognito", +- "owners": ["rhalavati", "chrome-privacy-core@google.com"], ++ "owners": ["rhalavati", "chrome-privacy-core@9oo91e.qjz9zk"], + "expiry_milestone": 87 + }, + { +@@ -955,22 +955,22 @@ + }, + { + "name": "enable-autofill-account-wallet-storage", +- "owners": [ "treib", "jsaul@google.com", "butter-team@google.com" ], ++ "owners": [ "treib", "jsaul@9oo91e.qjz9zk", "butter-team@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "enable-autofill-credit-card-ablation-experiment", +- "owners": [ "dlkumar@google.com" ], ++ "owners": [ "dlkumar@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { + "name": "enable-autofill-credit-card-authentication", +- "owners": [ "jsaul@google.com", "manasverma@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk", "manasverma@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-autofill-credit-card-upload", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + // This flag is heavily used by the testing team that can't easily use the + // commandline, and can't be enabled by default. + // http://g/chrome-flags/s2RTQCvcRRs +@@ -978,52 +978,52 @@ + }, + { + "name": "enable-autofill-credit-card-upload-editable-cardholder-name", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-autofill-credit-card-upload-editable-expiration-date", +- "owners": [ "hozhng@google.com", "jsaul@google.com" ], ++ "owners": [ "hozhng@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-autofill-credit-card-upload-feedback", +- "owners": [ "siyua@chromium.org, payments-autofill-team@google.com" ], ++ "owners": [ "siyua@ch40m1um.qjz9zk, payments-autofill-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-autofill-do-not-migrate-unsupported-local-cards", +- "owners": [ "sujiezhu@google.com", "jsaul@google.com" ], ++ "owners": [ "sujiezhu@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-autofill-local-card-migration-uses-strike-system-v2", +- "owners": [ "annelim@google.com", "jsaul@google.com" , "jiahuiguo@google.com"], ++ "owners": [ "annelim@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" , "jiahuiguo@9oo91e.qjz9zk"], + "expiry_milestone": 84 + }, + { + "name": "enable-autofill-manual-fallback", +- "owners": [ "fhorschig@chromium.org" ], ++ "owners": [ "fhorschig@ch40m1um.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "enable-autofill-refresh-style", +- "owners": [ "tmartino@chromium.org" ], ++ "owners": [ "tmartino@ch40m1um.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "enable-autofill-save-card-show-no-thanks", +- "owners": ["siashah", "jsaul@google.com"], ++ "owners": ["siashah", "jsaul@9oo91e.qjz9zk"], + "expiry_milestone": 82 + }, + { + "name": "enable-autofill-save-credit-card-uses-improved-messaging", +- "owners": [ "siyua@chromium.org", "payments-autofill-team@google.com" ], ++ "owners": [ "siyua@ch40m1um.qjz9zk", "payments-autofill-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-autofill-updated-card-unmask-prompt-ui", +- "owners": ["siyua", "payments-autofill-team@google.com"], ++ "owners": ["siyua", "payments-autofill-team@9oo91e.qjz9zk"], + "expiry_milestone": 87 + }, + { +@@ -1033,7 +1033,7 @@ + }, + { + "name": "enable-backdrop-filter", +- "owners": [ "masonfreed", "paint-dev@chromium.org" ], ++ "owners": [ "masonfreed", "paint-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 78 + }, + { +@@ -1043,7 +1043,7 @@ + }, + { + "name": "enable-bookmark-reorder", +- "owners": ["jhimawan@google.com", "twellington" ], ++ "owners": ["jhimawan@9oo91e.qjz9zk", "twellington" ], + "expiry_milestone": 80 + }, + { +@@ -1083,7 +1083,7 @@ + }, + { + "name": "enable-chromeos-account-manager", +- "owners": [ "sinhak@chromium.org" ], ++ "owners": [ "sinhak@ch40m1um.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -1093,7 +1093,7 @@ + }, + { + "name": "enable-close-tab-suggestions", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -1130,7 +1130,7 @@ + }, + { + "name": "enable-cros-ime-input-logic-fst", +- "owners": [ "essential-inputs-team@google.com" ], ++ "owners": [ "essential-inputs-team@9oo91e.qjz9zk" ], + "expiry_milestone": 77 + }, + { +@@ -1181,12 +1181,12 @@ + }, + { + "name": "enable-desktop-pwas-local-updating", +- "owners": [ "desktop-pwas-team@google.com" ], ++ "owners": [ "desktop-pwas-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-desktop-pwas-omnibox-install", +- "owners": [ "desktop-pwas-team@google.com" ], ++ "owners": [ "desktop-pwas-team@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -1202,7 +1202,7 @@ + }, + { + "name": "enable-duet-tabstrip-integration", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { +@@ -1247,17 +1247,17 @@ + }, + { + "name": "enable-experimental-accessibility-switch-access", +- "owners": [ "anastasi@google.com", "//ui/accessibility/OWNERS" ], ++ "owners": [ "anastasi@9oo91e.qjz9zk", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 85 + }, + { + "name": "enable-experimental-accessibility-switch-access-text", +- "owners": [ "anastasi@google.com", "//ui/accessibility/OWNERS" ], ++ "owners": [ "anastasi@9oo91e.qjz9zk", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 85 + }, + { + "name": "enable-experimental-fling-animation", +- "owners": [ "sarsha@microsoft.com" ], ++ "owners": [ "sarsha@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1267,7 +1267,7 @@ + }, + { + "name": "enable-experimental-productivity-features", +- "owners": [ "feature-control@chromium.org" ], ++ "owners": [ "feature-control@ch40m1um.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -1291,12 +1291,12 @@ + }, + { + "name": "enable-force-dark", +- "owners": [ "gilmanmh@google.com" ], ++ "owners": [ "gilmanmh@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-fs-nosymfollow", +- "owners": [ "mortonm@chromium.org" ], ++ "owners": [ "mortonm@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -1308,12 +1308,12 @@ + }, + { + "name": "enable-generic-sensor-extra-classes", +- "owners": [ "reillyg@chromium.org", "raphael.kubo.da.costa@intel.com" ], ++ "owners": [ "reillyg@ch40m1um.qjz9zk", "raphael.kubo.da.costa@intel.com" ], + "expiry_milestone": 83 + }, + { + "name": "enable-google-branded-context-menu", +- "owners": [ "edwardjung@chromium.org" ], ++ "owners": [ "edwardjung@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -1359,7 +1359,7 @@ + }, + { + "name": "enable-horizontal-tab-switcher", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 77 + }, + { +@@ -1389,7 +1389,7 @@ + }, + { + "name": "enable-intent-picker", +- "owners": [ "chromeos-apps-foundation-team@google.com" ], ++ "owners": [ "chromeos-apps-foundation-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1400,7 +1400,7 @@ + }, + { + "name": "enable-layout-ng", +- "owners": [ "layout-dev@chromium.org" ], ++ "owners": [ "layout-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1459,12 +1459,12 @@ + }, + { + "name": "enable-nacl", +- "owners": [ "dschuff", "native-client-dev@googlegroups.com" ], ++ "owners": [ "dschuff", "native-client-dev@9oo91egroups.qjz9zk" ], + "expiry_milestone": 87 + }, + { + "name": "enable-native-controls", +- "owners": [ "chrome-media-ux@google.com" ], ++ "owners": [ "chrome-media-ux@9oo91e.qjz9zk" ], + "expiry_milestone": 75 + }, + { +@@ -1512,7 +1512,7 @@ + }, + { + "name": "enable-offer-store-unmasked-wallet-cards", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 86 + }, + { +@@ -1582,7 +1582,7 @@ + }, + { + "name": "enable-query-in-omnibox", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1592,7 +1592,7 @@ + }, + { + "name": "enable-reader-mode", +- "owners": [ "gilmanmh@google.com" ], ++ "owners": [ "gilmanmh@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { +@@ -1679,7 +1679,7 @@ + }, + { + "name": "enable-service-worker-imported-script-update-check", +- "owners": [ "worker-dev@chromium.org" ], ++ "owners": [ "worker-dev@ch40m1um.qjz9zk" ], + // It's still in development. Tentatively set to M76 as the expiry_milestone. + "expiry_milestone": 76 + }, +@@ -1791,7 +1791,7 @@ + }, + { + "name": "enable-sync-uss-nigori", +- "owners": [ "mmoskvitin@google.com", "//components/sync/OWNERS" ], ++ "owners": [ "mmoskvitin@9oo91e.qjz9zk", "//components/sync/OWNERS" ], + "expiry_milestone": 80 + }, + { +@@ -1806,37 +1806,37 @@ + }, + { + "name": "enable-tab-engagement-reporting", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-grid-layout", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-groups", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-groups-continuation", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-tab-groups-ui-improvements", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-switcher-on-return", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-to-gts-animation", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -1890,12 +1890,12 @@ + }, + { + "name": "enable-vaapi-jpeg-image-decode-acceleration", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "enable-vaapi-webp-image-decode-acceleration", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -1932,62 +1932,62 @@ + }, + { + "name": "enable-web-authentication-ble-support", +- "owners": [ "webauthn-team@google.com" ], ++ "owners": [ "webauthn-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-web-authentication-cable-v2-support", +- "owners": [ "webauthn-team@google.com" ], ++ "owners": [ "webauthn-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-web-authentication-testing-api", +- "owners": [ "webauthn-team@google.com" ], ++ "owners": [ "webauthn-team@9oo91e.qjz9zk" ], + // This is required for testing. + "expiry_milestone": -1 + }, + { + "name": "enable-web-payments-experimental-features", +- "owners": [ "danyao", "rouslan", "paymentrequest@google.com" ], ++ "owners": [ "danyao", "rouslan", "paymentrequest@9oo91e.qjz9zk" ], + // This flag is used by early adoption partners to test new Web Payments + // features in each release. + "expiry_milestone": -1 + }, + { + "name": "enable-webassembly-baseline", +- "owners": [ "clemensb", "wasm-team@google.com" ], ++ "owners": [ "clemensb", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-code-cache", +- "owners": [ "bbudge", "hablich", "wasm-team@google.com" ], ++ "owners": [ "bbudge", "hablich", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-code-gc", +- "owners": [ "clemensb", "wasm-team@google.com" ], ++ "owners": [ "clemensb", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-simd", +- "owners": [ "gdeepti", "wasm-team@google.com" ], ++ "owners": [ "gdeepti", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-threads", +- "owners": [ "binji", "hablich", "wasm-team@google.com" ], ++ "owners": [ "binji", "hablich", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webgl-draft-extensions", +- "owners": [ "webgl-team@google.com" ], ++ "owners": [ "webgl-team@9oo91e.qjz9zk" ], + // This flag is the only way for end users to test upcoming WebGL + // extensions on Android. It must not be removed. + "expiry_milestone": -1 + }, + { + "name": "enable-webgl2-compute-context", +- "owners": [ "webgl-team@google.com" ], ++ "owners": [ "webgl-team@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -2002,17 +2002,17 @@ + }, + { + "name": "enable-webrtc-hw-h264-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "enable-webrtc-hw-vp8-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "enable-webrtc-hw-vp9-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -2027,7 +2027,7 @@ + }, + { + "name": "enable-webrtc-pipewire-capturer", +- "owners": [ "tomas.popela@gmail.com" ], ++ "owners": [ "tomas.popela@9ma1l.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -2047,22 +2047,22 @@ + }, + { + "name": "enable-webvr", +- "owners": [ "//third_party/blink/renderer/modules/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-winrt-geolocation-implementation", +- "owners": [ "pelavall@microsoft.com" ], ++ "owners": [ "pelavall@m1cr050ft.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "enable-winrt-sensor-implementation", +- "owners": [ "wensh@microsoft.com" ], ++ "owners": [ "wensh@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-zero-copy", +- "owners": [ "ccameron", "chrome-gpu@google.com" ], ++ "owners": [ "ccameron", "chrome-gpu@9oo91e.qjz9zk" ], + // This flag is commonly used when asking users to help gather debug info. + "expiry_milestone": -1 + }, +@@ -2125,7 +2125,7 @@ + }, + { + "name": "file-handling-api", +- "owners": ["harrisjay@chromium.org", "raymes@chromium.org"], ++ "owners": ["harrisjay@ch40m1um.qjz9zk", "raymes@ch40m1um.qjz9zk"], + "expiry_milestone": 79 + }, + { +@@ -2156,7 +2156,7 @@ + }, + { + "name": "focus-mode", +- "owners": [ "dfried", "pbos", "yiningwang@google.com" ], ++ "owners": [ "dfried", "pbos", "yiningwang@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2217,12 +2217,12 @@ + }, + { + "name": "forced-colors", +- "owners": [ "weblayout@microsoft.com" ], ++ "owners": [ "weblayout@m1cr050ft.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "form-controls-refresh", +- "owners": [ "iopopesc@microsoft.com", "//third_party/blink/renderer/core/OWNERS" ], ++ "owners": [ "iopopesc@m1cr050ft.qjz9zk", "//third_party/blink/renderer/core/OWNERS" ], + "expiry_milestone": 81 + }, + { +@@ -2247,7 +2247,7 @@ + }, + { + "name": "gesture-properties-dbus-service", +- "owners": [ "hcutts", "chromeos-tango@google.com" ], ++ "owners": [ "hcutts", "chromeos-tango@9oo91e.qjz9zk" ], + // Used by developers for debugging and input device tuning. + "expiry_milestone": -1 + }, +@@ -2263,7 +2263,7 @@ + }, + { + "name": "handwriting-gesture", +- "owners": [ "essential-inputs-team@google.com" ], ++ "owners": [ "essential-inputs-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -2391,7 +2391,7 @@ + }, + { + "name": "mac-syscall-sandbox", +- "owners": [ "kerrnel@google.com" ], ++ "owners": [ "kerrnel@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -2401,7 +2401,7 @@ + }, + { + "name": "mac-v2-gpu-sandbox", +- "owners": [ "kerrnel@google.com" ], ++ "owners": [ "kerrnel@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -2507,7 +2507,7 @@ + }, + { + "name": "new-usb-backend", +- "owners": [ "reillyg@chromium.org" ], ++ "owners": [ "reillyg@ch40m1um.qjz9zk" ], + "expiry_milestone": 83 + }, + { +@@ -2547,7 +2547,7 @@ + }, + { + "name": "oculus-vr", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2567,7 +2567,7 @@ + }, + { + "name": "offline-indicator-v2", +- "owners": [ "sinansahin@google.com", "twellington", "offline-dev" ], ++ "owners": [ "sinansahin@9oo91e.qjz9zk", "twellington", "offline-dev" ], + "expiry_milestone": 85 + }, + { +@@ -2637,37 +2637,37 @@ + }, + { + "name": "omnibox-autocomplete-titles", +- "owners": [ "manukh", "chrome-omnibox-team@google.com" ], ++ "owners": [ "manukh", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 85 + }, + { + "name": "omnibox-disable-instant-extended-limit", +- "owners": [ "pnoland", "chrome-omnibox-team@google.com" ], ++ "owners": [ "pnoland", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-display-title-for-current-url", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-drive-suggestions", +- "owners": [ "manukh", "chrome-omnibox-team@google.com" ], ++ "owners": [ "manukh", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-experimental-keyword-mode", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-group-suggestions-by-search-vs-url", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "omnibox-local-entity-suggestions", +- "owners": [ "manukh", "chrome-omnibox-team@google.com" ], ++ "owners": [ "manukh", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -2682,22 +2682,22 @@ + }, + { + "name": "omnibox-on-device-head-suggestions", +- "owners": [ "cechen", "suggest-2g@google.com" ], ++ "owners": [ "cechen", "suggest-2g@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-on-focus-suggestions", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 85 + }, + { + "name": "omnibox-pedal-suggestions", +- "owners": [ "orinj", "chrome-omnibox-team@google.com" ], ++ "owners": [ "orinj", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-preserve-default-match-against-async-update", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 85 + }, + { +@@ -2707,87 +2707,87 @@ + }, + { + "name": "omnibox-reverse-answers", +- "owners": [ "jdonnelly", "chrome-omnibox-team@google.com" ], ++ "owners": [ "jdonnelly", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-rich-entity-suggestions", +- "owners": [ "jdonnelly", "chrome-omnibox-team@google.com" ], ++ "owners": [ "jdonnelly", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-search-engine-logo", +- "owners": [ "wylieb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "wylieb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-short-bookmark-suggestions", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "omnibox-spare-renderer", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-suggestion-transparency-options", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-tab-switch-suggestions", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "omnibox-tab-switch-suggestions-dedicated-row", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "omnibox-ui-cues-for-search-history-matches", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "omnibox-ui-hide-steady-state-url-path-query-and-ref", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-hide-steady-state-url-scheme", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-hide-steady-state-url-trivial-subdomains", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-max-autocomplete-matches", +- "owners": [ "jdonnelly", "chrome-omnibox-team@google.com" ], ++ "owners": [ "jdonnelly", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-ui-one-click-unelide", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-show-suggestion-favicons", +- "owners": [ "ender", "chrome-omnibox-team@google.com" ], ++ "owners": [ "ender", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "omnibox-ui-swap-title-and-url", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-zero-suggestions-on-ntp", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -2802,17 +2802,17 @@ + }, + { + "name": "on-the-fly-mhtml-hash-computation", +- "owners": [ "mtlieuu", "offline-dev@chromium.org" ], ++ "owners": [ "mtlieuu", "offline-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "openvr", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "openxr", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2842,7 +2842,7 @@ + }, + { + "name": "overlay-strategies", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + // This flag is used for QA & debugging on ChromeOS, which has no way to + // customize switches. + "expiry_milestone": -1 +@@ -2889,7 +2889,7 @@ + }, + { + "name": "pdf-annotations", +- "owners": [ "dstockwell@google.com" ], ++ "owners": [ "dstockwell@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -2904,7 +2904,7 @@ + }, + { + "name": "percent-based-scrolling", +- "owners": [ "maamert@microsoft.com" ], ++ "owners": [ "maamert@m1cr050ft.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2930,7 +2930,7 @@ + { + "name": "privacy-settings-redesign", + "owners": ["harrisonsean", "msramek", +- "chrome-privacy-core@google.com"], ++ "chrome-privacy-core@9oo91e.qjz9zk"], + "expiry_milestone": 82 + }, + { +@@ -3019,7 +3019,7 @@ + }, + { + "name": "scrollable-tabstrip", +- "owners": ["chrome-desktop-ui-seattle@google.com", "tbergquist"], ++ "owners": ["chrome-desktop-ui-seattle@9oo91e.qjz9zk", "tbergquist"], + "expiry_milestone": 82 + }, + { +@@ -3167,7 +3167,7 @@ + }, + { + "name": "stop-in-background", +- "owners": [ "chrome-catan@google.com" ], ++ "owners": [ "chrome-catan@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -3177,7 +3177,7 @@ + }, + { + "name": "storage-access-api", +- "owners": [ "brandm@microsoft.com" ], ++ "owners": [ "brandm@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -3207,7 +3207,7 @@ + }, + { + "name": "sync-wifi-configurations", +- "owners": ["jonmann", "cros-system-services@google.com"], ++ "owners": ["jonmann", "cros-system-services@9oo91e.qjz9zk"], + "expiry_milestone": 80 + }, + { +@@ -3217,7 +3217,7 @@ + }, + { + "name": "tab-groups", +- "owners": [ "chrome-desktop-ui-seattle@google.com", "bsep" ], ++ "owners": [ "chrome-desktop-ui-seattle@9oo91e.qjz9zk", "bsep" ], + "expiry_milestone": 82 + }, + { +@@ -3237,7 +3237,7 @@ + }, + { + "name": "tab-switcher-longpress-menu", +- "owners": [ "lazzzis@google.com", "twellington" ], ++ "owners": [ "lazzzis@9oo91e.qjz9zk", "twellington" ], + "expiry_milestone": 81 + }, + { +@@ -3257,7 +3257,7 @@ + }, + { + "name": "tint-gl-composited-content", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + // This flag is used for QA & development on ChromeOS, which has no way to + // customize switches. + "expiry_milestone": -1 +@@ -3269,7 +3269,7 @@ + }, + { + "name": "top-chrome-touch-ui", +- "owners": [ "chrome-desktop-ui-sea@google.com" ], ++ "owners": [ "chrome-desktop-ui-sea@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -3299,19 +3299,19 @@ + }, + { + "name": "translate-android-manual-trigger", +- "owners": [ "anthonyvd", "frechette", "chrome-language@google.com" ], ++ "owners": [ "anthonyvd", "frechette", "chrome-language@9oo91e.qjz9zk" ], + // This flag is used to force manual Translate IPH to trigger on Android, + // which has no way to set command-line flags. + "expiry_milestone": -1 + }, + { + "name": "translate-force-trigger-on-english", +- "owners": [ "anthonyvd", "frechette", "chrome-language@google.com" ], ++ "owners": [ "anthonyvd", "frechette", "chrome-language@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "translate-ui-bubble-options", +- "owners": [ "hhw", "anthonyvd", "chrome-language@google.com" ], ++ "owners": [ "hhw", "anthonyvd", "chrome-language@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { +@@ -3336,7 +3336,7 @@ + }, + { + "name": "turn-off-streaming-media-caching", +- "owners": [ "shawnpi@microsoft.com" ], ++ "owners": [ "shawnpi@m1cr050ft.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -3387,12 +3387,12 @@ + }, + { + "name": "usage-stats", +- "owners": [ "pnoland", "chromeshine@google.com" ], ++ "owners": [ "pnoland", "chromeshine@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "use-angle", +- "owners": [ "angle-team@google.com" ], ++ "owners": [ "angle-team@9oo91e.qjz9zk" ], + // This flag is used by certain customers to set ANGLE to use its OpenGL + // backend on Windows. Its usage is small enough that it isn't worth + // promoting this to a chrome://settings entry, but it needs to be readily +@@ -3401,7 +3401,7 @@ + }, + { + "name": "use-fake-device-for-media-stream", +- "owners": [ "mcasas", "chromeos-gfx@google.com" ], ++ "owners": [ "mcasas", "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -3464,7 +3464,7 @@ + }, + { + "name": "wallet-service-use-sandbox", +- "owners": [ "jsaul@google.com", "jiahuiguo", "payments-autofill-team@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk", "jiahuiguo", "payments-autofill-team@9oo91e.qjz9zk" ], + // This flag is used by testing teams to run Google Payments calls against + // the development server environment. + "expiry_milestone": -1 +@@ -3491,52 +3491,52 @@ + }, + { + "name": "webxr", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-anchors", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-ar-dom-overlay", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "webxr-ar-module", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-hit-test", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-orientation-sensor-device", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-plane-detection", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "win-use-native-spellchecker", +- "owners": [ "gujen@google.com", "yyushkina@google.com" ], ++ "owners": [ "gujen@9oo91e.qjz9zk", "yyushkina@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "windows-mixed-reality", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "xr-sandbox", +- "owners": [ "//chrome/services/isolated_xr_device/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//chrome/services/isolated_xr_device/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -98,9 +98,9 @@ const char kUpdatedCellularActivationUiName[] = + const char kUpdatedCellularActivationUiDescription[] = + "Enables the updated cellular activation UI."; + +-const char kUseMessagesGoogleComDomainName[] = "Use messages.google.com domain"; ++const char kUseMessagesGoogleComDomainName[] = "Use messages.9oo91e.qjz9zk domain"; + const char kUseMessagesGoogleComDomainDescription[] = +- "Use the messages.google.com domain as part of the \"Messages\" " ++ "Use the messages.9oo91e.qjz9zk domain as part of the \"Messages\" " + "feature under \"Connected Devices\" settings."; + + const char kUseMessagesStagingUrlName[] = "Use Messages staging URL"; +diff --git a/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h b/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h +--- a/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h ++++ b/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h +@@ -25,13 +25,13 @@ + // and their computation is delayed at least a couple of seconds after the + // emitter is created to ensure browser startup performance is not affected. + // +-// See http://goto.google.com/chrome-no-searchdomaincheck for more details on ++// See http://goto.9oo91e.qjz9zk/chrome-no-searchdomaincheck for more details on + // what domain mixing metrics are and how they are computed. + class GoogleSearchDomainMixingMetricsEmitter : public KeyedService { + public: + // Preference field holding the last time at which domain mixing metrics for + // Google searches were computed, as a base::Time object. See +- // http://goto.google.com/chrome-no-searchdomaincheck for more details on what ++ // http://goto.9oo91e.qjz9zk/chrome-no-searchdomaincheck for more details on what + // domain mixing metrics are and how they are computed. + static const char kLastMetricsTime[]; + +diff --git a/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h b/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h +--- a/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h ++++ b/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h +@@ -20,7 +20,7 @@ class GoogleSearchDomainMixingMetricsEmitterFactory + public: + // Flag to enable computing domain mixing metrics based on the Google search + // activity of the user. +- // For more details, see http://goto.google.com/chrome-no-searchdomaincheck. ++ // For more details, see http://goto.9oo91e.qjz9zk/chrome-no-searchdomaincheck. + static const base::Feature kFeature; + + // Returns the singleton instance of the factory. +diff --git a/chrome/browser/google/google_update_win.cc b/chrome/browser/google/google_update_win.cc +--- a/chrome/browser/google/google_update_win.cc ++++ b/chrome/browser/google/google_update_win.cc +@@ -269,7 +269,7 @@ class UpdateCheckDriver { + // one of GOOGLE_UPDATE_ERROR_UPDATING, GOOGLE_UPDATE_DISABLED_BY_POLICY, or + // GOOGLE_UPDATE_ONDEMAND_CLASS_REPORTED_ERROR. |hresult| is populated with + // the most relevant HRESULT (which may be a value from Google Update; see +- // https://code.google.com/p/omaha/source/browse/trunk/base/error.h). In case ++ // https://code.9oo91e.qjz9zk/p/omaha/source/browse/trunk/base/error.h). In case + // Chrome's installer failed during execution, |installer_exit_code| may be + // populated with its process exit code (see enum installer::InstallStatus in + // chrome/installer/util/util_constants.h). |error_string| will be populated +diff --git a/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc b/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc +--- a/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc ++++ b/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc +@@ -59,7 +59,7 @@ bool ContextMenuContentTypeWebView::SupportsGroup(int group) { + // items on OS_MACOSX if we start supporting inside + // component extensions. + // For a list of places where /GuestViews are supported, see: +- // https://goo.gl/xfJkwp. ++ // https://goo.gl.qjz9zk.qjz9zk/xfJkwp. + if (!embedder_extension && web_view_guest && + web_view_guest->owner_web_contents()->GetWebUI()) { + return false; +diff --git a/chrome/browser/importer/firefox_profile_lock.cc b/chrome/browser/importer/firefox_profile_lock.cc +--- a/chrome/browser/importer/firefox_profile_lock.cc ++++ b/chrome/browser/importer/firefox_profile_lock.cc +@@ -18,14 +18,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -34,7 +34,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +@@ -60,7 +60,7 @@ const base::FilePath::CharType FirefoxProfileLock::kLockFileName[] = + const base::FilePath::CharType FirefoxProfileLock::kOldLockFileName[] = + FILE_PATH_LITERAL("parent.lock"); + #elif defined(OS_POSIX) +-// http://www.google.com/codesearch/p?hl=en#e_ObwTAVPyo/profile/dirserviceprovider/src/nsProfileLock.cpp&l=433 ++// http://www.9oo91e.qjz9zk/codesearch/p?hl=en#e_ObwTAVPyo/profile/dirserviceprovider/src/nsProfileLock.cpp&l=433 + const base::FilePath::CharType FirefoxProfileLock::kLockFileName[] = + FILE_PATH_LITERAL(".parentlock"); + const base::FilePath::CharType FirefoxProfileLock::kOldLockFileName[] = +diff --git a/chrome/browser/importer/firefox_profile_lock.h b/chrome/browser/importer/firefox_profile_lock.h +--- a/chrome/browser/importer/firefox_profile_lock.h ++++ b/chrome/browser/importer/firefox_profile_lock.h +@@ -18,7 +18,7 @@ + // Firefox is designed to allow only one application to access its + // profile at the same time. + // Reference: +-// http://kb.mozillazine.org/Profile_in_use ++// http://kb.m0z111azine.qjz9zk/Profile_in_use + // + // This class is based on Firefox code in: + // profile/dirserviceprovider/src/nsProfileLock.cpp +@@ -30,14 +30,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -46,7 +46,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +diff --git a/chrome/browser/importer/firefox_profile_lock_posix.cc b/chrome/browser/importer/firefox_profile_lock_posix.cc +--- a/chrome/browser/importer/firefox_profile_lock_posix.cc ++++ b/chrome/browser/importer/firefox_profile_lock_posix.cc +@@ -22,14 +22,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -38,7 +38,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +diff --git a/chrome/browser/importer/firefox_profile_lock_win.cc b/chrome/browser/importer/firefox_profile_lock_win.cc +--- a/chrome/browser/importer/firefox_profile_lock_win.cc ++++ b/chrome/browser/importer/firefox_profile_lock_win.cc +@@ -16,14 +16,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -32,7 +32,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +diff --git a/chrome/browser/local_discovery/service_discovery_client_mac.mm b/chrome/browser/local_discovery/service_discovery_client_mac.mm +--- a/chrome/browser/local_discovery/service_discovery_client_mac.mm ++++ b/chrome/browser/local_discovery/service_discovery_client_mac.mm +@@ -195,7 +195,7 @@ ServiceWatcherImplMac::NetServiceBrowserContainer:: + // weak delegate during deallocation, so a subsequently-deallocated delegate + // attempts to clear the pointer to itself in an NSNetServiceBrowser that's + // already gone. +- // https://crbug.com/657495, https://openradar.appspot.com/28943305 ++ // https://crbug.com/657495, https://openradar.8pp2p8t.qjz9zk/28943305 + [browser_ setDelegate:nil]; + + // Ensure the delegate clears all references to itself, which it had added as +@@ -316,7 +316,7 @@ ServiceResolverImplMac::NetServiceContainer::~NetServiceContainer() { + // delegate during deallocation, so a subsequently-deallocated delegate + // attempts to clear the pointer to itself in an NSNetService that's already + // gone. +- // https://crbug.com/657495, https://openradar.appspot.com/28943305 ++ // https://crbug.com/657495, https://openradar.8pp2p8t.qjz9zk/28943305 + [service_ setDelegate:nil]; + } + +diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc +--- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc ++++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc +@@ -101,7 +101,7 @@ std::string GetSimilarDomainFromTop500(const DomainInfo& navigated_domain) { + // If the only difference between the navigated and top + // domains is the registry part, this is unlikely to be a spoofing + // attempt. Ignore this match and continue. E.g. If the navigated domain +- // is google.com.tw and the top domain is google.com.tr, this won't ++ // is 9oo91e.qjz9zk.tw and the top domain is 9oo91e.qjz9zk.tr, this won't + // produce a match. + const std::string top_domain_without_registry = + url_formatter::top_domains::HostnameWithoutRegistry(top_domain); +@@ -135,7 +135,7 @@ std::string GetSimilarDomainFromEngagedSites( + // If the only difference between the navigated and engaged + // domain is the registry part, this is unlikely to be a spoofing + // attempt. Ignore this match and continue. E.g. If the navigated +- // domain is google.com.tw and the top domain is google.com.tr, this ++ // domain is 9oo91e.qjz9zk.tw and the top domain is 9oo91e.qjz9zk.tr, this + // won't produce a match. + if (navigated_domain.domain_without_registry != + engaged_site.domain_without_registry) { +@@ -309,7 +309,7 @@ ThrottleCheckResult LookalikeUrlNavigationThrottle::HandleThrottleRequest( + IsInterstitialReload(url, interstitial_params.redirect_chain)) { + CHECK(interstitial_params.url.SchemeIsHTTPOrHTTPS()); + // See +- // https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/plIZV3Rkzok ++ // https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/forum/#!topic/chromium-dev/plIZV3Rkzok + // for why this is OK. Assume interstitial reloads are always browser + // initiated. + navigation_handle()->GetWebContents()->OpenURL(content::OpenURLParams( +@@ -565,17 +565,17 @@ ThrottleCheckResult LookalikeUrlNavigationThrottle::PerformChecks( + // eTLD+1s only so this works well. + // 2. If matched_domain is an engaged domain and is not an eTLD+1, don't + // suggest it. Otherwise, navigating to googlé.com and having engaged with +- // docs.google.com would suggest docs.google.com. ++ // docs.9oo91e.qjz9zk would suggest docs.9oo91e.qjz9zk. + // + // When the navigated and matched domains are not eTLD+1s (e.g. +- // docs.googlé.com and docs.google.com), this will suggest google.com +- // instead of docs.google.com. This is less than ideal, but has two ++ // docs.googlé.com and docs.9oo91e.qjz9zk), this will suggest 9oo91e.qjz9zk ++ // instead of docs.9oo91e.qjz9zk. This is less than ideal, but has two + // benefits: + // - Simpler code + // - Fewer suggestions to non-existent domains. E.g. When the navigated + // domain is nonexistent.googlé.com and the matched domain is +- // docs.google.com, we will suggest google.com instead of +- // nonexistent.google.com. ++ // docs.9oo91e.qjz9zk, we will suggest 9oo91e.qjz9zk instead of ++ // nonexistent.9oo91e.qjz9zk. + const std::string suggested_domain = GetETLDPlusOne(matched_domain); + DCHECK(!suggested_domain.empty()); + // Drop everything but the parts of the origin. +diff --git a/chrome/browser/lookalikes/lookalike_url_service.h b/chrome/browser/lookalikes/lookalike_url_service.h +--- a/chrome/browser/lookalikes/lookalike_url_service.h ++++ b/chrome/browser/lookalikes/lookalike_url_service.h +@@ -36,7 +36,7 @@ struct DomainInfo { + // eTLD+1, used for skeleton and edit distance comparison. Must be ASCII. + // Empty for non-unique domains, localhost or sites whose eTLD+1 is empty. + const std::string domain_and_registry; +- // eTLD+1 without the registry part. For "www.google.com", this will be ++ // eTLD+1 without the registry part. For "www.9oo91e.qjz9zk", this will be + // "google". Used for edit distance comparisons. + // Empty for non-unique domains, localhost or sites whose eTLD+1 is empty. + const std::string domain_without_registry; +diff --git a/chrome/browser/media/android/remote/flinging_controller_bridge.cc b/chrome/browser/media/android/remote/flinging_controller_bridge.cc +--- a/chrome/browser/media/android/remote/flinging_controller_bridge.cc ++++ b/chrome/browser/media/android/remote/flinging_controller_bridge.cc +@@ -12,7 +12,7 @@ + namespace media_router { + + // From Android MediaStatus documentation. +-// https://developers.google.com/android/reference/com/google/android/gms/cast/MediaStatus.html ++// https://developers.9oo91e.qjz9zk/android/reference/com/google/android/gms/cast/MediaStatus.html + const int PLAYER_STATE_UNKOWN = 0; + const int PLAYER_STATE_IDLE = 1; + const int PLAYER_STATE_PLAYING = 2; +diff --git a/chrome/browser/media/protected_media_identifier_permission_context.cc b/chrome/browser/media/protected_media_identifier_permission_context.cc +--- a/chrome/browser/media/protected_media_identifier_permission_context.cc ++++ b/chrome/browser/media/protected_media_identifier_permission_context.cc +@@ -166,7 +166,7 @@ void ProtectedMediaIdentifierPermissionContext::UpdateTabContext( + + bool ProtectedMediaIdentifierPermissionContext::IsRestrictedToSecureOrigins() + const { +- // EME is not supported on insecure origins, see https://goo.gl/Ks5zf7 ++ // EME is not supported on insecure origins, see https://goo.gl.qjz9zk.qjz9zk/Ks5zf7 + // Note that origins whitelisted by --unsafely-treat-insecure-origin-as-secure + // flag will be treated as "secure" so they will not be affected. + return true; +diff --git a/chrome/browser/media/router/discovery/discovery_network_list_win.cc b/chrome/browser/media/router/discovery/discovery_network_list_win.cc +--- a/chrome/browser/media/router/discovery/discovery_network_list_win.cc ++++ b/chrome/browser/media/router/discovery/discovery_network_list_win.cc +@@ -239,7 +239,7 @@ std::vector GetDiscoveryNetworkInfoList() { + constexpr int kMaxGetAdaptersAddressTries = 10; + + // Use an initial buffer size of 15KB, as recommended by MSDN. See: +- // https://msdn.microsoft.com/en-us/library/windows/desktop/aa365915(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa365915(v=vs.85).aspx + constexpr int kInitialAddressBufferSize = 15000; + + constexpr ULONG kAddressFlags = +diff --git a/chrome/browser/media/router/media_sinks_observer.h b/chrome/browser/media/router/media_sinks_observer.h +--- a/chrome/browser/media/router/media_sinks_observer.h ++++ b/chrome/browser/media/router/media_sinks_observer.h +@@ -21,7 +21,7 @@ class MediaRouter; + // A MediaSinksObserver implementation can be registered to MediaRouter to + // receive results. It can then interpret / process the results accordingly. + // More documentation can be found at +-// docs.google.com/document/d/1RDXdzi2y7lRuL08HAe-qlSJG2DMz2iH3gBzMs0IRR78 ++// docs.9oo91e.qjz9zk/document/d/1RDXdzi2y7lRuL08HAe-qlSJG2DMz2iH3gBzMs0IRR78 + class MediaSinksObserver { + public: + // Constructs an observer from |origin| that will observe for sinks compatible +diff --git a/chrome/browser/media/router/presentation/local_presentation_manager.h b/chrome/browser/media/router/presentation/local_presentation_manager.h +--- a/chrome/browser/media/router/presentation/local_presentation_manager.h ++++ b/chrome/browser/media/router/presentation/local_presentation_manager.h +@@ -28,7 +28,7 @@ namespace media_router { + // Presentation API 1-UA mode, or a presentation to a wired display. + // + // Design doc: +-// https://docs.google.com/document/d/1XM3jhMJTQyhEC5PDAAJFNIaKh6UUEihqZDz_ztEe4Co/edit#heading=h.hadpx5oi0gml ++// https://docs.9oo91e.qjz9zk/document/d/1XM3jhMJTQyhEC5PDAAJFNIaKh6UUEihqZDz_ztEe4Co/edit#heading=h.hadpx5oi0gml + // + // Example usage: + // +diff --git a/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc b/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc +--- a/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc ++++ b/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc +@@ -31,7 +31,7 @@ std::vector GetOrigins(const MediaSource::Id& source_id) { + return base::StartsWith(source_id, kMirroringAppPrefix, + base::CompareCase::SENSITIVE) + ? std::vector( +- {url::Origin::Create(GURL("https://docs.google.com"))}) ++ {url::Origin::Create(GURL("https://docs.9oo91e.qjz9zk"))}) + : std::vector(); + } + +diff --git a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc +--- a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc ++++ b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc +@@ -561,12 +561,12 @@ std::vector DialMediaRouteProvider::GetOrigins( + base::flat_map>> + origin_white_list( + {{"YouTube", +- {CreateOrigin("https://tv.youtube.com"), +- CreateOrigin("https://tv-green-qa.youtube.com"), +- CreateOrigin("https://tv-release-qa.youtube.com"), +- CreateOrigin("https://web-green-qa.youtube.com"), +- CreateOrigin("https://web-release-qa.youtube.com"), +- CreateOrigin("https://www.youtube.com")}}, ++ {CreateOrigin("https://tv.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://tv-green-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://tv-release-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://web-green-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://web-release-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://www.y0u1ub3.qjz9zk")}}, + {"Netflix", {CreateOrigin("https://www.netflix.com")}}, + {"Pandora", {CreateOrigin("https://www.pandora.com")}}, + {"Radio", {CreateOrigin("https://www.pandora.com")}}, +diff --git a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +--- a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc ++++ b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +@@ -122,7 +122,7 @@ void OnURLLoadUploadProgress(uint64_t current, uint64_t total) { + } // namespace + + const char WebRtcEventLogUploaderImpl::kUploadURL[] = +- "https://clients2.google.com/cr/report"; ++ "https://clients2.9oo91e.qjz9zk/cr/report"; + + std::unique_ptr + WebRtcEventLogUploaderImpl::Factory::Create(const WebRtcLogFileInfo& log_file, +diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc +--- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc ++++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc +@@ -461,7 +461,7 @@ void WebRtcLogUploader::UploadCompressedLog( + "Not implemented, it would be good to do so." + })"); + +- constexpr char kUploadURL[] = "https://clients2.google.com/cr/report"; ++ constexpr char kUploadURL[] = "https://clients2.9oo91e.qjz9zk/cr/report"; + auto resource_request = std::make_unique(); + resource_request->url = !upload_url_for_testing_.is_empty() + ? upload_url_for_testing_ +diff --git a/chrome/browser/media_galleries/fileapi/media_path_filter.cc b/chrome/browser/media_galleries/fileapi/media_path_filter.cc +--- a/chrome/browser/media_galleries/fileapi/media_path_filter.cc ++++ b/chrome/browser/media_galleries/fileapi/media_path_filter.cc +@@ -121,7 +121,7 @@ bool MediaPathFilter::ShouldSkip(const base::FilePath& path) { + // to get the hidden attribute of windows recycle bin folders that are present + // on the attached device. Therefore, compare the file path name to the + // recycle bin name and exclude those folders. For more details, please refer +- // to http://support.microsoft.com/kb/171694. ++ // to http://support.m1cr050ft.qjz9zk/kb/171694. + const char win_98_recycle_bin_name[] = "RECYCLED"; + const char win_xp_recycle_bin_name[] = "RECYCLER"; + const char win_vista_recycle_bin_name[] = "$Recycle.bin"; +diff --git a/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc b/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc +--- a/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc ++++ b/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc +@@ -40,7 +40,7 @@ const size_t kSampleCountToBecomeConfirmedState = 10; + + // The struct used to return system process information via the NT internal + // QuerySystemInformation call. This is partially documented at +-// http://goo.gl/Ja9MrH and fully documented at http://goo.gl/QJ70rn ++// http://goo.gl.qjz9zk.qjz9zk/Ja9MrH and fully documented at http://goo.gl.qjz9zk.qjz9zk/QJ70rn + // This structure is laid out in the same format on both 32-bit and 64-bit + // systems, but has a different size due to the various pointer-sized fields. + struct SYSTEM_PROCESS_INFORMATION_EX { +diff --git a/chrome/browser/metrics/thread_watcher_android.h b/chrome/browser/metrics/thread_watcher_android.h +--- a/chrome/browser/metrics/thread_watcher_android.h ++++ b/chrome/browser/metrics/thread_watcher_android.h +@@ -7,7 +7,7 @@ + // deactive the thread watcher. Conversely, when onRestart() is called, + // it will reactivate. + // See more details in: +-// http://developer.android.com/training/basics/activity-lifecycle/stopping.html ++// http://developer.8n6r01d.qjz9zk/training/basics/activity-lifecycle/stopping.html + + #ifndef CHROME_BROWSER_METRICS_THREAD_WATCHER_ANDROID_H_ + #define CHROME_BROWSER_METRICS_THREAD_WATCHER_ANDROID_H_ +diff --git a/chrome/browser/nacl_host/nacl_infobar_delegate.cc b/chrome/browser/nacl_host/nacl_infobar_delegate.cc +--- a/chrome/browser/nacl_host/nacl_infobar_delegate.cc ++++ b/chrome/browser/nacl_host/nacl_infobar_delegate.cc +@@ -42,5 +42,5 @@ base::string16 NaClInfoBarDelegate::GetLinkText() const { + } + + GURL NaClInfoBarDelegate::GetLinkURL() const { +- return GURL("https://support.google.com/chrome/?p=ib_nacl"); ++ return GURL("https://support.9oo91e.qjz9zk/chrome/?p=ib_nacl"); + } +diff --git a/chrome/browser/net/dns_probe_runner.cc b/chrome/browser/net/dns_probe_runner.cc +--- a/chrome/browser/net/dns_probe_runner.cc ++++ b/chrome/browser/net/dns_probe_runner.cc +@@ -16,7 +16,7 @@ + + namespace chrome_browser_net { + +-const char DnsProbeRunner::kKnownGoodHostname[] = "google.com"; ++const char DnsProbeRunner::kKnownGoodHostname[] = "9oo91e.qjz9zk"; + + namespace { + +diff --git a/chrome/browser/net/dns_probe_runner.h b/chrome/browser/net/dns_probe_runner.h +--- a/chrome/browser/net/dns_probe_runner.h ++++ b/chrome/browser/net/dns_probe_runner.h +@@ -25,7 +25,7 @@ class NetworkContext; + namespace chrome_browser_net { + + // Runs DNS probes using a HostResolver and evaluates the responses. +-// (Currently requests A records for google.com and expects at least one IP ++// (Currently requests A records for 9oo91e.qjz9zk and expects at least one IP + // address in the response.) + // Used by DnsProbeService to probe the system and public DNS configurations. + class DnsProbeRunner : public network::ResolveHostClientBase { +diff --git a/chrome/browser/net/service_providers_win.cc b/chrome/browser/net/service_providers_win.cc +--- a/chrome/browser/net/service_providers_win.cc ++++ b/chrome/browser/net/service_providers_win.cc +@@ -90,7 +90,7 @@ void GetWinsockLayeredServiceProviders( + service_provider.chain_length = service_providers[i].ProtocolChain.ChainLen; + + // TODO(mmenke): Add categories under Vista and later. +- // http://msdn.microsoft.com/en-us/library/ms742239%28v=VS.85%29.aspx ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/ms742239%28v=VS.85%29.aspx + + wchar_t path[MAX_PATH]; + int path_length = base::size(path); +diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc +--- a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc ++++ b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc +@@ -89,7 +89,7 @@ bool TrialComparisonCertVerifierController::IsAllowed() const { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + // Only allow on non-incognito profiles which have SBER opt-in set. + // See design doc for more details: +- // https://docs.google.com/document/d/1AM1CD42bC6LHWjKg-Hkid_RLr2DH6OMzstH9-pGSi-g ++ // https://docs.9oo91e.qjz9zk/document/d/1AM1CD42bC6LHWjKg-Hkid_RLr2DH6OMzstH9-pGSi-g + + if (!MaybeAllowedForProfile(profile_)) + return false; +diff --git a/chrome/browser/notifications/notification_permission_context.h b/chrome/browser/notifications/notification_permission_context.h +--- a/chrome/browser/notifications/notification_permission_context.h ++++ b/chrome/browser/notifications/notification_permission_context.h +@@ -20,7 +20,7 @@ class Profile; + // + // https://notifications.spec.whatwg.org/ + // https://w3c.github.io/push-api/ +-// https://developer.chrome.com/apps/notifications ++// https://developer.ch40me.qjz9zk/apps/notifications + // + // ----------------------------------------------------------------------------- + // Websites +@@ -53,7 +53,7 @@ class Profile; + // The NotificationChannelsProviderAndroid implements this behaviour, and + // is added as a content setting provider to the HostContentSettingsMap. + // +-// https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels ++// https://developer.8n6r01d.qjz9zk/guide/topics/ui/notifiers/notifications#ManageChannels + // + // INCOGNITO + // +diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.mm b/chrome/browser/notifications/notification_platform_bridge_mac.mm +--- a/chrome/browser/notifications/notification_platform_bridge_mac.mm ++++ b/chrome/browser/notifications/notification_platform_bridge_mac.mm +@@ -489,7 +489,7 @@ bool NotificationPlatformBridgeMac::VerifyNotificationData( + // Overriden from _NSUserNotificationCenterDelegatePrivate. + // Emitted when a user closes a notification from the notification center. + // This is an undocumented method introduced in 10.8 according to +-// https://bugzilla.mozilla.org/show_bug.cgi?id=852648#c21 ++// https://bugzilla.m0z111a.qjz9zk/show_bug.cgi?id=852648#c21 + - (void)userNotificationCenter:(NSUserNotificationCenter*)center + didRemoveDeliveredNotifications:(NSArray*)notifications { + for (NSUserNotification* notification in notifications) { +diff --git a/chrome/browser/notifications/win/notification_template_builder.cc b/chrome/browser/notifications/win/notification_template_builder.cc +--- a/chrome/browser/notifications/win/notification_template_builder.cc ++++ b/chrome/browser/notifications/win/notification_template_builder.cc +@@ -349,7 +349,7 @@ const char kNotificationLaunchAttribute[] = "launch"; + // libXml was preferred (over WinXml, which the samples in the link below tend + // to use) for building the XML template because it is used frequently in + // Chrome, is nicer to use and has already been vetted. +-// https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-adaptive-interactive-toasts ++// https://docs.m1cr050ft.qjz9zk/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-adaptive-interactive-toasts + base::string16 BuildNotificationTemplate( + NotificationImageRetainer* image_retainer, + const NotificationLaunchId& launch_id, +diff --git a/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h +--- a/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h ++++ b/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h +@@ -23,7 +23,7 @@ class NavigationHandle; + // For AMP documents loaded in a subframe, recording works like so: + // + // * whenever the main frame URL gets updated with an AMP viewer +-// URL (e.g. https://www.google.com/amp/...), we track that in ++// URL (e.g. https://www.9oo91e.qjz9zk/amp/...), we track that in + // OnCommitSameDocumentNavigation. we use the time of the main + // frame URL update as the baseline time from which the + // user-perceived performance metrics like FCP are computed. +diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc +--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc ++++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc +@@ -505,7 +505,7 @@ bool FromGWSPageLoadMetricsLogger::ShouldLogPostCommitMetrics(const GURL& url) { + // redirector url), so we should not log stats. We could try to detect only + // the specific known search URLs here, and log navigations to other pages on + // the google search hostname (for example, a search for 'about google' +- // includes a result for https://www.google.com/about/), however, we assume ++ // includes a result for https://www.9oo91e.qjz9zk/about/), however, we assume + // these cases are relatively uncommon, and we run the risk of logging metrics + // for some search redirector URLs. Thus we choose the more conservative + // approach of ignoring all urls on known search hostnames. +diff --git a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc +--- a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc ++++ b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc +@@ -133,11 +133,11 @@ const char kHistogramNoServiceWorkerFirstContentfulPaintDocs[] = + namespace { + + bool IsInboxSite(const GURL& url) { +- return url.host_piece() == "inbox.google.com"; ++ return url.host_piece() == "inbox.9oo91e.qjz9zk"; + } + + bool IsDocsSite(const GURL& url) { +- return url.host_piece() == "docs.google.com"; ++ return url.host_piece() == "docs.9oo91e.qjz9zk"; + } + + bool IsForwardBackLoad(ui::PageTransition transition) { +diff --git a/chrome/browser/password_manager/password_manager_util_win.cc b/chrome/browser/password_manager/password_manager_util_win.cc +--- a/chrome/browser/password_manager/password_manager_util_win.cc ++++ b/chrome/browser/password_manager/password_manager_util_win.cc +@@ -275,7 +275,7 @@ bool CheckBlankPasswordWithPrefs(const WCHAR* username, + // In the case the password is blank, then LogonUser returns a failure, + // handle is INVALID_HANDLE_VALUE, and GetLastError() is + // ERROR_ACCOUNT_RESTRICTION. +- // http://msdn.microsoft.com/en-us/library/windows/desktop/ms681385 ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms681385 + blank_password = (logon_result || + last_error == ERROR_ACCOUNT_RESTRICTION); + } +diff --git a/chrome/browser/pepper_broker_infobar_delegate.cc b/chrome/browser/pepper_broker_infobar_delegate.cc +--- a/chrome/browser/pepper_broker_infobar_delegate.cc ++++ b/chrome/browser/pepper_broker_infobar_delegate.cc +@@ -88,7 +88,7 @@ base::string16 PepperBrokerInfoBarDelegate::GetLinkText() const { + } + + GURL PepperBrokerInfoBarDelegate::GetLinkURL() const { +- return GURL("https://support.google.com/chrome/?p=ib_pepper_broker"); ++ return GURL("https://support.9oo91e.qjz9zk/chrome/?p=ib_pepper_broker"); + } + + void PepperBrokerInfoBarDelegate::DispatchCallback(bool result) { +diff --git a/chrome/browser/permissions/mock_permission_request.cc b/chrome/browser/permissions/mock_permission_request.cc +--- a/chrome/browser/permissions/mock_permission_request.cc ++++ b/chrome/browser/permissions/mock_permission_request.cc +@@ -17,7 +17,7 @@ MockPermissionRequest::MockPermissionRequest() + : MockPermissionRequest("test", + "button", + "button", +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + PermissionRequestType::PERMISSION_NOTIFICATIONS, + PermissionRequestGestureType::UNKNOWN) {} + +@@ -25,7 +25,7 @@ MockPermissionRequest::MockPermissionRequest(const std::string& text) + : MockPermissionRequest(text, + "button", + "button", +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + PermissionRequestType::PERMISSION_NOTIFICATIONS, + PermissionRequestGestureType::UNKNOWN) {} + +@@ -36,7 +36,7 @@ MockPermissionRequest::MockPermissionRequest( + : MockPermissionRequest(text, + "button", + "button", +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + request_type, + gesture_type) {} + +@@ -56,7 +56,7 @@ MockPermissionRequest::MockPermissionRequest(const std::string& text, + : MockPermissionRequest(text, + accept_label, + deny_label, +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + PermissionRequestType::PERMISSION_NOTIFICATIONS, + PermissionRequestGestureType::UNKNOWN) {} + +diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc +--- a/chrome/browser/permissions/permission_context_base.cc ++++ b/chrome/browser/permissions/permission_context_base.cc +@@ -50,33 +50,33 @@ const char kPermissionBlockedKillSwitchMessage[] = + const char kPermissionBlockedRepeatedDismissalsMessage[] = + "%s permission has been blocked as the user has dismissed the permission " + "prompt several times. This can be reset in Site Settings. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + + const char kPermissionBlockedRepeatedIgnoresMessage[] = + "%s permission has been blocked as the user has ignored the permission " + "prompt several times. This can be reset in Site Settings. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + #else + const char kPermissionBlockedRepeatedDismissalsMessage[] = + "%s permission has been blocked as the user has dismissed the permission " + "prompt several times. This can be reset in Page Info which can be " + "accessed by clicking the lock icon next to the URL. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + + const char kPermissionBlockedRepeatedIgnoresMessage[] = + "%s permission has been blocked as the user has ignored the permission " + "prompt several times. This can be reset in Page Info which can be " + "accessed by clicking the lock icon next to the URL. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + #endif + + const char kPermissionBlockedFeaturePolicyMessage[] = + "%s permission has been blocked because of a Feature Policy applied to the " +- "current document. See https://goo.gl/EuHzyv for more details."; ++ "current document. See https://goo.gl.qjz9zk.qjz9zk/EuHzyv for more details."; + + void LogPermissionBlockedMessage(content::WebContents* web_contents, + const char* message, +diff --git a/chrome/browser/permissions/permission_uma_util.h b/chrome/browser/permissions/permission_uma_util.h +--- a/chrome/browser/permissions/permission_uma_util.h ++++ b/chrome/browser/permissions/permission_uma_util.h +@@ -28,7 +28,7 @@ enum class PermissionSourceUI { + PROMPT = 0, + + // Origin info bubble. +- // https://www.chromium.org/Home/chromium-security/enamel/goals-for-the-origin-info-bubble ++ // https://www.ch40m1um.qjz9zk/Home/chromium-security/enamel/goals-for-the-origin-info-bubble + OIB = 1, + + // chrome://settings/content/siteDetails?site=[SITE] +diff --git a/chrome/browser/platform_util_chromeos.cc b/chrome/browser/platform_util_chromeos.cc +--- a/chrome/browser/platform_util_chromeos.cc ++++ b/chrome/browser/platform_util_chromeos.cc +@@ -30,7 +30,7 @@ namespace platform_util { + namespace { + + const char kGmailComposeUrl[] = +- "https://mail.google.com/mail/?extsrc=mailto&url="; ++ "https://mail.9oo91e.qjz9zk/mail/?extsrc=mailto&url="; + + void ShowWarningOnOpenOperationResult(Profile* profile, + const base::FilePath& path, +diff --git a/chrome/browser/platform_util_win.cc b/chrome/browser/platform_util_win.cc +--- a/chrome/browser/platform_util_win.cc ++++ b/chrome/browser/platform_util_win.cc +@@ -93,7 +93,7 @@ void OpenExternalOnWorkerThread(const GURL& url) { + + // According to Mozilla in uriloader/exthandler/win/nsOSHelperAppService.cpp: + // "Some versions of windows (Win2k before SP3, Win XP before SP1) crash in +- // ShellExecute on long URLs (bug 161357 on bugzilla.mozilla.org). IE 5 and 6 ++ // ShellExecute on long URLs (bug 161357 on bugzilla.m0z111a.qjz9zk). IE 5 and 6 + // support URLS of 2083 chars in length, 2K is safe." + // + // It may be possible to increase this. https://crbug.com/727909 +diff --git a/chrome/browser/prefs/pref_metrics_service.cc b/chrome/browser/prefs/pref_metrics_service.cc +--- a/chrome/browser/prefs/pref_metrics_service.cc ++++ b/chrome/browser/prefs/pref_metrics_service.cc +@@ -68,7 +68,7 @@ void PrefMetricsService::RecordHomePageLaunchMetrics(bool show_home_button, + // use, due to both false negatives (pages that come from unknown TLD+1 X but + // consist of a search box that sends to known TLD+1 Y) and false positives + // (pages that share a TLD+1 with a known engine but aren't actually search +- // pages, e.g. plus.google.com). Additionally, record the TLD+1 of non-NTP ++ // pages, e.g. plus.9oo91e.qjz9zk). Additionally, record the TLD+1 of non-NTP + // homepages through the privacy-preserving Rappor service. + if (!homepage_is_ntp) { + if (homepage_url.is_valid()) { +diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc +--- a/chrome/browser/process_singleton_posix.cc ++++ b/chrome/browser/process_singleton_posix.cc +@@ -1102,7 +1102,7 @@ bool ProcessSingleton::KillProcessByLockPath(bool is_connected_to_socket) { + } + + void ProcessSingleton::KillProcess(int pid) { +- // TODO(james.su@gmail.com): Is SIGKILL ok? ++ // TODO(james.su@9ma1l.qjz9zk): Is SIGKILL ok? + int rv = kill(static_cast(pid), SIGKILL); + // ESRCH = No Such Process (can happen if the other process is already in + // progress of shutting down and finishes before we try to kill it). +diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc +--- a/chrome/browser/process_singleton_win.cc ++++ b/chrome/browser/process_singleton_win.cc +@@ -230,7 +230,7 @@ void TerminateProcessWithHistograms(const base::Process& process, + // Microsoft's Softricity virtualization breaks the sandbox processes. + // So, if we detect the Softricity DLL we use WMI Win32_Process.Create to + // break out of the virtualization environment. +-// http://code.google.com/p/chromium/issues/detail?id=43650 ++// http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=43650 + bool ProcessSingleton::EscapeVirtualization( + const base::FilePath& user_data_dir) { + if (::GetModuleHandle(L"sftldr_wow64.dll") || +diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/browser/profile_resetter/reset_report_uploader.cc +--- a/chrome/browser/profile_resetter/reset_report_uploader.cc ++++ b/chrome/browser/profile_resetter/reset_report_uploader.cc +@@ -20,7 +20,7 @@ + + namespace { + const char kResetReportUrl[] = +- "about:blank"; //https://sb-ssl.google.com/safebrowsing/clientreport/chrome-reset"; ++ "about:blank"; //https://sb-ssl.9oo91e.qjz9zk/safebrowsing/clientreport/chrome-reset"; + + GURL GetClientReportUrl(const std::string& report_url) { + GURL url(report_url); +diff --git a/chrome/browser/profiles/profile.h b/chrome/browser/profiles/profile.h +--- a/chrome/browser/profiles/profile.h ++++ b/chrome/browser/profiles/profile.h +@@ -69,7 +69,7 @@ class ProfileObserver; + + // Instead of adding more members to Profile, consider creating a + // KeyedService. See +-// http://dev.chromium.org/developers/design-documents/profile-architecture ++// http://dev.ch40m1um.qjz9zk/developers/design-documents/profile-architecture + class Profile : public content::BrowserContext { + public: + enum CreateStatus { +diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc +--- a/chrome/browser/profiles/profile_impl.cc ++++ b/chrome/browser/profiles/profile_impl.cc +@@ -1480,7 +1480,7 @@ GURL ProfileImpl::GetHomePage() { + *base::CommandLine::ForCurrentProcess(); + if (command_line.HasSwitch(switches::kHomePage)) { + // TODO(evanm): clean up usage of DIR_CURRENT. +- // http://code.google.com/p/chromium/issues/detail?id=60630 ++ // http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=60630 + // For now, allow this code to call getcwd(). + base::ThreadRestrictions::ScopedAllowIO allow_io; + +diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h +--- a/chrome/browser/profiles/profile_impl.h ++++ b/chrome/browser/profiles/profile_impl.h +@@ -328,7 +328,7 @@ class ProfileImpl : public Profile { + // Profile use our new BrowserContextKeyedServiceFactory system instead. + // You can find the design document here: + // +- // https://sites.google.com/a/chromium.org/dev/developers/design-documents/profile-architecture ++ // https://sites.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/dev/developers/design-documents/profile-architecture + // + // and you can read the raw headers here: + // +diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h +--- a/chrome/browser/profiles/profile_manager.h ++++ b/chrome/browser/profiles/profile_manager.h +@@ -459,7 +459,7 @@ class ProfileManager : public content::NotificationObserver, + // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for + // consistency with surrounding code in the same file but that wasn't trivial + // enough to do as part of the mass refactor CL which introduced +- // |thread_checker_|, ref. https://codereview.chromium.org/2907253003/#msg37. ++ // |thread_checker_|, ref. https://codereview.ch40m1um.qjz9zk/2907253003/#msg37. + THREAD_CHECKER(thread_checker_); + + DISALLOW_COPY_AND_ASSIGN(ProfileManager); +diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc +--- a/chrome/browser/profiles/profile_shortcut_manager_win.cc ++++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc +@@ -61,7 +61,7 @@ namespace { + const char kProfileIconFileName[] = "Google Profile.ico"; + + // Characters that are not allowed in Windows filenames. Taken from +-// http://msdn.microsoft.com/en-us/library/aa365247.aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/aa365247.aspx + const base::char16 kReservedCharacters[] = + L"<>:\"/\\|?*\x01\x02\x03\x04\x05" + L"\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17" +diff --git a/chrome/browser/profiles/profile_window.cc b/chrome/browser/profiles/profile_window.cc +--- a/chrome/browser/profiles/profile_window.cc ++++ b/chrome/browser/profiles/profile_window.cc +@@ -380,8 +380,8 @@ bool IsLockAvailable(Profile* profile) { + } + + // TODO(mlerman): Prohibit only users who authenticate using SAML. Until then, +- // prohibited users who use hosted domains (aside from google.com). +- if (hosted_domain != kNoHostedDomainFound && hosted_domain != "google.com") { ++ // prohibited users who use hosted domains (aside from 9oo91e.qjz9zk). ++ if (hosted_domain != kNoHostedDomainFound && hosted_domain != "9oo91e.qjz9zk") { + return false; + } + +diff --git a/chrome/browser/push_messaging/push_messaging_constants.cc b/chrome/browser/push_messaging/push_messaging_constants.cc +--- a/chrome/browser/push_messaging/push_messaging_constants.cc ++++ b/chrome/browser/push_messaging/push_messaging_constants.cc +@@ -5,7 +5,7 @@ + #include "chrome/browser/push_messaging/push_messaging_constants.h" + + const char kPushMessagingGcmEndpoint[] = +- "https://fcm.googleapis.com/fcm/send/"; ++ "https://fcm.9oo91eapis.qjz9zk/fcm/send/"; + + const char kPushMessagingForcedNotificationTag[] = + "user_visible_auto_notification"; +diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.h b/chrome/browser/push_messaging/push_messaging_notification_manager.h +--- a/chrome/browser/push_messaging/push_messaging_notification_manager.h ++++ b/chrome/browser/push_messaging/push_messaging_notification_manager.h +@@ -37,7 +37,7 @@ class WebContents; + // default notification when it is. + // + // See the following document and bug for more context: +-// https://docs.google.com/document/d/13VxFdLJbMwxHrvnpDm8RXnU41W2ZlcP0mdWWe9zXQT8/edit ++// https://docs.9oo91e.qjz9zk/document/d/13VxFdLJbMwxHrvnpDm8RXnU41W2ZlcP0mdWWe9zXQT8/edit + // https://crbug.com/437277 + class PushMessagingNotificationManager { + public: +diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc +--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc ++++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc +@@ -86,7 +86,7 @@ const char kSilentPushUnsupportedMessage[] = + "Chrome currently only supports the Push API for subscriptions that will " + "result in user-visible messages. You can indicate this by calling " + "pushManager.subscribe({userVisibleOnly: true}) instead. See " +- "https://goo.gl/yqv4Q4 for more details."; ++ "https://goo.gl.qjz9zk.qjz9zk/yqv4Q4 for more details."; + + void RecordDeliveryStatus(blink::mojom::PushDeliveryStatus status) { + UMA_HISTOGRAM_ENUMERATION("PushMessaging.DeliveryStatus", status); +diff --git a/chrome/browser/resources/PRESUBMIT.py b/chrome/browser/resources/PRESUBMIT.py +--- a/chrome/browser/resources/PRESUBMIT.py ++++ b/chrome/browser/resources/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for files in chrome/browser/resources. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +diff --git a/chrome/browser/resources/bookmarks/command_manager.js b/chrome/browser/resources/bookmarks/command_manager.js +--- a/chrome/browser/resources/bookmarks/command_manager.js ++++ b/chrome/browser/resources/bookmarks/command_manager.js +@@ -413,7 +413,7 @@ cr.define('bookmarks', function() { + chrome.bookmarks.export(); + break; + case Command.HELP_CENTER: +- window.open('https://support.google.com/chrome/?p=bookmarks'); ++ window.open('https://support.9oo91e.qjz9zk/chrome/?p=bookmarks'); + break; + default: + assert(false); +diff --git a/chrome/browser/resources/chromeos/about_os_credits.html b/chrome/browser/resources/chromeos/about_os_credits.html +--- a/chrome/browser/resources/chromeos/about_os_credits.html ++++ b/chrome/browser/resources/chromeos/about_os_credits.html +@@ -13,11 +13,11 @@ body { + + +

Placeholder

+-

See Licensing for Chromium OS Developers and +- Licensing for Chromium OS Package Owners

++

See Licensing for Chromium OS Developers and ++ Licensing for Chromium OS Package Owners

+

+ If you need to change styles, fonts, layout, etc of chrome://os_credits page, +-edit chromite/licensing/about_credits.tmpl. ++edit chromite/licensing/about_credits.tmpl. + The template is used to generate + a device-dependent about_os_credits.html when a CrOS image is built.

+ +diff --git a/chrome/browser/resources/chromeos/add_supervision/add_supervision.js b/chrome/browser/resources/chromeos/add_supervision/add_supervision.js +--- a/chrome/browser/resources/chromeos/add_supervision/add_supervision.js ++++ b/chrome/browser/resources/chromeos/add_supervision/add_supervision.js +@@ -7,14 +7,14 @@ + * @const {!Array} + */ + const ALLOWED_HOSTS = [ +- 'google.com', +- 'gstatic.com', +- 'googleapis.com', ++ '9oo91e.qjz9zk', ++ '95tat1c.qjz9zk', ++ '9oo91eapis.qjz9zk', + // FIFE avatar images (lh3-lh6). See http://go/fife-domains +- 'lh3.googleusercontent.com', +- 'lh4.googleusercontent.com', +- 'lh5.googleusercontent.com', +- 'lh6.googleusercontent.com', ++ 'lh3.9oo91eusercontent.qjz9zk', ++ 'lh4.9oo91eusercontent.qjz9zk', ++ 'lh5.9oo91eusercontent.qjz9zk', ++ 'lh6.9oo91eusercontent.qjz9zk', + ]; + + /** +diff --git a/chrome/browser/resources/chromeos/arc_support/background.js b/chrome/browser/resources/chromeos/arc_support/background.js +--- a/chrome/browser/resources/chromeos/arc_support/background.js ++++ b/chrome/browser/resources/chromeos/arc_support/background.js +@@ -333,13 +333,13 @@ class TermsOfServicePage { + this.termsView_.addContentScripts([ + { + name: 'preProcess', +- matches: ['https://play.google.com/*'], ++ matches: ['https://play.9oo91e.qjz9zk/*'], + js: {code: scriptInitTermsView}, + run_at: 'document_start' + }, + { + name: 'postProcess', +- matches: ['https://play.google.com/*'], ++ matches: ['https://play.9oo91e.qjz9zk/*'], + css: {files: ['playstore.css']}, + js: {files: ['playstore.js']}, + run_at: 'document_end' +@@ -448,7 +448,7 @@ class TermsOfServicePage { + return; + } + +- var defaultLocation = 'https://play.google.com/about/play-terms/'; ++ var defaultLocation = 'https://play.9oo91e.qjz9zk/about/play-terms/'; + if (this.termsView_.src) { + // This is reloading the page, typically clicked RETRY on error page. + this.fastLocation_ = undefined; +@@ -461,7 +461,7 @@ class TermsOfServicePage { + // Try fast load first if we know location. + this.fastLocation_ = this.getFastLocation_(); + if (this.fastLocation_) { +- this.termsView_.src = 'https://play.google.com/intl/' + ++ this.termsView_.src = 'https://play.9oo91e.qjz9zk/intl/' + + this.fastLocation_ + '/about/play-terms/'; + } else { + this.termsView_.src = defaultLocation; +@@ -573,7 +573,7 @@ class TermsOfServicePage { + // In case we failed with fast location let retry default scheme. + if (this.fastLocation_) { + this.fastLocation_ = undefined; +- this.termsView_.src = 'https://play.google.com/about/play-terms/'; ++ this.termsView_.src = 'https://play.9oo91e.qjz9zk/about/play-terms/'; + return; + } + this.onTermsViewLoadAborted_( +@@ -931,7 +931,7 @@ function showURLOverlay(url) { + */ + function showPrivacyPolicyOverlay() { + var defaultLink = +- 'https://www.google.com/intl/' + locale + '/policies/privacy/'; ++ 'https://www.9oo91e.qjz9zk/intl/' + locale + '/policies/privacy/'; + if (termsPage.isManaged_) { + showURLOverlay(defaultLink); + return; +@@ -1014,7 +1014,7 @@ chrome.app.runtime.onLaunched.addListener(function() { + }); + overlayWebview.addContentScripts([{ + name: 'postProcess', +- matches: ['https://support.google.com/*'], ++ matches: ['https://support.9oo91e.qjz9zk/*'], + css: {files: ['overlay.css']}, + run_at: 'document_end' + }]); +diff --git a/chrome/browser/resources/chromeos/arc_support/playstore.js b/chrome/browser/resources/chromeos/arc_support/playstore.js +--- a/chrome/browser/resources/chromeos/arc_support/playstore.js ++++ b/chrome/browser/resources/chromeos/arc_support/playstore.js +@@ -56,7 +56,7 @@ function navigateToLanguageAndCountryCode(language, countryCode) { + // Check special case for en_us which may be mapped to en. + var matchDefaultUs = null; + if (window.location.href.startsWith( +- 'https://play.google.com/intl/en_us/about/play-terms') && ++ 'https://play.9oo91e.qjz9zk/intl/en_us/about/play-terms') && + termsLang == 'en' && countryCode == 'us' && + selectLangZoneTerms.value.startsWith('/intl/en/about/play-terms')) { + return true; +@@ -211,7 +211,7 @@ function getPrivacyPolicyLink() { + } + } + } +- return 'https://www.google.com/policies/privacy/'; ++ return 'https://www.9oo91e.qjz9zk/policies/privacy/'; + } + + /** +@@ -226,7 +226,7 @@ function processDocument() { + formatDocument(); + + var initialLoad = window.location.href.startsWith( +- 'https://play.google.com/about/play-terms'); ++ 'https://play.9oo91e.qjz9zk/about/play-terms'); + var language = document.language; + if (!language) { + language = navigator.language; +diff --git a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js +--- a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js ++++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js +@@ -53,7 +53,7 @@ Polymer({ + * @private {string} + */ + urlTemplate_: +- 'https://www.gstatic.com/opa-android/oobe/a02187e41eed9e42/v2_omni_$.html', ++ 'https://www.95tat1c.qjz9zk/opa-android/oobe/a02187e41eed9e42/v2_omni_$.html', + + /** + * Whether try to reload with the default url when a 404 error occurred. +diff --git a/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js b/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js +--- a/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js ++++ b/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js +@@ -95,7 +95,7 @@ var ce=function(a,b){return{type:b,lengthComputable:a.lengthComputable,loaded:a. + h.L=function(){ee(this);for(var a=this.c.v(),b=this.c.L(),c=[],d=0;dthis.Ia?c.I({status:"payload-too-big",ta:Ua("Encoded hit length == %s, but should be <= %s.",d.length,this.Ia)}):Vd(this.Uc,function(){c.G(Gd)},d);return c};var he=function(a,b){var c=new de;c.add(Ga.name,a);Xa(b,function(a,b){c.add(a.name,b.toString())});return c.toString()};var ie=function(a,b,c){this.j=a;this.Tc=b;this.Ia=c};ie.prototype.cb=function(){if(!this.D){if(!Cc(this.j.ma).K)throw Error("Cannot construct shared channel prior to settings being ready.");new zd;var a=new Bd(new ge(this.Tc,this.Ia)),b=new Id;this.D=new Ad(this.j,new Jd(this.j,new Hd(b,a)))}return this.D};var je=new z,ke=function(){Ea||(Ea=new T(new od));return Ea};v("goog.async.Deferred",Q);v("goog.async.Deferred.prototype.addCallback",Q.prototype.w);v("goog.async.Deferred.prototype.callback",Q.prototype.G);v("goog.async.Deferred.prototype.then",Q.prototype.then);v("goog.events.EventTarget",O);v("goog.events.EventTarget.prototype.listen",O.prototype.listen); +-v("analytics.getService",function(a,b){var c=je.get(a,null),d=b||chrome.runtime.getManifest().version;if(null===c){c=ke();if(!Fa){var e=ke();Fa=new ud(e,new ie(e,"https://www.google-analytics.com/collect",8192))}c=new bd("ca1.6.0",a,d,c,Fa);je.set(a,c)}return c});v("analytics.internal.GoogleAnalyticsService",bd);v("analytics.internal.GoogleAnalyticsService.prototype.getTracker",bd.prototype.tc);v("analytics.internal.GoogleAnalyticsService.prototype.getConfig",bd.prototype.rc); ++v("analytics.getService",function(a,b){var c=je.get(a,null),d=b||chrome.runtime.getManifest().version;if(null===c){c=ke();if(!Fa){var e=ke();Fa=new ud(e,new ie(e,"https://www.9oo91e-analytics.qjz9zk/collect",8192))}c=new bd("ca1.6.0",a,d,c,Fa);je.set(a,c)}return c});v("analytics.internal.GoogleAnalyticsService",bd);v("analytics.internal.GoogleAnalyticsService.prototype.getTracker",bd.prototype.tc);v("analytics.internal.GoogleAnalyticsService.prototype.getConfig",bd.prototype.rc); + v("analytics.internal.ServiceSettings",T);v("analytics.internal.ServiceSettings.prototype.setTrackingPermitted",T.prototype.Wc);v("analytics.internal.ServiceSettings.prototype.isTrackingPermitted",T.prototype.Fa);v("analytics.internal.ServiceSettings.prototype.setSampleRate",T.prototype.Vc);v("analytics.internal.ServiceSettings.prototype.resetUserId",T.prototype.Nc);v("analytics.internal.ServiceTracker",S);v("analytics.internal.ServiceTracker.prototype.send",S.prototype.send); + v("analytics.internal.ServiceTracker.prototype.sendAppView",S.prototype.Pc);v("analytics.internal.ServiceTracker.prototype.sendEvent",S.prototype.Qc);v("analytics.internal.ServiceTracker.prototype.sendSocial",S.prototype.Sc);v("analytics.internal.ServiceTracker.prototype.sendException",S.prototype.Rc);v("analytics.internal.ServiceTracker.prototype.sendTiming",S.prototype.Pb);v("analytics.internal.ServiceTracker.prototype.startTiming",S.prototype.Zc);v("analytics.internal.ServiceTracker.Timing",ad); + v("analytics.internal.ServiceTracker.Timing.prototype.send",ad.prototype.send);v("analytics.internal.ServiceTracker.prototype.forceSessionStart",S.prototype.qc);v("analytics.internal.ServiceTracker.prototype.addFilter",S.prototype.Y);v("analytics.internal.FilterChannel.Hit",R);v("analytics.internal.FilterChannel.Hit.prototype.getHitType",R.prototype.Ab);v("analytics.internal.FilterChannel.Hit.prototype.getParameters",R.prototype.ba);v("analytics.internal.FilterChannel.Hit.prototype.cancel",R.prototype.cancel); +diff --git a/chrome/browser/resources/chromeos/camera/src/js/util.js b/chrome/browser/resources/chromeos/camera/src/js/util.js +--- a/chrome/browser/resources/chromeos/camera/src/js/util.js ++++ b/chrome/browser/resources/chromeos/camera/src/js/util.js +@@ -866,7 +866,7 @@ cca.util.isWindowFullSize = function() { + */ + cca.util.openHelp = function() { + window.open( +- 'https://support.google.com/chromebook/?p=camera_usage_on_chromebook'); ++ 'https://support.9oo91e.qjz9zk/chromebook/?p=camera_usage_on_chromebook'); + }; + + /** +diff --git a/chrome/browser/resources/chromeos/camera/src/manifest.json b/chrome/browser/resources/chromeos/camera/src/manifest.json +--- a/chrome/browser/resources/chromeos/camera/src/manifest.json ++++ b/chrome/browser/resources/chromeos/camera/src/manifest.json +@@ -21,7 +21,7 @@ + "fileManagerPrivate", + "fileSystem.requestDownloads", + {"fileSystem": ["write", "directory"]}, +- "https://www.google-analytics.com/" ++ "https://www.9oo91e-analytics.qjz9zk/" + ], + "app": { + "background": { +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js b/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js +@@ -359,7 +359,7 @@ cvox.ChromeVoxBackground.prototype.addBridgeListener = function() { + chrome.tabs.create(explorerPage); + break; + case 'HelpDocs': +- var helpPage = {url: 'http://chromevox.com/tutorial/index.html'}; ++ var helpPage = {url: 'http://ch40mevox.qjz9zk/tutorial/index.html'}; + chrome.tabs.create(helpPage); + break; + case 'Options': +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css +@@ -2,7 +2,7 @@ + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +-@import url(https://fonts.googleapis.com/css?family=Roboto); ++@import url(https://f0ntz.9oo91e8p1.qjz9zk/css?family=Roboto); + + body { + margin: 0 0 20px 0; +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js +@@ -100,7 +100,7 @@ cvox.OptionsPage.init = function() { + } + } + +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-chromevox-language-switching', + function(enabled) { + if (!enabled) { +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js b/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js +@@ -87,9 +87,9 @@ cvox.ChromeVoxPrefs.DEFAULT_PREFS = { + 'position': '{}', + 'siteSpecificEnhancements': true, + 'siteSpecificScriptBase': +- 'https://ssl.gstatic.com/accessibility/javascript/ext/', ++ 'https://ssl.95tat1c.qjz9zk/accessibility/javascript/ext/', + 'siteSpecificScriptLoader': +- 'https://ssl.gstatic.com/accessibility/javascript/ext/loader.js', ++ 'https://ssl.95tat1c.qjz9zk/accessibility/javascript/ext/loader.js', + 'speakTextUnderMouse': false, + 'sticky': false, + 'typingEcho': 0, +@@ -170,7 +170,7 @@ cvox.ChromeVoxPrefs.prototype.init = function(pullFromLocalStorage) { + } + // Since language switching is currently an experimental feature, ensure that + // it is off if the feature flag is absent. +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-chromevox-language-switching', + function(enabled) { + if (!enabled) { +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js +@@ -364,7 +364,7 @@ cvox.ChromeVoxEventWatcher.addEventListeners_ = function(doc) { + doc, 'select', cvox.ChromeVoxEventWatcher.selectEventWatcher, true); + + // TODO(dtseng): Experimental, see: +- // https://developers.google.com/chrome/whitepapers/pagevisibility ++ // https://developers.9oo91e.qjz9zk/chrome/whitepapers/pagevisibility + cvox.ChromeVoxEventWatcher.addEventListener_( + doc, 'webkitvisibilitychange', + cvox.ChromeVoxEventWatcher.visibilityChangeWatcher, true); +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js +@@ -396,7 +396,7 @@ cvox.History.sendToFeedback = function() { + + var feedbackScript = document.createElement('script'); + feedbackScript.type = 'text/javascript'; +- feedbackScript.src = 'https://www.gstatic.com/feedback/api.js'; ++ feedbackScript.src = 'https://www.95tat1c.qjz9zk/feedback/api.js'; + + var runFeedbackScript = document.createElement('script'); + runFeedbackScript.type = 'text/javascript'; +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js +@@ -98,7 +98,7 @@ cvox.NavigationManager.prototype.reset = function() { + this.shifter_ = new cvox.NavigationShifter(); + + // NOTE(deboer): document.activeElement can not be null (c.f. +- // https://developer.mozilla.org/en-US/docs/DOM/document.activeElement) ++ // https://developer.m0z111a.qjz9zk/en-US/docs/DOM/document.activeElement) + // Instead, if there is no active element, activeElement is set to + // document.body. + /** +diff --git a/chrome/browser/resources/chromeos/chromevox/common/dom_util.js b/chrome/browser/resources/chromeos/chromevox/common/dom_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/dom_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/dom_util.js +@@ -1438,7 +1438,7 @@ cvox.DomUtil.isFocusable = function(targetNode) { + return false; + } + +- // Workaround for http://code.google.com/p/chromium/issues/detail?id=153904 ++ // Workaround for http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=153904 + if ((targetNode.tagName == 'A') && !targetNode.hasAttribute('href') && + !targetNode.hasAttribute('tabindex')) { + return false; +@@ -2062,7 +2062,7 @@ cvox.DomUtil.isLayoutTable = function(tableNode) { + + // These heuristics are loosely based on Okada and Miura's "Detection of + // Layout-Purpose TABLE Tags Based on Machine Learning" (2007). +- // http://books.google.com/books?id=kUbmdqasONwC&lpg=PA116&ots=Lb3HJ7dISZ&lr&pg=PA116 ++ // http://books.9oo91e.qjz9zk/books?id=kUbmdqasONwC&lpg=PA116&ots=Lb3HJ7dISZ&lr&pg=PA116 + + // Increase the points for each heuristic. If there are 3 or more points, + // this is probably a layout table. +@@ -2147,7 +2147,7 @@ cvox.DomUtil.hasBorder = function(tableNode) { + } + + // If .style.border-width is specified in units of length +- // ( https://developer.mozilla.org/en/CSS/border-width ) then we need ++ // ( https://developer.m0z111a.qjz9zk/en/CSS/border-width ) then we need + // to check if .style.border-width starts with 0[px,em,etc] + if (tableNode.style.borderWidth) { + return (tableNode.style.borderWidth.slice(0, -2) != 0); +@@ -2185,7 +2185,7 @@ cvox.DomUtil.getFirstLeafNode = function() { + * CSS selector expressions. These expressions often result in a more + * compact representation of the desired result. + * This is the findNode function from goog.dom: +- * http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js ++ * http://code.9oo91e.qjz9zk/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js + * + * @param {Node} root The root of the tree to search. + * @param {function(Node) : boolean} p The filter function. +@@ -2223,7 +2223,7 @@ cvox.DomUtil.countNodes = function(root, p) { + * @return {boolean} Whether the search is complete or not. True in case + * findOne is true and the node is found. False otherwise. This is the + * findNodes_ function from goog.dom: +- * http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js. ++ * http://code.9oo91e.qjz9zk/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js. + * @private + */ + cvox.DomUtil.findNodes_ = function(root, p, rv, findOne, maxChildCount) { +diff --git a/chrome/browser/resources/chromeos/chromevox/common/selection_util.js b/chrome/browser/resources/chromeos/chromevox/common/selection_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/selection_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/selection_util.js +@@ -292,7 +292,7 @@ cvox.SelectionUtil.scrollToSelection = function(sel) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Determine whether a node's text content is entirely whitespace. + * + * Throughout, whitespace is defined as one of the characters +@@ -316,7 +316,7 @@ cvox.SelectionUtil.isAllWs = function(node) { + + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Determine if a node should be ignored by the iterator functions. + * + * @param {Node} node An object implementing the DOM1 |Node| interface. +@@ -333,7 +333,7 @@ cvox.SelectionUtil.isIgnorable = function(node) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |previousSibling| that skips nodes that are entirely + * whitespace or comments. (Normally |previousSibling| is a property + * of all DOM nodes that gives the sibling node, the node that is +@@ -356,7 +356,7 @@ cvox.SelectionUtil.nodeBefore = function(sib) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |nextSibling| that skips nodes that are entirely + * whitespace or comments. + * +@@ -376,7 +376,7 @@ cvox.SelectionUtil.nodeAfter = function(sib) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |lastChild| that skips nodes that are entirely + * whitespace or comments. (Normally |lastChild| is a property + * of all DOM nodes that gives the last of the nodes contained +@@ -400,7 +400,7 @@ cvox.SelectionUtil.lastChildNode = function(par) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |firstChild| that skips nodes that are entirely + * whitespace and comments. + * +@@ -422,7 +422,7 @@ cvox.SelectionUtil.firstChildNode = function(par) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |data| that doesn't include whitespace at the beginning + * and end and normalizes all whitespace to a single space. (Normally + * |data| is a property of text nodes that gives the text of the node.) +diff --git a/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js b/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js +--- a/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js +@@ -961,7 +961,7 @@ cvox.TraverseTable.prototype.getRow = function() { + * 2) Null if the table does not contain a summary attribute. + */ + cvox.TraverseTable.prototype.summaryText = function() { +- // see http://code.google.com/p/chromium/issues/detail?id=46567 ++ // see http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=46567 + // for information why this is necessary + if (!this.activeTable_.hasAttribute('summary')) { + return null; +diff --git a/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js b/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js +@@ -53,7 +53,7 @@ cvox.TraverseUtil.treatAsLeafNode = function(node) { + + /** + * Return true only if a single character is whitespace. +- * From https://developer.mozilla.org/en/Whitespace_in_the_DOM, ++ * From https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM, + * whitespace is defined as one of the characters + * "\t" TAB \u0009 + * "\n" LF \u000A +diff --git a/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js b/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js +@@ -43,7 +43,7 @@ cvox.XpathUtil.resolveNameSpace = function(prefix) { + * Given an XPath expression and rootNode, it returns an array of children nodes + * that match. The code for this function was taken from Mihai Parparita's GMail + * Macros Greasemonkey Script. +- * http://gmail-greasemonkey.googlecode.com/svn/trunk/scripts/gmail-new-macros.user.js ++ * http://gmail-greasemonkey.9oo91ecode.qjz9zk/svn/trunk/scripts/gmail-new-macros.user.js + * @param {string} expression The XPath expression to evaluate. + * @param {Node} rootNode The HTML node to start evaluating the XPath from. + * @return {Array} The array of children nodes that match. +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js +@@ -204,7 +204,7 @@ CommandHandler.onCommand = function(command) { + cvox.QueueMode.FLUSH); + return false; + case 'reportIssue': +- var url = 'https://code.google.com/p/chromium/issues/entry?' + ++ var url = 'https://code.9oo91e.qjz9zk/p/chromium/issues/entry?' + + 'labels=Type-Bug,Pri-2,cvox2,OS-Chrome&' + + 'components=UI>accessibility&' + + 'description='; +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js +@@ -54,7 +54,7 @@ LanguageSwitching.availableVoices_ = []; + */ + LanguageSwitching.init = function() { + // Enable sub-node language switching if feature flag is enabled. +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-chromevox-sub-node-language-' + + 'switching', + function(enabled) { +@@ -288,7 +288,7 @@ LanguageSwitching.hasVoiceForLanguage = function(languageCode) { + for (var i = 0; i < LanguageSwitching.availableVoices_.length; ++i) { + // Note: availableVoices_[i].lang is always in the form of + // 'language-region'. See link for documentation on chrome.tts api: +- // https://developer.chrome.com/apps/tts#type-TtsVoice ++ // https://developer.ch40me.qjz9zk/apps/tts#type-TtsVoice + var candidateLanguage = + LanguageSwitching.availableVoices_[i].lang.toLowerCase().split('-')[0]; + if (language === candidateLanguage) +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html b/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html +@@ -6,7 +6,7 @@ + + + +- ++ + + + +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js +@@ -128,15 +128,15 @@ Tutorial.PAGES = [ + {msgid: 'tutorial_learn_more'}, + { + msgid: 'next_command_reference', +- link: 'http://www.chromevox.com/next_keyboard_shortcuts.html' ++ link: 'http://www.ch40mevox.qjz9zk/next_keyboard_shortcuts.html' + }, + { + msgid: 'chrome_keyboard_shortcuts', +- link: 'https://support.google.com/chromebook/answer/183101?hl=en' ++ link: 'https://support.9oo91e.qjz9zk/chromebook/answer/183101?hl=en' + }, + { + msgid: 'touchscreen_accessibility', +- link: 'https://support.google.com/chromebook/answer/6103702?hl=en' ++ link: 'https://support.9oo91e.qjz9zk/chromebook/answer/6103702?hl=en' + }, + ], + ]; +diff --git a/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js b/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js +--- a/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js ++++ b/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js +@@ -24,7 +24,7 @@ cvox.SearchLoader.onReadyStateChange = function() { + if (document.readyState !== 'complete') { + return; + } +- var GOOGLE_HOST = 'www.google.com'; ++ var GOOGLE_HOST = 'www.9oo91e.qjz9zk'; + var SEARCH_PATH = '/search'; + + if (window.location.host !== GOOGLE_HOST || +diff --git a/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 b/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 +--- a/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 ++++ b/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 +@@ -43,8 +43,8 @@ + {% if is_webstore is not defined %} + "chrome-extension://*", + "chrome://*", +- "https://accounts.google.com/embedded/setup/chromeos*", +- "https://talkgadget.google.com/hangouts*", ++ "https://accounts.9oo91e.qjz9zk/embedded/setup/chromeos*", ++ "https://talkgadget.9oo91e.qjz9zk/hangouts*", + "*.pdf" + {% endif %} + ], +diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd +--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd ++++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd +@@ -114,7 +114,7 @@ + + + +- ++ + en + + +@@ -159,13 +159,13 @@ + + Decrease navigation granularity + +- ++ + Increase navigation granularity + + + Move to previous at granularity + +- ++ + Move to next at granularity + + +diff --git a/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py b/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py +--- a/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py ++++ b/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py +@@ -19,7 +19,7 @@ import webbrowser + + PROJECT_ARGS = { + 'client_id': ('937534751394-gbj5334v9144c57qjqghl7d283plj5r4' +- '.apps.googleusercontent.com'), ++ '.apps.9oo91eusercontent.qjz9zk'), + 'grant_type': 'authorization_code', + 'redirect_uri': 'http://localhost:8000' + } +@@ -33,11 +33,11 @@ g_app_id = '' + + # Constants. + PORT = 8000 +-OAUTH_DOMAIN = 'accounts.google.com' ++OAUTH_DOMAIN = 'accounts.9oo91e.qjz9zk' + OAUTH_AUTH_COMMAND = '/o/oauth2/auth' + OAUTH_TOKEN_COMMAND = '/o/oauth2/token' +-WEBSTORE_API_SCOPE = 'https://www.googleapis.com/auth/chromewebstore' +-API_ENDPOINT_DOMAIN = 'www.googleapis.com' ++WEBSTORE_API_SCOPE = 'https://www.9oo91eapis.qjz9zk/auth/chromewebstore' ++API_ENDPOINT_DOMAIN = 'www.9oo91eapis.qjz9zk' + + def GetUploadStatusCommand(): + global g_app_id +@@ -99,7 +99,7 @@ def GetPopulatedHeader(client_secret): + code = GetAuthCode() + access_token = GetOauthToken(code, client_secret) + +- url = 'www.googleapis.com' ++ url = 'www.9oo91eapis.qjz9zk' + + return {'Authorization': 'Bearer %(access_token)s' % access_token, + 'x-goog-api-version': 2, +diff --git a/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json b/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json +--- a/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json ++++ b/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json +@@ -40,8 +40,8 @@ + "diagnostics", + "metricsPrivate", + "networkingPrivate", +- "http://*.google.com/*", +- "https://*.google.com/*" ++ "http://*.9oo91e.qjz9zk/*", ++ "https://*.9oo91e.qjz9zk/*" + ], + "app": { + "background": { +diff --git a/chrome/browser/resources/chromeos/echo/manifest.json b/chrome/browser/resources/chromeos/echo/manifest.json +--- a/chrome/browser/resources/chromeos/echo/manifest.json ++++ b/chrome/browser/resources/chromeos/echo/manifest.json +@@ -5,7 +5,7 @@ + "version": "1.0.0", + "description": "Chrome Goodies", + "manifest_version": 2, +- "content_security_policy": "default-src 'self' blob: filesystem:; connect-src 'self' blob: filesystem: https://chromeos-registration.googleapis.com https://www.google-analytics.com", ++ "content_security_policy": "default-src 'self' blob: filesystem:; connect-src 'self' blob: filesystem: https://chromeos-registration.9oo91eapis.qjz9zk https://www.9oo91e-analytics.qjz9zk", + "permissions": [ + "alarms", + "cookies", +@@ -40,8 +40,8 @@ + "externally_connectable": { + "ids": ["*"], + "matches": [ +- "*://www.google.com/*chromebook/*", +- "*://www.google.com.au/*chromebook/*", ++ "*://www.9oo91e.qjz9zk/*chromebook/*", ++ "*://www.9oo91e.qjz9zk.au/*chromebook/*", + "*://www.google.ca/*chromebook/*", + "*://www.google.co.jp/*chromebook/*", + "*://www.google.co.uk/*chromebook/*", +@@ -54,7 +54,7 @@ + "*://www.google.no/*chromebook/*", + "*://www.google.co.nz/*chromebook/*", + "*://www.google.se/*chromebook/*", +- "*://chromebook-dot-googwebreview.appspot.com/*chromebook/*" ++ "*://chromebook-dot-googwebreview.8pp2p8t.qjz9zk/*chromebook/*" + ] + } + } +diff --git a/chrome/browser/resources/chromeos/emulator/icons.html b/chrome/browser/resources/chromeos/emulator/icons.html +--- a/chrome/browser/resources/chromeos/emulator/icons.html ++++ b/chrome/browser/resources/chromeos/emulator/icons.html +@@ -5,7 +5,7 @@ + + + + +diff --git a/chrome/browser/resources/chromeos/genius_app/manifest.json b/chrome/browser/resources/chromeos/genius_app/manifest.json +--- a/chrome/browser/resources/chromeos/genius_app/manifest.json ++++ b/chrome/browser/resources/chromeos/genius_app/manifest.json +@@ -33,36 +33,36 @@ + "webview", + "storage", + "unlimitedStorage", +- "https://*.ytimg.com/*", +- "https://www.google.com/*", +- "https://support.google.com/*", +- "https://scone-pa.clients6.google.com/*", +- "https://commondatastorage.googleapis.com/*", +- "https://storage.googleapis.com/*", +- "https://www.google-analytics.com/" ++ "https://*.yt1mg.qjz9zk/*", ++ "https://www.9oo91e.qjz9zk/*", ++ "https://support.9oo91e.qjz9zk/*", ++ "https://scone-pa.clients6.9oo91e.qjz9zk/*", ++ "https://commondatastorage.9oo91eapis.qjz9zk/*", ++ "https://storage.9oo91eapis.qjz9zk/*", ++ "https://www.9oo91e-analytics.qjz9zk/" + ], + "oauth2": { +- "client_id": "929143421683.apps.googleusercontent.com", ++ "client_id": "929143421683.apps.9oo91eusercontent.qjz9zk", + "scopes": [ +- "https://www.googleapis.com/auth/supportcontent", +- "https://www.googleapis.com/auth/cases", +- "https://www.googleapis.com/auth/cases.readonly", +- "https://www.googleapis.com/auth/pixelbook.email.preferences", +- "https://www.google.com/accounts/OAuthLogin" ++ "https://www.9oo91eapis.qjz9zk/auth/supportcontent", ++ "https://www.9oo91eapis.qjz9zk/auth/cases", ++ "https://www.9oo91eapis.qjz9zk/auth/cases.readonly", ++ "https://www.9oo91eapis.qjz9zk/auth/pixelbook.email.preferences", ++ "https://www.9oo91e.qjz9zk/accounts/OAuthLogin" + ] + }, + "display_in_new_tab_page": false, + "url_handlers": { + "view_answer": { + "matches": [ +- "https://support.google.com/chromeos-gethelp/answer/*" ++ "https://support.9oo91e.qjz9zk/chromeos-gethelp/answer/*" + ], + "title": "Open Help Article" + }, + "home": { + "matches": [ +- "https://support.google.com/chromeos-gethelp", +- "https://support.google.com/chromeos-gethelp/" ++ "https://support.9oo91e.qjz9zk/chromeos-gethelp", ++ "https://support.9oo91e.qjz9zk/chromeos-gethelp/" + ], + "title": "Open Help" + } +diff --git a/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json b/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json +--- a/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json ++++ b/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json +@@ -11,9 +11,9 @@ + "app.window.alwaysOnTop", + "app.window.ime", + "audioCapture", +- "https://clients4.google.com/", +- "https://dl.google.com/", +- "https://www.googleapis.com/", ++ "https://clients4.9oo91e.qjz9zk/", ++ "https://dl.9oo91e.qjz9zk/", ++ "https://www.9oo91eapis.qjz9zk/", + "input", + "inputMethodPrivate", + "metricsPrivate", +@@ -30,7 +30,7 @@ + "content_scripts": [ + { + "matches": [ +- "https://www.googleapis.com/auth/imesync*" ++ "https://www.9oo91eapis.qjz9zk/auth/imesync*" + ], + "js": [ + "chos_inject-debug.js" +diff --git a/chrome/browser/resources/chromeos/login/cr_ui.js b/chrome/browser/resources/chromeos/login/cr_ui.js +--- a/chrome/browser/resources/chromeos/login/cr_ui.js ++++ b/chrome/browser/resources/chromeos/login/cr_ui.js +@@ -416,7 +416,7 @@ cr.define('cr.ui', function() { + var Oobe = cr.ui.Oobe; + + // Allow selection events on components with editable text (password field) +-// bug (http://code.google.com/p/chromium/issues/detail?id=125863) ++// bug (http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=125863) + disableTextSelectAndDrag(function(e) { + var src = e.target; + return src instanceof HTMLTextAreaElement || +diff --git a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js +--- a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js ++++ b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js +@@ -8,6 +8,6 @@ Polymer({ + behaviors: [DiscoverModuleBehavior], + + onClick_: function() { +- window.open('http://www.google.com/chromebook/offers/', '_blank'); ++ window.open('http://www.9oo91e.qjz9zk/chromebook/offers/', '_blank'); + }, + }); +diff --git a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js +--- a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js ++++ b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js +@@ -8,6 +8,6 @@ Polymer({ + behaviors: [DiscoverModuleBehavior], + + onClick_: function() { +- window.open('https://www.google.com/chromebook/switch/', '_blank'); ++ window.open('https://www.9oo91e.qjz9zk/chromebook/switch/', '_blank'); + }, + }); +diff --git a/chrome/browser/resources/chromeos/login/encryption_migration.js b/chrome/browser/resources/chromeos/login/encryption_migration.js +--- a/chrome/browser/resources/chromeos/login/encryption_migration.js ++++ b/chrome/browser/resources/chromeos/login/encryption_migration.js +@@ -162,7 +162,7 @@ Polymer({ + // differently, it's recommended to add a command-line flag to Chrome and + // make session_manager pass it based on a feature-based USE flag which is + // set in the appropriate board overlays. +- // https://goo.gl/BbBkzg. ++ // https://goo.gl.qjz9zk.qjz9zk/BbBkzg. + return this.i18n('migrationBoardName').startsWith('kevin'); + }, + +diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.html b/chrome/browser/resources/chromeos/login/offline_gaia.html +--- a/chrome/browser/resources/chromeos/login/offline_gaia.html ++++ b/chrome/browser/resources/chromeos/login/offline_gaia.html +@@ -30,7 +30,7 @@ + 'email': , + 'password': } + If user did not type domain |email| will be added by +- "@gmail.com" or by 'emailDomain' if it is set. ++ "@9ma1l.qjz9zk" or by 'emailDomain' if it is set. + Methods: + 'focus' - focuses current screen (email input or password input); + 'setEmail' - accepts an argument |email|. If |email| is empty it sets +diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.js b/chrome/browser/resources/chromeos/login/offline_gaia.js +--- a/chrome/browser/resources/chromeos/login/offline_gaia.js ++++ b/chrome/browser/resources/chromeos/login/offline_gaia.js +@@ -3,7 +3,7 @@ + // found in the LICENSE file. + + { +- const DEFAULT_EMAIL_DOMAIN = '@gmail.com'; ++ const DEFAULT_EMAIL_DOMAIN = '@9ma1l.qjz9zk'; + + /** @enum */ + const TRANSITION_TYPE = {FORWARD: 0, BACKWARD: 1, NONE: 2}; +diff --git a/chrome/browser/resources/chromeos/login/saml_password_attributes.js b/chrome/browser/resources/chromeos/login/saml_password_attributes.js +--- a/chrome/browser/resources/chromeos/login/saml_password_attributes.js ++++ b/chrome/browser/resources/chromeos/login/saml_password_attributes.js +@@ -20,7 +20,7 @@ cr.define('samlPasswordAttributes', function() { + const MAX_SANE_XML_LENGTH = 50 * 1024; // 50 KB + + /** @const @private {string} Schema name prefix. */ +- const SCHEMA_NAME_PREFIX = 'http://schemas.google.com/saml/2019/'; ++ const SCHEMA_NAME_PREFIX = 'http://schemas.9oo91e.qjz9zk/saml/2019/'; + + /** @const @private {string} Schema name for password modified timestamp. */ + const PASSWORD_MODIFIED_TIMESTAMP = 'passwordmodifiedtimestamp'; +diff --git a/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js b/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js +--- a/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js ++++ b/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js +@@ -22,7 +22,7 @@ login.createScreen('ArcTermsOfServiceScreen', 'arc-tos', function() { + + /* The hostname of the url where the terms of service will be fetched. + * Overwritten by tests to load terms of service from local test server.*/ +- this.termsOfServiceHostName_ = 'https://play.google.com'; ++ this.termsOfServiceHostName_ = 'https://play.9oo91e.qjz9zk'; + }, + + +@@ -94,7 +94,7 @@ login.createScreen('ArcTermsOfServiceScreen', 'arc-tos', function() { + typeof results[0] == 'string') { + self.showUrlOverlay(results[0]); + } else { +- var defaultLink = 'https://www.google.com/intl/' + ++ var defaultLink = 'https://www.9oo91e.qjz9zk/intl/' + + self.getCurrentLanguage_() + '/policies/privacy/'; + self.showUrlOverlay(defaultLink); + } +@@ -108,7 +108,7 @@ login.createScreen('ArcTermsOfServiceScreen', 'arc-tos', function() { + }); + overlayUrl.addContentScripts([{ + name: 'postProcess', +- matches: ['https://support.google.com/*'], ++ matches: ['https://support.9oo91e.qjz9zk/*'], + css: {files: ['overlay.css']}, + run_at: 'document_end' + }]); +diff --git a/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 b/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 +--- a/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 ++++ b/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 +@@ -35,8 +35,8 @@ + "storage", + "tabs", + "tts", +- "https://docs.google.com/*", +- "https://docs.sandbox.google.com/*", ++ "https://docs.9oo91e.qjz9zk/*", ++ "https://docs.sandbox.9oo91e.qjz9zk/*", + "clipboard", + "clipboardRead", + "clipboardWrite" +@@ -48,8 +48,8 @@ + "options_page": "options.html", + "content_scripts": [ + { +- "matches": [ "https://docs.google.com/document*", +- "https://docs.sandbox.google.com/document*" ], ++ "matches": [ "https://docs.9oo91e.qjz9zk/document*", ++ "https://docs.sandbox.9oo91e.qjz9zk/document*" ], + "all_frames": true, + "js": [ + "select_to_speak_gdocs_script.js" +diff --git a/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js b/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js +--- a/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js ++++ b/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js +@@ -41,7 +41,7 @@ var MockTts = function() { + + MockTts.prototype = { + // Functions based on methods in +- // https://developer.chrome.com/extensions/tts ++ // https://developer.ch40me.qjz9zk/extensions/tts + speak: function(utterance, options) { + this.pendingUtterances_.push(utterance); + this.currentlySpeaking_ = true; +diff --git a/chrome/browser/resources/chromeos/select_to_speak/options.css b/chrome/browser/resources/chromeos/select_to_speak/options.css +--- a/chrome/browser/resources/chromeos/select_to_speak/options.css ++++ b/chrome/browser/resources/chromeos/select_to_speak/options.css +@@ -2,7 +2,7 @@ + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +-@import url(https://fonts.googleapis.com/css?family=Roboto); ++@import url(https://f0ntz.9oo91e8p1.qjz9zk/css?family=Roboto); + + body { + margin: 0 0 20px 0; +diff --git a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js +--- a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js ++++ b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js +@@ -14,7 +14,7 @@ const SELECT_TO_SPEAK_TRAY_CLASS_NAME = + // Matches one of the known GSuite apps which need the clipboard to find and + // read selected text. Includes sandbox and non-sandbox versions. + const GSUITE_APP_REGEXP = +- /^https:\/\/docs\.(?:sandbox\.)?google\.com\/(?:(?:presentation)|(?:document)|(?:spreadsheets)|(?:drawings)){1}\//; ++ /^https:\/\/docs\.(?:sandbox\.)?9oo91e\.qjz9zk\/(?:(?:presentation)|(?:document)|(?:spreadsheets)|(?:drawings)){1}\//; + + /** + * Determines if a node is in one of the known Google GSuite apps that needs +@@ -114,7 +114,7 @@ let SelectToSpeak = function() { + */ + this.enableLanguageDetectionIntegration_ = false; + // TODO(chrishall): do we want to (also?) expose this in preferences? +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-language-detection', (result) => { + this.enableLanguageDetectionIntegration_ = result; + }); +@@ -445,8 +445,8 @@ SelectToSpeak.prototype = { + chrome.tabs.query( + { + url: [ +- 'https://docs.google.com/document*', +- 'https://docs.sandbox.google.com/*' ++ 'https://docs.9oo91e.qjz9zk/document*', ++ 'https://docs.sandbox.9oo91e.qjz9zk/*' + ] + }, + (tabs) => { +diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd +--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd ++++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd +@@ -114,7 +114,7 @@ + + + +- ++ + en + + +diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access.js b/chrome/browser/resources/chromeos/switch_access/switch_access.js +--- a/chrome/browser/resources/chromeos/switch_access/switch_access.js ++++ b/chrome/browser/resources/chromeos/switch_access/switch_access.js +@@ -62,7 +62,7 @@ class SwitchAccess { + * @private + */ + init_() { +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-switch-access-text', (result) => { + this.enableImprovedTextInput_ = result; + }); +diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json b/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json +--- a/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json ++++ b/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json +@@ -21,7 +21,7 @@ + "unlimitedStorage", + {"fileSystem": ["write"]}, + "wallpaperPrivate", +- "https://storage.googleapis.com/", ++ "https://storage.9oo91eapis.qjz9zk/", + "syncFileSystem" + ], + "app": { +diff --git a/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h b/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h +--- a/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h ++++ b/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h +@@ -157,13 +157,13 @@ class Volume { + + // Callback factory used to submit jobs to worker_. + // See "Detailed Description" Note at: +- // https://developer.chrome.com/native-client/ ++ // https://developer.ch40me.qjz9zk/native-client/ + // pepper_dev/cpp/classpp_1_1_completion_callback_factory + // + // As a minus this would require ugly synchronization between the main thread + // and the function that is executed on worker_ construction. Current + // implementation is simimlar to examples in $NACL_SDK_ROOT and according to +- // https://chromiumcodereview.appspot.com/lint_patch/issue10790078_24001_25013 ++ // https://chromiumcodereview.8pp2p8t.qjz9zk/lint_patch/issue10790078_24001_25013 + // it should be safe (see TODO(dmichael)). That's because both worker_ and + // callback_factory_ will be alive during the life of Volume and deleting a + // Volume is permitted only if there are no requests in progress on +diff --git a/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js b/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js +--- a/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js ++++ b/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js +@@ -6,27 +6,27 @@ + + /** + * The Chrome File System Provider API. +- * @see https://developer.chrome.com/apps/fileSystemProvider ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider + * @const + */ + chrome.fileSystemProvider = {}; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#method-get ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#method-get + * @param {string} fileSystemId + * @param {function(!FileSystemInfo)} callback + */ + chrome.fileSystemProvider.get = function(fileSystemId, callback) {}; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#method-mount ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#method-mount + * @param {!Object} options + * @param {function(...)=} opt_callback + */ + chrome.fileSystemProvider.mount = function(options, opt_callback) {}; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#method-unmount ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#method-unmount + * @param {!Object} options + * @param {function(...)=} opt_callback + */ +@@ -34,73 +34,73 @@ chrome.fileSystemProvider.unmount = function(options, opt_callback) {}; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onUnmountRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onUnmountRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onUnmountRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onGetMetadataRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onGetMetadataRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onGetMetadataRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadDirectoryRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadDirectoryRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onReadDirectoryRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onOpenFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onOpenFileRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onOpenFileRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onCloseFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onCloseFileRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onCloseFileRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadFileRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onReadFileRequested; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-FileSystemInfo ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-FileSystemInfo + * @typedef {!Object} + */ + var FileSystemInfo; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-ProviderError ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-ProviderError + * @typedef {string} + */ + var ProviderError; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-EntryMetadata ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-EntryMetadata + * @typedef {!Object} + */ + var EntryMetadata; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-OpenFileMode ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-OpenFileMode + * @typedef {string} + */ + var OpenFileMode; + + /** + * THe Chrome Manifest Icons. Not defined in externs/chrome_extensions.js. +- * @see https://developer.chrome.com/apps/manifest/icons ++ * @see https://developer.ch40me.qjz9zk/apps/manifest/icons + * @typedef {!Array} + */ + chrome.runtime.Manifest.prototype.icons; +diff --git a/chrome/browser/resources/chromeos/zip_archiver/js/types.js b/chrome/browser/resources/chromeos/zip_archiver/js/types.js +--- a/chrome/browser/resources/chromeos/zip_archiver/js/types.js ++++ b/chrome/browser/resources/chromeos/zip_archiver/js/types.js +@@ -24,7 +24,7 @@ unpacker.types.EntryId; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onUnmountRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onUnmountRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId}>} + */ +@@ -32,7 +32,7 @@ unpacker.types.UnmountRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onGetMetadataRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onGetMetadataRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * entryPath: string, +@@ -42,7 +42,7 @@ unpacker.types.GetMetadataRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadDirectoryRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadDirectoryRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * directoryPath: string}>} +@@ -51,7 +51,7 @@ unpacker.types.ReadDirectoryRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onOpenFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onOpenFileRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * filePath: string, +@@ -61,7 +61,7 @@ unpacker.types.OpenFileRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onCloseFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onCloseFileRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * openRequestId: !unpacker.types.RequestId}>} +@@ -70,7 +70,7 @@ unpacker.types.CloseFileRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadFileRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * openRequestId: !unpacker.types.RequestId, +diff --git a/chrome/browser/resources/chromeos/zip_archiver/js/volume.js b/chrome/browser/resources/chromeos/zip_archiver/js/volume.js +--- a/chrome/browser/resources/chromeos/zip_archiver/js/volume.js ++++ b/chrome/browser/resources/chromeos/zip_archiver/js/volume.js +@@ -129,7 +129,7 @@ unpacker.Volume = function(decompressor, entry) { + /** + * The volume's metadata. The key is the full path to the file on this volume. + * For more details see +- * https://developer.chrome.com/apps/fileSystemProvider#type-EntryMetadata ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-EntryMetadata + * @type {?Object} + */ + this.metadata = null; +diff --git a/chrome/browser/resources/cloud_print_app/manifest.json b/chrome/browser/resources/cloud_print_app/manifest.json +--- a/chrome/browser/resources/cloud_print_app/manifest.json ++++ b/chrome/browser/resources/cloud_print_app/manifest.json +@@ -7,10 +7,10 @@ + }, + "app": { + "launch": { +- "web_url": "https://www.google.com/cloudprint" ++ "web_url": "https://www.9oo91e.qjz9zk/cloudprint" + }, + "urls": [ +- "https://www.google.com/cloudprint/enable_chrome_connector" ++ "https://www.9oo91e.qjz9zk/cloudprint/enable_chrome_connector" + ] + }, + "permissions": [ +diff --git a/chrome/browser/resources/cryptotoken/asn1.js b/chrome/browser/resources/cryptotoken/asn1.js +--- a/chrome/browser/resources/cryptotoken/asn1.js ++++ b/chrome/browser/resources/cryptotoken/asn1.js +@@ -9,7 +9,7 @@ + * must know something about the expected sequence of tags, which allows you to + * call getASN1() and friends with the right arguments and in the right order. + * +- * https://commondatastorage.googleapis.com/chromium-boringssl-docs/bytestring.h.html ++ * https://commondatastorage.9oo91eapis.qjz9zk/chromium-boringssl-docs/bytestring.h.html + * is the canonical API reference. + */ + const ByteString = class { +diff --git a/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js b/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js +--- a/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js ++++ b/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js +@@ -5,7 +5,7 @@ + /** + * @fileoverview Provides an implementation of approved origins that relies + * on the chrome.cryptotokenPrivate.requestPermission API. +- * (and only) allows google.com to use security keys. ++ * (and only) allows 9oo91e.qjz9zk to use security keys. + * + */ + 'use strict'; +diff --git a/chrome/browser/resources/cryptotoken/enroller.js b/chrome/browser/resources/cryptotoken/enroller.js +--- a/chrome/browser/resources/cryptotoken/enroller.js ++++ b/chrome/browser/resources/cryptotoken/enroller.js +@@ -427,7 +427,7 @@ function handleU2fEnrollRequest(messageSender, request, sendResponse) { + // This is a gNubby with obsolete firmware. We can't parse the reply from + // this device and users need to be guided to reflashing them. Therefore + // let attestation data pass directly so that can happen on +- // accounts.google.com. ++ // accounts.9oo91e.qjz9zk. + isDirect = true; + } + +@@ -851,7 +851,7 @@ Enroller.prototype.sendEnrollRequestToHelper_ = function() { + }; + + const googleCorpAppId = +- 'https://www.gstatic.com/securitykey/a/google.com/origins.json'; ++ 'https://www.95tat1c.qjz9zk/securitykey/a/9oo91e.qjz9zk/origins.json'; + + /** + * Proxies the registration request over the WebAuthn API. +diff --git a/chrome/browser/resources/default_apps/external_extensions.json b/chrome/browser/resources/default_apps/external_extensions.json +--- a/chrome/browser/resources/default_apps/external_extensions.json ++++ b/chrome/browser/resources/default_apps/external_extensions.json +@@ -24,15 +24,15 @@ + }, + // Google Sheets + "aapocclcgogkmnckokdopfmhonfmgoek" : { +- "external_update_url": "https://clients2.google.com/service/update2/crx" ++ "external_update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx" + }, + // Google Slides + "felcaaldnbdncclmgdcncolpebgiejap" : { +- "external_update_url": "https://clients2.google.com/service/update2/crx" ++ "external_update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx" + }, + // Drive extension + "ghbmnnjooekpmoecnnnilnnbdlolhkhi" : { +- "external_update_url": "https://clients2.google.com/service/update2/crx" ++ "external_update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx" + } + } + +diff --git a/chrome/browser/resources/discards/graph_doc_template.html b/chrome/browser/resources/discards/graph_doc_template.html +--- a/chrome/browser/resources/discards/graph_doc_template.html ++++ b/chrome/browser/resources/discards/graph_doc_template.html +@@ -33,7 +33,7 @@ URL. As result, this document needs to be self-contained, hence inline scripts. + } + + +- +diff --git a/chrome/browser/resources/downloads/icons.html b/chrome/browser/resources/downloads/icons.html +--- a/chrome/browser/resources/downloads/icons.html ++++ b/chrome/browser/resources/downloads/icons.html +@@ -7,7 +7,7 @@ + + + + +diff --git a/chrome/browser/resources/feedback/js/feedback_util.js b/chrome/browser/resources/feedback/js/feedback_util.js +--- a/chrome/browser/resources/feedback/js/feedback_util.js ++++ b/chrome/browser/resources/feedback/js/feedback_util.js +@@ -6,29 +6,29 @@ + * @const + */ + const FEEDBACK_LANDING_PAGE = +- 'https://support.google.com/chrome/go/feedback_confirmation'; ++ 'https://support.9oo91e.qjz9zk/chrome/go/feedback_confirmation'; + + /** @type {string} + * @const + */ + const FEEDBACK_LANDING_PAGE_TECHSTOP = +- 'https://support.google.com/pixelbook/answer/7659411'; ++ 'https://support.9oo91e.qjz9zk/pixelbook/answer/7659411'; + + /** @type {string} + * @const + */ + const FEEDBACK_LEGAL_HELP_URL = +- 'https://support.google.com/legal/answer/3110420'; ++ 'https://support.9oo91e.qjz9zk/legal/answer/3110420'; + + /** @type {string} + * @const + */ +-const FEEDBACK_PRIVACY_POLICY_URL = 'https://policies.google.com/privacy'; ++const FEEDBACK_PRIVACY_POLICY_URL = 'https://policies.9oo91e.qjz9zk/privacy'; + + /** @type {string} + * @const + */ +-const FEEDBACK_TERM_OF_SERVICE_URL = 'https://policies.google.com/terms'; ++const FEEDBACK_TERM_OF_SERVICE_URL = 'https://policies.9oo91e.qjz9zk/terms'; + + /** + * Opens the supplied url in an app window. It uses the url as the window ID. +diff --git a/chrome/browser/resources/gaia_auth_host/authenticator.js b/chrome/browser/resources/gaia_auth_host/authenticator.js +--- a/chrome/browser/resources/gaia_auth_host/authenticator.js ++++ b/chrome/browser/resources/gaia_auth_host/authenticator.js +@@ -20,7 +20,7 @@ cr.define('cr.login', function() { + // TODO(rogerta): should use gaia URL from GaiaUrls::gaia_url() instead + // of hardcoding the prod URL here. As is, this does not work with staging + // environments. +- const IDP_ORIGIN = 'https://accounts.google.com/'; ++ const IDP_ORIGIN = 'https://accounts.9oo91e.qjz9zk/'; + const SIGN_IN_HEADER = 'google-accounts-signin'; + const EMBEDDED_FORM_HEADER = 'google-accounts-embedded'; + const LOCATION_HEADER = 'location'; +@@ -510,7 +510,7 @@ cr.define('cr.login', function() { + url = appendParam( + url, 'continue', + data.gaiaUrl + 'programmatic_auth_chromeos?hl=' + data.hl + +- '&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin&' + ++ '&scope=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Faccounts%2FOAuthLogin&' + + 'client_id=' + encodeURIComponent(data.clientId) + + '&access_type=offline'); + +@@ -818,7 +818,7 @@ cr.define('cr.login', function() { + // TODO(https://crbug.com/837107): remove this once API is fully + // stabilized. + // @example.com is used in tests. +- if (!this.services_ && !this.email_.endsWith('@gmail.com') && ++ if (!this.services_ && !this.email_.endsWith('@9ma1l.qjz9zk') && + !this.email_.endsWith('@example.com')) { + console.warn('Forcing empty services.'); + this.services_ = []; +diff --git a/chrome/browser/resources/hangout_services/manifest.json b/chrome/browser/resources/hangout_services/manifest.json +--- a/chrome/browser/resources/hangout_services/manifest.json ++++ b/chrome/browser/resources/hangout_services/manifest.json +@@ -9,7 +9,7 @@ + "manifest_version": 2, + "externally_connectable": { + "matches": [ +- "https://*.google.com/*", ++ "https://*.9oo91e.qjz9zk/*", + // For tests. + "*://localhost/*" + ] +diff --git a/chrome/browser/resources/hats/hats.html b/chrome/browser/resources/hats/hats.html +--- a/chrome/browser/resources/hats/hats.html ++++ b/chrome/browser/resources/hats/hats.html +@@ -45,7 +45,7 @@ + // the iframe's disposal to make sure the iframe is already loaded, + // which means the answer has been posted to the server. + // TODO(weili): Once this issue is fixed in HaTS library +- // (https://b.corp.google.com/issues/143494318), remove the following ++ // (https://b.corp.9oo91e.qjz9zk/issues/143494318), remove the following + // work around. + const element = document.querySelector(`iframe[id^='closure_frame']`); + if (element === null) { +diff --git a/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js b/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js +--- a/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js ++++ b/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js +@@ -27,11 +27,11 @@ function loadAuthUrlAndShowWindow(url, win) { + return {requestHeaders: headers}; + }, + { +- urls: ['https://accounts.google.com/*'], ++ urls: ['https://accounts.9oo91e.qjz9zk/*'], + }, + ['blocking', 'requestHeaders']); + +- if (!url.toLowerCase().startsWith('https://accounts.google.com/')) { ++ if (!url.toLowerCase().startsWith('https://accounts.9oo91e.qjz9zk/')) { + document.querySelector('.titlebar').classList.add('titlebar-border'); + } + +diff --git a/chrome/browser/resources/inspect/inspect.html b/chrome/browser/resources/inspect/inspect.html +--- a/chrome/browser/resources/inspect/inspect.html ++++ b/chrome/browser/resources/inspect/inspect.html +@@ -47,7 +47,7 @@ found in the LICENSE file. + + + +@@ -91,7 +91,7 @@ found in the LICENSE file. +
+ Define the listening port on your device that maps to a port accessible + from your development machine. +- Learn more +
+
+diff --git a/chrome/browser/resources/local_ntp/customize.js b/chrome/browser/resources/local_ntp/customize.js +--- a/chrome/browser/resources/local_ntp/customize.js ++++ b/chrome/browser/resources/local_ntp/customize.js +@@ -2326,7 +2326,7 @@ customize.colorsMenuOnThemeChange = function() { + $(customize.IDS.COLORS_THEME).classList.add(customize.CLASSES.VISIBLE); + $(customize.IDS.COLORS_THEME_NAME).innerHTML = themeInfo.themeName; + $(customize.IDS.COLORS_THEME_WEBSTORE_LINK).href = +- 'https://chrome.google.com/webstore/detail/' + themeInfo.themeId; ++ 'https://chrome.9oo91e.qjz9zk/webstore/detail/' + themeInfo.themeId; + $(customize.IDS.COLORS_THEME_UNINSTALL).onclick = + ntpApiHandle.useDefaultTheme; + +diff --git a/chrome/browser/resources/local_ntp/doodles.js b/chrome/browser/resources/local_ntp/doodles.js +--- a/chrome/browser/resources/local_ntp/doodles.js ++++ b/chrome/browser/resources/local_ntp/doodles.js +@@ -117,7 +117,7 @@ doodles.resizeDoodleHandler = function(args) { + const transitionCallback = function() { + iframe.removeEventListener('webkitTransitionEnd', transitionCallback); + iframe.contentWindow.postMessage( +- {cmd: 'resizeComplete'}, 'https://www.google.com'); ++ {cmd: 'resizeComplete'}, 'https://www.9oo91e.qjz9zk'); + }; + iframe.addEventListener('webkitTransitionEnd', transitionCallback, false); + +@@ -693,7 +693,7 @@ doodles.updateShareDialog = function() { + const shortLink = doodles.targetDoodle.metadata.shortLink; + + facebookButton.onclick = function() { +- const url = 'https://www.facebook.com/dialog/share' + ++ const url = 'https://www.f8c3b00k.qjz9zk/dialog/share' + + '?app_id=' + doodles.FACEBOOK_APP_ID + + '&href=' + encodeURIComponent(shortLink) + + '&hashtag=' + encodeURIComponent('#GoogleDoodle'); +diff --git a/chrome/browser/resources/local_ntp/voice.js b/chrome/browser/resources/local_ntp/voice.js +--- a/chrome/browser/resources/local_ntp/voice.js ++++ b/chrome/browser/resources/local_ntp/voice.js +@@ -8,8 +8,8 @@ + * Get the preferred language for UI localization. Represents Chrome's UI + * language, which might not coincide with the user's "preferred" language + * in the Settings. For more details, see: +- * - https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage/language +- * - https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage/languages ++ * - https://developer.m0z111a.qjz9zk/en/docs/Web/API/NavigatorLanguage/language ++ * - https://developer.m0z111a.qjz9zk/en/docs/Web/API/NavigatorLanguage/languages + * + * The returned value is a language version string as defined in + * BCP 47. +@@ -91,7 +91,7 @@ const RecognitionError = { + + /** + * Provides methods for communicating with the ++ * href="https://developer.m0z111a.qjz9zk/en-US/docs/Web/API/Web_Speech_API"> + * Web Speech API, error handling and executing search queries. + */ + const speech = {}; +@@ -999,7 +999,7 @@ text.LISTENING_TIMEOUT_MS_ = 2000; + * @const @private + */ + text.SUPPORT_LINK_BASE_ = +- 'https://support.google.com/chrome/?p=ui_voice_search&hl='; ++ 'https://support.9oo91e.qjz9zk/chrome/?p=ui_voice_search&hl='; + + /** + * The final / high confidence speech recognition result element. +diff --git a/chrome/browser/resources/media/mei_preload/manifest.json b/chrome/browser/resources/media/mei_preload/manifest.json +--- a/chrome/browser/resources/media/mei_preload/manifest.json ++++ b/chrome/browser/resources/media/mei_preload/manifest.json +@@ -3,6 +3,6 @@ + "icons": {}, + "version": "1.0.5.0", + "manifest_version": 2, +- "update_url": "https://clients2.google.com/service/update2/crx", ++ "update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx", + "name": "MEI Preload" + } +\ No newline at end of file +diff --git a/chrome/browser/resources/media/webrtc_logs.js b/chrome/browser/resources/media/webrtc_logs.js +--- a/chrome/browser/resources/media/webrtc_logs.js ++++ b/chrome/browser/resources/media/webrtc_logs.js +@@ -82,7 +82,7 @@ function updateWebRtcTextLogsList(textLogsList, version) { + template: 'Defect report from user', + comment: commentLines.join('\n'), + }; +- let href = 'http://code.google.com/p/chromium/issues/entry'; ++ let href = 'http://code.9oo91e.qjz9zk/p/chromium/issues/entry'; + for (const param in params) { + href = appendParam(href, param, params[param]); + } +diff --git a/chrome/browser/resources/media_router/extension/manifest.yaml b/chrome/browser/resources/media_router/extension/manifest.yaml +--- a/chrome/browser/resources/media_router/extension/manifest.yaml ++++ b/chrome/browser/resources/media_router/extension/manifest.yaml +@@ -38,14 +38,14 @@ + }, + + # Google Feedback requires: +- # script-src: https://feedback.googleusercontent.com https://www.google.com +- # https://www.gstatic.com/feedback +- # child-src: https://www.google.com ++ # script-src: https://feedback.9oo91eusercontent.qjz9zk https://www.9oo91e.qjz9zk ++ # https://www.95tat1c.qjz9zk/feedback ++ # child-src: https://www.9oo91e.qjz9zk + # + # Webview elements are implemented as a custom elements that loads + # dynamic plugin data. Without an "object-src 'self'" permission in the CSP, + # webview elements fail to attach to extension pages (crbug.com/509854). +- "content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' https://feedback.googleusercontent.com https://www.google.com https://www.gstatic.com; child-src https://www.google.com; connect-src 'self' http://*:* https://*:*; font-src https://fonts.gstatic.com; object-src 'self';", ++ "content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline' https://f0ntz.9oo91e8p1.qjz9zk; script-src 'self' https://feedback.9oo91eusercontent.qjz9zk https://www.9oo91e.qjz9zk https://www.95tat1c.qjz9zk; child-src https://www.9oo91e.qjz9zk; connect-src 'self' http://*:* https://*:*; font-src https://fonts.95tat1c.qjz9zk; object-src 'self';", + + # Setting the public key fixes the extension id to: + # enhhojjnijigcajfphajepfemndkmdlo +diff --git a/chrome/browser/resources/net_internals/domain_security_policy_view.html b/chrome/browser/resources/net_internals/domain_security_policy_view.html +--- a/chrome/browser/resources/net_internals/domain_security_policy_view.html ++++ b/chrome/browser/resources/net_internals/domain_security_policy_view.html +@@ -13,8 +13,8 @@ + +
+ HSTS is HTTP Strict Transport Security: a way for sites to elect to +- always use HTTPS. See +- https://www.chromium.org/hsts. PKP is Public Key Pinning: Chrome "pins" ++ always use HTTPS. See ++ https://www.ch40m1um.qjz9zk/hsts. PKP is Public Key Pinning: Chrome "pins" + certain public keys for certain sites in official builds.
+ +

Add HSTS domain

+diff --git a/chrome/browser/resources/net_internals/domain_security_policy_view.js b/chrome/browser/resources/net_internals/domain_security_policy_view.js +--- a/chrome/browser/resources/net_internals/domain_security_policy_view.js ++++ b/chrome/browser/resources/net_internals/domain_security_policy_view.js +@@ -6,7 +6,7 @@ + * This UI allows a user to query and update the browser's list of per-domain + * security policies. These policies include: + * - HSTS: HTTPS Strict Transport Security. A way for sites to elect to always +- * use HTTPS. See http://dev.chromium.org/sts ++ * use HTTPS. See http://dev.ch40m1um.qjz9zk/sts + * - Expect-CT. A way for sites to elect to always require valid Certificate + * Transparency information to be present. See + * https://tools.ietf.org/html/draft-ietf-httpbis-expect-ct-01 +diff --git a/chrome/browser/resources/net_internals/events_view.html b/chrome/browser/resources/net_internals/events_view.html +--- a/chrome/browser/resources/net_internals/events_view.html ++++ b/chrome/browser/resources/net_internals/events_view.html +@@ -1,6 +1,6 @@ + +
+ The net-internals events viewer and related functionality has been removed. +- Please use chrome://net-export to save netlogs and the external catapult netlog_viewer to view them. ++ Please use chrome://net-export to save netlogs and the external catapult netlog_viewer to view them. +
+ +diff --git a/chrome/browser/resources/network_speech_synthesis/manifest.json b/chrome/browser/resources/network_speech_synthesis/manifest.json +--- a/chrome/browser/resources/network_speech_synthesis/manifest.json ++++ b/chrome/browser/resources/network_speech_synthesis/manifest.json +@@ -10,7 +10,7 @@ + "permissions": [ + "systemPrivate", + "ttsEngine", +- "https://www.google.com/" ++ "https://www.9oo91e.qjz9zk/" + ], + "tts_engine": { + "voices": [ +diff --git a/chrome/browser/resources/network_speech_synthesis/tts_extension.js b/chrome/browser/resources/network_speech_synthesis/tts_extension.js +--- a/chrome/browser/resources/network_speech_synthesis/tts_extension.js ++++ b/chrome/browser/resources/network_speech_synthesis/tts_extension.js +@@ -30,7 +30,7 @@ TtsExtension.prototype = { + * @const + * @private + */ +- SPEECH_SERVER_URL_: 'https://www.google.com/speech-api/v2/synthesize?' + ++ SPEECH_SERVER_URL_: 'https://www.9oo91e.qjz9zk/speech-api/v2/synthesize?' + + 'enc=mpeg&client=chromium', + + /** +diff --git a/chrome/browser/resources/omnibox/omnibox.html b/chrome/browser/resources/omnibox/omnibox.html +--- a/chrome/browser/resources/omnibox/omnibox.html ++++ b/chrome/browser/resources/omnibox/omnibox.html +@@ -94,7 +94,7 @@ + Current page context: +

+ +