From 7fd6ef8bf554f58f5101f53a2baafa8857daecc8 Mon Sep 17 00:00:00 2001 From: xsmile <> Date: Wed, 4 Apr 2018 21:44:27 +0200 Subject: [PATCH 1/4] 66.0.3359.66: Update Inox patches --- 0001-fix-building-without-safebrowsing.patch | 667 +++++++++++-------- 0002-fix-building-without-reporting.patch | 57 +- 0003-disable-autofill-download-manager.patch | 47 +- 0005-disable-default-extensions.patch | 66 +- 0006-modify-default-prefs.patch | 28 +- 0007-disable-web-resource-service.patch | 49 +- 0008-restore-classic-ntp.patch | 4 +- 0009-disable-google-ipv6-probes.patch | 2 +- 0010-disable-gcm-status-check.patch | 74 +- 0014-disable-translation-lang-fetch.patch | 6 +- 0015-disable-update-pings.patch | 2 +- 0016-chromium-sandbox-pie.patch | 2 +- 0019-disable-battery-status-service.patch | 23 +- 9000-disable-metrics.patch | 23 +- 14 files changed, 615 insertions(+), 435 deletions(-) diff --git a/0001-fix-building-without-safebrowsing.patch b/0001-fix-building-without-safebrowsing.patch index 3c0fbb3..fe8813e 100644 --- a/0001-fix-building-without-safebrowsing.patch +++ b/0001-fix-building-without-safebrowsing.patch @@ -1,30 +1,37 @@ --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -645,6 +645,7 @@ void SetApplicationLocaleOnIOThread(cons +@@ -653,30 +653,6 @@ void SetApplicationLocaleOnIOThread(cons g_io_thread_application_locale.Get() = locale; } -+#if 0 - // An implementation of the SSLCertReporter interface used by - // SSLErrorHandler. Uses CertificateReportingService to send reports. The - // service handles queueing and re-sending of failed reports. Each certificate -@@ -660,7 +661,6 @@ class CertificateReportingServiceCertRep - // SSLCertReporter implementation - void ReportInvalidCertificateChain( - const std::string& serialized_report) override { +-// An implementation of the SSLCertReporter interface used by +-// SSLErrorHandler. Uses CertificateReportingService to send reports. The +-// service handles queueing and re-sending of failed reports. Each certificate +-// error creates a new instance of this class. +-class CertificateReportingServiceCertReporter : public SSLCertReporter { +- public: +- explicit CertificateReportingServiceCertReporter( +- content::WebContents* web_contents) +- : service_(CertificateReportingServiceFactory::GetForBrowserContext( +- web_contents->GetBrowserContext())) {} +- ~CertificateReportingServiceCertReporter() override {} +- +- // SSLCertReporter implementation +- void ReportInvalidCertificateChain( +- const std::string& serialized_report) override { - service_->Send(serialized_report); - } - - private: -@@ -668,6 +668,7 @@ class CertificateReportingServiceCertRep - - DISALLOW_COPY_AND_ASSIGN(CertificateReportingServiceCertReporter); - }; -+#endif - +- } +- +- private: +- CertificateReportingService* service_; +- +- DISALLOW_COPY_AND_ASSIGN(CertificateReportingServiceCertReporter); +-}; +- #if defined(OS_ANDROID) float GetDeviceScaleAdjustment() { -@@ -1707,7 +1708,7 @@ void ChromeContentBrowserClient::AppendE + static const float kMinFSM = 1.05f; +@@ -1739,7 +1715,7 @@ void ChromeContentBrowserClient::AppendE // Disable client-side phishing detection in the renderer if it is // disabled in the Profile preferences or the browser process. if (!prefs->GetBoolean(prefs::kSafeBrowsingEnabled) || @@ -33,7 +40,7 @@ command_line->AppendSwitch( switches::kDisableClientSidePhishingDetection); } -@@ -2304,7 +2305,7 @@ void ChromeContentBrowserClient::AllowCe +@@ -2331,7 +2307,7 @@ void ChromeContentBrowserClient::AllowCe SSLErrorHandler::HandleSSLError( web_contents, cert_error, ssl_info, request_url, expired_previous_decision, @@ -42,7 +49,7 @@ callback, SSLErrorHandler::BlockingPageReadyCallback()); } -@@ -2535,8 +2536,6 @@ bool ChromeContentBrowserClient::CanCrea +@@ -2562,8 +2538,6 @@ bool ChromeContentBrowserClient::CanCrea void ChromeContentBrowserClient::ResourceDispatcherHostCreated() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -51,25 +58,7 @@ for (size_t i = 0; i < extra_parts_.size(); ++i) extra_parts_[i]->ResourceDispatcherHostCreated(); -@@ -3043,17 +3042,6 @@ void ChromeContentBrowserClient::ExposeI - base::RetainedRef(context))); - } - -- if (safe_browsing_service_) { -- registry->AddInterface( -- base::Bind( -- &safe_browsing::MojoSafeBrowsingImpl::MaybeCreate, -- render_process_host->GetID(), -- base::Bind( -- &ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate, -- base::Unretained(this))), -- BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); -- } -- - #if defined(OS_WIN) - if (base::FeatureList::IsEnabled(features::kModuleDatabase)) { - // Add the ModuleEventSink interface. This is the interface used by renderer -@@ -3491,7 +3479,7 @@ ChromeContentBrowserClient::CreateThrott +@@ -3523,7 +3497,7 @@ ChromeContentBrowserClient::CreateThrott switches::kCommittedInterstitials)) { throttles.push_back(std::make_unique( handle, @@ -78,41 +67,9 @@ base::Bind(&SSLErrorHandler::HandleSSLError))); } -@@ -3684,12 +3672,6 @@ ChromeContentBrowserClient::CreateURLLoa - - std::vector> result; - -- auto safe_browsing_throttle = -- safe_browsing::BrowserURLLoaderThrottle::MaybeCreate( -- GetSafeBrowsingUrlCheckerDelegate(), wc_getter); -- if (safe_browsing_throttle) -- result.push_back(std::move(safe_browsing_throttle)); -- - ChromeNavigationUIData* chrome_navigation_ui_data = - static_cast(navigation_ui_data); - if (chrome_navigation_ui_data && -@@ -3872,18 +3854,3 @@ void ChromeContentBrowserClient::SetDefa - const storage::QuotaSettings* settings) { - g_default_quota_settings = settings; - } -- --safe_browsing::UrlCheckerDelegate* --ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate() { -- DCHECK_CURRENTLY_ON(BrowserThread::IO); -- -- // |safe_browsing_service_| may be unavailable in tests. -- if (safe_browsing_service_ && !safe_browsing_url_checker_delegate_) { -- safe_browsing_url_checker_delegate_ = -- new safe_browsing::UrlCheckerDelegateImpl( -- safe_browsing_service_->database_manager(), -- safe_browsing_service_->ui_manager()); -- } -- -- return safe_browsing_url_checker_delegate_.get(); --} --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -480,18 +480,6 @@ ProfileImpl::ProfileImpl( +@@ -488,18 +488,6 @@ ProfileImpl::ProfileImpl( create_mode == CREATE_MODE_SYNCHRONOUS); #endif @@ -131,7 +88,7 @@ content::BrowserContext::Initialize(this, path_); { -@@ -500,7 +488,7 @@ ProfileImpl::ProfileImpl( +@@ -508,7 +496,7 @@ ProfileImpl::ProfileImpl( ->CreateDelegate(); delegate->InitPrefRegistry(pref_registry_.get()); prefs_ = chrome_prefs::CreateProfilePrefs( @@ -142,7 +99,7 @@ GetIOTaskRunner(), std::move(delegate)); --- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc +++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc -@@ -417,8 +417,7 @@ void NotifyUIThreadOfRequestComplete( +@@ -440,8 +440,7 @@ void LogCommittedPreviewsDecision( } // namespace ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate() @@ -152,7 +109,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS) , user_script_listener_(new extensions::UserScriptListener()) #endif -@@ -468,8 +467,6 @@ void ChromeResourceDispatcherHostDelegat +@@ -491,8 +490,6 @@ void ChromeResourceDispatcherHostDelegat content::AppCacheService* appcache_service, ResourceType resource_type, std::vector>* throttles) { @@ -161,7 +118,7 @@ ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context); client_hints::RequestBeginning(request, io_data->GetCookieSettings()); -@@ -642,13 +639,13 @@ void ChromeResourceDispatcherHostDelegat +@@ -659,7 +656,7 @@ void ChromeResourceDispatcherHostDelegat content::ResourceThrottle* first_throttle = NULL; #if defined(OS_ANDROID) first_throttle = DataReductionProxyResourceThrottle::MaybeCreate( @@ -170,42 +127,129 @@ #endif // defined(OS_ANDROID) #if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE) - if (!first_throttle && io_data->safe_browsing_enabled()->GetValue()) { - first_throttle = MaybeCreateSafeBrowsingResourceThrottle( -- request, resource_type, safe_browsing_.get()); -+ request, resource_type, nullptr); +@@ -672,7 +669,7 @@ void ChromeResourceDispatcherHostDelegat + + if (!url_loader_throttle_used) { + first_throttle = MaybeCreateSafeBrowsingResourceThrottle( +- request, resource_type, safe_browsing_.get(), io_data); ++ request, resource_type, nullptr, io_data); + } } #endif // defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE) - --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc -@@ -250,6 +250,7 @@ BadClockBlockingPage* CreateBadClockBloc +@@ -250,110 +250,6 @@ BadClockBlockingPage* CreateBadClockBloc base::Callback()); } -+#if 0 - safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage( - content::WebContents* web_contents) { - safe_browsing::SBThreatType threat_type = -@@ -305,7 +306,9 @@ safe_browsing::SafeBrowsingBlockingPage* - g_browser_process->safe_browsing_service()->ui_manager().get(), - web_contents, main_frame_url, resource); - } -+#endif - -+#if 0 - TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage( - content::WebContents* web_contents) { - safe_browsing::SBThreatType threat_type = -@@ -353,6 +356,7 @@ TestSafeBrowsingBlockingPageQuiet* Creat - g_browser_process->safe_browsing_service()->ui_manager().get(), - web_contents, main_frame_url, resource, is_giant_webview); - } -+#endif - +-safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage( +- content::WebContents* web_contents) { +- safe_browsing::SBThreatType threat_type = +- safe_browsing::SB_THREAT_TYPE_URL_MALWARE; +- GURL request_url("http://example.com"); +- std::string url_param; +- if (net::GetValueForKeyInQuery(web_contents->GetURL(), +- "url", +- &url_param)) { +- if (GURL(url_param).is_valid()) { +- request_url = GURL(url_param); +- } +- } +- GURL main_frame_url(request_url); +- // TODO(mattm): add flag to change main_frame_url or add dedicated flag to +- // test subresource interstitials. +- std::string type_param; +- if (net::GetValueForKeyInQuery(web_contents->GetURL(), +- "type", +- &type_param)) { +- // TODO(mattm): add param for SB_THREAT_TYPE_URL_UNWANTED. +- if (type_param == "malware") { +- threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE; +- } else if (type_param == "phishing") { +- threat_type = safe_browsing::SB_THREAT_TYPE_URL_PHISHING; +- } else if (type_param == "clientside_malware") { +- threat_type = safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_MALWARE; +- } else if (type_param == "clientside_phishing") { +- threat_type = safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_PHISHING; +- } +- } +- safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource; +- resource.url = request_url; +- resource.is_subresource = request_url != main_frame_url; +- resource.is_subframe = false; +- resource.threat_type = threat_type; +- resource.web_contents_getter = +- security_interstitials::UnsafeResource::GetWebContentsGetter( +- web_contents->GetMainFrame()->GetProcess()->GetID(), +- web_contents->GetMainFrame()->GetRoutingID()); +- resource.threat_source = g_browser_process->safe_browsing_service() +- ->database_manager() +- ->GetThreatSource(); +- +- // Normally safebrowsing interstitial types which block the main page load +- // (SB_THREAT_TYPE_URL_MALWARE, SB_THREAT_TYPE_URL_PHISHING, and +- // SB_THREAT_TYPE_URL_UNWANTED on main-frame loads) would expect there to be a +- // pending navigation when the SafeBrowsingBlockingPage is created. This demo +- // creates a SafeBrowsingBlockingPage but does not actually show a real +- // interstitial. Instead it extracts the html and displays it manually, so the +- // parts which depend on the NavigationEntry are not hit. +- return safe_browsing::SafeBrowsingBlockingPage::CreateBlockingPage( +- g_browser_process->safe_browsing_service()->ui_manager().get(), +- web_contents, main_frame_url, resource); +-} +- +-TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage( +- content::WebContents* web_contents) { +- safe_browsing::SBThreatType threat_type = +- safe_browsing::SB_THREAT_TYPE_URL_MALWARE; +- GURL request_url("http://example.com"); +- std::string url_param; +- if (net::GetValueForKeyInQuery(web_contents->GetURL(), "url", &url_param)) { +- if (GURL(url_param).is_valid()) +- request_url = GURL(url_param); +- } +- GURL main_frame_url(request_url); +- std::string type_param; +- bool is_giant_webview = false; +- if (net::GetValueForKeyInQuery(web_contents->GetURL(), "type", &type_param)) { +- if (type_param == "malware") { +- threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE; +- } else if (type_param == "phishing") { +- threat_type = safe_browsing::SB_THREAT_TYPE_URL_PHISHING; +- } else if (type_param == "giant") { +- threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE; +- is_giant_webview = true; +- } +- } +- safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource; +- resource.url = request_url; +- resource.is_subresource = request_url != main_frame_url; +- resource.is_subframe = false; +- resource.threat_type = threat_type; +- resource.web_contents_getter = +- security_interstitials::UnsafeResource::GetWebContentsGetter( +- web_contents->GetMainFrame()->GetProcess()->GetID(), +- web_contents->GetMainFrame()->GetRoutingID()); +- resource.threat_source = g_browser_process->safe_browsing_service() +- ->database_manager() +- ->GetThreatSource(); +- +- // Normally safebrowsing interstitial types which block the main page load +- // (SB_THREAT_TYPE_URL_MALWARE, SB_THREAT_TYPE_URL_PHISHING, and +- // SB_THREAT_TYPE_URL_UNWANTED on main-frame loads) would expect there to be a +- // pending navigation when the SafeBrowsingBlockingPage is created. This demo +- // creates a SafeBrowsingBlockingPage but does not actually show a real +- // interstitial. Instead it extracts the html and displays it manually, so the +- // parts which depend on the NavigationEntry are not hit. +- return TestSafeBrowsingBlockingPageQuiet::CreateBlockingPage( +- g_browser_process->safe_browsing_service()->ui_manager().get(), +- web_contents, main_frame_url, resource, is_giant_webview); +-} +- #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage( -@@ -457,8 +461,6 @@ void InterstitialHTMLSource::StartDataRe + content::WebContents* web_contents) { +@@ -457,8 +353,6 @@ void InterstitialHTMLSource::StartDataRe CreateSSLBlockingPage(web_contents, true /* is superfish */)); } else if (path_without_query == "/mitm-software-ssl") { interstitial_delegate.reset(CreateMITMSoftwareBlockingPage(web_contents)); @@ -214,7 +258,7 @@ } else if (path_without_query == "/clock") { interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents)); #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) -@@ -469,11 +471,6 @@ void InterstitialHTMLSource::StartDataRe +@@ -469,11 +363,6 @@ void InterstitialHTMLSource::StartDataRe if (path_without_query == "/supervised_user") { html = GetSupervisedUserInterstitialHTML(path); @@ -320,7 +364,7 @@ --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc -@@ -280,13 +280,6 @@ ChromeDownloadManagerDelegate::~ChromeDo +@@ -284,13 +284,6 @@ ChromeDownloadManagerDelegate::~ChromeDo void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { download_manager_ = dm; @@ -334,7 +378,7 @@ } void ChromeDownloadManagerDelegate::Shutdown() { -@@ -555,16 +548,6 @@ download::InProgressCache* ChromeDownloa +@@ -567,16 +560,6 @@ download::InProgressCache* ChromeDownloa void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( base::FilePath* filename) { @@ -361,7 +405,7 @@ #include "chrome/browser/shell_integration.h" #include "chrome/browser/status_icons/status_tray.h" #include "chrome/browser/ui/browser_dialogs.h" -@@ -295,8 +294,6 @@ void BrowserProcessImpl::StartTearDown() +@@ -333,8 +332,6 @@ void BrowserProcessImpl::StartTearDown() // that URLFetcher operation before going away.) metrics_services_manager_.reset(); intranet_redirect_detector_.reset(); @@ -370,7 +414,7 @@ network_time_tracker_.reset(); #if BUILDFLAG(ENABLE_PLUGINS) plugins_resource_service_.reset(); -@@ -911,22 +908,6 @@ StatusTray* BrowserProcessImpl::status_t +@@ -936,22 +933,6 @@ StatusTray* BrowserProcessImpl::status_t return status_tray_.get(); } @@ -412,7 +456,7 @@ created_subresource_filter_ruleset_service_ = true; --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -136,9 +136,6 @@ class BrowserProcessImpl : public Browse +@@ -135,9 +135,6 @@ class BrowserProcessImpl : public Browse void set_background_mode_manager_for_test( std::unique_ptr manager) override; StatusTray* status_tray() override; @@ -422,7 +466,7 @@ subresource_filter::ContentRulesetService* subresource_filter_ruleset_service() override; optimization_guide::OptimizationGuideService* optimization_guide_service() -@@ -274,9 +271,6 @@ class BrowserProcessImpl : public Browse +@@ -272,9 +269,6 @@ class BrowserProcessImpl : public Browse std::unique_ptr background_mode_manager_; #endif @@ -434,7 +478,7 @@ subresource_filter_ruleset_service_; --- a/chrome/browser/browser_process.h +++ b/chrome/browser/browser_process.h -@@ -48,10 +48,6 @@ namespace content { +@@ -45,10 +45,6 @@ namespace content { class NetworkConnectionTracker; } @@ -445,7 +489,7 @@ namespace subresource_filter { class ContentRulesetService; } -@@ -128,10 +124,6 @@ namespace resource_coordinator { +@@ -121,10 +117,6 @@ namespace resource_coordinator { class TabManager; } @@ -456,7 +500,7 @@ // NOT THREAD SAFE, call only from the main thread. // These functions shouldn't return NULL unless otherwise noted. class BrowserProcess { -@@ -254,14 +246,6 @@ class BrowserProcess { +@@ -237,14 +229,6 @@ class BrowserProcess { // on this platform (or this is a unit test). virtual StatusTray* status_tray() = 0; @@ -481,17 +525,17 @@ #include "chrome/browser/ui/webui/md_downloads/downloads_list_tracker.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_ui_message_handler.h" -@@ -104,9 +103,6 @@ class MdDownloadsDOMHandler : public con +@@ -107,9 +106,6 @@ class MdDownloadsDOMHandler : public con // dangerous ones are immediately removed. Protected for testing. void RemoveDownloads(const DownloadVector& to_remove); - // Helper function to handle save download event. -- void SaveDownload(content::DownloadItem* download); +- void SaveDownload(download::DownloadItem* download); - private: using IdSet = std::set; -@@ -118,19 +114,6 @@ class MdDownloadsDOMHandler : public con +@@ -121,19 +117,6 @@ class MdDownloadsDOMHandler : public con // null-checking |original_notifier_|. content::DownloadManager* GetOriginalNotifierManager() const; @@ -501,7 +545,7 @@ - // user accepts the dangerous download. The native prompt will observe - // |dangerous| until either the dialog is dismissed or |dangerous| is no - // longer an in-progress dangerous download. -- virtual void ShowDangerPrompt(content::DownloadItem* dangerous); +- virtual void ShowDangerPrompt(download::DownloadItem* dangerous); - - // Conveys danger acceptance from the DownloadDangerPrompt to the - // DownloadItem. @@ -521,22 +565,21 @@ #include "chrome/browser/download/download_history.h" #include "chrome/browser/download/download_item_model.h" #include "chrome/browser/download/download_prefs.h" -@@ -195,34 +194,6 @@ void MdDownloadsDOMHandler::HandleDrag(c +@@ -195,33 +194,6 @@ void MdDownloadsDOMHandler::HandleDrag(c void MdDownloadsDOMHandler::HandleSaveDangerous(const base::ListValue* args) { CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_SAVE_DANGEROUS); -- content::DownloadItem* file = GetDownloadByValue(args); +- download::DownloadItem* file = GetDownloadByValue(args); - SaveDownload(file); -} - --void MdDownloadsDOMHandler::SaveDownload( -- content::DownloadItem* download) { +-void MdDownloadsDOMHandler::SaveDownload(download::DownloadItem* download) { - if (!download) - return; - // If danger type is NOT DANGEROUS_FILE, chrome shows users a download danger - // prompt. - if (download->GetDangerType() != -- content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE) { +- download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE) { - ShowDangerPrompt(download); - } else { - // If danger type is DANGEROUS_FILE, chrome proceeds to keep this download @@ -556,7 +599,7 @@ } void MdDownloadsDOMHandler::HandleDiscardDangerous( -@@ -324,12 +295,6 @@ void MdDownloadsDOMHandler::RemoveDownlo +@@ -323,12 +295,6 @@ void MdDownloadsDOMHandler::RemoveDownlo IdSet ids; for (auto* download : to_remove) { @@ -568,13 +611,13 @@ - DownloadItemModel item_model(download); if (!item_model.ShouldShowInShelf() || - download->GetState() == content::DownloadItem::IN_PROGRESS) { -@@ -382,33 +347,6 @@ void MdDownloadsDOMHandler::FinalizeRemo + download->GetState() == download::DownloadItem::IN_PROGRESS) { +@@ -381,33 +347,6 @@ void MdDownloadsDOMHandler::FinalizeRemo } } -void MdDownloadsDOMHandler::ShowDangerPrompt( -- content::DownloadItem* dangerous_item) { +- download::DownloadItem* dangerous_item) { - DownloadDangerPrompt* danger_prompt = DownloadDangerPrompt::Create( - dangerous_item, - GetWebUIWebContents(), @@ -589,7 +632,7 @@ - int download_id, DownloadDangerPrompt::Action action) { - if (action != DownloadDangerPrompt::ACCEPT) - return; -- content::DownloadItem* item = NULL; +- download::DownloadItem* item = NULL; - if (GetMainNotifierManager()) - item = GetMainNotifierManager()->GetDownload(download_id); - if (!item && GetOriginalNotifierManager()) @@ -613,7 +656,7 @@ #include "chrome/browser/download/download_file_icon_extractor.h" #include "chrome/browser/download/download_prefs.h" #include "chrome/browser/download/download_query.h" -@@ -1305,9 +1304,6 @@ DownloadsAcceptDangerFunction::Downloads +@@ -1300,9 +1299,6 @@ DownloadsAcceptDangerFunction::Downloads DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {} @@ -623,7 +666,7 @@ bool DownloadsAcceptDangerFunction::RunAsync() { std::unique_ptr params( downloads::AcceptDanger::Params::Create(*args_)); -@@ -1343,40 +1339,7 @@ void DownloadsAcceptDangerFunction::Prom +@@ -1338,40 +1334,7 @@ void DownloadsAcceptDangerFunction::Prom return; } RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER); @@ -703,7 +746,7 @@ --- a/chrome/browser/download/download_prefs.cc +++ b/chrome/browser/download/download_prefs.cc -@@ -186,14 +186,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr +@@ -194,14 +194,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) + extension); @@ -719,7 +762,7 @@ } } -@@ -329,10 +322,6 @@ bool DownloadPrefs::IsAutoOpenEnabledBas +@@ -359,10 +352,6 @@ bool DownloadPrefs::IsAutoOpenEnabledBas bool DownloadPrefs::EnableAutoOpenBasedOnExtension( const base::FilePath& file_name) { base::FilePath::StringType extension = file_name.Extension(); @@ -755,7 +798,7 @@ } // namespace --- a/chrome/browser/download/download_target_determiner.cc +++ b/chrome/browser/download/download_target_determiner.cc -@@ -953,29 +953,7 @@ DownloadFileType::DangerLevel DownloadTa +@@ -954,29 +954,7 @@ DownloadFileType::DangerLevel DownloadTa download_->HasUserGesture()) return DownloadFileType::NOT_DANGEROUS; @@ -788,15 +831,15 @@ void DownloadTargetDeterminer::OnDownloadDestroyed( --- a/chrome/browser/permissions/permission_uma_util.cc +++ b/chrome/browser/permissions/permission_uma_util.cc -@@ -423,8 +423,6 @@ void PermissionUmaUtil::RecordPermission - requesting_origin, permission, action, source_ui, gesture_type, - autoblocker->GetDismissCount(requesting_origin, permission), - autoblocker->GetIgnoreCount(requesting_origin, permission)); +@@ -433,8 +433,6 @@ void PermissionUmaUtil::RecordPermission + PermissionReportInfo report_info(requesting_origin, permission, action, + source_ui, gesture_type, dismiss_count, + ignore_count); - g_browser_process->safe_browsing_service() - ->ui_manager()->ReportPermissionAction(report_info); } - bool secure_origin = content::IsOriginSecure(requesting_origin); + if (web_contents) { --- a/chrome/browser/download/download_commands.cc +++ b/chrome/browser/download/download_commands.cc @@ -212,9 +212,6 @@ bool DownloadCommands::IsCommandEnabled( @@ -811,7 +854,7 @@ return !download_item_->IsDone(); --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2388,8 +2388,6 @@ split_static_library("browser") { +@@ -2393,8 +2393,6 @@ jumbo_split_static_library("browser") { "download/download_commands.h", "download/download_crx_util.cc", "download/download_crx_util.h", @@ -822,15 +865,15 @@ "download/download_dir_util.cc", --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -2070,7 +2070,6 @@ split_static_library("ui") { - "cocoa/dialog_text_field_editor.mm", - "cocoa/download/background_theme.h", - "cocoa/download/background_theme.mm", +@@ -2481,7 +2481,6 @@ split_static_library("ui") { + "cocoa/bookmarks/bookmark_editor_controller.h", + "cocoa/bookmarks/bookmark_editor_controller.mm", + "cocoa/constrained_web_dialog_delegate_mac.mm", - "cocoa/download/download_danger_prompt_impl.cc", - "cocoa/download/download_item_button.h", - "cocoa/download/download_item_button.mm", - "cocoa/download/download_item_cell.h", -@@ -2723,7 +2722,6 @@ split_static_library("ui") { + "cocoa/extensions/chooser_dialog_cocoa.h", + "cocoa/extensions/chooser_dialog_cocoa.mm", + "cocoa/extensions/chooser_dialog_cocoa_controller.h", +@@ -2777,7 +2776,6 @@ split_static_library("ui") { "views/cookie_info_view.h", "views/device_chooser_content_view.cc", "views/device_chooser_content_view.h", @@ -840,39 +883,73 @@ "views/exclusive_access_bubble_views.cc", --- a/chrome/browser/ssl/security_state_tab_helper.cc +++ b/chrome/browser/ssl/security_state_tab_helper.cc -@@ -208,6 +208,7 @@ bool SecurityStateTabHelper::UsedPolicyI +@@ -246,61 +246,6 @@ bool SecurityStateTabHelper::UsedPolicyI security_state::MaliciousContentStatus SecurityStateTabHelper::GetMaliciousContentStatus() const { -+#if 0 - content::NavigationEntry* entry = - web_contents()->GetController().GetVisibleEntry(); - if (!entry) -@@ -263,6 +264,7 @@ SecurityStateTabHelper::GetMaliciousCont - break; - } - } -+#endif +- content::NavigationEntry* entry = +- web_contents()->GetController().GetVisibleEntry(); +- if (!entry) +- return security_state::MALICIOUS_CONTENT_STATUS_NONE; +- safe_browsing::SafeBrowsingService* sb_service = +- g_browser_process->safe_browsing_service(); +- if (!sb_service) +- return security_state::MALICIOUS_CONTENT_STATUS_NONE; +- scoped_refptr sb_ui_manager = sb_service->ui_manager(); +- safe_browsing::SBThreatType threat_type; +- if (sb_ui_manager->IsUrlWhitelistedOrPendingForWebContents( +- entry->GetURL(), false, entry, web_contents(), false, &threat_type)) { +- switch (threat_type) { +- case safe_browsing::SB_THREAT_TYPE_UNUSED: +- case safe_browsing::SB_THREAT_TYPE_SAFE: +- break; +- case safe_browsing::SB_THREAT_TYPE_URL_PHISHING: +- case safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_PHISHING: +- return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING; +- case safe_browsing::SB_THREAT_TYPE_URL_MALWARE: +- case safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_MALWARE: +- return security_state::MALICIOUS_CONTENT_STATUS_MALWARE; +- case safe_browsing::SB_THREAT_TYPE_URL_UNWANTED: +- return security_state::MALICIOUS_CONTENT_STATUS_UNWANTED_SOFTWARE; +- case safe_browsing::SB_THREAT_TYPE_PASSWORD_REUSE: +-#if defined(SAFE_BROWSING_DB_LOCAL) +- if (base::FeatureList::IsEnabled( +- safe_browsing::kGoogleBrandedPhishingWarning)) { +- if (safe_browsing::ChromePasswordProtectionService:: +- ShouldShowChangePasswordSettingUI(Profile::FromBrowserContext( +- web_contents()->GetBrowserContext()))) { +- return security_state::MALICIOUS_CONTENT_STATUS_PASSWORD_REUSE; +- } +- // If user has already changed Gaia password, returns the regular +- // social engineering content status. +- return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING; +- } +- break; +-#endif +- case safe_browsing:: +- DEPRECATED_SB_THREAT_TYPE_URL_PASSWORD_PROTECTION_PHISHING: +- case safe_browsing::SB_THREAT_TYPE_URL_BINARY_MALWARE: +- case safe_browsing::SB_THREAT_TYPE_EXTENSION: +- case safe_browsing::SB_THREAT_TYPE_BLACKLISTED_RESOURCE: +- case safe_browsing::SB_THREAT_TYPE_API_ABUSE: +- case safe_browsing::SB_THREAT_TYPE_SUBRESOURCE_FILTER: +- case safe_browsing::SB_THREAT_TYPE_CSD_WHITELIST: +- case safe_browsing::SB_THREAT_TYPE_AD_SAMPLE: +- // These threat types are not currently associated with +- // interstitials, and thus resources with these threat types are +- // not ever whitelisted or pending whitelisting. +- NOTREACHED(); +- break; +- } +- } return security_state::MALICIOUS_CONTENT_STATUS_NONE; } --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -265,11 +265,6 @@ void ClearNetworkErrorLoggingOnIOThread( - net::URLRequestContextGetter* context, - const base::RepeatingCallback& origin_filter) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); -- -- net::NetworkErrorLoggingDelegate* delegate = -- context->GetURLRequestContext()->network_error_logging_delegate(); -- if (delegate) -- delegate->RemoveBrowsingData(origin_filter); - } - - #if defined(OS_ANDROID) -@@ -745,40 +740,6 @@ void ChromeBrowsingDataRemoverDelegate:: +@@ -715,42 +715,6 @@ void ChromeBrowsingDataRemoverDelegate:: CONTENT_SETTINGS_TYPE_CLIENT_HINTS, base::Time(), - base::Bind(&WebsiteSettingsFilterAdapter, filter)); + base::BindRepeating(&WebsiteSettingsFilterAdapter, filter)); - // Clear the safebrowsing cookies only if time period is for "all time". It - // doesn't make sense to apply the time period of deleting in the last X @@ -884,16 +961,17 @@ - if (sb_service) { - scoped_refptr sb_context = - sb_service->url_request_context(); -- ++clear_cookies_count_; +- - if (filter_builder.IsEmptyBlacklist()) { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::BindOnce( - &ClearCookiesOnIOThread, delete_begin_, delete_end_, - base::RetainedRef(std::move(sb_context)), -- UIThreadTrampoline(base::Bind( +- UIThreadTrampoline(base::BindOnce( - &ChromeBrowsingDataRemoverDelegate::OnClearedCookies, -- weak_ptr_factory_.GetWeakPtr())))); +- weak_ptr_factory_.GetWeakPtr(), +- CreatePendingTaskCompletionClosure())))); - } else { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, @@ -901,9 +979,10 @@ - &ClearCookiesWithPredicateOnIOThread, delete_begin_, - delete_end_, filter_builder.BuildCookieFilter(), - base::RetainedRef(std::move(sb_context)), -- UIThreadTrampoline(base::Bind( +- UIThreadTrampoline(base::BindOnce( - &ChromeBrowsingDataRemoverDelegate::OnClearedCookies, -- weak_ptr_factory_.GetWeakPtr())))); +- weak_ptr_factory_.GetWeakPtr(), +- CreatePendingTaskCompletionClosure())))); - } - } - } @@ -913,7 +992,7 @@ --- a/chrome/browser/notifications/platform_notification_service_impl.cc +++ b/chrome/browser/notifications/platform_notification_service_impl.cc -@@ -27,8 +27,6 @@ +@@ -28,8 +28,6 @@ #include "chrome/browser/profiles/profile_attributes_storage.h" #include "chrome/browser/profiles/profile_io_data.h" #include "chrome/browser/profiles/profile_manager.h" @@ -922,23 +1001,26 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_window.h" -@@ -81,6 +79,7 @@ namespace { +@@ -83,18 +81,6 @@ namespace { // permission without having an associated renderer process yet. const int kInvalidRenderProcessId = -1; -+#if 0 - void ReportNotificationImageOnIOThread( - scoped_refptr safe_browsing_service, - Profile* profile, -@@ -92,6 +91,7 @@ void ReportNotificationImageOnIOThread( - safe_browsing_service->ping_manager()->ReportNotificationImage( - profile, safe_browsing_service->database_manager(), origin, image); - } -+#endif - +-void ReportNotificationImageOnIOThread( +- scoped_refptr safe_browsing_service, +- Profile* profile, +- const GURL& origin, +- const SkBitmap& image) { +- DCHECK_CURRENTLY_ON(BrowserThread::IO); +- if (!safe_browsing_service || !safe_browsing_service->enabled()) +- return; +- safe_browsing_service->ping_manager()->ReportNotificationImage( +- profile, safe_browsing_service->database_manager(), origin, image); +-} +- // Whether a web notification should be displayed when chrome is in full // screen mode. -@@ -512,13 +512,6 @@ PlatformNotificationServiceImpl::CreateN + static bool ShouldDisplayWebNotificationOnFullScreen(Profile* profile, +@@ -513,13 +499,6 @@ PlatformNotificationServiceImpl::CreateN notification.set_type(message_center::NOTIFICATION_TYPE_IMAGE); notification.set_image( gfx::Image::CreateFrom1xBitmap(notification_resources.image)); @@ -954,14 +1036,14 @@ // Badges are only supported on Android, primarily because it's the only --- a/chrome/browser/permissions/permission_blacklist_client.cc +++ b/chrome/browser/permissions/permission_blacklist_client.cc -@@ -57,50 +57,11 @@ PermissionBlacklistClient::~PermissionBl +@@ -56,50 +56,11 @@ PermissionBlacklistClient::~PermissionBl void PermissionBlacklistClient::StartCheck(const GURL& request_origin) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); - // Start the timer to interrupt into the client callback method with an - // empty response if Safe Browsing times out. - safe_browsing::ThreatMetadata empty_metadata; -- timer_ = base::MakeUnique(); +- timer_ = std::make_unique(); - elapsed_timer_.reset(new base::ElapsedTimer()); - timer_->Start( - FROM_HERE, base::TimeDelta::FromMilliseconds(timeout_), @@ -1008,7 +1090,7 @@ void PermissionBlacklistClient::EvaluateBlacklistResultOnUiThread( --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -44,7 +44,6 @@ +@@ -45,7 +45,6 @@ #include "chrome/browser/metrics/sampling_metrics_provider.h" #include "chrome/browser/metrics/subprocess_metrics_provider.h" #include "chrome/browser/profiles/profile_manager.h" @@ -1016,16 +1098,16 @@ #include "chrome/browser/sync/chrome_sync_client.h" #include "chrome/browser/sync/profile_sync_service_factory.h" #include "chrome/browser/translate/translate_ranker_metrics_provider.h" -@@ -685,9 +684,6 @@ void ChromeMetricsServiceClient::Registe +@@ -675,9 +674,6 @@ void ChromeMetricsServiceClient::Registe metrics_service_->RegisterMetricsProvider( - base::MakeUnique()); + std::make_unique()); - metrics_service_->RegisterMetricsProvider( -- base::MakeUnique()); +- std::make_unique()); - #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) metrics_service_->RegisterMetricsProvider( - base::MakeUnique()); + std::make_unique()); --- a/chrome/browser/permissions/permission_blacklist_client.h +++ b/chrome/browser/permissions/permission_blacklist_client.h @@ -59,11 +59,6 @@ class PermissionBlacklistClient @@ -1086,21 +1168,28 @@ bool CertReportHelper::ShouldShowCertificateReporterCheckbox() { --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -292,11 +292,6 @@ void TabHelpers::AttachTabHelpers(WebCon +@@ -239,8 +239,6 @@ void TabHelpers::AttachTabHelpers(WebCon + PrefsTabHelper::CreateForWebContents(web_contents); + prerender::PrerenderTabHelper::CreateForWebContents(web_contents); + PreviewsInfoBarTabHelper::CreateForWebContents(web_contents); +- safe_browsing::TriggerCreator::MaybeCreateTriggersForWebContents( +- profile, web_contents); + SearchEngineTabHelper::CreateForWebContents(web_contents); + SecurityStateTabHelper::CreateForWebContents(web_contents); + if (SiteEngagementService::IsEnabled()) +@@ -289,9 +287,6 @@ void TabHelpers::AttachTabHelpers(WebCon new ChromePDFWebContentsHelperClient())); PluginObserver::CreateForWebContents(web_contents); SadTabHelper::CreateForWebContents(web_contents); - safe_browsing::SafeBrowsingTabObserver::CreateForWebContents(web_contents); - safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents( - web_contents); -- safe_browsing::TriggerCreator::MaybeCreateTriggersForWebContents( -- profile, web_contents); SearchTabHelper::CreateForWebContents(web_contents); - if (base::FeatureList::IsEnabled(features::kTabMetricsLogging)) - resource_coordinator::TabActivityWatcher::WatchWebContents(web_contents); + TabContentsSyncedTabDelegate::CreateForWebContents(web_contents); + TabDialogs::CreateForWebContents(web_contents); --- a/chrome/browser/permissions/permission_decision_auto_blocker.cc +++ b/chrome/browser/permissions/permission_decision_auto_blocker.cc -@@ -18,7 +18,6 @@ +@@ -17,7 +17,6 @@ #include "chrome/browser/permissions/permission_util.h" #include "chrome/browser/profiles/incognito_helpers.h" #include "chrome/browser/profiles/profile.h" @@ -1108,7 +1197,7 @@ #include "chrome/common/chrome_features.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/safe_browsing/db/database_manager.h" -@@ -422,10 +421,6 @@ PermissionDecisionAutoBlocker::Permissio +@@ -424,10 +423,6 @@ PermissionDecisionAutoBlocker::Permissio db_manager_(nullptr), safe_browsing_timeout_(kCheckUrlTimeoutMs), clock_(new base::DefaultClock()) { @@ -1143,7 +1232,7 @@ std::vector>* throttles) { - if (navigation_handle->IsInMainFrame()) { - throttles->push_back( -- base::MakeUnique( - navigation_handle, this, - content::BrowserThread::GetTaskRunnerForThread( @@ -1170,34 +1259,92 @@ } std::string WebstoreInlineInstaller::GetPostData( -@@ -248,6 +248,7 @@ void WebstoreInlineInstaller::WebContent +@@ -248,88 +248,11 @@ void WebstoreInlineInstaller::WebContent } std::string WebstoreInlineInstaller::GetJsonPostData() { -+#if 0 - auto redirect_chain = base::MakeUnique(); - - if (SafeBrowsingNavigationEventsEnabled()) { -@@ -299,11 +300,13 @@ std::string WebstoreInlineInstaller::Get - base::JSONWriter::Write(dictionary, &json); - return json; - } -+#endif - +- auto redirect_chain = std::make_unique(); +- +- if (SafeBrowsingNavigationEventsEnabled()) { +- scoped_refptr +- navigation_observer_manager = g_browser_process->safe_browsing_service() +- ->navigation_observer_manager(); +- +- ReferrerChain referrer_chain; +- SafeBrowsingNavigationObserverManager::AttributionResult result = +- navigation_observer_manager->IdentifyReferrerChainByWebContents( +- web_contents(), kExtensionReferrerUserGestureLimit, +- &referrer_chain); +- if (result != +- SafeBrowsingNavigationObserverManager::NAVIGATION_EVENT_NOT_FOUND) { +- for (const auto& referrer_chain_entry : referrer_chain) { +- // Referrer chain entries are a list of URLs in reverse chronological +- // order, so the final URL is the last thing in the list and the initial +- // landing page is the first thing in the list. +- // Furthermore each entry may contain a series of server redirects +- // stored in the same order. +- redirect_chain->AppendString(referrer_chain_entry.url()); +- for (const auto& server_side_redirect : +- referrer_chain_entry.server_redirect_chain()) { +- redirect_chain->AppendString(server_side_redirect.url()); +- } +- } +- } +- } else { +- content::NavigationController& navigation_controller = +- web_contents()->GetController(); +- content::NavigationEntry* navigation_entry = +- navigation_controller.GetLastCommittedEntry(); +- if (navigation_entry) { +- const std::vector& redirect_urls = +- navigation_entry->GetRedirectChain(); +- for (const GURL& url : redirect_urls) { +- redirect_chain->AppendString(url.spec()); +- } +- } +- } +- +- if (!redirect_chain->empty()) { +- base::DictionaryValue dictionary; +- dictionary.SetString("id", id()); +- dictionary.SetString("referrer", requestor_url_.spec()); +- dictionary.Set("redirect_chain", std::move(redirect_chain)); +- +- std::string json; +- base::JSONWriter::Write(dictionary, &json); +- return json; +- } +- return std::string(); } std::string WebstoreInlineInstaller::GetProtoPostData() { -+#if 0 - if (!SafeBrowsingNavigationEventsEnabled()) - return std::string(); - -@@ -330,6 +333,9 @@ std::string WebstoreInlineInstaller::Get - recent_navigations_to_collect); - - return request.SerializeAsString(); -+#endif -+ +- if (!SafeBrowsingNavigationEventsEnabled()) +- return std::string(); +- +- scoped_refptr +- navigation_observer_manager = g_browser_process->safe_browsing_service() +- ->navigation_observer_manager(); +- +- ReferrerChain referrer_chain; +- SafeBrowsingNavigationObserverManager::AttributionResult result = +- navigation_observer_manager->IdentifyReferrerChainByWebContents( +- web_contents(), kExtensionReferrerUserGestureLimit, &referrer_chain); +- +- // If the referrer chain is incomplete we'll append most recent navigations +- // to referrer chain for diagnose purpose. This only happens if user is not +- // in incognito mode and has opted into extended reporting to Scout reporting. +- int recent_navigations_to_collect = +- SafeBrowsingNavigationObserverManager::CountOfRecentNavigationsToAppend( +- *profile(), result); +- navigation_observer_manager->AppendRecentNavigations( +- recent_navigations_to_collect, &referrer_chain); +- safe_browsing::ExtensionWebStoreInstallRequest request; +- request.mutable_referrer_chain()->Swap(&referrer_chain); +- request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( +- recent_navigations_to_collect); +- +- return request.SerializeAsString(); + return std::string(); } @@ -1226,7 +1373,7 @@ # "Safe Browsing Basic" files used for safe browsing in full mode --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -32,18 +32,12 @@ namespace { +@@ -33,18 +33,12 @@ namespace { // Called on IOThread to disable QUIC for HttpNetworkSessions not using the // network service. Note that re-enabling QUIC dynamically is not supported for // simpliciy and requires a browser restart. @@ -1236,7 +1383,7 @@ +void DisableQuicOnIOThread(IOThread* io_thread) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); - if (!base::FeatureList::IsEnabled(features::kNetworkService)) + if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) content::GetNetworkServiceImpl()->DisableQuic(); io_thread->DisableQuic(); - @@ -1246,7 +1393,7 @@ } } // namespace -@@ -122,13 +116,9 @@ void SystemNetworkContextManager::Disabl +@@ -123,13 +117,9 @@ void SystemNetworkContextManager::Disabl if (!io_thread) return; @@ -1263,7 +1410,7 @@ void SystemNetworkContextManager::FlushProxyConfigMonitorForTesting() { --- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc -@@ -427,9 +427,8 @@ void AddBluetoothStrings(content::WebUID +@@ -449,9 +449,8 @@ void AddBluetoothStrings(content::WebUID #endif void AddChangePasswordStrings(content::WebUIDataSource* html_source) { @@ -1277,15 +1424,7 @@ ? IDS_SETTINGS_CHANGE_PASSWORD_TITLE_SOFTER --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -60,7 +60,6 @@ - #include "chrome/renderer/prerender/prerender_dispatcher.h" - #include "chrome/renderer/prerender/prerender_helper.h" - #include "chrome/renderer/prerender/prerenderer_client.h" --#include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h" - #include "chrome/renderer/tts_dispatcher.h" - #include "chrome/renderer/url_loader_throttle_provider_impl.h" - #include "chrome/renderer/worker_content_settings_client.h" -@@ -79,7 +78,6 @@ +@@ -79,7 +79,6 @@ #include "components/error_page/common/localized_error.h" #include "components/network_hints/renderer/prescient_networking_dispatcher.h" #include "components/pdf/renderer/pepper_pdf_host.h" @@ -1293,40 +1432,19 @@ #include "components/safe_browsing/renderer/websocket_sb_handshake_throttle.h" #include "components/spellcheck/spellcheck_build_features.h" #include "components/startup_metric_utils/common/startup_metric.mojom.h" -@@ -448,9 +446,6 @@ void ChromeContentRendererClient::Render - thread->AddObserver(spellcheck_.get()); - } - #endif --#if defined(FULL_SAFE_BROWSING) -- phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create()); --#endif - prerender_dispatcher_.reset(new prerender::PrerenderDispatcher()); - subresource_filter_ruleset_dealer_.reset( - new subresource_filter::UnverifiedRulesetDealer()); -@@ -564,10 +559,6 @@ void ChromeContentRendererClient::Render - new nacl::NaClHelper(render_frame); - #endif - --#if defined(FULL_SAFE_BROWSING) -- safe_browsing::ThreatDOMDetails::Create(render_frame); --#endif -- - #if BUILDFLAG(ENABLE_PRINTING) - new printing::PrintRenderFrameHelper( - render_frame, base::MakeUnique()); -@@ -1394,9 +1385,7 @@ bool ChromeContentRendererClient::IsExte +@@ -1388,9 +1387,7 @@ void ChromeContentRendererClient::InitSp std::unique_ptr ChromeContentRendererClient::CreateWebSocketHandshakeThrottle() { - InitSafeBrowsingIfNecessary(); -- return base::MakeUnique( +- return std::make_unique( - safe_browsing_.get()); + return std::unique_ptr(nullptr); } std::unique_ptr -@@ -1688,13 +1677,6 @@ ChromeContentRendererClient::GetTaskSche - GetRendererTaskSchedulerInitParamsFromCommandLine(); +@@ -1681,13 +1678,6 @@ ChromeContentRendererClient::GetTaskSche + return task_scheduler_util::GetTaskSchedulerInitParamsForRenderer(); } -void ChromeContentRendererClient::InitSafeBrowsingIfNecessary() { @@ -1338,29 +1456,18 @@ - bool ChromeContentRendererClient::OverrideLegacySymantecCertConsoleMessage( const GURL& url, - base::Time cert_validity_start, + std::string* console_message) { --- a/chrome/renderer/chrome_content_renderer_client.h +++ b/chrome/renderer/chrome_content_renderer_client.h @@ -20,7 +20,6 @@ #include "chrome/renderer/media/chrome_key_systems_provider.h" - #include "components/nacl/common/features.h" + #include "components/nacl/common/buildflags.h" #include "components/rappor/public/interfaces/rappor_recorder.mojom.h" -#include "components/safe_browsing/common/safe_browsing.mojom.h" #include "components/spellcheck/spellcheck_build_features.h" #include "content/public/renderer/content_renderer_client.h" #include "content/public/renderer/render_thread.h" -@@ -71,10 +70,6 @@ namespace prerender { - class PrerenderDispatcher; - } - --namespace safe_browsing { --class PhishingClassifierFilter; --} -- - namespace subresource_filter { - class UnverifiedRulesetDealer; - } -@@ -263,9 +258,6 @@ class ChromeContentRendererClient +@@ -270,9 +269,6 @@ class ChromeContentRendererClient void GetInterface(const std::string& name, mojo::ScopedMessagePipeHandle request_handle) override; @@ -1370,7 +1477,7 @@ void PrepareErrorPageInternal(content::RenderFrame* render_frame, const blink::WebURLRequest& failed_request, const error_page::Error& error, -@@ -296,12 +288,9 @@ class ChromeContentRendererClient +@@ -305,8 +301,6 @@ class ChromeContentRendererClient ChromeKeySystemsProvider key_systems_provider_; @@ -1379,7 +1486,3 @@ #if BUILDFLAG(ENABLE_SPELLCHECK) std::unique_ptr spellcheck_; #endif -- std::unique_ptr phishing_classifier_; - std::unique_ptr - subresource_filter_ruleset_dealer_; - std::unique_ptr prerender_dispatcher_; diff --git a/0002-fix-building-without-reporting.patch b/0002-fix-building-without-reporting.patch index 4e8bd63..47e5221 100644 --- a/0002-fix-building-without-reporting.patch +++ b/0002-fix-building-without-reporting.patch @@ -2,16 +2,6 @@ # In profile_impl_io_data.h/cc and reporting_service_proxy.cc the devs forgot to check if reporting was enabled before using a reporting feature # In printer_handler.cc, due to some combination of build flags used in the ungoogled-chromium build, MakeUnique was not pulled in ---- a/chrome/browser/ui/webui/print_preview/printer_handler.cc -+++ b/chrome/browser/ui/webui/print_preview/printer_handler.cc -@@ -8,6 +8,7 @@ - #include "chrome/browser/ui/webui/print_preview/extension_printer_handler.h" - #include "chrome/browser/ui/webui/print_preview/pdf_printer_handler.h" - #include "chrome/common/features.h" -+#include "base/memory/ptr_util.h" - - #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) - #include "chrome/browser/ui/webui/print_preview/privet_printer_handler.h" --- a/content/browser/net/reporting_service_proxy.cc +++ b/content/browser/net/reporting_service_proxy.cc @@ -102,6 +102,7 @@ class ReportingServiceProxyImpl : public @@ -32,7 +22,7 @@ scoped_refptr request_context_getter_; --- a/chrome/browser/profiles/profile_impl_io_data.h +++ b/chrome/browser/profiles/profile_impl_io_data.h -@@ -177,6 +177,7 @@ class ProfileImplIOData : public Profile +@@ -179,6 +179,7 @@ class ProfileImplIOData : public Profile const StoragePartitionDescriptor& partition_descriptor) const override; chrome_browser_net::Predictor* GetPredictor() override; @@ -40,7 +30,7 @@ // Returns a net::ReportingService, if reporting should be enabled. Otherwise, // returns nullptr. // TODO(mmenke): Remove once URLRequestContextBuilders are always used to -@@ -187,6 +188,7 @@ class ProfileImplIOData : public Profile +@@ -189,6 +190,7 @@ class ProfileImplIOData : public Profile // Returns a net::ReportingPolicy, if reporting should be enabled. Otherwise, // returns nullptr. static std::unique_ptr MaybeCreateReportingPolicy(); @@ -48,44 +38,9 @@ // Lazy initialization params. mutable std::unique_ptr lazy_params_; ---- a/chrome/browser/profiles/profile_impl_io_data.cc -+++ b/chrome/browser/profiles/profile_impl_io_data.cc -@@ -480,7 +480,9 @@ void ProfileImplIOData::InitializeIntern - builder, std::move(request_interceptors), - std::move(profile_params->protocol_handler_interceptor)); - -+#if BUILDFLAG(ENABLE_REPORTING) - builder->set_reporting_policy(MaybeCreateReportingPolicy()); -+#endif - } - - void ProfileImplIOData::OnMainRequestContextCreated( -@@ -615,7 +617,9 @@ net::URLRequestContext* ProfileImplIODat - context->host_resolver())); - context->SetJobFactory(std::move(top_job_factory)); - -+#if BUILDFLAG(ENABLE_REPORTING) - context->SetReportingService(MaybeCreateReportingService(context)); -+#endif - - return context; - } -@@ -705,6 +709,7 @@ chrome_browser_net::Predictor* ProfileIm - return predictor_.get(); - } - -+#if BUILDFLAG(ENABLE_REPORTING) - std::unique_ptr - ProfileImplIOData::MaybeCreateReportingService( - net::URLRequestContext* url_request_context) const { -@@ -723,3 +728,4 @@ ProfileImplIOData::MaybeCreateReportingP - - return base::MakeUnique(); - } -+#endif --- a/chrome/browser/profiles/profile_io_data.cc +++ b/chrome/browser/profiles/profile_io_data.cc -@@ -637,7 +637,9 @@ void ProfileIOData::AppRequestContext::S +@@ -630,7 +630,9 @@ void ProfileIOData::AppRequestContext::S void ProfileIOData::AppRequestContext::SetReportingService( std::unique_ptr reporting_service) { reporting_service_ = std::move(reporting_service); @@ -94,11 +49,11 @@ +#endif } - ProfileIOData::AppRequestContext::~AppRequestContext() { + void ProfileIOData::AppRequestContext::SetNetworkErrorLoggingService( --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -255,10 +255,12 @@ void ClearReportingCacheOnIOThread( - const base::Callback& origin_filter) { +@@ -268,10 +268,12 @@ void ClearReportingCacheOnIOThread( + const base::RepeatingCallback& origin_filter) { DCHECK_CURRENTLY_ON(BrowserThread::IO); +#if BUILDFLAG(ENABLE_REPORTING) diff --git a/0003-disable-autofill-download-manager.patch b/0003-disable-autofill-download-manager.patch index 30b051f..cd7cb6e 100644 --- a/0003-disable-autofill-download-manager.patch +++ b/0003-disable-autofill-download-manager.patch @@ -1,6 +1,6 @@ --- a/components/autofill/core/browser/autofill_download_manager.cc +++ b/components/autofill/core/browser/autofill_download_manager.cc -@@ -158,8 +158,7 @@ std::string RequestTypeToString(Autofill +@@ -158,8 +158,7 @@ } GURL GetRequestUrl(AutofillDownloadManager::RequestType request_type) { @@ -10,19 +10,42 @@ } std::ostream& operator<<(std::ostream& out, -@@ -299,6 +298,7 @@ bool AutofillDownloadManager::StartUploa +@@ -299,38 +298,6 @@ bool AutofillDownloadManager::StartRequest( const FormRequestData& request_data) { -+#if 0 - net::URLRequestContextGetter* request_context = - driver_->GetURLRequestContext(); - DCHECK(request_context); -@@ -330,6 +330,7 @@ bool AutofillDownloadManager::StartReque - variations::SignedIn::kNo, &headers); - fetcher->SetExtraRequestHeaders(headers.ToString()); - fetcher->Start(); -+#endif - +- net::URLRequestContextGetter* request_context = +- driver_->GetURLRequestContext(); +- DCHECK(request_context); +- GURL request_url = GetRequestUrl(request_data.request_type); +- +- // Id is ignored for regular chrome, in unit test id's for fake fetcher +- // factory will be 0, 1, 2, ... +- std::unique_ptr owned_fetcher = net::URLFetcher::Create( +- fetcher_id_for_unittest_++, request_url, net::URLFetcher::POST, this, +- GetNetworkTrafficAnnotation(request_data.request_type)); +- net::URLFetcher* fetcher = owned_fetcher.get(); +- data_use_measurement::DataUseUserData::AttachToFetcher( +- fetcher, data_use_measurement::DataUseUserData::AUTOFILL); +- url_fetchers_[fetcher] = +- std::make_pair(std::move(owned_fetcher), request_data); +- fetcher->SetAutomaticallyRetryOn5xx(false); +- fetcher->SetRequestContext(request_context); +- fetcher->SetUploadData("text/proto", request_data.payload); +- fetcher->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES | +- net::LOAD_DO_NOT_SEND_COOKIES); +- // Add Chrome experiment state to the request headers. +- net::HttpRequestHeaders headers; +- // Note: It's OK to pass SignedIn::kNo if it's unknown, as it does not affect +- // transmission of experiments coming from the variations server. +- variations::AppendVariationHeaders(fetcher->GetOriginalURL(), +- driver_->IsIncognito() +- ? variations::InIncognito::kYes +- : variations::InIncognito::kNo, +- variations::SignedIn::kNo, &headers); +- fetcher->SetExtraRequestHeaders(headers.ToString()); +- fetcher->Start(); +- return true; } + diff --git a/0005-disable-default-extensions.patch b/0005-disable-default-extensions.patch index c67de54..883dc00 100644 --- a/0005-disable-default-extensions.patch +++ b/0005-disable-default-extensions.patch @@ -52,35 +52,61 @@ { --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc -@@ -580,6 +580,7 @@ void WebstoreInstaller::DownloadNextPend +@@ -577,28 +577,6 @@ void WebstoreInstaller::DownloadNextPend void WebstoreInstaller::DownloadCrx( const std::string& extension_id, InstallSource source) { -+#if 0 - download_url_ = GetWebstoreInstallURL(extension_id, source); - MaybeAppendAuthUserParameter(approval_->authuser, &download_url_); - -@@ -602,6 +603,7 @@ void WebstoreInstaller::DownloadCrx( - GetExtensionFileTaskRunner().get(), FROM_HERE, - base::BindOnce(&GetDownloadFilePath, download_directory, extension_id), - base::BindOnce(&WebstoreInstaller::StartDownload, this, extension_id)); -+#endif /* 0 */ +- download_url_ = GetWebstoreInstallURL(extension_id, source); +- MaybeAppendAuthUserParameter(approval_->authuser, &download_url_); +- +- base::FilePath user_data_dir; +- PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); +- base::FilePath download_path = user_data_dir.Append(kWebstoreDownloadFolder); +- +- base::FilePath download_directory(g_download_directory_for_tests ? +- *g_download_directory_for_tests : download_path); +- +-#if defined(OS_CHROMEOS) +- // Do not use drive for extension downloads. +- if (drive::util::IsUnderDriveMountPoint(download_directory)) { +- download_directory = DownloadPrefs::FromBrowserContext( +- profile_)->GetDefaultDownloadDirectoryForProfile(); +- } +-#endif +- +- base::PostTaskAndReplyWithResult( +- GetExtensionFileTaskRunner().get(), FROM_HERE, +- base::BindOnce(&GetDownloadFilePath, download_directory, extension_id), +- base::BindOnce(&WebstoreInstaller::StartDownload, this, extension_id)); } // http://crbug.com/165634 -@@ -750,6 +752,7 @@ void WebstoreInstaller::UpdateDownloadPr +@@ -751,28 +729,6 @@ void WebstoreInstaller::UpdateDownloadPr } void WebstoreInstaller::StartCrxInstaller(const DownloadItem& download) { -+#if 0 - DCHECK_CURRENTLY_ON(BrowserThread::UI); - DCHECK(!crx_installer_.get()); - -@@ -772,6 +775,7 @@ void WebstoreInstaller::StartCrxInstalle - crx_installer_->set_allow_silent_install(true); - - crx_installer_->InstallCrx(download.GetFullPath()); -+#endif /* 0 */ +- DCHECK_CURRENTLY_ON(BrowserThread::UI); +- DCHECK(!crx_installer_.get()); +- +- // The clock may be backward, e.g. daylight savings time just happenned. +- if (download.GetEndTime() >= download.GetStartTime()) { +- UMA_HISTOGRAM_TIMES("Extensions.WebstoreDownload.FileDownload", +- download.GetEndTime() - download.GetStartTime()); +- } +- ExtensionService* service = ExtensionSystem::Get(profile_)-> +- extension_service(); +- CHECK(service); +- +- const Approval* approval = GetAssociatedApproval(download); +- DCHECK(approval); +- +- crx_installer_ = download_crx_util::CreateCrxInstaller(profile_, download); +- +- crx_installer_->set_expected_id(approval->extension_id); +- crx_installer_->set_is_gallery_install(true); +- crx_installer_->set_allow_silent_install(true); +- +- crx_installer_->InstallCrx(download.GetFullPath()); } void WebstoreInstaller::ReportFailure(const std::string& error, diff --git a/0006-modify-default-prefs.patch b/0006-modify-default-prefs.patch index 14071b2..5732de7 100644 --- a/0006-modify-default-prefs.patch +++ b/0006-modify-default-prefs.patch @@ -1,17 +1,17 @@ --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -859,7 +859,7 @@ void ChromeContentBrowserClient::Registe +@@ -856,7 +856,7 @@ void ChromeContentBrowserClient::Registe void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); - registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true); + registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, false); registry->RegisterListPref(prefs::kEnableDeprecatedWebPlatformFeatures); - } - + // Register user prefs for mapping SitePerProcess and IsolateOrigins in + // user policy in addition to the same named ones in Local State (which are --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -59,11 +59,11 @@ void RegisterBrowserUserPrefs(user_prefs +@@ -65,11 +65,11 @@ void RegisterBrowserUserPrefs(user_prefs registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); registry->RegisterBooleanPref( @@ -60,7 +60,7 @@ void BackgroundModeManager::RegisterProfile(Profile* profile) { --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc -@@ -88,7 +88,7 @@ void CookieSettings::GetCookieSettings( +@@ -100,7 +100,7 @@ void CookieSettings::GetCookieSettings( void CookieSettings::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -82,7 +82,7 @@ --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc -@@ -216,7 +216,7 @@ void AutofillManager::RegisterProfilePre +@@ -215,7 +215,7 @@ void AutofillManager::RegisterProfilePre registry->RegisterIntegerPref( prefs::kAutofillCreditCardSigninPromoImpressionCount, 0); registry->RegisterBooleanPref( @@ -104,18 +104,18 @@ --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc -@@ -620,7 +620,7 @@ void IOThread::RegisterPrefs(PrefRegistr +@@ -629,7 +629,7 @@ void IOThread::RegisterPrefs(PrefRegistr std::string()); registry->RegisterBooleanPref(prefs::kEnableReferrers, true); data_reduction_proxy::RegisterPrefs(registry); - registry->RegisterBooleanPref(prefs::kBuiltInDnsClientEnabled, true); + registry->RegisterBooleanPref(prefs::kBuiltInDnsClientEnabled, false); + registry->RegisterListPref(prefs::kDnsOverHttpsServers); + registry->RegisterListPref(prefs::kDnsOverHttpsServerMethods); registry->RegisterBooleanPref(prefs::kQuickCheckEnabled, true); - registry->RegisterBooleanPref(prefs::kPacHttpsUrlStrippingEnabled, true); - #if defined(OS_POSIX) --- a/chrome/browser/signin/signin_promo.cc +++ b/chrome/browser/signin/signin_promo.cc -@@ -390,8 +390,8 @@ void ForceWebBasedSigninFlowForTesting(b +@@ -383,8 +383,8 @@ void ForceWebBasedSigninFlowForTesting(b void RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterIntegerPref(prefs::kSignInPromoStartupCount, 0); @@ -124,8 +124,8 @@ + registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, true); + registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, false); registry->RegisterBooleanPref(prefs::kSignInPromoShowNTPBubble, false); + registry->RegisterIntegerPref(prefs::kDiceSigninUserMenuPromoCount, 0); } - --- a/components/bookmarks/browser/bookmark_utils.cc +++ b/components/bookmarks/browser/bookmark_utils.cc @@ -442,12 +442,12 @@ void GetBookmarksMatchingProperties(Book @@ -180,7 +180,7 @@ } --- a/extensions/common/extension.cc +++ b/extensions/common/extension.cc -@@ -344,14 +344,6 @@ bool Extension::ShouldDisplayInExtension +@@ -330,14 +330,6 @@ bool Extension::ShouldDisplayInExtension if (is_theme()) return false; @@ -197,7 +197,7 @@ // functionality that are only available in chrome://extensions/ but which --- a/components/safe_browsing/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/common/safe_browsing_prefs.cc -@@ -334,9 +334,9 @@ void RegisterProfilePrefs(PrefRegistrySi +@@ -370,9 +370,9 @@ void RegisterProfilePrefs(PrefRegistrySi registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -211,7 +211,7 @@ false); --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -236,10 +236,10 @@ PasswordFormManager* FindMatchedManager( +@@ -244,10 +244,10 @@ PasswordFormManager* FindMatchedManager( void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( diff --git a/0007-disable-web-resource-service.patch b/0007-disable-web-resource-service.patch index 1ea9c27..dae1930 100644 --- a/0007-disable-web-resource-service.patch +++ b/0007-disable-web-resource-service.patch @@ -1,18 +1,47 @@ --- a/components/web_resource/web_resource_service.cc +++ b/components/web_resource/web_resource_service.cc -@@ -126,6 +126,7 @@ bool WebResourceService::GetFetchSchedul +@@ -128,44 +128,7 @@ bool WebResourceService::GetFetchSchedul // Initializes the fetching of data from the resource server. Data // load calls OnURLFetchComplete. void WebResourceService::StartFetch() { -+#if 0 - // Set to false so that next fetch can be scheduled after this fetch or - // if we recieve notification that resource is allowed. - fetch_scheduled_ = false; -@@ -164,6 +165,8 @@ void WebResourceService::StartFetch() { - net::LOAD_DO_NOT_SAVE_COOKIES); - url_fetcher_->SetRequestContext(request_context_.get()); - url_fetcher_->Start(); -+#endif +- // Set to false so that next fetch can be scheduled after this fetch or +- // if we recieve notification that resource is allowed. +- fetch_scheduled_ = false; +- // Check whether fetching is allowed. +- if (!resource_request_allowed_notifier_->ResourceRequestsAllowed()) +- return; +- +- // First, put our next cache load on the MessageLoop. +- ScheduleFetch(cache_update_delay_ms_); +- +- // Set cache update time in preferences. +- prefs_->SetString(last_update_time_pref_name_, +- base::NumberToString(base::Time::Now().ToDoubleT())); +- +- // If we are still fetching data, exit. +- if (in_fetch_) +- return; +- in_fetch_ = true; +- +- GURL web_resource_server = +- application_locale_.empty() +- ? web_resource_server_ +- : google_util::AppendGoogleLocaleParam(web_resource_server_, +- application_locale_); +- +- DVLOG(1) << "WebResourceService StartFetch " << web_resource_server; +- url_fetcher_ = net::URLFetcher::Create( +- web_resource_server, net::URLFetcher::GET, this, traffic_annotation_); +- data_use_measurement::DataUseUserData::AttachToFetcher( +- url_fetcher_.get(), +- data_use_measurement::DataUseUserData::WEB_RESOURCE_SERVICE); +- // Do not let url fetcher affect existing state in system context +- // (by setting cookies, for example). +- url_fetcher_->SetLoadFlags(net::LOAD_DISABLE_CACHE | +- net::LOAD_DO_NOT_SEND_COOKIES | +- net::LOAD_DO_NOT_SAVE_COOKIES); +- url_fetcher_->SetRequestContext(request_context_.get()); +- url_fetcher_->Start(); + in_fetch_ = false; } diff --git a/0008-restore-classic-ntp.patch b/0008-restore-classic-ntp.patch index 624f2d9..d296586 100644 --- a/0008-restore-classic-ntp.patch +++ b/0008-restore-classic-ntp.patch @@ -33,8 +33,8 @@ const GURL url; --- a/components/ntp_snippets/features.cc +++ b/components/ntp_snippets/features.cc -@@ -37,16 +37,16 @@ const base::Feature* const kAllFeatures[ - nullptr}; +@@ -41,16 +41,16 @@ const base::Feature kArticleSuggestionsE + "NTPArticleSuggestionsExpandableHeader", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kArticleSuggestionsFeature{ - "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT}; diff --git a/0009-disable-google-ipv6-probes.patch b/0009-disable-google-ipv6-probes.patch index 711c258..cdc01d7 100644 --- a/0009-disable-google-ipv6-probes.patch +++ b/0009-disable-google-ipv6-probes.patch @@ -1,6 +1,6 @@ --- a/net/dns/host_resolver_impl.cc +++ b/net/dns/host_resolver_impl.cc -@@ -108,10 +108,10 @@ const unsigned kMinimumTTLSeconds = kCac +@@ -109,10 +109,10 @@ const unsigned kMinimumTTLSeconds = kCac // cached. const int kIPv6ProbePeriodMs = 1000; diff --git a/0010-disable-gcm-status-check.patch b/0010-disable-gcm-status-check.patch index 1fdd727..8455109 100644 --- a/0010-disable-gcm-status-check.patch +++ b/0010-disable-gcm-status-check.patch @@ -1,29 +1,73 @@ --- a/components/gcm_driver/gcm_channel_status_request.cc +++ b/components/gcm_driver/gcm_channel_status_request.cc -@@ -23,8 +23,10 @@ namespace gcm { +@@ -23,8 +23,6 @@ namespace { -+#if 0 - const char kRequestContentType[] = "application/octet-stream"; - const char kGCMChannelTag[] = "gcm_channel"; -+#endif +-const char kRequestContentType[] = "application/octet-stream"; +-const char kGCMChannelTag[] = "gcm_channel"; const int kDefaultPollIntervalSeconds = 60 * 60; // 60 minutes. const int kMinPollIntervalSeconds = 30 * 60; // 30 minutes. -@@ -57,6 +59,7 @@ int GCMChannelStatusRequest::min_poll_in +@@ -57,61 +55,8 @@ } void GCMChannelStatusRequest::Start() { -+#if 0 - DCHECK(!url_fetcher_.get()); - - GURL request_url(channel_status_request_url_); -@@ -112,6 +115,9 @@ void GCMChannelStatusRequest::Start() { - url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | - net::LOAD_DO_NOT_SAVE_COOKIES); - url_fetcher_->Start(); -+#endif +- DCHECK(!url_fetcher_.get()); +- +- GURL request_url(channel_status_request_url_); +- +- sync_pb::ExperimentStatusRequest proto_data; +- proto_data.add_experiment_name(kGCMChannelTag); +- std::string upload_data; +- if (!proto_data.SerializeToString(&upload_data)) { +- NOTREACHED(); +- } +- +- net::NetworkTrafficAnnotationTag traffic_annotation = +- net::DefineNetworkTrafficAnnotation("gcm_channel_status_request", R"( +- semantics { +- sender: "GCM Driver" +- description: +- "Google Chrome interacts with Google Cloud Messaging to receive " +- "push messages for various browser features, as well as on behalf " +- "of websites and extensions. The channel status request " +- "periodically confirms with Google servers whether the feature " +- "should be enabled." +- trigger: +- "Periodically when Chrome has established an active Google Cloud " +- "Messaging subscription. The first request will be issued a minute " +- "after the first subscription activates. Subsequent requests will " +- "be issued each hour with a jitter of 15 minutes. Google can " +- "adjust this interval when it deems necessary." +- data: +- "A user agent string containing the Chrome version, channel and " +- "platform will be sent to the server. No user identifier is sent " +- "along with the request." +- destination: GOOGLE_OWNED_SERVICE +- } +- policy { +- cookies_allowed: NO +- setting: +- "Support for interacting with Google Cloud Messaging is enabled by " +- "default, and there is no configuration option to completely " +- "disable it. Websites wishing to receive push messages must " +- "acquire express permission from the user for the 'Notification' " +- "permission." +- policy_exception_justification: +- "Not implemented, considered not useful." +- })"); +- +- url_fetcher_ = net::URLFetcher::Create(request_url, net::URLFetcher::POST, +- this, traffic_annotation); +- data_use_measurement::DataUseUserData::AttachToFetcher( +- url_fetcher_.get(), data_use_measurement::DataUseUserData::GCM_DRIVER); +- url_fetcher_->SetRequestContext(request_context_getter_.get()); +- url_fetcher_->AddExtraRequestHeader("User-Agent: " + user_agent_); +- url_fetcher_->SetUploadData(kRequestContentType, upload_data); +- url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | +- net::LOAD_DO_NOT_SAVE_COOKIES); +- url_fetcher_->Start(); + // Simulate an empty response and disable GCM. + callback_.Run(false, false, 0); } diff --git a/0014-disable-translation-lang-fetch.patch b/0014-disable-translation-lang-fetch.patch index 3f5fa56..309452b 100644 --- a/0014-disable-translation-lang-fetch.patch +++ b/0014-disable-translation-lang-fetch.patch @@ -11,7 +11,7 @@ request_pending_ = true; --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc -@@ -155,7 +155,6 @@ void SpellcheckHunspellDictionary::Retry +@@ -158,7 +158,6 @@ void SpellcheckHunspellDictionary::Retry return; } request_context_getter_ = request_context_getter; @@ -19,7 +19,7 @@ } bool SpellcheckHunspellDictionary::IsReady() const { -@@ -375,9 +374,6 @@ void SpellcheckHunspellDictionary::Initi +@@ -377,9 +376,6 @@ void SpellcheckHunspellDictionary::Initi } if (request_context_getter_) { @@ -49,7 +49,7 @@ + is_previous_language_matches_override_enabled_(false), weak_ptr_factory_(this) { if (is_query_enabled_ || is_enforcement_enabled_) { - model_loader_ = base::MakeUnique( + model_loader_ = std::make_unique( @@ -231,6 +227,8 @@ bool TranslateRankerImpl::ShouldOfferTra // (or become False). const bool kDefaultResponse = true; diff --git a/0015-disable-update-pings.patch b/0015-disable-update-pings.patch index bbb54b0..5c9ca89 100644 --- a/0015-disable-update-pings.patch +++ b/0015-disable-update-pings.patch @@ -1,6 +1,6 @@ --- a/components/component_updater/configurator_impl.cc +++ b/components/component_updater/configurator_impl.cc -@@ -138,22 +138,6 @@ int ConfiguratorImpl::UpdateDelay() cons +@@ -135,22 +135,6 @@ int ConfiguratorImpl::UpdateDelay() cons std::vector ConfiguratorImpl::UpdateUrl() const { std::vector urls; diff --git a/0016-chromium-sandbox-pie.patch b/0016-chromium-sandbox-pie.patch index 7162c2d..8c09b54 100644 --- a/0016-chromium-sandbox-pie.patch +++ b/0016-chromium-sandbox-pie.patch @@ -1,6 +1,6 @@ --- a/sandbox/linux/BUILD.gn +++ b/sandbox/linux/BUILD.gn -@@ -315,6 +315,12 @@ if (is_linux) { +@@ -314,6 +314,12 @@ if (is_linux) { # These files have a suspicious comparison. # TODO fix this and re-enable this warning. "-Wno-sign-compare", diff --git a/0019-disable-battery-status-service.patch b/0019-disable-battery-status-service.patch index c5aae25..b276c21 100644 --- a/0019-disable-battery-status-service.patch +++ b/0019-disable-battery-status-service.patch @@ -1,21 +1,22 @@ --- a/services/device/battery/battery_status_service.cc +++ b/services/device/battery/battery_status_service.cc -@@ -41,6 +41,7 @@ BatteryStatusService::AddCallback(const +@@ -41,17 +41,8 @@ if (!battery_fetcher_) battery_fetcher_ = BatteryStatusManager::Create(update_callback_); -+#if 0 - if (callback_list_.empty()) { - bool success = battery_fetcher_->StartListeningBatteryChange(); - // On failure pass the default values back. -@@ -52,6 +53,10 @@ BatteryStatusService::AddCallback(const - // Send recent status to the new callback if already available. - callback.Run(status_); - } -+#else +- if (callback_list_.empty()) { +- bool success = battery_fetcher_->StartListeningBatteryChange(); +- // On failure pass the default values back. +- if (!success) +- callback.Run(mojom::BatteryStatus()); +- } +- +- if (status_updated_) { +- // Send recent status to the new callback if already available. +- callback.Run(status_); +- } + // Always pass the default values. + callback.Run(mojom::BatteryStatus()); -+#endif return callback_list_.Add(callback); } diff --git a/9000-disable-metrics.patch b/9000-disable-metrics.patch index c27a1fc..db28b77 100644 --- a/9000-disable-metrics.patch +++ b/9000-disable-metrics.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1221,6 +1221,11 @@ const FeatureEntry::FeatureVariation kWe +@@ -1206,6 +1206,11 @@ const FeatureEntry::FeatureVariation kSi // // When adding a new choice, add it to the end of the list. const FeatureEntry kFeatureEntries[] = { @@ -37,7 +37,7 @@ #include "base/json/json_string_value_serializer.h" #include "base/lazy_instance.h" #include "base/logging.h" -@@ -64,6 +65,12 @@ HistogramBase* DeserializeHistogramInfo( +@@ -65,6 +66,12 @@ HistogramBase* DeserializeHistogramInfo( } } @@ -268,7 +268,7 @@ #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/metrics/histogram_base.h" -@@ -802,6 +803,8 @@ bool MetricsService::UmaMetricsProperlyS +@@ -815,6 +816,8 @@ bool MetricsService::UmaMetricsProperlyS void MetricsService::RegisterMetricsProvider( std::unique_ptr provider) { DCHECK_EQ(INITIALIZED, state_); @@ -279,9 +279,9 @@ --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -207,8 +207,10 @@ void TabHelpers::AttachTabHelpers(WebCon - ChromeTranslateClient::CreateForWebContents(web_contents); +@@ -206,8 +206,10 @@ void TabHelpers::AttachTabHelpers(WebCon ClientHintsObserver::CreateForWebContents(web_contents); + ConnectionHelpTabHelper::CreateForWebContents(web_contents); CoreTabHelper::CreateForWebContents(web_contents); - data_use_measurement::DataUseWebContentsObserver::CreateForWebContents( - web_contents); @@ -292,7 +292,7 @@ ExternalProtocolObserver::CreateForWebContents(web_contents); favicon::CreateContentFaviconDriverForWebContents(web_contents); FindTabHelper::CreateForWebContents(web_contents); -@@ -223,14 +225,20 @@ void TabHelpers::AttachTabHelpers(WebCon +@@ -222,13 +224,19 @@ void TabHelpers::AttachTabHelpers(WebCon HistoryTabHelper::CreateForWebContents(web_contents); InfoBarService::CreateForWebContents(web_contents); InstallableManager::CreateForWebContents(web_contents); @@ -301,14 +301,13 @@ + if (base::CommandLine::ForCurrentProcess()->HasSwitch("enable-metrics")) { + metrics::RendererUptimeWebContentsObserver::CreateForWebContents( + web_contents); -+ }; - if (content::IsBrowserSideNavigationEnabled()) - MixedContentSettingsTabHelper::CreateForWebContents(web_contents); ++ } + MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationCorrectionTabObserver::CreateForWebContents(web_contents); - NavigationMetricsRecorder::CreateForWebContents(web_contents); + if (base::CommandLine::ForCurrentProcess()->HasSwitch("enable-metrics")) { + NavigationMetricsRecorder::CreateForWebContents(web_contents); -+ }; ++ } OutOfMemoryReporter::CreateForWebContents(web_contents); - chrome::InitializePageLoadMetricsForWebContents(web_contents); + if (base::CommandLine::ForCurrentProcess()->HasSwitch("enable-metrics")) { @@ -317,7 +316,7 @@ PDFPluginPlaceholderObserver::CreateForWebContents(web_contents); PermissionRequestManager::CreateForWebContents(web_contents); // The PopupBlockerTabHelper has an implicit dependency on -@@ -255,7 +263,9 @@ void TabHelpers::AttachTabHelpers(WebCon +@@ -253,7 +261,9 @@ void TabHelpers::AttachTabHelpers(WebCon // is taken over by ChromeContentSettingsClient. http://crbug.com/387075 TabSpecificContentSettings::CreateForWebContents(web_contents); TabUIHelper::CreateForWebContents(web_contents); @@ -328,7 +327,7 @@ vr::VrTabHelper::CreateForWebContents(web_contents); // NO! Do not just add your tab helper here. This is a large alphabetized -@@ -306,7 +316,8 @@ void TabHelpers::AttachTabHelpers(WebCon +@@ -299,7 +309,8 @@ void TabHelpers::AttachTabHelpers(WebCon #if defined(OS_WIN) || defined(OS_MACOSX) || \ (defined(OS_LINUX) && !defined(OS_CHROMEOS)) From 365a106e298e04b4a7063559b7a0ee16888b928f Mon Sep 17 00:00:00 2001 From: xsmile <> Date: Wed, 4 Apr 2018 21:46:18 +0200 Subject: [PATCH 2/4] 66.0.3359.66: Update PKGBUILD and build patches --- PKGBUILD | 54 ++-- ...-for-GPU-process-for-a-list-of-files.patch | 87 ++++++ chromium-clang-r2.patch | 2 +- chromium-clang-r4.patch | 11 + chromium-ffmpeg-clang.patch | 21 ++ chromium-ffmpeg-r1.patch | 22 ++ chromium-math.h-r0.patch | 8 +- chromium-skia-harmony.patch | 16 +- chromium-stdint.patch | 11 +- chromium-vaapi-init-r16.patch | 253 ------------------ ...aapi-r16.patch => chromium-vaapi-r17.patch | 77 +++--- 11 files changed, 223 insertions(+), 339 deletions(-) create mode 100644 allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch create mode 100644 chromium-clang-r4.patch create mode 100644 chromium-ffmpeg-clang.patch create mode 100644 chromium-ffmpeg-r1.patch delete mode 100644 chromium-vaapi-init-r16.patch rename chromium-vaapi-r16.patch => chromium-vaapi-r17.patch (89%) diff --git a/PKGBUILD b/PKGBUILD index 89fcaa5..89a9f68 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,9 +5,9 @@ # Contributor: Daniel J Griffiths pkgname=inox -pkgver=65.0.3325.181 +pkgver=66.0.3359.66 pkgrel=1 -_launcher_ver=5 +_launcher_ver=6 pkgdesc="Chromium Spin-off to enhance privacy by disabling data transmission to Google" arch=('x86_64') url="https://www.chromium.org/Home" @@ -15,8 +15,8 @@ license=('BSD') depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' 'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib' 'desktop-file-utils' 'hicolor-icon-theme') -makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' 'libva' - 'clang' 'llvm' 'lld') +makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' + 'clang' 'lld' 'llvm' 'libva') optdepends=('pepper-flash: support for Flash content' 'kdialog: needed for file dialogs in KDE' 'gnome-keyring: for storing passwords in GNOME keyring' @@ -30,16 +30,19 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/product_logo_{16,22,24,32,48,64,128,256}.png # Patches from Arch Linux + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-skia-harmony.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-widevine.patch # Patches from Gentoo https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-clang-r2.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-clang-r4.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-ffmpeg-r1.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-ffmpeg-clang.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-math.h-r0.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-stdint.patch # Misc - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-vaapi-init-r16.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-vaapi-r16.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-vaapi-r17.patch # Inox patchset https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0001-fix-building-without-safebrowsing.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0002-fix-building-without-reporting.patch @@ -146,6 +149,10 @@ prepare() { fi echo "LASTCHANGE=$_chrome_build_hash-" >build/util/LASTCHANGE + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py + # Enable support for the Widevine CDM plugin # libwidevinecdm.so is not included, but can be copied over from Chrome # (Version string doesn't seem to matter so let's go with "Pinkie Pie") @@ -155,17 +162,22 @@ prepare() { # https://crbug.com/822820 patch -Np1 -i ../fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch + # https://crbug.com/817400 + patch -Np1 -i ../allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch + # https://crbug.com/skia/6663#c10 patch -Np4 -i ../chromium-skia-harmony.patch # Fixes from Gentoo patch -Np1 -i ../chromium-clang-r2.patch + patch -Np1 -i ../chromium-clang-r4.patch + patch -Np1 -i ../chromium-ffmpeg-r1.patch + patch -Np1 -i ../chromium-ffmpeg-clang.patch patch -Np1 -i ../chromium-math.h-r0.patch patch -Np1 -i ../chromium-stdint.patch msg2 'Applying VA-API patches' - patch -Np1 -i ../chromium-vaapi-init-r16.patch - patch -Np1 -i ../chromium-vaapi-r16.patch + patch -Np1 -i ../chromium-vaapi-r17.patch msg2 'Applying Inox patchset' # Apply patches to fix building @@ -193,14 +205,9 @@ prepare() { patch -Np1 -i ../0021-disable-rlz.patch patch -Np1 -i ../9000-disable-metrics.patch - # Use Python 2 - find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} + - - # There are still a lot of relative calls which need a workaround - mkdir -p "$srcdir/python2-path" - ln -s /usr/bin/python2 "$srcdir/python2-path/python" + # Force script incompatible with Python 3 to use /usr/bin/python2 + sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py - # Setup nodejs dependency mkdir -p third_party/node/linux/node-linux-x64/bin ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ @@ -237,10 +244,6 @@ build() { export CCACHE_SLOPPINESS=time_macros fi - export PATH="$srcdir/python2-path:$PATH" - export TMPDIR="$srcdir/temp" - mkdir -p "$TMPDIR" - export CC=clang export CXX=clang++ export AR=llvm-ar @@ -250,10 +253,8 @@ build() { 'custom_toolchain="//build/toolchain/linux/unbundle:default"' 'host_toolchain="//build/toolchain/linux/unbundle:default"' 'clang_use_chrome_plugins=false' - 'is_cfi=true' - 'symbol_level=0' + 'is_official_build=true' # implies is_cfi=true on x86_64 'is_debug=false' - 'fatal_linker_warnings=false' 'treat_warnings_as_errors=false' 'fieldtrial_testing_like_official_build=true' 'remove_webcore_debug_symbols=true' @@ -261,7 +262,6 @@ build() { 'proprietary_codecs=true' 'link_pulseaudio=true' 'use_gnome_keyring=false' - 'use_gold=false' 'use_sysroot=false' 'linux_use_bundled_binutils=false' 'use_custom_libcxx=false' @@ -277,7 +277,15 @@ build() { 'safe_browsing_mode=0' ) + # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) + CFLAGS+=' -Wno-builtin-macro-redefined' + CXXFLAGS+=' -Wno-builtin-macro-redefined' + CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__=' + if check_option strip y; then + _flags+=('symbol_level=0') + + # Mimic exclude_unwind_tables=true CFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' CXXFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' CPPFLAGS+=' -DNO_UNWIND_TABLES' diff --git a/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch b/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch new file mode 100644 index 0000000..746434c --- /dev/null +++ b/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch @@ -0,0 +1,87 @@ +From 6b1b6d3a8555075e23cca89335e855d55f35fba9 Mon Sep 17 00:00:00 2001 +From: Zhenyao Mo +Date: Thu, 29 Mar 2018 23:48:19 +0000 +Subject: [PATCH] Allow `stat` in Linux for GPU process for a list of files. + +This is to unblock certain NVidia driver's glReadPixels calls in the sandboxed +GPU process. + +Note that the needed file /dev/nvidiactl is already in the list for read/write. + +BUG=817400 +TEST=manual +R=tsepez@chromium.org + +Change-Id: I9074a8335a9c4df1487f5a288d5e284bbedf67c3 +Reviewed-on: https://chromium-review.googlesource.com/965462 +Reviewed-by: Zhenyao Mo +Reviewed-by: Tom Sepez +Reviewed-by: Robert Sesek +Reviewed-by: Kenneth Russell +Commit-Queue: Zhenyao Mo +Cr-Commit-Position: refs/heads/master@{#547027} +--- + content/gpu/gpu_sandbox_hook_linux.cc | 5 ++++- + .../service_manager/sandbox/linux/bpf_gpu_policy_linux.cc | 15 ++++++++++++++- + 2 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/content/gpu/gpu_sandbox_hook_linux.cc b/content/gpu/gpu_sandbox_hook_linux.cc +index ddd7b99485fe..cd914e2f9926 100644 +--- a/content/gpu/gpu_sandbox_hook_linux.cc ++++ b/content/gpu/gpu_sandbox_hook_linux.cc +@@ -153,6 +153,7 @@ void AddStandardGpuWhiteList(std::vector* permissions) { + static const char kDriCardBasePath[] = "/dev/dri/card"; + static const char kNvidiaCtlPath[] = "/dev/nvidiactl"; + static const char kNvidiaDeviceBasePath[] = "/dev/nvidia"; ++ static const char kNvidiaDeviceModeSetPath[] = "/dev/nvidia-modeset"; + static const char kNvidiaParamsPath[] = "/proc/driver/nvidia/params"; + static const char kDevShm[] = "/dev/shm/"; + +@@ -172,6 +173,8 @@ void AddStandardGpuWhiteList(std::vector* permissions) { + permissions->push_back(BrokerFilePermission::ReadWrite( + base::StringPrintf("%s%d", kNvidiaDeviceBasePath, i))); + } ++ permissions->push_back( ++ BrokerFilePermission::ReadWrite(kNvidiaDeviceModeSetPath)); + permissions->push_back(BrokerFilePermission::ReadOnly(kNvidiaParamsPath)); + } + +@@ -262,9 +265,9 @@ sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU( + sandbox::syscall_broker::BrokerCommandSet command_set; + command_set.set(sandbox::syscall_broker::COMMAND_ACCESS); + command_set.set(sandbox::syscall_broker::COMMAND_OPEN); ++ command_set.set(sandbox::syscall_broker::COMMAND_STAT); + if (IsChromeOS() && options.use_amd_specific_policies) { + command_set.set(sandbox::syscall_broker::COMMAND_READLINK); +- command_set.set(sandbox::syscall_broker::COMMAND_STAT); + } + return command_set; + } +diff --git a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc +index bc16952c0898..d683aacc76f4 100644 +--- a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc ++++ b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc +@@ -61,7 +61,20 @@ ResultExpr GpuProcessPolicy::EvaluateSyscall(int sysno) const { + case __NR_open: + #endif // !defined(__aarch64__) + case __NR_faccessat: +- case __NR_openat: { ++ case __NR_openat: ++#if defined(__NR_stat) ++ case __NR_stat: ++#endif ++#if defined(__NR_stat64) ++ case __NR_stat64: ++#endif ++#if defined(__NR_fstatat) ++ case __NR_fstatat: ++#endif ++#if defined(__NR_newfstatat) ++ case __NR_newfstatat: ++#endif ++ { + auto* broker_process = SandboxLinux::GetInstance()->broker_process(); + DCHECK(broker_process); + return Trap(BrokerProcess::SIGSYS_Handler, broker_process); +-- +2.16.2 diff --git a/chromium-clang-r2.patch b/chromium-clang-r2.patch index aaee167..9552397 100644 --- a/chromium-clang-r2.patch +++ b/chromium-clang-r2.patch @@ -1,6 +1,6 @@ --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -422,18 +422,6 @@ +@@ -433,18 +433,6 @@ config("compiler") { cflags += [ "-fcolor-diagnostics" ] } diff --git a/chromium-clang-r4.patch b/chromium-clang-r4.patch new file mode 100644 index 0000000..8d5122f --- /dev/null +++ b/chromium-clang-r4.patch @@ -0,0 +1,11 @@ +--- a/device/fido/u2f_ble_transaction.cc ++++ b/device/fido/u2f_ble_transaction.cc +@@ -131,7 +131,7 @@ + + void U2fBleTransaction::OnError() { + request_frame_.reset(); +- request_cont_fragments_ = {}; ++ request_cont_fragments_ = base::queue(); + response_frame_assembler_.reset(); + std::move(callback_).Run(base::nullopt); + } diff --git a/chromium-ffmpeg-clang.patch b/chromium-ffmpeg-clang.patch new file mode 100644 index 0000000..90571bc --- /dev/null +++ b/chromium-ffmpeg-clang.patch @@ -0,0 +1,21 @@ +--- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py ++++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py +@@ -640,18 +640,8 @@ def ConfigureAndBuild(target_arch, targe + if 'win' not in target_os: + configure_flags['Common'].extend([ + '--enable-pic', +- '--cc=clang', +- '--cxx=clang++', +- '--ld=clang', + ]) + +- # Clang Linux will use the first 'ld' it finds on the path, which will +- # typically be the system one, so explicitly configure use of Clang's +- # ld.lld, to ensure that things like cross-compilation and LTO work. +- # This does not work for arm64, ia32 and is always used on mac. +- if target_arch not in ['arm64', 'ia32', 'mipsel'] and target_os != 'mac': +- configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld') +- + # Should be run on Mac. + if target_os == 'mac': + if host_os != 'mac': diff --git a/chromium-ffmpeg-r1.patch b/chromium-ffmpeg-r1.patch new file mode 100644 index 0000000..53d61e8 --- /dev/null +++ b/chromium-ffmpeg-r1.patch @@ -0,0 +1,22 @@ +--- a/build/linux/unbundle/ffmpeg.gn ++++ b/build/linux/unbundle/ffmpeg.gn +@@ -14,8 +14,8 @@ pkg_config("system_ffmpeg") { + ] + } + +-buildflag_header("ffmpeg_buildflags") { +- header = "ffmpeg_buildflags.h" ++buildflag_header("ffmpeg_features") { ++ header = "ffmpeg_features.h" + flags = [ "USE_SYSTEM_FFMPEG=true" ] + } + +@@ -30,7 +30,7 @@ shim_headers("ffmpeg_shim") { + + source_set("ffmpeg") { + deps = [ +- ":ffmpeg_buildflags", ++ ":ffmpeg_features", + ":ffmpeg_shim", + ] + public_configs = [ ":system_ffmpeg" ] diff --git a/chromium-math.h-r0.patch b/chromium-math.h-r0.patch index 6c7c747..83d8c5e 100644 --- a/chromium-math.h-r0.patch +++ b/chromium-math.h-r0.patch @@ -14,13 +14,11 @@ Commit-Queue: Thomas Anderson Cr-Commit-Position: refs/heads/master@{#532249} --- -diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc -index 54d4dbd..ceedd8f 100644 --- a/components/assist_ranker/ranker_example_util.cc +++ b/components/assist_ranker/ranker_example_util.cc -@@ -2,6 +2,8 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. +@@ -4,6 +4,8 @@ + + #include +#include + diff --git a/chromium-skia-harmony.patch b/chromium-skia-harmony.patch index 6343f7f..83ab622 100644 --- a/chromium-skia-harmony.patch +++ b/chromium-skia-harmony.patch @@ -1,6 +1,6 @@ ---- qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2017-10-10 17:42:06.956950985 +0200 -+++ qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-10-10 17:46:05.824187787 +0200 -@@ -99,8 +99,6 @@ +--- a/third_party/skia/src/ports/SkFontHost_FreeType.cpp ++++ b/third_party/skia/src/ports/SkFontHost_FreeType.cpp +@@ -99,8 +99,6 @@ public: FreeTypeLibrary() : fGetVarDesignCoordinates(nullptr) , fLibrary(nullptr) @@ -9,7 +9,7 @@ { if (FT_New_Library(&gFTMemory, &fLibrary)) { return; -@@ -147,12 +145,7 @@ +@@ -147,12 +145,7 @@ public: } #endif @@ -23,7 +23,7 @@ } ~FreeTypeLibrary() { if (fLibrary) { -@@ -161,8 +153,6 @@ +@@ -161,8 +154,6 @@ public: } FT_Library library() { return fLibrary; } @@ -32,7 +32,7 @@ // FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1. // Prior to this there was no way to get the coordinates out of the FT_Face. -@@ -173,8 +163,6 @@ +@@ -173,8 +164,6 @@ public: private: FT_Library fLibrary; @@ -41,7 +41,7 @@ // FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0. // The following platforms provide FreeType of at least 2.4.0. -@@ -704,17 +692,6 @@ +@@ -659,17 +648,6 @@ void SkTypeface_FreeType::onFilterRec(Sk rec->fTextSize = SkIntToScalar(1 << 14); } @@ -59,7 +59,7 @@ SkPaint::Hinting h = rec->getHinting(); if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) { // collapse full->normal hinting if we're not doing LCD -@@ -1115,11 +1092,11 @@ +@@ -1062,11 +1040,11 @@ bool SkScalerContext_FreeType::getCBoxFo void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) { if (isLCD(fRec)) { if (fLCDIsVert) { diff --git a/chromium-stdint.patch b/chromium-stdint.patch index 8774439..493cc1e 100644 --- a/chromium-stdint.patch +++ b/chromium-stdint.patch @@ -3,19 +3,14 @@ From: Tomas Popela Date: Wed, 31 Jan 2018 18:57:07 +0000 Subject: [PATCH] Add missing stdint include -diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc -index c2ca777ce90c..53cb3aab1576 100644 --- a/chrome/browser/vr/sample_queue.cc +++ b/chrome/browser/vr/sample_queue.cc -@@ -2,6 +2,8 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. +@@ -4,6 +4,8 @@ + + #include +#include + #include "chrome/browser/vr/sample_queue.h" namespace vr { --- -2.16.2 - diff --git a/chromium-vaapi-init-r16.patch b/chromium-vaapi-init-r16.patch deleted file mode 100644 index 8b49d2a..0000000 --- a/chromium-vaapi-init-r16.patch +++ /dev/null @@ -1,253 +0,0 @@ -From 281edc278272f0650fc190c8539d443ac59157bc Mon Sep 17 00:00:00 2001 -From: Daniel Charles -Date: Thu, 08 Feb 2018 02:36:51 +0000 -Subject: [PATCH] vaapi initialization: move it to vaapi_wrapper - -vaapi loading of libraries happens on the Pre and Post Sandbox -functions. Moving dynamic loading of libaries, i.e. libva,libva-drm -and i965_drv_video shared libraries to vaapi_wrapper. - -When calling PreSandbox function in vaapi_wrapper libva will open -i965_drv_video shared library and both will be available for use - -BUG=785117 -TEST=video initialization of h/w dec/enc, VAVDA/VAVEA/VAJDA subjective - testing and include unittests and autotests - -Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel -Change-Id: I862bb49f1167d7437e80387882cb9081ad53f54b -Signed-off-by: Daniel Charles -Reviewed-on: https://chromium-review.googlesource.com/666138 -Commit-Queue: Miguel Casas -Reviewed-by: Kenneth Russell -Reviewed-by: Antoine Labour -Reviewed-by: Dongseong Hwang -Reviewed-by: Pawel Osciak -Reviewed-by: Jorge Lucangeli Obes -Cr-Commit-Position: refs/heads/master@{#535274} ---- - -diff --git a/content/gpu/gpu_sandbox_hook_linux.cc b/content/gpu/gpu_sandbox_hook_linux.cc -index e69e23e..5c4013c 100644 ---- a/content/gpu/gpu_sandbox_hook_linux.cc -+++ b/content/gpu/gpu_sandbox_hook_linux.cc -@@ -29,10 +29,6 @@ - #include "services/service_manager/sandbox/linux/bpf_gpu_policy_linux.h" - #include "services/service_manager/sandbox/linux/sandbox_linux.h" - --#if BUILDFLAG(USE_VAAPI) --#include --#endif -- - using sandbox::bpf_dsl::Policy; - using sandbox::syscall_broker::BrokerFilePermission; - using sandbox::syscall_broker::BrokerProcess; -@@ -48,22 +44,6 @@ - #endif - } - --inline bool IsArchitectureX86_64() { --#if defined(__x86_64__) -- return true; --#else -- return false; --#endif --} -- --inline bool IsArchitectureI386() { --#if defined(__i386__) -- return true; --#else -- return false; --#endif --} -- - inline bool IsArchitectureArm() { - #if defined(ARCH_CPU_ARM_FAMILY) - return true; -@@ -88,14 +68,6 @@ - #endif - } - --inline bool IsLibVAVersion2() { --#if BUILDFLAG(USE_VAAPI) && VA_MAJOR_VERSION == 1 -- return true; --#else -- return false; --#endif --} -- - constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE; - - void AddV4L2GpuWhitelist( -@@ -270,50 +242,6 @@ - } - } - --void LoadStandardLibraries( -- const service_manager::SandboxSeccompBPF::Options& options) { -- if (IsArchitectureX86_64() || IsArchitectureI386()) { -- // Accelerated video dlopen()'s some shared objects -- // inside the sandbox, so preload them now. -- if (IsAcceleratedVideoEnabled(options)) { -- if (IsLibVAVersion2()) { -- if (IsArchitectureX86_64()) { -- dlopen("/usr/lib64/va/drivers/i965_drv_video.so", dlopen_flag); -- dlopen("/usr/lib64/va/drivers/hybrid_drv_video.so", dlopen_flag); -- } else if (IsArchitectureI386()) { -- dlopen("/usr/lib/va/drivers/i965_drv_video.so", dlopen_flag); -- } -- dlopen("libva.so.2", dlopen_flag); --#if defined(USE_OZONE) -- dlopen("libva-drm.so.2", dlopen_flag); --#endif -- } else { -- // If we are linked against libva 1, we have two cases to handle: -- // - the sysroot includes both libva 1 and 2, in which case the drivers -- // are in /usr/lib{64}/va1/ -- // - the sysroot only includes libva 1, in which case the drivers are -- // are in /usr/lib{64}/va/ -- // This is ugly, but temporary until all builds have switched to libva 2. -- if (IsArchitectureX86_64()) { -- if (!dlopen("/usr/lib64/va1/drivers/i965_drv_video.so", dlopen_flag)) -- dlopen("/usr/lib64/va/drivers/i965_drv_video.so", dlopen_flag); -- if (!dlopen("/usr/lib64/va1/drivers/hybrid_drv_video.so", dlopen_flag)) -- dlopen("/usr/lib64/va/drivers/hybrid_drv_video.so", dlopen_flag); -- } else if (IsArchitectureI386()) { -- if (!dlopen("/usr/lib/va1/drivers/i965_drv_video.so", dlopen_flag)) -- dlopen("/usr/lib/va/drivers/i965_drv_video.so", dlopen_flag); -- } -- dlopen("libva.so.1", dlopen_flag); --#if defined(USE_OZONE) -- dlopen("libva-drm.so.1", dlopen_flag); --#elif defined(USE_X11) -- dlopen("libva-x11.so.1", dlopen_flag); --#endif -- } -- } -- } --} -- - bool LoadLibrariesForGpu( - const service_manager::SandboxSeccompBPF::Options& options) { - if (IsChromeOS()) { -@@ -326,7 +254,6 @@ - if (options.use_amd_specific_policies) - return LoadAmdGpuLibraries(); - } -- LoadStandardLibraries(options); - return true; - } - -diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc -index bc3d735..7421a74 100644 ---- a/media/gpu/vaapi/vaapi_wrapper.cc -+++ b/media/gpu/vaapi/vaapi_wrapper.cc -@@ -48,6 +48,11 @@ - using media_gpu_vaapi::kModuleVa_x11; - #endif - using media_gpu_vaapi::InitializeStubs; -+using media_gpu_vaapi::IsVaInitialized; -+#if defined(USE_X11) -+using media_gpu_vaapi::IsVa_x11Initialized; -+#endif -+using media_gpu_vaapi::IsVa_drmInitialized; - using media_gpu_vaapi::StubPathMap; - - #define LOG_VA_ERROR_AND_REPORT(va_error, err_msg) \ -@@ -166,9 +171,6 @@ - void SetDrmFd(base::PlatformFile fd) { drm_fd_.reset(HANDLE_EINTR(dup(fd))); } - - private: -- // Returns false on init failure. -- static bool PostSandboxInitialization(); -- - // Protected by |va_lock_|. - int refcount_; - -@@ -203,41 +205,17 @@ - VADisplayState::Get()->SetDrmFd(drm_file.GetPlatformFile()); - } - --// static --bool VADisplayState::PostSandboxInitialization() { -- const std::string va_suffix(std::to_string(VA_MAJOR_VERSION + 1)); -- StubPathMap paths; -- -- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix); -- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix); --#if defined(USE_X11) -- // libva-x11 does not exist on libva >= 2 -- if (VA_MAJOR_VERSION == 0) -- paths[kModuleVa_x11].push_back("libva-x11.so.1"); --#endif -- -- const bool success = InitializeStubs(paths); -- if (!success) { -- static const char kErrorMsg[] = "Failed to initialize VAAPI libs"; --#if defined(OS_CHROMEOS) -- // When Chrome runs on Linux with target_os="chromeos", do not log error -- // message without VAAPI libraries. -- LOG_IF(ERROR, base::SysInfo::IsRunningOnChromeOS()) << kErrorMsg; --#else -- DVLOG(1) << kErrorMsg; --#endif -- } -- return success; --} -- - VADisplayState::VADisplayState() - : refcount_(0), va_display_(nullptr), va_initialized_(false) {} - - bool VADisplayState::Initialize() { - va_lock_.AssertAcquired(); - -- static bool result = PostSandboxInitialization(); -- if (!result) -+ if (!IsVaInitialized() || -+#if defined(USE_X11) -+ !IsVa_x11Initialized() || -+#endif -+ !IsVa_drmInitialized()) - return false; - - if (refcount_++ > 0) -@@ -1169,6 +1147,38 @@ - // static - void VaapiWrapper::PreSandboxInitialization() { - VADisplayState::PreSandboxInitialization(); -+ -+ const std::string va_suffix(std::to_string(VA_MAJOR_VERSION + 1)); -+ StubPathMap paths; -+ -+ paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix); -+ paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix); -+#if defined(USE_X11) -+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix); -+#endif -+ -+ // InitializeStubs dlopen() VA-API libraries -+ // libva.so -+ // libva-x11.so (X11) -+ // libva-drm.so (X11 and Ozone). -+ static bool result = InitializeStubs(paths); -+ if (!result) { -+ static const char kErrorMsg[] = "Failed to initialize VAAPI libs"; -+#if defined(OS_CHROMEOS) -+ // When Chrome runs on Linux with target_os="chromeos", do not log error -+ // message without VAAPI libraries. -+ LOG_IF(ERROR, base::SysInfo::IsRunningOnChromeOS()) << kErrorMsg; -+#else -+ DVLOG(1) << kErrorMsg; -+#endif -+ } -+ -+ // VASupportedProfiles::Get creates VADisplayState and in so doing -+ // driver associated libraries are dlopen(), to know: -+ // i965_drv_video.so -+ // hybrid_drv_video.so (platforms that support it) -+ // libcmrt.so (platforms that support it) -+ VASupportedProfiles::Get(); - } - - VaapiWrapper::VaapiWrapper() diff --git a/chromium-vaapi-r16.patch b/chromium-vaapi-r17.patch similarity index 89% rename from chromium-vaapi-r16.patch rename to chromium-vaapi-r17.patch index 283582d..12ac0b8 100644 --- a/chromium-vaapi-r16.patch +++ b/chromium-vaapi-r17.patch @@ -1,4 +1,4 @@ -From 4bf343ab8c4a538205f9c1e96a661e40620c716b Mon Sep 17 00:00:00 2001 +From d9ef948bf4a739f95acbd98ef88b04caa29d8dda Mon Sep 17 00:00:00 2001 From: Daniel Charles Date: Fri, 09 Feb 2018 14:39:27 -0800 Subject: [PATCH] Enable VAVDA, VAVEA and VAJDA on linux with VAAPI only @@ -29,14 +29,14 @@ TEST=subjective testing with VAVDA,VAVEA and VAJDA, autotest for encoder have libva/intel-vaapi-driver installed and not installed in the system repeat on different hardware families -Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel +Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ifbbf5c9e5221a8b5733fc6d4d0cf984a1f103171 Signed-off-by: Daniel Charles --- --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1249,12 +1249,14 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1234,12 +1234,14 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, #if BUILDFLAG(ENABLE_WEBRTC) @@ -51,7 +51,7 @@ Signed-off-by: Daniel Charles {"enable-webrtc-hw-h264-encoding", flag_descriptions::kWebrtcHwH264EncodingName, flag_descriptions::kWebrtcHwH264EncodingDescription, kOsAndroid | kOsCrOS, -@@ -1550,6 +1552,13 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1553,6 +1555,13 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kShowTouchHudDescription, kOsCrOS, SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud)}, #endif // OS_CHROMEOS @@ -65,7 +65,7 @@ Signed-off-by: Daniel Charles { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, -@@ -1557,6 +1566,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1560,6 +1569,7 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsWin | kOsCrOS | kOsAndroid, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, @@ -73,7 +73,7 @@ Signed-off-by: Daniel Charles #if defined(OS_WIN) {"enable-hdr", flag_descriptions::kEnableHDRName, flag_descriptions::kEnableHDRDescription, kOsWin, -@@ -2268,12 +2278,17 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2280,12 +2290,17 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kOpenVR)}, #endif // ENABLE_OPENVR #endif // ENABLE_VR @@ -118,7 +118,7 @@ Signed-off-by: Daniel Charles ::switches::kDisableBlinkFeatures, ::switches::kDisableCastStreamingHWEncoding, ::switches::kDisableDistanceFieldText, -@@ -164,7 +170,7 @@ void DeriveCommandLine(const GURL& start +@@ -163,7 +169,7 @@ void DeriveCommandLine(const GURL& start ::switches::kDisableWebGLImageChromium, ::switches::kEnableWebGLImageChromium, ::switches::kEnableWebVR, @@ -143,7 +143,7 @@ Signed-off-by: Daniel Charles const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode"; const char kAcceleratedVideoDecodeDescription[] = "Hardware-accelerated video decode where available."; -@@ -1597,6 +1604,7 @@ const char kWebrtcEchoCanceller3Name[] = +@@ -1723,6 +1730,7 @@ const char kWebrtcEchoCanceller3Name[] = const char kWebrtcEchoCanceller3Description[] = "Experimental WebRTC echo canceller (AEC3)."; @@ -151,7 +151,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding"; const char kWebrtcHwDecodingDescription[] = "Support in WebRTC for decoding video streams using platform hardware."; -@@ -1604,6 +1612,7 @@ const char kWebrtcHwDecodingDescription[ +@@ -1730,6 +1738,7 @@ const char kWebrtcHwDecodingDescription[ const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding"; const char kWebrtcHwEncodingDescription[] = "Support in WebRTC for encoding video streams using platform hardware."; @@ -159,7 +159,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding"; const char kWebrtcHwH264EncodingDescription[] = -@@ -2434,14 +2443,16 @@ const char kTranslateNewUxDescription[] +@@ -2549,14 +2558,16 @@ const char kTabStripKeyboardFocusDescrip // Chrome OS ------------------------------------------------------------------- @@ -190,7 +190,7 @@ Signed-off-by: Daniel Charles extern const char kAcceleratedVideoDecodeName[]; extern const char kAcceleratedVideoDecodeDescription[]; -@@ -1498,13 +1502,17 @@ extern const char kPermissionPromptPersi +@@ -1561,13 +1565,17 @@ extern const char kPermissionPromptPersi #endif // defined(OS_MACOSX) @@ -213,7 +213,7 @@ Signed-off-by: Daniel Charles --- a/content/browser/gpu/compositor_util.cc +++ b/content/browser/gpu/compositor_util.cc -@@ -98,7 +98,11 @@ const GpuFeatureData GetGpuFeatureData(s +@@ -99,7 +99,11 @@ const GpuFeatureData GetGpuFeatureData(s {"video_decode", manager->GetFeatureStatus( gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE), @@ -227,7 +227,7 @@ Signed-off-by: Daniel Charles true}, --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc -@@ -120,7 +120,7 @@ static const char* const kSwitchNames[] +@@ -132,7 +132,7 @@ static const char* const kSwitchNames[] switches::kDisableGLExtensions, switches::kDisableLogging, switches::kDisableShaderNameHashing, @@ -238,7 +238,7 @@ Signed-off-by: Daniel Charles #if defined(OS_WIN) --- a/content/browser/renderer_host/media/video_capture_browsertest.cc +++ b/content/browser/renderer_host/media/video_capture_browsertest.cc -@@ -164,8 +164,13 @@ class VideoCaptureBrowserTest : public C +@@ -163,8 +163,13 @@ class VideoCaptureBrowserTest : public C base::CommandLine::ForCurrentProcess()->AppendSwitch( switches::kUseFakeJpegDecodeAccelerator); } else { @@ -282,7 +282,7 @@ Signed-off-by: Daniel Charles return; --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2530,7 +2530,11 @@ void RenderProcessHostImpl::PropagateBro +@@ -2524,7 +2524,11 @@ void RenderProcessHostImpl::PropagateBro switches::kDefaultTileHeight, switches::kDisable2dCanvasImageChromium, switches::kDisableAcceleratedJpegDecoding, @@ -294,7 +294,7 @@ Signed-off-by: Daniel Charles switches::kDisableBackgroundTimerThrottling, switches::kDisableBreakpad, switches::kDisableCompositorUkmForTests, -@@ -2663,8 +2667,10 @@ void RenderProcessHostImpl::PropagateBro +@@ -2658,8 +2662,10 @@ void RenderProcessHostImpl::PropagateBro switches::kDisableMojoRenderer, #endif #if BUILDFLAG(ENABLE_WEBRTC) @@ -323,8 +323,8 @@ Signed-off-by: Daniel Charles private: --- a/content/gpu/BUILD.gn +++ b/content/gpu/BUILD.gn -@@ -125,4 +125,8 @@ target(link_target_type, "gpu_sources") - if (is_desktop_linux && (!is_chromecast || is_cast_desktop_build)) { +@@ -130,4 +130,8 @@ target(link_target_type, "gpu_sources") + (!is_chromecast || is_cast_desktop_build)) { configs += [ "//build/config/linux/dri" ] } + @@ -334,7 +334,7 @@ Signed-off-by: Daniel Charles } --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc -@@ -273,7 +273,7 @@ int GpuMain(const MainFunctionParams& pa +@@ -286,7 +286,7 @@ int GpuMain(const MainFunctionParams& pa base::PlatformThread::SetName("CrGpuMain"); @@ -343,7 +343,7 @@ Signed-off-by: Daniel Charles // Set thread priority before sandbox initialization. base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); #endif -@@ -302,7 +302,7 @@ int GpuMain(const MainFunctionParams& pa +@@ -315,7 +315,7 @@ int GpuMain(const MainFunctionParams& pa GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; @@ -362,7 +362,7 @@ Signed-off-by: Daniel Charles #include "content/browser/gpu/gpu_process_host.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" -@@ -55,10 +56,18 @@ const gpu::GpuPreferences GetGpuPreferen +@@ -55,9 +56,17 @@ const gpu::GpuPreferences GetGpuPreferen gpu_preferences.in_process_gpu = command_line->HasSwitch(switches::kInProcessGPU); gpu_preferences.disable_accelerated_video_decode = @@ -376,12 +376,10 @@ Signed-off-by: Daniel Charles + !command_line->HasSwitch(switches::kEnableAcceleratedVideo); +#else command_line->HasSwitch(switches::kDisableAcceleratedVideoEncode); --#if BUILDFLAG(ENABLE_WEBRTC) +#endif -+#if BUILDFLAG(ENABLE_WEBRTC) && (defined(OS_CHROMEOS) || defined(OS_ANDROID)) - gpu_preferences.disable_web_rtc_hw_encoding = - command_line->HasSwitch(switches::kDisableWebRtcHWEncoding); - #endif + #if defined(OS_WIN) + uint32_t enable_accelerated_vpx_decode_val = + gpu::GpuPreferences::VPX_VENDOR_MICROSOFT; --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc @@ -78,12 +78,21 @@ const char kDisable3DAPIs[] @@ -407,7 +405,7 @@ Signed-off-by: Daniel Charles // Disables hardware acceleration of video decode, where available. const char kDisableAcceleratedVideoDecode[] = "disable-accelerated-video-decode"; -@@ -888,11 +897,13 @@ const char kZygoteProcess[] +@@ -859,11 +868,13 @@ const char kZygoteProcess[] // ignores this switch on its stable and beta channels. const char kDisableWebRtcEncryption[] = "disable-webrtc-encryption"; @@ -435,7 +433,7 @@ Signed-off-by: Daniel Charles CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[]; CONTENT_EXPORT extern const char kDisableAcceleratedVideoEncode[]; CONTENT_EXPORT extern const char kDisableAudioSupportForDesktopShare[]; -@@ -107,6 +111,9 @@ CONTENT_EXPORT extern const char kDisabl +@@ -106,6 +110,9 @@ CONTENT_EXPORT extern const char kDisabl CONTENT_EXPORT extern const char kDomAutomationController[]; extern const char kDisable2dCanvasClipAntialiasing[]; CONTENT_EXPORT extern const char kDumpBlinkRuntimeCallStats[]; @@ -445,7 +443,7 @@ Signed-off-by: Daniel Charles CONTENT_EXPORT extern const char kEnableAggressiveDOMStorageFlushing[]; CONTENT_EXPORT extern const char kEnableAutomation[]; CONTENT_EXPORT extern const char kEnablePreferCompositingToLCDText[]; -@@ -244,8 +251,10 @@ CONTENT_EXPORT extern const char kZygote +@@ -240,8 +247,10 @@ CONTENT_EXPORT extern const char kZygote #if BUILDFLAG(ENABLE_WEBRTC) CONTENT_EXPORT extern const char kDisableWebRtcEncryption[]; @@ -458,7 +456,7 @@ Signed-off-by: Daniel Charles CONTENT_EXPORT extern const char kEnableWebRtcStunOrigin[]; --- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc +++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc -@@ -245,12 +245,19 @@ void PeerConnectionDependencyFactory::In +@@ -282,10 +282,18 @@ void PeerConnectionDependencyFactory::In const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled()) { @@ -469,20 +467,17 @@ Signed-off-by: Daniel Charles +#endif decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories)); -- if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding)) { +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + if (cmd_line->HasSwitch(switches::kEnableAcceleratedVideo)) +#else -+ if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding)) + if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding)) +#endif encoder_factory.reset(new RTCVideoEncoderFactory(gpu_factories)); -- } } - #if defined(OS_ANDROID) --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1485,7 +1485,11 @@ media::GpuVideoAcceleratorFactories* Ren +@@ -1581,7 +1581,11 @@ media::GpuVideoAcceleratorFactories* Ren scoped_refptr media_task_runner = GetMediaThreadTaskRunner(); const bool enable_video_accelerator = @@ -516,8 +511,8 @@ Signed-off-by: Daniel Charles "cr_bugs": [145531, 332596, 571899, 629434], --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn -@@ -24,6 +24,14 @@ if (is_mac) { - import("//build/config/mac/mac_sdk.gni") +@@ -482,6 +482,14 @@ if (use_v4l2_codec || use_vaapi || is_ma + } } +if (is_desktop_linux && use_vaapi) { @@ -529,9 +524,9 @@ Signed-off-by: Daniel Charles +} + if (use_vaapi) { - action("libva_generate_stubs") { - extra_header = "vaapi/va_stub_header.fragment" -@@ -353,6 +361,10 @@ component("gpu") { + test("jpeg_encode_accelerator_unittest") { + deps = [ +@@ -542,6 +550,10 @@ if (use_v4l2_codec || use_vaapi) { if (use_ozone) { deps += [ "//ui/ozone" ] } @@ -540,5 +535,5 @@ Signed-off-by: Daniel Charles + public_configs = [ ":libva_config" ] + } } + } - if (is_win) { From 88ee87815b4e757500cd6bb1cf6793e6b591993d Mon Sep 17 00:00:00 2001 From: xsmile <> Date: Wed, 18 Apr 2018 17:42:33 +0200 Subject: [PATCH 3/4] 66.0.3359.117: Update to stable --- 0001-fix-building-without-safebrowsing.patch | 4 +- 0003-disable-autofill-download-manager.patch | 4 +- 0006-modify-default-prefs.patch | 2 +- 0010-disable-gcm-status-check.patch | 4 +- 0016-chromium-sandbox-pie.patch | 2 +- 0018-disable-first-run-behaviour.patch | 2 +- 0019-disable-battery-status-service.patch | 2 +- PKGBUILD | 84 ++++++++--------- ...-for-GPU-process-for-a-list-of-files.patch | 87 ------------------ blink-tools-66.0.3359.117.tar.gz | Bin 0 -> 10805 bytes chromium-clang-r2.patch | 21 ----- chromium-clang-r4.patch | 11 --- chromium-ffmpeg-clang.patch | 21 ----- chromium-ffmpeg-r1.patch | 22 ----- chromium-math.h-r0.patch | 27 ------ chromium-skia-harmony.patch | 16 ++-- chromium-stdint.patch | 16 ---- ...aapi-r17.patch => chromium-vaapi-r18.patch | 14 +-- ...s-rendering-too-large-when-using-OSX.patch | 60 ++++++++++++ 19 files changed, 123 insertions(+), 276 deletions(-) delete mode 100644 allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch create mode 100644 blink-tools-66.0.3359.117.tar.gz delete mode 100644 chromium-clang-r2.patch delete mode 100644 chromium-clang-r4.patch delete mode 100644 chromium-ffmpeg-clang.patch delete mode 100644 chromium-ffmpeg-r1.patch delete mode 100644 chromium-math.h-r0.patch delete mode 100644 chromium-stdint.patch rename chromium-vaapi-r17.patch => chromium-vaapi-r18.patch (97%) create mode 100644 fix-frame-buttons-rendering-too-large-when-using-OSX.patch diff --git a/0001-fix-building-without-safebrowsing.patch b/0001-fix-building-without-safebrowsing.patch index fe8813e..52a3a6b 100644 --- a/0001-fix-building-without-safebrowsing.patch +++ b/0001-fix-building-without-safebrowsing.patch @@ -1432,7 +1432,7 @@ #include "components/safe_browsing/renderer/websocket_sb_handshake_throttle.h" #include "components/spellcheck/spellcheck_build_features.h" #include "components/startup_metric_utils/common/startup_metric.mojom.h" -@@ -1388,9 +1387,7 @@ void ChromeContentRendererClient::InitSp +@@ -1387,9 +1386,7 @@ void ChromeContentRendererClient::InitSp std::unique_ptr ChromeContentRendererClient::CreateWebSocketHandshakeThrottle() { @@ -1443,7 +1443,7 @@ } std::unique_ptr -@@ -1681,13 +1678,6 @@ ChromeContentRendererClient::GetTaskSche +@@ -1680,13 +1677,6 @@ ChromeContentRendererClient::GetTaskSche return task_scheduler_util::GetTaskSchedulerInitParamsForRenderer(); } diff --git a/0003-disable-autofill-download-manager.patch b/0003-disable-autofill-download-manager.patch index cd7cb6e..b7b5750 100644 --- a/0003-disable-autofill-download-manager.patch +++ b/0003-disable-autofill-download-manager.patch @@ -1,6 +1,6 @@ --- a/components/autofill/core/browser/autofill_download_manager.cc +++ b/components/autofill/core/browser/autofill_download_manager.cc -@@ -158,8 +158,7 @@ +@@ -158,8 +158,7 @@ std::string RequestTypeToString(Autofill } GURL GetRequestUrl(AutofillDownloadManager::RequestType request_type) { @@ -10,7 +10,7 @@ } std::ostream& operator<<(std::ostream& out, -@@ -299,38 +298,6 @@ +@@ -299,38 +298,6 @@ bool AutofillDownloadManager::StartUploa bool AutofillDownloadManager::StartRequest( const FormRequestData& request_data) { diff --git a/0006-modify-default-prefs.patch b/0006-modify-default-prefs.patch index 5732de7..fae2884 100644 --- a/0006-modify-default-prefs.patch +++ b/0006-modify-default-prefs.patch @@ -167,7 +167,7 @@ prefs::kCloudPrintXmppPingEnabled, false); --- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc +++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc -@@ -144,10 +144,6 @@ void LocalDiscoveryUI::RegisterProfilePr +@@ -143,10 +143,6 @@ void LocalDiscoveryUI::RegisterProfilePr user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kLocalDiscoveryNotificationsEnabled, diff --git a/0010-disable-gcm-status-check.patch b/0010-disable-gcm-status-check.patch index 8455109..578beee 100644 --- a/0010-disable-gcm-status-check.patch +++ b/0010-disable-gcm-status-check.patch @@ -1,6 +1,6 @@ --- a/components/gcm_driver/gcm_channel_status_request.cc +++ b/components/gcm_driver/gcm_channel_status_request.cc -@@ -23,8 +23,6 @@ +@@ -23,8 +23,6 @@ namespace gcm { namespace { @@ -9,7 +9,7 @@ const int kDefaultPollIntervalSeconds = 60 * 60; // 60 minutes. const int kMinPollIntervalSeconds = 30 * 60; // 30 minutes. -@@ -57,61 +55,8 @@ +@@ -57,61 +55,8 @@ int GCMChannelStatusRequest::min_poll_in } void GCMChannelStatusRequest::Start() { diff --git a/0016-chromium-sandbox-pie.patch b/0016-chromium-sandbox-pie.patch index 8c09b54..334b735 100644 --- a/0016-chromium-sandbox-pie.patch +++ b/0016-chromium-sandbox-pie.patch @@ -1,6 +1,6 @@ --- a/sandbox/linux/BUILD.gn +++ b/sandbox/linux/BUILD.gn -@@ -314,6 +314,12 @@ if (is_linux) { +@@ -318,6 +318,12 @@ if (is_linux) { # These files have a suspicious comparison. # TODO fix this and re-enable this warning. "-Wno-sign-compare", diff --git a/0018-disable-first-run-behaviour.patch b/0018-disable-first-run-behaviour.patch index 3528f8b..d267594 100644 --- a/0018-disable-first-run-behaviour.patch +++ b/0018-disable-first-run-behaviour.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/ui/startup/startup_tab_provider.cc +++ b/chrome/browser/ui/startup/startup_tab_provider.cc -@@ -58,7 +58,7 @@ bool ProfileHasOtherTabbedBrowser(Profil +@@ -60,7 +60,7 @@ bool ProfileHasOtherTabbedBrowser(Profil StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const { // Onboarding content has not been launched on Chrome OS. diff --git a/0019-disable-battery-status-service.patch b/0019-disable-battery-status-service.patch index b276c21..dea5b43 100644 --- a/0019-disable-battery-status-service.patch +++ b/0019-disable-battery-status-service.patch @@ -1,6 +1,6 @@ --- a/services/device/battery/battery_status_service.cc +++ b/services/device/battery/battery_status_service.cc -@@ -41,17 +41,8 @@ +@@ -41,17 +41,8 @@ BatteryStatusService::AddCallback(const if (!battery_fetcher_) battery_fetcher_ = BatteryStatusManager::Create(update_callback_); diff --git a/PKGBUILD b/PKGBUILD index 89a9f68..b1abed3 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,7 +5,7 @@ # Contributor: Daniel J Griffiths pkgname=inox -pkgver=66.0.3359.66 +pkgver=66.0.3359.117 pkgrel=1 _launcher_ver=6 pkgdesc="Chromium Spin-off to enhance privacy by disabling data transmission to Google" @@ -27,22 +27,16 @@ optdepends=('pepper-flash: support for Flash content' install=inox.install source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz - chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT + chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src/+/$pkgver?format=TEXT https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/product_logo_{16,22,24,32,48,64,128,256}.png # Patches from Arch Linux - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/blink-tools-$pkgver.tar.gz https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/fix-frame-buttons-rendering-too-large-when-using-OSX.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-skia-harmony.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-widevine.patch - # Patches from Gentoo - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-clang-r2.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-clang-r4.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-ffmpeg-r1.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-ffmpeg-clang.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-math.h-r0.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-stdint.patch # Misc - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-vaapi-r17.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-vaapi-r18.patch # Inox patchset https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0001-fix-building-without-safebrowsing.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0002-fix-building-without-reporting.patch @@ -66,9 +60,10 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0020-launcher-branding.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0021-disable-rlz.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/9000-disable-metrics.patch) -sha256sums=('93666448c6b96ec83e6a35a64cff40db4eb92a154fe1db4e7dab4761d0e38687' - '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' - '2771c049b66c9aba3b945fe065f2610f164d55506eb5d71751a26aaf8b40d4ee' +noextract=(blink-tools-$pkgver.tar.gz) +sha256sums=('77c5a334644fdc303697b3864c9a6b709cee23ee384f4134308e820af4568ed6' + '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' + 'bf9600489198c5a873ef7b12e8ba42e04c667a59b898592ad1b416f66df13d7e' '71471fa4690894420f9e04a2e9a622af620d92ac2714a35f9a4c4e90fa3968dd' '4a533acefbbc1567b0d74a1c0903e9179b8c59c1beabe748850795815366e509' '7b88830c5e0e9819f514ad68aae885d427541a907e25607e47dee1b0f38975fd' @@ -77,36 +72,34 @@ sha256sums=('93666448c6b96ec83e6a35a64cff40db4eb92a154fe1db4e7dab4761d0e38687' '53a1e8da18069eb4d6ab3af9c923c22a0f020241a4839c3140e3601052ddf6ff' '896993987d4ef9f0ac7db454f288117316c2c80ed0b6764019afd760db222dad' '3df9b3bbdc07fde63d9e400954dcc6ab6e0e5454f0ef6447570eef0549337354' + '922db9d6a69a22003caa72c507e1ccbf0c4ee2c254f00e243c97ca572bf1ec56' 'e3fb73b43bb8c69ff517e66b2cac73d6e759fd240003eb35598df9af442422fe' + 'bd5e0e61df3f89172590801aea7c8ac75162c10c7fe83e262e96a14388d1633a' 'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3' 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808' - '4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3' - 'fe0ab86aa5b0072db730eccda3e1582ebed4af25815bfd49fe0da24cf63ca902' - 'c00d2506f1078b38a8ebec474a7318e76a61db1298afb40088a34210f137210f' - 'acae2de43c123f19523c4fca3af19c671acbe76f76bd40e285fe3b08cddb7044' - '5bc4f5dc5e9c8d71cf273338f65e82efcebc902e645affb35659532dcf9ad1af' - 'ae84e4eed9969057dd9d3ecff040e02480993c17ff05e9674d5e24e398704a60' - 'b7261e4063b0532139b72f20675bb58c743d95022c7368019deb012b2c777f83' - 'ef9000eaaa5c0a28f0e4cb31139c7f2b454192532d8469329f5f6f95c21769e0' + '514f40accb2b4bc439df43f11bb7154a812eeb9fa61777b3d986cfa6bb109ebd' + '6c5f41579c43b192aaa2fd2fa4de06280cb3d4b500621961cb5bfb48d95d471e' + 'aa86ff1fc7b21d9d4523a681eeb46314f00e90558e9069252ab7c4f7b593f5f1' + 'f639f11ced3432cb12a19528e4d9a7f1bbcb2f9fd46f2969d8d0b567e27ec407' 'fb91a7e30e2615e4eb0626b0fdcf97b92d4a727a52023730f408b02fee436c8d' - '72cd12b9064573fc1c7d88d606985ef180efdcec3815b0185c6038ec8216a471' - '034cce5fb219a293284a4c01f7e4d7ad6ab262eb6fb9065dc65a4b18e885da7f' - '7781ecd43e3c28f7d1e9158e043d6f98a190b5ee3c2c5ebe91644ea27e0b42ee' - 'a5dde3ff6cd4adeef7eb099839d8d17a3bfeb89ec6bb66eba3e89d741743c9c0' - 'cf050473adae5b83680346b369997b5ead55dce282515f185e4096c5ed39f11d' - '3190a507dfa00e863a0e622b5738db5cf19947f696ac7a790f427510cc15d1e1' + '7193573d2c4c5e9af35c5364ae6b92d714ebdd8224221cd7326a3afde5abc5a1' + 'f93dd17ffd5407cb2384be5e90b5ef00e02762ab456656072ecb67d9e1b61ad4' + 'a28f1428accff9e967c4d0f970fac05c156b96534bc9eefb60f0175116ed7db2' + 'f657866cbce253c6854cf30c9564ef59198509ed8274832d4d3e0bad303a89ca' + '306b29cdfd2def2353b6c4a582fb6fcc7989a6fe009412d4abf2e2daf84ff9d1' + '3a8979ca0cae33a836d27f825ac2e15028c2656efce2ee70c1f8ce7d094f5c1c' '6fdea7a737959b226165dc3b6dd347de1e09e6e237acc444116df007ba0a7c57' '6427fea42b1cc6cf9aaae883c75c2209360344125827e1d6b15666faaf3c10a9' '60ecb418ff8728f67ac9617216f68dcc1ba0fa4d4e47e2da1fc4e63b5c91bfea' - 'f80106b8127b60a62c006653154a26ebe68dd4aec5c551bae5321fa4e5ccef3f' - '795686bf0dd7bfac0f596155be8fc7ed3f6294a6b764f793cd1614085562ce38' - '5dc10c49cfc3ea65505e07366420eda0fc4878d0b0cebbfbcd8ad7daa88b3ded' + 'c918a2495273f1ae6ab94d3c215b97c00943a5e8cf14c7025c58a955dca71f53' + '44db6f3733332167518e947c72c9661b74c757aeed1b4912f94f3f34aeea067a' + '7e12969dda184e24eccd6e5bf2b8244ba1336c2dc2dbf0494c153d09923723fd' 'e407da0596e044971631c0883a83bd75665535f1b913df32ba08ca8cd5d4b16e' - 'cb2bd17fbbd9184f15eb24d3b23deca92d06cb4b9ec31bd6944504e130d69ff8' - 'c17556772059a64873ddac383f2976e3befb5c07c3019b641c989ffb5683c4cd' + 'a6d29b8c041e0a367ad68e817c703e03bed63bff26c47d7d94ae280af45b9457' + 'e297609b4673e3b35c5843a9c3e49ab1b04bc9a02e9e178d5cee58b6ca8cda01' '80d2974001708c288a54c24e1dc896ef25916552b740765f6066a244c05ffcd5' 'dbe942b1eaba525ca6b81d398462a70360fc2043cbfe5d4105657c3bd721e592' - '8ff834ed3f34fbbc969d2ec0abb3010033d1f3a3aa2db9fc81608e955a7d561c') + 'f53b4d111fc119bd61ca662aab7db530649086ef6af1cd8c779027da088143a9') # Possible replacements are listed in build/linux/unbundle/replace_gn_files.py # Keys are the names in the above script; values are the dependencies in Arch @@ -120,7 +113,7 @@ declare -gA _system_libs=( [libdrm]= [libjpeg]=libjpeg #[libpng]=libpng # https://crbug.com/752403#c10 - [libvpx]=libvpx + #[libvpx]=libvpx [libwebp]=libwebp #[libxml]=libxml2 # https://crbug.com/736026 [libxslt]=libxslt @@ -139,6 +132,9 @@ depends+=(${_system_libs[@]}) prepare() { cd "$srcdir/chromium-$pkgver" + # https://crbug.com/832283 + tar xfC ../blink-tools-$pkgver.tar.gz third_party/blink/tools/ + msg2 'Applying build patches' # https://crbug.com/710701 local _chrome_build_hash=$(base64 -d ../chromium-$pkgver.txt | @@ -159,25 +155,21 @@ prepare() { sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | patch -Np1 + # Work around broken screen sharing in Google Meet + # https://crbug.com/829916#c16 + sed -i 's/"Chromium/"Chrome/' chrome/common/chrome_content_client_constants.cc + # https://crbug.com/822820 patch -Np1 -i ../fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch - # https://crbug.com/817400 - patch -Np1 -i ../allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch + # https://crbug.com/821881 + patch -Np1 -i ../fix-frame-buttons-rendering-too-large-when-using-OSX.patch # https://crbug.com/skia/6663#c10 patch -Np4 -i ../chromium-skia-harmony.patch - # Fixes from Gentoo - patch -Np1 -i ../chromium-clang-r2.patch - patch -Np1 -i ../chromium-clang-r4.patch - patch -Np1 -i ../chromium-ffmpeg-r1.patch - patch -Np1 -i ../chromium-ffmpeg-clang.patch - patch -Np1 -i ../chromium-math.h-r0.patch - patch -Np1 -i ../chromium-stdint.patch - msg2 'Applying VA-API patches' - patch -Np1 -i ../chromium-vaapi-r17.patch + patch -Np1 -i ../chromium-vaapi-r18.patch msg2 'Applying Inox patchset' # Apply patches to fix building diff --git a/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch b/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch deleted file mode 100644 index 746434c..0000000 --- a/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 6b1b6d3a8555075e23cca89335e855d55f35fba9 Mon Sep 17 00:00:00 2001 -From: Zhenyao Mo -Date: Thu, 29 Mar 2018 23:48:19 +0000 -Subject: [PATCH] Allow `stat` in Linux for GPU process for a list of files. - -This is to unblock certain NVidia driver's glReadPixels calls in the sandboxed -GPU process. - -Note that the needed file /dev/nvidiactl is already in the list for read/write. - -BUG=817400 -TEST=manual -R=tsepez@chromium.org - -Change-Id: I9074a8335a9c4df1487f5a288d5e284bbedf67c3 -Reviewed-on: https://chromium-review.googlesource.com/965462 -Reviewed-by: Zhenyao Mo -Reviewed-by: Tom Sepez -Reviewed-by: Robert Sesek -Reviewed-by: Kenneth Russell -Commit-Queue: Zhenyao Mo -Cr-Commit-Position: refs/heads/master@{#547027} ---- - content/gpu/gpu_sandbox_hook_linux.cc | 5 ++++- - .../service_manager/sandbox/linux/bpf_gpu_policy_linux.cc | 15 ++++++++++++++- - 2 files changed, 18 insertions(+), 2 deletions(-) - -diff --git a/content/gpu/gpu_sandbox_hook_linux.cc b/content/gpu/gpu_sandbox_hook_linux.cc -index ddd7b99485fe..cd914e2f9926 100644 ---- a/content/gpu/gpu_sandbox_hook_linux.cc -+++ b/content/gpu/gpu_sandbox_hook_linux.cc -@@ -153,6 +153,7 @@ void AddStandardGpuWhiteList(std::vector* permissions) { - static const char kDriCardBasePath[] = "/dev/dri/card"; - static const char kNvidiaCtlPath[] = "/dev/nvidiactl"; - static const char kNvidiaDeviceBasePath[] = "/dev/nvidia"; -+ static const char kNvidiaDeviceModeSetPath[] = "/dev/nvidia-modeset"; - static const char kNvidiaParamsPath[] = "/proc/driver/nvidia/params"; - static const char kDevShm[] = "/dev/shm/"; - -@@ -172,6 +173,8 @@ void AddStandardGpuWhiteList(std::vector* permissions) { - permissions->push_back(BrokerFilePermission::ReadWrite( - base::StringPrintf("%s%d", kNvidiaDeviceBasePath, i))); - } -+ permissions->push_back( -+ BrokerFilePermission::ReadWrite(kNvidiaDeviceModeSetPath)); - permissions->push_back(BrokerFilePermission::ReadOnly(kNvidiaParamsPath)); - } - -@@ -262,9 +265,9 @@ sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU( - sandbox::syscall_broker::BrokerCommandSet command_set; - command_set.set(sandbox::syscall_broker::COMMAND_ACCESS); - command_set.set(sandbox::syscall_broker::COMMAND_OPEN); -+ command_set.set(sandbox::syscall_broker::COMMAND_STAT); - if (IsChromeOS() && options.use_amd_specific_policies) { - command_set.set(sandbox::syscall_broker::COMMAND_READLINK); -- command_set.set(sandbox::syscall_broker::COMMAND_STAT); - } - return command_set; - } -diff --git a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -index bc16952c0898..d683aacc76f4 100644 ---- a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -+++ b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -@@ -61,7 +61,20 @@ ResultExpr GpuProcessPolicy::EvaluateSyscall(int sysno) const { - case __NR_open: - #endif // !defined(__aarch64__) - case __NR_faccessat: -- case __NR_openat: { -+ case __NR_openat: -+#if defined(__NR_stat) -+ case __NR_stat: -+#endif -+#if defined(__NR_stat64) -+ case __NR_stat64: -+#endif -+#if defined(__NR_fstatat) -+ case __NR_fstatat: -+#endif -+#if defined(__NR_newfstatat) -+ case __NR_newfstatat: -+#endif -+ { - auto* broker_process = SandboxLinux::GetInstance()->broker_process(); - DCHECK(broker_process); - return Trap(BrokerProcess::SIGSYS_Handler, broker_process); --- -2.16.2 diff --git a/blink-tools-66.0.3359.117.tar.gz b/blink-tools-66.0.3359.117.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..06aabb4d2d5861e7999b7b481555dd00a5084f5c GIT binary patch literal 10805 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≀;Pm&2iD8ckx*bZ$n+S7e`TiO@VC~v6WJq1Ee1m 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 literal 0 HcmV?d00001 diff --git a/chromium-clang-r2.patch b/chromium-clang-r2.patch deleted file mode 100644 index 9552397..0000000 --- a/chromium-clang-r2.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -433,18 +433,6 @@ config("compiler") { - cflags += [ "-fcolor-diagnostics" ] - } - -- # TODO(hans): Remove this once Clang generates better optimized debug info by -- # default. https://crbug.com/765793 -- if (is_clang && !is_nacl && current_toolchain == host_toolchain && -- target_os != "chromeos") { -- cflags += [ -- "-Xclang", -- "-mllvm", -- "-Xclang", -- "-instcombine-lower-dbg-declare=0", -- ] -- } -- - # Print absolute paths in diagnostics. There is no precedent for doing this - # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and - # Windows developers rely on it (crbug.com/636109) so only do this on Windows. diff --git a/chromium-clang-r4.patch b/chromium-clang-r4.patch deleted file mode 100644 index 8d5122f..0000000 --- a/chromium-clang-r4.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/device/fido/u2f_ble_transaction.cc -+++ b/device/fido/u2f_ble_transaction.cc -@@ -131,7 +131,7 @@ - - void U2fBleTransaction::OnError() { - request_frame_.reset(); -- request_cont_fragments_ = {}; -+ request_cont_fragments_ = base::queue(); - response_frame_assembler_.reset(); - std::move(callback_).Run(base::nullopt); - } diff --git a/chromium-ffmpeg-clang.patch b/chromium-ffmpeg-clang.patch deleted file mode 100644 index 90571bc..0000000 --- a/chromium-ffmpeg-clang.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py -+++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py -@@ -640,18 +640,8 @@ def ConfigureAndBuild(target_arch, targe - if 'win' not in target_os: - configure_flags['Common'].extend([ - '--enable-pic', -- '--cc=clang', -- '--cxx=clang++', -- '--ld=clang', - ]) - -- # Clang Linux will use the first 'ld' it finds on the path, which will -- # typically be the system one, so explicitly configure use of Clang's -- # ld.lld, to ensure that things like cross-compilation and LTO work. -- # This does not work for arm64, ia32 and is always used on mac. -- if target_arch not in ['arm64', 'ia32', 'mipsel'] and target_os != 'mac': -- configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld') -- - # Should be run on Mac. - if target_os == 'mac': - if host_os != 'mac': diff --git a/chromium-ffmpeg-r1.patch b/chromium-ffmpeg-r1.patch deleted file mode 100644 index 53d61e8..0000000 --- a/chromium-ffmpeg-r1.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/build/linux/unbundle/ffmpeg.gn -+++ b/build/linux/unbundle/ffmpeg.gn -@@ -14,8 +14,8 @@ pkg_config("system_ffmpeg") { - ] - } - --buildflag_header("ffmpeg_buildflags") { -- header = "ffmpeg_buildflags.h" -+buildflag_header("ffmpeg_features") { -+ header = "ffmpeg_features.h" - flags = [ "USE_SYSTEM_FFMPEG=true" ] - } - -@@ -30,7 +30,7 @@ shim_headers("ffmpeg_shim") { - - source_set("ffmpeg") { - deps = [ -- ":ffmpeg_buildflags", -+ ":ffmpeg_features", - ":ffmpeg_shim", - ] - public_configs = [ ":system_ffmpeg" ] diff --git a/chromium-math.h-r0.patch b/chromium-math.h-r0.patch deleted file mode 100644 index 83d8c5e..0000000 --- a/chromium-math.h-r0.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001 -From: Tom Anderson -Date: Sat, 27 Jan 2018 20:03:37 +0000 -Subject: [PATCH] Fix build with glibc 2.27 - -BUG=806340 -TBR=hamelphi@chromium.org - -Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e -Reviewed-on: https://chromium-review.googlesource.com/890059 -Reviewed-by: Thomas Anderson -Reviewed-by: Philippe Hamel -Commit-Queue: Thomas Anderson -Cr-Commit-Position: refs/heads/master@{#532249} ---- - ---- a/components/assist_ranker/ranker_example_util.cc -+++ b/components/assist_ranker/ranker_example_util.cc -@@ -4,6 +4,8 @@ - - #include - -+#include -+ - #include "components/assist_ranker/ranker_example_util.h" - #include "base/bit_cast.h" - #include "base/format_macros.h" diff --git a/chromium-skia-harmony.patch b/chromium-skia-harmony.patch index 83ab622..6343f7f 100644 --- a/chromium-skia-harmony.patch +++ b/chromium-skia-harmony.patch @@ -1,6 +1,6 @@ ---- a/third_party/skia/src/ports/SkFontHost_FreeType.cpp -+++ b/third_party/skia/src/ports/SkFontHost_FreeType.cpp -@@ -99,8 +99,6 @@ public: +--- qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2017-10-10 17:42:06.956950985 +0200 ++++ qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-10-10 17:46:05.824187787 +0200 +@@ -99,8 +99,6 @@ FreeTypeLibrary() : fGetVarDesignCoordinates(nullptr) , fLibrary(nullptr) @@ -9,7 +9,7 @@ { if (FT_New_Library(&gFTMemory, &fLibrary)) { return; -@@ -147,12 +145,7 @@ public: +@@ -147,12 +145,7 @@ } #endif @@ -23,7 +23,7 @@ } ~FreeTypeLibrary() { if (fLibrary) { -@@ -161,8 +154,6 @@ public: +@@ -161,8 +153,6 @@ } FT_Library library() { return fLibrary; } @@ -32,7 +32,7 @@ // FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1. // Prior to this there was no way to get the coordinates out of the FT_Face. -@@ -173,8 +164,6 @@ public: +@@ -173,8 +163,6 @@ private: FT_Library fLibrary; @@ -41,7 +41,7 @@ // FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0. // The following platforms provide FreeType of at least 2.4.0. -@@ -659,17 +648,6 @@ void SkTypeface_FreeType::onFilterRec(Sk +@@ -704,17 +692,6 @@ rec->fTextSize = SkIntToScalar(1 << 14); } @@ -59,7 +59,7 @@ SkPaint::Hinting h = rec->getHinting(); if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) { // collapse full->normal hinting if we're not doing LCD -@@ -1062,11 +1040,11 @@ bool SkScalerContext_FreeType::getCBoxFo +@@ -1115,11 +1092,11 @@ void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) { if (isLCD(fRec)) { if (fLCDIsVert) { diff --git a/chromium-stdint.patch b/chromium-stdint.patch deleted file mode 100644 index 493cc1e..0000000 --- a/chromium-stdint.patch +++ /dev/null @@ -1,16 +0,0 @@ -From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001 -From: Tomas Popela -Date: Wed, 31 Jan 2018 18:57:07 +0000 -Subject: [PATCH] Add missing stdint include - ---- a/chrome/browser/vr/sample_queue.cc -+++ b/chrome/browser/vr/sample_queue.cc -@@ -4,6 +4,8 @@ - - #include - -+#include -+ - #include "chrome/browser/vr/sample_queue.h" - - namespace vr { diff --git a/chromium-vaapi-r17.patch b/chromium-vaapi-r18.patch similarity index 97% rename from chromium-vaapi-r17.patch rename to chromium-vaapi-r18.patch index 12ac0b8..6ae81e1 100644 --- a/chromium-vaapi-r17.patch +++ b/chromium-vaapi-r18.patch @@ -1,4 +1,4 @@ -From d9ef948bf4a739f95acbd98ef88b04caa29d8dda Mon Sep 17 00:00:00 2001 +From e95d904578c265a84f117d7d5eff598423f9283d Mon Sep 17 00:00:00 2001 From: Daniel Charles Date: Fri, 09 Feb 2018 14:39:27 -0800 Subject: [PATCH] Enable VAVDA, VAVEA and VAJDA on linux with VAAPI only @@ -29,7 +29,7 @@ TEST=subjective testing with VAVDA,VAVEA and VAJDA, autotest for encoder have libva/intel-vaapi-driver installed and not installed in the system repeat on different hardware families -Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel +Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: Ifbbf5c9e5221a8b5733fc6d4d0cf984a1f103171 Signed-off-by: Daniel Charles --- @@ -73,7 +73,7 @@ Signed-off-by: Daniel Charles #if defined(OS_WIN) {"enable-hdr", flag_descriptions::kEnableHDRName, flag_descriptions::kEnableHDRDescription, kOsWin, -@@ -2280,12 +2290,17 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2283,12 +2293,17 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kOpenVR)}, #endif // ENABLE_OPENVR #endif // ENABLE_VR @@ -143,7 +143,7 @@ Signed-off-by: Daniel Charles const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode"; const char kAcceleratedVideoDecodeDescription[] = "Hardware-accelerated video decode where available."; -@@ -1723,6 +1730,7 @@ const char kWebrtcEchoCanceller3Name[] = +@@ -1730,6 +1737,7 @@ const char kWebrtcEchoCanceller3Name[] = const char kWebrtcEchoCanceller3Description[] = "Experimental WebRTC echo canceller (AEC3)."; @@ -151,7 +151,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding"; const char kWebrtcHwDecodingDescription[] = "Support in WebRTC for decoding video streams using platform hardware."; -@@ -1730,6 +1738,7 @@ const char kWebrtcHwDecodingDescription[ +@@ -1737,6 +1745,7 @@ const char kWebrtcHwDecodingDescription[ const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding"; const char kWebrtcHwEncodingDescription[] = "Support in WebRTC for encoding video streams using platform hardware."; @@ -159,7 +159,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding"; const char kWebrtcHwH264EncodingDescription[] = -@@ -2549,14 +2558,16 @@ const char kTabStripKeyboardFocusDescrip +@@ -2561,14 +2570,16 @@ const char kTabStripKeyboardFocusDescrip // Chrome OS ------------------------------------------------------------------- @@ -190,7 +190,7 @@ Signed-off-by: Daniel Charles extern const char kAcceleratedVideoDecodeName[]; extern const char kAcceleratedVideoDecodeDescription[]; -@@ -1561,13 +1565,17 @@ extern const char kPermissionPromptPersi +@@ -1569,13 +1573,17 @@ extern const char kPermissionPromptPersi #endif // defined(OS_MACOSX) diff --git a/fix-frame-buttons-rendering-too-large-when-using-OSX.patch b/fix-frame-buttons-rendering-too-large-when-using-OSX.patch new file mode 100644 index 0000000..c4d0283 --- /dev/null +++ b/fix-frame-buttons-rendering-too-large-when-using-OSX.patch @@ -0,0 +1,60 @@ +From 7ef426c221d11b53b6de507b398e35e8d7b3cc94 Mon Sep 17 00:00:00 2001 +From: Tom Anderson +Date: Wed, 4 Apr 2018 01:23:26 +0000 +Subject: [PATCH] Fix frame buttons rendering too large when using + OSX-Arc-White GTK theme + +The check for GTK 3.20 was incorrect as the issue it was trying to fix +was still occurring on GTK 3.20+ systems. This CL adds the correct, +but more complex, check. + +Verified on these configurations: +{GTK 3.18, GTK 3.22} X +{Breeze, Adwaita, OSX-Arc-White, Greybird} X +{scale=1, scale=2} X +{fullscreen, restored} + +BUG=821881 +R=thestig + +Change-Id: I05afa35c1452a46a1abf4c39191a13657bfd8e2c +Reviewed-on: https://chromium-review.googlesource.com/990717 +Reviewed-by: Lei Zhang +Commit-Queue: Thomas Anderson +Cr-Commit-Position: refs/heads/master@{#547921} +--- + chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc b/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc +index 31a8087bca11..6a09faec5dd2 100644 +--- a/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc ++++ b/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc +@@ -213,7 +213,23 @@ class NavButtonImageSource : public gfx::ImageSkiaSource { + // is not scaled for the (unexpected) smaller button size, and the button's + // edges appear cut off. To fix this, manually set the background to scale + // to the button size when it would have clipped. +- if (GtkVersionCheck(3, 20)) { ++ // ++ // GTK's "contain" is unlike CSS's "contain". In CSS, the image would only ++ // be downsized when it would have clipped. In GTK, the image is always ++ // scaled to fit the drawing region (preserving aspect ratio). Only add ++ // "contain" if clipping would occur. ++ cairo_pattern_t* cr_pattern = nullptr; ++ cairo_surface_t* cr_surface = nullptr; ++ gtk_style_context_get(button_context, button_state, ++ GTK_STYLE_PROPERTY_BACKGROUND_IMAGE, &cr_pattern, ++ nullptr); ++ if (cr_pattern && ++ cairo_pattern_get_surface(cr_pattern, &cr_surface) == ++ CAIRO_STATUS_SUCCESS && ++ cr_surface && ++ cairo_surface_get_type(cr_surface) == CAIRO_SURFACE_TYPE_IMAGE && ++ (cairo_image_surface_get_width(cr_surface) > button_size_.width() || ++ cairo_image_surface_get_height(cr_surface) > button_size_.height())) { + ApplyCssToContext(button_context, + ".titlebutton { background-size: contain; }"); + } +-- +2.16.2 + From 1f62c04a543ebfc4f8cf1fcea6ef28156f7031ba Mon Sep 17 00:00:00 2001 From: gcarq Date: Wed, 2 May 2018 21:29:43 +0200 Subject: [PATCH 4/4] Apply upstream changes and bump version to 66.0.3359.139 --- PKGBUILD | 12 +++--------- blink-tools-66.0.3359.117.tar.gz | Bin 10805 -> 0 bytes 2 files changed, 3 insertions(+), 9 deletions(-) delete mode 100644 blink-tools-66.0.3359.117.tar.gz diff --git a/PKGBUILD b/PKGBUILD index b1abed3..33f8418 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,7 +5,7 @@ # Contributor: Daniel J Griffiths pkgname=inox -pkgver=66.0.3359.117 +pkgver=66.0.3359.139 pkgrel=1 _launcher_ver=6 pkgdesc="Chromium Spin-off to enhance privacy by disabling data transmission to Google" @@ -30,7 +30,6 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src/+/$pkgver?format=TEXT https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/product_logo_{16,22,24,32,48,64,128,256}.png # Patches from Arch Linux - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/blink-tools-$pkgver.tar.gz https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/fix-frame-buttons-rendering-too-large-when-using-OSX.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-skia-harmony.patch @@ -60,10 +59,9 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0020-launcher-branding.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0021-disable-rlz.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/9000-disable-metrics.patch) -noextract=(blink-tools-$pkgver.tar.gz) -sha256sums=('77c5a334644fdc303697b3864c9a6b709cee23ee384f4134308e820af4568ed6' +sha256sums=('be75a5b5f8c5789d359238f374a43bf52ded49425f13ed68b8021c24e2e264b2' '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' - 'bf9600489198c5a873ef7b12e8ba42e04c667a59b898592ad1b416f66df13d7e' + '34eb82c625b7050021a8d3334ceaa7fa3d042dd816c228c14abb52b29796f7b9' '71471fa4690894420f9e04a2e9a622af620d92ac2714a35f9a4c4e90fa3968dd' '4a533acefbbc1567b0d74a1c0903e9179b8c59c1beabe748850795815366e509' '7b88830c5e0e9819f514ad68aae885d427541a907e25607e47dee1b0f38975fd' @@ -72,7 +70,6 @@ sha256sums=('77c5a334644fdc303697b3864c9a6b709cee23ee384f4134308e820af4568ed6' '53a1e8da18069eb4d6ab3af9c923c22a0f020241a4839c3140e3601052ddf6ff' '896993987d4ef9f0ac7db454f288117316c2c80ed0b6764019afd760db222dad' '3df9b3bbdc07fde63d9e400954dcc6ab6e0e5454f0ef6447570eef0549337354' - '922db9d6a69a22003caa72c507e1ccbf0c4ee2c254f00e243c97ca572bf1ec56' 'e3fb73b43bb8c69ff517e66b2cac73d6e759fd240003eb35598df9af442422fe' 'bd5e0e61df3f89172590801aea7c8ac75162c10c7fe83e262e96a14388d1633a' 'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3' @@ -132,9 +129,6 @@ depends+=(${_system_libs[@]}) prepare() { cd "$srcdir/chromium-$pkgver" - # https://crbug.com/832283 - tar xfC ../blink-tools-$pkgver.tar.gz third_party/blink/tools/ - msg2 'Applying build patches' # https://crbug.com/710701 local _chrome_build_hash=$(base64 -d ../chromium-$pkgver.txt | diff --git a/blink-tools-66.0.3359.117.tar.gz b/blink-tools-66.0.3359.117.tar.gz deleted file mode 100644 index 06aabb4d2d5861e7999b7b481555dd00a5084f5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10805 zcmV-5D$3O#iwFP!00000|LuMKciT9w=>D9)LYq#H?5QKC>F3Lv%)B%oo!o7j+}Qn? zo95{#5^ZZMTV6>{n%V6CegTk_NQt&(C+W`aTBoP6Y!U!T5ClLFJo)tg;H>kf2Yoi5 zZf?GO{@mK+PxRU%cFWxw!@9o^HN)vGpfw^I^&2&m_&fcxxc^B+Fz^Z)7A%jbWxUOXgG^7#*+|8o3YHynkT>pJ6`d&eA){QoY`O8)<6Kc)FU@`lW%fpYzL1S6QSj^iZTU`Y}ut#Jas0dOy4LpI7<35&ce zykZ-?)Y=;V3v{oobxsfVj&|R<-IKon25ZMUU$fwO1g!>=qcF{^bP!J>pqfF0fcuI5 zh>iN$z@f7CUMB;LeY?e952M)2o^5HbFQ3cTH(tt$x1+-Z=9heX2V{<(%D2;K(mxu> zx6XgR3$wiB2Wa8bm+D)A@Dsay`!0Xm?d%;L$(OzE%{Yg#{|;K06QaU9Qo$Xcdf7m} zoTzoWow1kG_d)&TL-$ap?zKjoeEF<`KIrb{P5-rf{7xYzuibgp-OE3pUTrD(@-n-p zMRPlyys;<8Iik;9`SDBv_wlX#xV4|d`YbJN!E?OvQhXu zOB(UzUzwjZw+a6G`uaZ0;2q}AnE9a>!JJ50%BP2yFl!WN7W2|Dx`$HaG*JBR4-sXOX`x1ltsOkg-eTQ zH9q*Ildz!&g@CLb`n{-}iTN;ND6h4tF`ube!b*BAMB*Mktn4jVOy0_$gMvjB(B z(98S*3tXxUb>BmKv;w_2;gG4{G!ddh!YAwzjSem=S&GBdpt{X!Q4@0dYb<%0Fz>7O z3!(z<&_GnN(9Zxl0h*YX_=ARlm&NcHTO(1_YXA*nxe$v05S8Tp(%5WTf8Hq%#4M2K z+j{j21CEr{gU2EDlXx-)NLm%nK#n&avr*9Ch>>+P5X}p{lHf@yT`jy_keaY;l8gkB zTt2*qdL3LF_oT*EkrCpTlyIb050+<;6GIm5dAO9u)|Hop@dTzK%;UtOl{R%`?S-af zK81=moQ9k|%+s?1NdB4tn3D9<*-Y&a{JFrV;d0ZF_Z2i!Xlz*?K=V5IBZ*BEMqH4= zjQ2pHz-~c}fe#T^K*m7U+c@sS$Gs;{Eb4i6INwgfKxd>umW|WxcDqltoIcFy$)yv< zZ35WG@@;=SrVq{_8%B>l3cN0kZMvoc+l|tgWb_CnGg3S7{I5V0Ho!5V1-W`1ehtSg z2t6lG`fYq`ck(V#`=Z>lwre|ojl)snoD1kEzJ@_)>LN`U_Y1w>Com5ZmpE-&?|;A| z8&pIa1J2tx2))V3$0e#X2wI<)#^YWF;ZWeMH3+9(>U%Vu78rxQyknf1gP@JU`R0W~ z{R+eIgb%{`)9s78Lo)RIB%U@H$M~Z*3{-p```=4<6K>Jh3vi_Diki*$BHrO?x%C44 z-!;i>7lOmymQYn`(roGF%M7p7s?3FQ-C|^vTFP)K<^S=A@oLnt|J{tG*mn@5=g$|WuL1b^d-|vWz{`_7W?UD!=L9qn< zx}XnFPL`n_t1U1tTXz_eEnCwGkmIu?^uOLL&hej*-~9@T&KdjL1i&mq(`R&DSvEq! zzYvTSxy*nCuefH6dCTuB!&`)jI00;jNEd0RX)#bBJ=QN4IAjxiE zc$e!JPKE@da7t}%-~GIMcC`C834=WrMavL@E_c8SQ1CB8qOn0}wTEPXx4YY6Wa=-~ z4_KdgRlul=nD$!u9?LQ<=Q}lWm!|f(^UbHF#+z4NWND&JqkCAN#O9MG2aeAsCCef@L*~N@&zHNI{;_hz5VX-VTV92Ll*6Mg8&8~ zoGS^?LUzJlJRBzsa0SRtlZ4^Ee0uiw%`)`lc0mDEGAckO5}$FB2}8}%LMg~# zSt7S)Qc0j|Qg`sVyKHw+^g_`Wb#?c{gEtY3^xgIM!vpeuAh0E*833VplDpG!Eal1K z6j0pC-6;^^FUwHy;q2&)^;p72{!*evPyk@Kc#)v$G6covAnzV!Eb+2+FZg~R4SP+o9Q|{yD(Foy#J;{}mWw3A3G?Q>haVJ=HCC|VE z<^k$IZZ73}LdioQluqC@Nmo)GDulS?kf8c9i=dFWs2t=30jRqDkWDUWM~m%6A;1AH zqG-Zp`U5}_2NF2?L?9LBB+#{&Y6|n@yKMN)QZ$KBQ4mrEoSI!jA(;nPUNl*DS@@hU z%sG_0jXz31laC?xC(EwQN2G9n&fN?WRBac|C>(k?xtuUq&VMBVAbJ9VsHX;Y)!e_E z8tqi<8t$0F#_Db-6nmWIXb8*3SPqxvFm%f1#RJWwFNImtnE;ILV2&3{Bhe6g0TZnZ zt2Pz&Jli!WP~qquH9bma9&u!QyzzdYZ3%0{X)z|CG#tEn`_6r{`#&zh&o`d?>I#fN+^p~%JH6_=DdET&aDI4Bm9SZ1Iau25?42E*cHM(_2ge8RyGr?g zH2*MhIp6E?!N3h8<_7F4!-NlRFF}vRD7eQHfEfQX97wMG}d+EjZ;fuczLO+^!_lC!2p3&pAYl-{IkYw({l z22DvumdE0iA|Xls$Zvu$!7!nQ>tZ`y7bUvm*!llFI}2%=)U)_Wl25K8-U7SXlmwL9 z0yJVII0YlQ*3OP)yDlE2a9x`(2S_aY7G{k~FJQ4o^FL2Y{`)>dn2#<6fx3LAK0pGH z+4BF@*7Fz7%K1NDZN6N||L^hqOUr+h#(4S#nb>-ROf1n+xMek|6&6;%CB_F>9mevA z_aOFDM})nD0K|7PD%(N(Y4prHy?XlTo9lMQXJ3Pp!PS5L{@M=@-iH16-DlT_f4O?~ z`g1t>wAsCGvmnfVnWW>Lbl~A`(4ztK(2=z>aN@147uU(R@z(RL!5Rg=L-PWbd0~|5 z%ZQisfzp)8_bBf7@xWVUl}VVo-ca-D+y$*y;umal=tUS&`$--jyi9S`LDd`$`NI&m zhp_+c4Eh-tQZeT4B_1m9<0N5z7QtdTZAFt1wMC7VxwGfc^Gd2XZfcX<_jI4YhzgVoAu-Gtw zduB!C5dKltJcMsL^v&9u3)2D2RWT_XXvjPGh}LRlS+fhb3_`$|8~v2s`;+$v0Be(8 z-h4QEw-0Ym`P;jr_kVHacU$xw&x;4I&**jk;1pk;)64P6f1Mn|+Y5T@{&sqByn71o zFU!!})8F9hSM>F}-QP|=blvVjr`vHq9d&xdF z)suYC&;br+%ffjp4k*eAn2w`RRH@d$lYjEFlQ7_EpXF0GWn-9UZN>HnRkFYUsw8%V ztslb_Cv#-CJ6L3DecrEgAc&-d1{e;AB7W%Bc82j^9;6IP4!!X_SYo8- zK^x!LO$wW_4OthtQs2Iugi&DAQ7AbWvvKQOHJb#Wq0b$b{ZRlU=Ax){xVV?LtayyX!Uqr}v75wkRz7a*_VBE6 zFD-p5Dx%QhpYq>P<~sqqob(≀;Pm&2iD8ckx*bZ$n+S7e`TiO@VC~v6WJq1Ee1m zr0{n}N~h~5%*&W7c?7KFaq5(?sXvyJ2b4-A%v>N0BDc>*xSh@d7Z2~as4KE0Eth`; zG@+`1#YUnKf(6BTk^<47-UeZsL9-@dI z#8f3swIQb>KPO~>{waihA*J@Q=oXMWnCqYb+iaHkz%+f-3VHE>Q>Ahbw++PDH;RtX z;#4JzJPJpCGzoaG<=qERVHo2igjaF}3clpZ+7ktiL6HBQi@6q8M_c0w^p^jR@}%Il zk2@Iw%2aF;0a}-RgISn1uwAWO&T%WKB%@k03>)F#YnBDv!(!zv{@z%52R{&2)C3hI zNC&qWt7hh+kA2C*Q^)`nk~B`}%^#0lFjHWz0gqN&CiomnN%lqIs&K7n-4y2E<8woB zHN|HmDOX`I@uIQ}FE4r^kUXC63jH*bajCG?#jm!l#!tB@%gtC^WUzBB?A)J0VhAGv zl@#X4Xjcx789^!2VLI({Vpb_98>LNpf!mi_LF!%)!i-_R zJK4ALX6zrVO=XDM#FWccwc)st4vfc*w97baL+isd#(9ow92j`feYV>`z*HV3`-ZH$ z3jQB(zM`IqBF4bx2DYAFU>*@595=ZZ+4G{5ndaWq8d-t|^cEv6 zf&bF9U7W82Iqdv3jYlsk#Mb4O8rb6DcmkRUIUo-!nqrf<@unP(Y|hz zTRUlU9dQG{+5mwaW;Yudt`84{8cgspEw9BV7ZXIpejK@iF|p|ngdR{`vNp!Ap5mv6 z?Pe*ajzCXHVD;><4Bt~{V3>F1LT{x}=umWDD1LTR@q1ygLV?BSSedre0X=92S!WaA zjUhXXJWjttQNn+6d*Zi+h(YBHG^e2$nN#ulK%>LgojFkxJzrcOTz4CFeF z>`15ZZ$O_Q^k~j?7%#Xrx%GwUOmBvL%P!;a|D=Rt?QA}HLZ9j@9LHiODu#Eyx z)5cMJ>l8?LBm?AaXmaE-u{rX zJq~Eec5yHYLHE$49%yTm1jcYQ8P;yw(xSV_oQmEJ;W^9(w4I=v_`>g3vHdGsTbRwZ zaHv=+SOlUth%3G!ZQW0SW1^Cmat47d;U;#kLDsMxZIi>(&C z9!aj;yD1&CWsw$!wymnxPpV^a5ho!Z+NO-`uQv;(JPwpQi#hX9!k-Ppes} z2)%$~(>S;N2$`FAhkao^G3|q#Z|6uZs<6x(CnhjClh)OzgDU#Tdy%vN;%(< z?_|u`SURpoiwSJ9&>|a0v?=oNyGDrSkGyB3imz!bsDV3gq>10MFeZv8e^uY5IH$rh zob={cg|>}TF!A&775mE7#>TV;G7>gyab2rpnZv8>rSS%OMSvX%tXU$*nqU z-%L^UIK}M>Q3aVDp{A&--I(y>gJLBdP4qZB`Mgv+zg22=wX2klK7Smv9|sr6m&D7UOCTGE zFq@uMxY^M2<_!ErZ>dsa%2u65{H*kMI%qSnQqya-{dmE4&k%P!oW>j+VbmYB+G2YJ zCp-w=0HiZBSQDUde;Lu@=Yjq(x)(IzN9w406Ya^Qx)w>cb!c} z7O>)m-2L3(xpejABaaPjG>LD8Wd#Zok20^b|EdphDO8n?J66f4TG@uj-q^r+sto_1 zL{RBsekG%@o~gK3=jy^b*uCmsTcG8T{=U8@&SLHT{;n@=(7~jf(@#wd7u}rNx9?-wuLLhG_o|qj@^u&oVJ}ov@4xqi zQUWVKt)PNn9Avz@#NN06k=G7b#Im}TcSL1fE{M1&MRCFEUi&EOG-j%9yi%^ zI8HF5au?R$CSE#Vf!dAio6p8tDEHLSFr6~W`y7{cJi_hRT6{zIWdEd*eFeeT+_pM{ z_!_2)pwjX#(N@s9-BAJ&r*RWE4v?obgW!yKp&Ai^iUyClMAcYjCo7$RC`)b>o8iFo z2O?$x&NRYYkhy+u`E2Ivata@ z*4u!Jcyb}-`6`iKXcGN|mN!O!jG>bX?H@5i;TWd8ikc?B8r7leR`AVOw;=Kt-1Kk- zkL)ORF!0Ou1{Vvs7Hw>R&e>-hSRCJnUJ7*Mr(X|tF;km^oilEzu_Eu|OdJBrX-uWw zSA?&KmBiw*n_@S;=-RtcLmMe7c0=A=6|^jN#h|lB7Eh|91~^jZyAdw2T6?fdc|(wn z4PH)s5pQtuiSJ5(V52C!9@bI2Ebd(5k31+vcW*_7px~sGd{-G8B6U#?KeH>kB8o>U zNYZi3pp2F2kjHoE8&S8c)d|4S6weIJ^J_0bOR`~q7|GklU}h6f!c-kkvTbYqak`FH zQRVud3Q?u0Trqe|^O)Nbm}^fP!YJJk=GdIoeU=A&iK-%sZkejW6M9kYC&qn@yqPMW zDJ!!%>QaPcn{2;Q0Q2Afq0FIt7uYH`&gFJ_`^Q4ip%O!alh4-xMl$rN9xg5lKqVp> zebmxd@`+hNj84RBZGm=g)>xVqWsP?l0P#Bj~5+{({Tct`eF4XdTKMXK-KEk7G zvi8`^a1R;7#O=l}KmFOz#^#sHhFvHiff|{O!%>Wp2#Q`9W}&EYgGKj!lvdQ1D9TUc zDHbf}1^#2RT!-u+bB(HT`^Y+>XuEC_deI?w_opI>mqR{ssch3GK5dwx{@jM;d;){n zE+E3_uJ(l|3m^BnQc*B!@YtO)haylQMnzX7j_FRE=VJWb5*VYnrKC+JX z-&vTk2g56h@uTCUJk<*AS4&5KYF#sQgQg`YVz7#-ZU>-eeI<=U#I6?c+cXUqn$TvA0*7iE2WomDcpNVXN|lTT zIv1e%W)O93k!^>&HPq%+;*(43g8DkGB%KIJ=-4#ojcAAlpKsC~isG$lZCFonlf-T| ze%U!+|6*U<{?II^6PkS}M(K}IwJFC`6r%L0D`?ZdR7m_m&7kChf}3P)#03*yQ%ff= zfl2vE$>RFYvJGrJq=l8vi>;@kG&-TGS4d*$V{ znNsO=saB=SJ4?sJa?CO?3f)(tkA#Cu&o)KD>pSvOF@@UGL$FDt&kS)|8iCZ;%n0O} zh^4_7Ti~bv}5U@ zz9oSdBXGC=ziSNHayX2@^;8$t;m9EywYu_HEjbfONG>xG|2ZAG7$3}=A0qk2N)FwR z99oq36fMdf-%K5aM}-e>4D_>ddXo}$Hl^+IGBDSI+^$f)_m|A~CU}i?W?d6h9$sY; zA>`Z>TOGoM;Pr4z1a}Ggv=KVIvO*Oe8^x3Uz`1L0M3moyZbY6gv~`Xyh7*mk?RL8j zX02&pDTZ)Lk#hH$21-&thpdXt?xd5;M&u1I1CI~Mw!s5%PQN&Pyk)8Jw0Th=m}!RA zI=($(*QM+w6vTvXy##m18k^i*5l|FWHKdnUS50m#c^+OEd_tvtUjagtS3y*Xl8-11 z6IPU&hXgCgeHIC}I(}LxNI8sAAw!M+#SCpfI{i@#{-;F(Ka6kie<3zol_r|A(X)%Y4{mx~$1zlP(Ta~qSFArHd@u`k4C19wA+FaX6TVf0yb zFz=t5?!yquTn=8A!Lg`Cxgw9m`INZvJmky}mWbVD?NogrvaasUGpJ>G|AF`kXoE&L zU(67Sie*@3-c-ojDJ3#8`-|t>vuX|6-kXA>NYYdvlVWr)ijVVWZB)WOSriM-hboRd zct?rHD~1jMl-S=KNM3OBdIx5O)ovrY^{OvewyWaYpV45l6c%kRrFg2{r(Dxq6o*KB zRvU{{>F&Ug?&)vK@Fc1*i(;LUHmf#zO=qb3l<--^w2+vLTUh1zGm`s_8HZlx#z>p? zRpdmW!z?CQr)US}%G#L*xi(G_l?%?~T6tqC%Z4Eww;-pqqgt$3ALN;vG>_-iwg^lh zgc??%psEqfN)5vmgi3-KU4;@Y5y_Cso5{*KfF$-Y+uW#MY?(uy$8zB{v`m05bxnO` zg4!xK7F1P1D5AJ$;TBsC+lEAaMwv<*wzvW3`~1(CE(LXlL-DPX4abrENxYaHZ~!SU zOxN7JO+1YHa&CC;L|~~N<(k!cpoYSM4@OyibBmHYGpA&w`f>_LU5TYKUZaevN{pPK zM7+Lp&huQ(a3Ax$l6q&Dm)2>*T^cFK{{_{ebjz9|RFVi4#|3CEl@g`#3Ku zCb#r;~iQ7uE zTkx^IKHYtPVG+;^d6gFdyqrs1!C>|xR^^mX{p?4eSy42s_1J1ugo%hLDMpNhM~=o6 z;Ube1>nOvX@aL7)XN~nvru7X3uYsq4Y!~h%Z+VMbC8r+ZW|=$jj#=Fg@yN zYG3gF)=^FA?>t#i)%4AUm?{=NzBYx`&B1H9JWdum-&Ui}Fv@D{qFKI!5W}uO1uNT2 zi%gnnM$}Z-xDvHn1d1j0BZ=phBWZp~pR6|;a_PE7p1Kvw)va8uZn>l|CivDKV*>F8 z7ofLXpb1#bX8U}@{c_!QE}k?EAuxh`a^&Z3s){mGcG+uMk5P>l{RLp@DghC7$YGUr zA|<#|Oo1sHksijWv;TAflyiZ!PisUFJx<$_U-BkYCq;>va{lA|V8a_xV1tz7$0@gv z?UvTg&8AV~RC=!J3DE0L-`FWxI2tc&gQJHdqIgq&EE_tQ&VQzTCd8u(VqTPWY5xPX z#F0?p+FFirRV|Vl)on4tK*?boJA?IG1r+I*w~MfWoR}MNvT@BWDW0rXg3I|swW77{ zG|ew$9?VA)MwnVQps=ZDC2qU2^C-lQ7$LwF4Ai6h+BFTw!7|7s}Sj0Cc5t+h4rfv+P zwJ1+O;vTuuu8OK3rgZDb$j7J#s?y@8R84+;nKFc8QK;|?k6}5yp-4DV)h=b$Z%M@7RdzUab_LG+M3K5 z(GWu`@8klJANqTgSho?eD;Dj@U-l2)e0V!O_LXPT+Of|cH@wuxBS_8Eddy*v^?+~u z!v%a2C&Qbw4tiqu^o9WQ@vqyDkGCIp1P}03#K3v-wmoMz>C>Hmr}PV+lA}ZJz(YHB z<;D@|&j9)7a!`~mi9X?J9T$EO-#5gfE5ufgSgA@i_~(Yr%L({eC9wE2SR8vEp1qUP zYG+mjgzJfRH8A_dWF)fN?AZJ>PY}6dr(hrh=VJEkxv|LuSciAioJn~Ahm298v;T8j zilqeEN`)z{oKm>lLLQHjx6tM9i?@=u5mTN}=DXq5ts;KY3`9BxtK7o(c?yGG_>G@~ zpWpJlsAy5S>XbexsCDL6okwMLqaC0Bo_Ald7#VTO+q`DrEH=+_ob}<$EwBoFSz6RrjR0;pee|M< zG@O+28{!T#-})e@+d9X98Hsq~*J;Cbom0KOjfRKyxJ0i?t$G3Jz!aS$56{c{R&nmg zODp(Y3~Kmyx4gO-y}INyL5dsCTI z&r8$|;9?J&Bpx>;Do1w<_aJmw12}@5!oU+p62J4~E`Z8xIEq19aSh;E>s=F-?p&$>JfNR?ySIggxcD*TnYI6y13j_1cKYYkRS~2*D0*tC@E=5j{Wd zW`gHL@iqD{(L0g{nIANgX z=PAEM607{%Qu;sv740T&g<oqxeSEjvdlFuD@fFh<1`H~DFr{5gOmnM1Uxsb0mI;`%SnctZv3QP5MxAD zFrg|b%yI#4T&w_;n@dO_4isuo?AayjVFoY8le~gXNVfur%QMzY-Fx1n3@1fXL~;`z zG^=bfQiTh3zMMCDEtBfnY?>>VeYQP^M{SJ23~|Mdy-hM;<0)TJN;0IU%)twTf0M4Q zRvje5cQYelI_+P9QQ{^2t8-|!a6a;^y~dREWsSv{*~ z^{k%NvwBv~>RCOjXZ5U})w6n5&+1t{t7rABp4GE@R?q5rxaWTX3iJW00Pp|+?V&d9