diff --git a/.gitignore b/.gitignore index 008c87d..a7d41bb 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ inox-*.tar* test* chromium-freetype2/ *.log +chromium-*.txt diff --git a/0001-fix-building-without-safebrowsing.patch b/0001-fix-building-without-safebrowsing.patch index 0189b22..c8b6db4 100644 --- a/0001-fix-building-without-safebrowsing.patch +++ b/0001-fix-building-without-safebrowsing.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -625,7 +625,6 @@ class CertificateReportingServiceCertRep +@@ -643,7 +643,6 @@ class CertificateReportingServiceCertRep // SSLCertReporter implementation void ReportInvalidCertificateChain( const std::string& serialized_report) override { @@ -8,7 +8,7 @@ } private: -@@ -1635,7 +1634,7 @@ void ChromeContentBrowserClient::AppendE +@@ -1682,7 +1681,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) || @@ -17,9 +17,9 @@ command_line->AppendSwitch( switches::kDisableClientSidePhishingDetection); } -@@ -2162,15 +2161,9 @@ void ChromeContentBrowserClient::AllowCe - if (expired_previous_decision) - options_mask |= SSLErrorUI::EXPIRED_BUT_PREVIOUSLY_ALLOWED; +@@ -2259,15 +2258,9 @@ void ChromeContentBrowserClient::AllowCe + // Otherwise, display an SSL blocking page. The interstitial page takes + // ownership of ssl_blocking_page. - CertificateReportingService* cert_reporting_service = - CertificateReportingServiceFactory::GetForBrowserContext( @@ -27,14 +27,14 @@ - std::unique_ptr cert_reporter( - new CertificateReportingServiceCertReporter(cert_reporting_service)); - - SSLErrorHandler::HandleSSLError(web_contents, cert_error, ssl_info, - request_url, options_mask, -- std::move(cert_reporter), callback); -+ nullptr, callback); + SSLErrorHandler::HandleSSLError( + web_contents, cert_error, ssl_info, request_url, strict_enforcement, +- expired_previous_decision, std::move(cert_reporter), callback); ++ expired_previous_decision, nullptr, callback); } void ChromeContentBrowserClient::SelectClientCertificate( -@@ -2359,8 +2352,6 @@ bool ChromeContentBrowserClient::CanCrea +@@ -2456,8 +2449,6 @@ bool ChromeContentBrowserClient::CanCrea void ChromeContentBrowserClient::ResourceDispatcherHostCreated() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -43,7 +43,7 @@ for (size_t i = 0; i < extra_parts_.size(); ++i) extra_parts_[i]->ResourceDispatcherHostCreated(); -@@ -2875,17 +2866,6 @@ void ChromeContentBrowserClient::ExposeI +@@ -2974,17 +2965,6 @@ void ChromeContentBrowserClient::ExposeI base::RetainedRef(context))); } @@ -61,7 +61,7 @@ #if defined(OS_WIN) if (base::FeatureList::IsEnabled(features::kModuleDatabase)) { // Add the ModuleEventSink interface. This is the interface used by renderer -@@ -3417,12 +3397,6 @@ ChromeContentBrowserClient::CreateURLLoa +@@ -3563,12 +3543,6 @@ ChromeContentBrowserClient::CreateURLLoa std::vector> result; @@ -74,7 +74,7 @@ return result; } -@@ -3496,18 +3470,3 @@ void ChromeContentBrowserClient::SetDefa +@@ -3624,18 +3598,3 @@ void ChromeContentBrowserClient::SetDefa const storage::QuotaSettings* settings) { g_default_quota_settings = settings; } @@ -95,7 +95,7 @@ -} --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -492,18 +492,6 @@ ProfileImpl::ProfileImpl( +@@ -494,18 +494,6 @@ ProfileImpl::ProfileImpl( create_mode == CREATE_MODE_SYNCHRONOUS); #endif @@ -114,7 +114,7 @@ content::BrowserContext::Initialize(this, path_); { -@@ -512,7 +500,7 @@ ProfileImpl::ProfileImpl( +@@ -514,7 +502,7 @@ ProfileImpl::ProfileImpl( ->CreateDelegate(); delegate->InitPrefRegistry(pref_registry_.get()); prefs_ = chrome_prefs::CreateProfilePrefs( @@ -125,7 +125,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 -@@ -468,8 +468,7 @@ void NotifyUIThreadOfRequestComplete( +@@ -399,8 +399,7 @@ void NotifyUIThreadOfRequestComplete( } // namespace ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate() @@ -135,7 +135,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS) , user_script_listener_(new extensions::UserScriptListener()) #endif -@@ -519,9 +518,6 @@ void ChromeResourceDispatcherHostDelegat +@@ -450,9 +449,6 @@ void ChromeResourceDispatcherHostDelegat content::AppCacheService* appcache_service, ResourceType resource_type, std::vector>* throttles) { @@ -145,7 +145,7 @@ const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); #if BUILDFLAG(ENABLE_OFFLINE_PAGES) -@@ -707,13 +703,13 @@ void ChromeResourceDispatcherHostDelegat +@@ -638,13 +634,13 @@ void ChromeResourceDispatcherHostDelegat content::ResourceThrottle* first_throttle = NULL; #if defined(OS_ANDROID) first_throttle = DataReductionProxyResourceThrottle::MaybeCreate( @@ -163,85 +163,46 @@ --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc -@@ -244,7 +244,7 @@ BadClockBlockingPage* CreateBadClockBloc - clock_state, nullptr, +@@ -248,6 +248,7 @@ BadClockBlockingPage* CreateBadClockBloc base::Callback()); } -- + +#if 0 safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage( content::WebContents* web_contents) { safe_browsing::SBThreatType threat_type = -@@ -298,52 +298,7 @@ safe_browsing::SafeBrowsingBlockingPage* +@@ -303,7 +304,9 @@ safe_browsing::SafeBrowsingBlockingPage* 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->GetRenderProcessHost()->GetID(), -- web_contents->GetMainFrame()->GetRoutingID()); -- resource.threat_source = safe_browsing::ThreatSource::LOCAL_PVER3; -- -- // 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); --} ++#endif + ++#if 0 + TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage( + content::WebContents* web_contents) { + safe_browsing::SBThreatType threat_type = +@@ -351,6 +354,7 @@ TestSafeBrowsingBlockingPageQuiet* Creat + g_browser_process->safe_browsing_service()->ui_manager().get(), + web_contents, main_frame_url, resource, is_giant_webview); + } +#endif #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage( -@@ -445,9 +400,6 @@ void InterstitialHTMLSource::StartDataRe - } else if (base::StartsWith(path, "mitm-software-ssl", - base::CompareCase::SENSITIVE)) { +@@ -455,8 +459,6 @@ void InterstitialHTMLSource::StartDataRe + CreateSSLBlockingPage(web_contents, true /* is superfish */)); + } else if (path_without_query == "/mitm-software-ssl") { interstitial_delegate.reset(CreateMITMSoftwareBlockingPage(web_contents)); -- } else if (base::StartsWith(path, "safebrowsing", -- base::CompareCase::SENSITIVE)) { +- } else if (path_without_query == "/safebrowsing") { - interstitial_delegate.reset(CreateSafeBrowsingBlockingPage(web_contents)); - } else if (base::StartsWith(path, "clock", base::CompareCase::SENSITIVE)) { + } else if (path_without_query == "/clock") { interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents)); - } -@@ -460,12 +412,6 @@ void InterstitialHTMLSource::StartDataRe - #endif - if (base::StartsWith(path, "supervised_user", base::CompareCase::SENSITIVE)) { + #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) +@@ -467,11 +469,6 @@ void InterstitialHTMLSource::StartDataRe + + if (path_without_query == "/supervised_user") { html = GetSupervisedUserInterstitialHTML(path); -- } else if (base::StartsWith(path, "quietsafebrowsing", -- base::CompareCase::SENSITIVE)) { +- } else if (path_without_query == "/quietsafebrowsing") { - TestSafeBrowsingBlockingPageQuiet* blocking_page = - CreateSafeBrowsingQuietBlockingPage(web_contents); - interstitial_delegate.reset(blocking_page); @@ -384,7 +345,7 @@ #include "chrome/browser/shell_integration.h" #include "chrome/browser/status_icons/status_tray.h" #include "chrome/browser/ui/browser_dialogs.h" -@@ -221,7 +220,6 @@ BrowserProcessImpl::BrowserProcessImpl( +@@ -217,7 +216,6 @@ BrowserProcessImpl::BrowserProcessImpl( created_icon_manager_(false), created_notification_ui_manager_(false), created_notification_bridge_(false), @@ -424,7 +385,7 @@ subresource_filter::ContentRulesetService* BrowserProcessImpl::subresource_filter_ruleset_service() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -@@ -1220,16 +1200,6 @@ void BrowserProcessImpl::CreateBackgroun +@@ -1207,16 +1187,6 @@ void BrowserProcessImpl::CreateBackgroun #endif } @@ -443,7 +404,7 @@ created_subresource_filter_ruleset_service_ = true; --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -132,9 +132,6 @@ class BrowserProcessImpl : public Browse +@@ -133,9 +133,6 @@ class BrowserProcessImpl : public Browse void set_background_mode_manager_for_test( std::unique_ptr manager) override; StatusTray* status_tray() override; @@ -453,7 +414,7 @@ subresource_filter::ContentRulesetService* subresource_filter_ruleset_service() override; -@@ -264,9 +261,6 @@ class BrowserProcessImpl : public Browse +@@ -263,9 +260,6 @@ class BrowserProcessImpl : public Browse std::unique_ptr background_mode_manager_; #endif @@ -476,7 +437,7 @@ namespace subresource_filter { class ContentRulesetService; } -@@ -120,10 +116,6 @@ namespace resource_coordinator { +@@ -119,10 +115,6 @@ namespace resource_coordinator { class TabManager; } @@ -487,7 +448,7 @@ namespace ukm { class UkmRecorder; } -@@ -245,14 +237,6 @@ class BrowserProcess { +@@ -244,14 +236,6 @@ class BrowserProcess { // on this platform (or this is a unit test). virtual StatusTray* status_tray() = 0; @@ -786,7 +747,7 @@ } // namespace --- a/chrome/browser/download/download_target_determiner.cc +++ b/chrome/browser/download/download_target_determiner.cc -@@ -880,29 +880,7 @@ DownloadFileType::DangerLevel DownloadTa +@@ -953,29 +953,7 @@ DownloadFileType::DangerLevel DownloadTa download_->HasUserGesture()) return DownloadFileType::NOT_DANGEROUS; @@ -819,7 +780,7 @@ void DownloadTargetDeterminer::OnDownloadDestroyed( --- a/chrome/browser/permissions/permission_uma_util.cc +++ b/chrome/browser/permissions/permission_uma_util.cc -@@ -687,8 +687,6 @@ void PermissionUmaUtil::RecordPermission +@@ -696,8 +696,6 @@ void PermissionUmaUtil::RecordPermission PermissionPersistDecision::UNSPECIFIED, autoblocker->GetDismissCount(requesting_origin, permission), autoblocker->GetIgnoreCount(requesting_origin, permission)); @@ -830,7 +791,7 @@ bool secure_origin = content::IsOriginSecure(requesting_origin); --- a/chrome/browser/download/download_commands.cc +++ b/chrome/browser/download/download_commands.cc -@@ -187,9 +187,6 @@ bool DownloadCommands::IsCommandEnabled( +@@ -212,9 +212,6 @@ bool DownloadCommands::IsCommandEnabled( // filename. Don't base an "Always open" decision based on it. Also // exclude extensions. return download_item_->CanOpenDownload() && @@ -842,7 +803,7 @@ return !download_item_->IsDone(); --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3204,8 +3204,6 @@ split_static_library("browser") { +@@ -2307,8 +2307,6 @@ split_static_library("browser") { "download/download_commands.h", "download/download_crx_util.cc", "download/download_crx_util.h", @@ -853,15 +814,7 @@ "download/download_shelf.cc", --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -1439,7 +1439,6 @@ split_static_library("ui") { - "views/cookie_info_view.h", - "views/device_chooser_content_view.cc", - "views/device_chooser_content_view.h", -- "views/download/download_danger_prompt_views.cc", - "views/elevation_icon_setter.cc", - "views/elevation_icon_setter.h", - "views/exclusive_access_bubble_views.cc", -@@ -2675,7 +2674,6 @@ split_static_library("ui") { +@@ -1993,7 +1993,6 @@ split_static_library("ui") { "cocoa/dialog_text_field_editor.mm", "cocoa/download/background_theme.h", "cocoa/download/background_theme.mm", @@ -869,62 +822,29 @@ "cocoa/download/download_item_button.h", "cocoa/download/download_item_button.mm", "cocoa/download/download_item_cell.h", +@@ -2650,7 +2649,6 @@ split_static_library("ui") { + "views/cookie_info_view.h", + "views/device_chooser_content_view.cc", + "views/device_chooser_content_view.h", +- "views/download/download_danger_prompt_views.cc", + "views/elevation_icon_setter.cc", + "views/elevation_icon_setter.h", + "views/exclusive_access_bubble_views.cc", --- a/chrome/browser/ssl/security_state_tab_helper.cc +++ b/chrome/browser/ssl/security_state_tab_helper.cc -@@ -172,56 +172,6 @@ bool SecurityStateTabHelper::UsedPolicyI +@@ -181,6 +181,7 @@ bool SecurityStateTabHelper::UsedPolicyI security_state::MaliciousContentStatus SecurityStateTabHelper::GetMaliciousContentStatus() const { -- 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: -- case safe_browsing::SB_THREAT_TYPE_URL_PASSWORD_PROTECTION_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) && -- sb_service->GetPasswordProtectionService( -- Profile::FromBrowserContext( -- web_contents()->GetBrowserContext()))) { -- return security_state::MALICIOUS_CONTENT_STATUS_PASSWORD_REUSE; -- } -- break; --#endif -- 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; -- } -- } ++#if 0 + content::NavigationEntry* entry = + web_contents()->GetController().GetVisibleEntry(); + if (!entry) +@@ -236,6 +237,7 @@ SecurityStateTabHelper::GetMaliciousCont + break; + } + } ++#endif return security_state::MALICIOUS_CONTENT_STATUS_NONE; } @@ -1001,15 +921,16 @@ } // namespace // static -@@ -461,12 +447,6 @@ Notification PlatformNotificationService +@@ -462,13 +448,6 @@ Notification PlatformNotificationService + notification.set_type(message_center::NOTIFICATION_TYPE_IMAGE); notification.set_image( gfx::Image::CreateFrom1xBitmap(notification_resources.image)); - // n.b. this should only be posted once per notification. +- // n.b. this should only be posted once per notification. - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::BindOnce( - &ReportNotificationImageOnIOThread, -- make_scoped_refptr(g_browser_process->safe_browsing_service()), +- base::WrapRefCounted(g_browser_process->safe_browsing_service()), - profile, origin, notification_resources.image)); } @@ -1078,17 +999,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" -@@ -668,10 +667,6 @@ void ChromeMetricsServiceClient::Registe - std::unique_ptr( - new HttpsEngagementMetricsProvider())); +@@ -661,9 +660,6 @@ void ChromeMetricsServiceClient::Registe + metrics_service_->RegisterMetricsProvider( + base::MakeUnique()); - metrics_service_->RegisterMetricsProvider( -- std::unique_ptr( -- new CertificateReportingMetricsProvider())); +- base::MakeUnique()); - #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) metrics_service_->RegisterMetricsProvider( - std::unique_ptr(new UpgradeMetricsProvider())); + base::MakeUnique()); --- a/chrome/browser/permissions/permission_blacklist_client.h +++ b/chrome/browser/permissions/permission_blacklist_client.h @@ -59,11 +59,6 @@ class PermissionBlacklistClient @@ -1105,7 +1025,7 @@ // WebContentsObserver implementation. Sets a flag so that when the database --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -207,7 +207,6 @@ EnsureBrowserContextKeyedServiceFactorie +@@ -208,7 +208,6 @@ EnsureBrowserContextKeyedServiceFactorie #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) CaptivePortalServiceFactory::GetInstance(); #endif @@ -1115,10 +1035,10 @@ #endif --- a/chrome/browser/ssl/captive_portal_blocking_page.cc +++ b/chrome/browser/ssl/captive_portal_blocking_page.cc -@@ -77,13 +77,6 @@ CaptivePortalBlockingPage::CaptivePortal +@@ -83,13 +83,6 @@ CaptivePortalBlockingPage::CaptivePortal + login_url_(login_url), + ssl_info_(ssl_info), callback_(callback) { - DCHECK(login_url_.is_valid()); - - if (ssl_cert_reporter) { - cert_report_helper_.reset(new CertReportHelper( - std::move(ssl_cert_reporter), web_contents, request_url, ssl_info, @@ -1129,7 +1049,7 @@ captive_portal::CaptivePortalMetrics::LogCaptivePortalBlockingPageEvent( captive_portal::CaptivePortalMetrics::SHOW_ALL); } -@@ -194,10 +187,7 @@ void CaptivePortalBlockingPage::Populate +@@ -207,10 +200,7 @@ void CaptivePortalBlockingPage::Populate load_time_data->SetString("explanationParagraph", base::string16()); load_time_data->SetString("finalParagraph", base::string16()); @@ -1141,7 +1061,7 @@ } void CaptivePortalBlockingPage::CommandReceived(const std::string& command) { -@@ -258,12 +248,6 @@ void CaptivePortalBlockingPage::OnProcee +@@ -285,12 +275,6 @@ void CaptivePortalBlockingPage::OnProcee void CaptivePortalBlockingPage::OnDontProceed() { UpdateMetricsAfterSecurityInterstitial(); @@ -1167,7 +1087,7 @@ void CertReportHelper::SetSSLCertReporterForTesting( --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -267,11 +267,6 @@ void TabHelpers::AttachTabHelpers(WebCon +@@ -274,11 +274,6 @@ void TabHelpers::AttachTabHelpers(WebCon new ChromePDFWebContentsHelperClient())); PluginObserver::CreateForWebContents(web_contents); SadTabHelper::CreateForWebContents(web_contents); @@ -1188,8 +1108,8 @@ -#include "chrome/browser/safe_browsing/safe_browsing_service.h" #include "chrome/common/chrome_features.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" - #include "components/safe_browsing_db/database_manager.h" -@@ -435,10 +434,6 @@ PermissionDecisionAutoBlocker::Permissio + #include "components/safe_browsing/db/database_manager.h" +@@ -431,10 +430,6 @@ PermissionDecisionAutoBlocker::Permissio db_manager_(nullptr), safe_browsing_timeout_(kCheckUrlTimeoutMs), clock_(new base::DefaultClock()) { @@ -1343,9 +1263,9 @@ sources = [ "chrome_cleaner/chrome_cleaner_controller_impl_win.cc", "chrome_cleaner/chrome_cleaner_controller_impl_win.h", -@@ -69,6 +74,7 @@ static_library("safe_browsing") { - "settings_reset_prompt/settings_reset_prompt_util_win.h", +@@ -70,6 +75,7 @@ static_library("safe_browsing") { ] + deps += [ "//components/keep_alive_registry" ] } + } @@ -1385,22 +1305,9 @@ - base::Unretained(safe_browsing_service))); + base::BindOnce(&DisableQuicOnIOThread, io_thread)); } ---- a/chrome/browser/ui/webui/settings/change_password_handler.cc -+++ b/chrome/browser/ui/webui/settings/change_password_handler.cc -@@ -17,10 +17,6 @@ namespace settings { - - ChangePasswordHandler::ChangePasswordHandler(Profile* profile) - : profile_(profile), service_(nullptr) { -- if (g_browser_process && g_browser_process->safe_browsing_service()) { -- service_ = g_browser_process->safe_browsing_service() -- ->GetPasswordProtectionService(profile_); -- } - } - - ChangePasswordHandler::~ChangePasswordHandler() {} --- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc -@@ -391,9 +391,8 @@ void AddBluetoothStrings(content::WebUID +@@ -401,9 +401,8 @@ void AddBluetoothStrings(content::WebUID #endif void AddChangePasswordStrings(content::WebUIDataSource* html_source) { @@ -1414,6 +1321,7 @@ ? IDS_SETTINGS_CHANGE_PASSWORD_TITLE_SOFTER --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc +<<<<<<< HEAD @@ -58,7 +58,6 @@ #include "chrome/renderer/prerender/prerender_dispatcher.h" #include "chrome/renderer/prerender/prerender_helper.h" @@ -1471,6 +1379,9 @@ // URL to something invalid to prevent the request and cause an error. #if BUILDFLAG(ENABLE_EXTENSIONS) @@ -1373,9 +1352,7 @@ bool ChromeContentRendererClient::IsExte +======= +@@ -1387,6 +1387,8 @@ bool ChromeContentRendererClient::IsExte +>>>>>>> 63.0.3239.84: Update to stable std::unique_ptr ChromeContentRendererClient::CreateWebSocketHandshakeThrottle() { diff --git a/0005-disable-default-extensions.patch b/0005-disable-default-extensions.patch index 9064daf..f9a2cd4 100644 --- a/0005-disable-default-extensions.patch +++ b/0005-disable-default-extensions.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/extensions/component_loader.cc +++ b/chrome/browser/extensions/component_loader.cc -@@ -434,11 +434,6 @@ void ComponentLoader::AddWebStoreApp() { +@@ -441,11 +441,6 @@ void ComponentLoader::AddWebStoreApp() { if (!IsNormalSession()) return; #endif @@ -12,7 +12,7 @@ } scoped_refptr ComponentLoader::CreateExtension( -@@ -493,11 +488,6 @@ void ComponentLoader::AddDefaultComponen +@@ -500,11 +495,6 @@ void ComponentLoader::AddDefaultComponen Add(IDR_BOOKMARKS_MANIFEST, base::FilePath(FILE_PATH_LITERAL("bookmark_manager"))); } @@ -24,7 +24,7 @@ #endif // defined(OS_CHROMEOS) if (!skip_session_components) { -@@ -575,13 +565,6 @@ void ComponentLoader::AddDefaultComponen +@@ -582,13 +572,6 @@ void ComponentLoader::AddDefaultComponen AddHotwordAudioVerificationApp(); AddHotwordHelperExtension(); AddImageLoaderExtension(); @@ -40,20 +40,19 @@ #if defined(OS_CHROMEOS) --- a/chrome/browser/extensions/external_component_loader.cc +++ b/chrome/browser/extensions/external_component_loader.cc -@@ -38,13 +38,6 @@ ExternalComponentLoader::~ExternalCompon +@@ -34,12 +34,6 @@ ExternalComponentLoader::~ExternalCompon void ExternalComponentLoader::StartLoading() { - prefs_.reset(new base::DictionaryValue()); + auto prefs = std::make_unique(); -#if defined(GOOGLE_CHROME_BUILD) -- AddExternalExtension(extension_misc::kInAppPaymentsSupportAppId); +- AddExternalExtension(extension_misc::kInAppPaymentsSupportAppId, prefs.get()); -#endif // defined(GOOGLE_CHROME_BUILD) - - if (HotwordServiceFactory::IsHotwordAllowed(profile_)) -- AddExternalExtension(extension_misc::kHotwordSharedModuleId); -- +- AddExternalExtension(extension_misc::kHotwordSharedModuleId, prefs.get()); + #if defined(OS_CHROMEOS) { - base::CommandLine* const command_line = --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc @@ -580,6 +580,7 @@ void WebstoreInstaller::DownloadNextPend @@ -72,7 +71,7 @@ } // http://crbug.com/165634 -@@ -749,6 +751,7 @@ void WebstoreInstaller::UpdateDownloadPr +@@ -750,6 +752,7 @@ void WebstoreInstaller::UpdateDownloadPr } void WebstoreInstaller::StartCrxInstaller(const DownloadItem& download) { @@ -80,7 +79,7 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(!crx_installer_.get()); -@@ -771,6 +774,7 @@ void WebstoreInstaller::StartCrxInstalle +@@ -772,6 +775,7 @@ void WebstoreInstaller::StartCrxInstalle crx_installer_->set_allow_silent_install(true); crx_installer_->InstallCrx(download.GetFullPath()); @@ -90,7 +89,7 @@ void WebstoreInstaller::ReportFailure(const std::string& error, --- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc +++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc -@@ -30,8 +30,6 @@ namespace extensions { +@@ -26,8 +26,6 @@ namespace extensions { bool IsComponentExtensionWhitelisted(const std::string& extension_id) { const char* const kAllowed[] = { diff --git a/0006-modify-default-prefs.patch b/0006-modify-default-prefs.patch index 60b5b87..b079f91 100644 --- a/0006-modify-default-prefs.patch +++ b/0006-modify-default-prefs.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -832,7 +832,7 @@ ChromeContentBrowserClient::~ChromeConte +@@ -866,7 +866,7 @@ void ChromeContentBrowserClient::Registe void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -82,12 +82,12 @@ --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc -@@ -276,7 +276,7 @@ void AutofillManager::RegisterProfilePre +@@ -281,7 +281,7 @@ void AutofillManager::RegisterProfilePre + registry->RegisterIntegerPref( prefs::kAutofillCreditCardSigninPromoImpressionCount, 0); registry->RegisterBooleanPref( - prefs::kAutofillEnabled, -- true, -+ false, +- prefs::kAutofillEnabled, true, ++ prefs::kAutofillEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( prefs::kAutofillProfileUseDatesFixed, false, @@ -104,7 +104,7 @@ --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc -@@ -623,7 +623,7 @@ void IOThread::RegisterPrefs(PrefRegistr +@@ -610,7 +610,7 @@ void IOThread::RegisterPrefs(PrefRegistr std::string()); registry->RegisterBooleanPref(prefs::kEnableReferrers, true); data_reduction_proxy::RegisterPrefs(registry); @@ -154,15 +154,6 @@ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); #if defined(OS_ANDROID) registry->RegisterStringPref( -@@ -152,7 +152,7 @@ void Profile::RegisterProfilePrefs(user_ - // This pref is intentionally outside the above #if. That flag corresponds - // to the Notifier extension and does not gate the launcher page. - // TODO(skare): Remove or rename ENABLE_GOOGLE_NOW: http://crbug.com/459827. -- registry->RegisterBooleanPref(prefs::kGoogleNowLauncherEnabled, true); -+ registry->RegisterBooleanPref(prefs::kGoogleNowLauncherEnabled, false); - registry->RegisterBooleanPref(prefs::kDisableExtensions, false); - #if BUILDFLAG(ENABLE_EXTENSIONS) - registry->RegisterBooleanPref(extensions::pref_names::kAlertsInitialized, --- a/chrome/service/cloud_print/connector_settings.cc +++ b/chrome/service/cloud_print/connector_settings.cc @@ -60,7 +60,7 @@ void ConnectorSettings::InitFrom(Service @@ -206,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 -@@ -372,9 +372,9 @@ void RegisterProfilePrefs(PrefRegistrySi +@@ -370,9 +370,9 @@ void RegisterProfilePrefs(PrefRegistrySi registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -218,27 +209,9 @@ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref(prefs::kSafeBrowsingProceedAnywayDisabled, false); ---- a/components/safe_browsing/features.cc -+++ b/components/safe_browsing/features.cc -@@ -43,13 +43,13 @@ const base::Feature kParallelUrlCheck{"S - base::FEATURE_DISABLED_BY_DEFAULT}; - - const base::Feature kPasswordFieldOnFocusPinging{ -- "PasswordFieldOnFocusPinging", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "PasswordFieldOnFocusPinging", base::FEATURE_DISABLED_BY_DEFAULT}; - - const base::Feature kPasswordProtectionInterstitial{ - "PasswordProtectionInterstitial", base::FEATURE_DISABLED_BY_DEFAULT}; - - const base::Feature kProtectedPasswordEntryPinging{ -- "ProtectedPasswordEntryPinging", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "ProtectedPasswordEntryPinging", base::FEATURE_DISABLED_BY_DEFAULT}; - - const base::Feature kThreatDomDetailsTagAndAttributeFeature{ - "ThreatDomDetailsTagAttributes", base::FEATURE_DISABLED_BY_DEFAULT}; --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -199,10 +199,10 @@ PasswordFormManager* FindMatchedManager( +@@ -207,10 +207,10 @@ PasswordFormManager* FindMatchedManager( void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( diff --git a/0008-restore-classic-ntp.patch b/0008-restore-classic-ntp.patch index 5282b04..ffd72b5 100644 --- a/0008-restore-classic-ntp.patch +++ b/0008-restore-classic-ntp.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/search/search.cc +++ b/chrome/browser/search/search.cc -@@ -217,17 +217,7 @@ struct NewTabURLDetails { +@@ -170,17 +170,7 @@ struct NewTabURLDetails { return NewTabURLDetails(local_url, NEW_TAB_URL_VALID); NewTabURLState state = IsValidNewTabURL(profile, search_provider_url); @@ -21,7 +21,7 @@ GURL url; --- a/components/ntp_snippets/features.cc +++ b/components/ntp_snippets/features.cc -@@ -38,16 +38,16 @@ const base::Feature* const kAllFeatures[] = { +@@ -38,16 +38,16 @@ const base::Feature* const kAllFeatures[ nullptr}; const base::Feature kArticleSuggestionsFeature{ diff --git a/0009-disable-google-ipv6-probes.patch b/0009-disable-google-ipv6-probes.patch index a4bc141..711c258 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 -@@ -107,10 +107,10 @@ const unsigned kMinimumTTLSeconds = kCac +@@ -108,10 +108,10 @@ const unsigned kMinimumTTLSeconds = kCac // cached. const int kIPv6ProbePeriodMs = 1000; diff --git a/0012-branding.patch b/0012-branding.patch index 51aaacc..fa47f91 100644 --- a/0012-branding.patch +++ b/0012-branding.patch @@ -55,7 +55,7 @@ -@@ -296,7 +296,7 @@ If you update this file, be sure also to +@@ -278,7 +278,7 @@ If you update this file, be sure also to @@ -64,7 +64,7 @@ -@@ -637,7 +637,7 @@ Chromium is unable to recover your setti +@@ -608,7 +608,7 @@ Chromium is unable to recover your setti @@ -73,7 +73,7 @@ Update &Chromium -@@ -645,7 +645,7 @@ Chromium is unable to recover your setti +@@ -616,7 +616,7 @@ Chromium is unable to recover your setti @@ -82,7 +82,7 @@ Update &Chromium -@@ -662,7 +662,7 @@ Chromium is unable to recover your setti +@@ -633,7 +633,7 @@ Chromium is unable to recover your setti diff --git a/0014-disable-translation-lang-fetch.patch b/0014-disable-translation-lang-fetch.patch index fb10dd8..df96d04 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 -@@ -151,7 +151,6 @@ void SpellcheckHunspellDictionary::Retry +@@ -155,7 +155,6 @@ void SpellcheckHunspellDictionary::Retry return; } request_context_getter_ = request_context_getter; @@ -19,7 +19,7 @@ } bool SpellcheckHunspellDictionary::IsReady() const { -@@ -368,9 +367,6 @@ void SpellcheckHunspellDictionary::Initi +@@ -375,9 +374,6 @@ void SpellcheckHunspellDictionary::Initi } if (request_context_getter_) { @@ -31,22 +31,26 @@ } --- a/components/translate/core/browser/translate_ranker_impl.cc +++ b/components/translate/core/browser/translate_ranker_impl.cc -@@ -136,11 +136,9 @@ TranslateRankerImpl::TranslateRankerImpl +@@ -148,14 +148,10 @@ TranslateRankerImpl::TranslateRankerImpl ukm::UkmRecorder* ukm_recorder) : ukm_recorder_(ukm_recorder), is_logging_enabled_(false), - is_query_enabled_(base::FeatureList::IsEnabled(kTranslateRankerQuery)), - is_enforcement_enabled_( - base::FeatureList::IsEnabled(kTranslateRankerEnforcement)), -- is_decision_override_enabled_(base::FeatureList::IsEnabled( -- translate::kTranslateRankerDecisionOverride)), +- is_auto_blacklist_override_enabled_(base::FeatureList::IsEnabled( +- translate::kTranslateRankerAutoBlacklistOverride)), +- is_previous_language_matches_override_enabled_( +- base::FeatureList::IsEnabled( +- translate::kTranslateRankerPreviousLanguageMatchesOverride)), + is_query_enabled_(false), + is_enforcement_enabled_(false), -+ is_decision_override_enabled_(false), ++ is_auto_blacklist_override_enabled_(false), ++ is_previous_language_matches_override_enabled_(false), weak_ptr_factory_(this) { if (is_query_enabled_ || is_enforcement_enabled_) { model_loader_ = base::MakeUnique( -@@ -207,6 +205,8 @@ bool TranslateRankerImpl::ShouldOfferTra +@@ -229,6 +225,8 @@ bool TranslateRankerImpl::ShouldOfferTra // (or become False). const bool kDefaultResponse = true; diff --git a/0017-disable-new-avatar-menu.patch b/0017-disable-new-avatar-menu.patch index 6068fb4..5197f9e 100644 --- a/0017-disable-new-avatar-menu.patch +++ b/0017-disable-new-avatar-menu.patch @@ -1,6 +1,6 @@ --- a/components/signin/core/browser/signin_manager.cc +++ b/components/signin/core/browser/signin_manager.cc -@@ -270,7 +270,7 @@ void SigninManager::OnGoogleServicesUser +@@ -289,7 +289,7 @@ void SigninManager::OnGoogleServicesUser } bool SigninManager::IsSigninAllowed() const { diff --git a/0018-disable-first-run-behaviour.patch b/0018-disable-first-run-behaviour.patch index d92a9ef..3528f8b 100644 --- a/0018-disable-first-run-behaviour.patch +++ b/0018-disable-first-run-behaviour.patch @@ -1,66 +1,11 @@ ---- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc -+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -@@ -1105,8 +1105,6 @@ void StartupBrowserCreatorImpl::AddStart - // Replace magic names for the actual urls. - if (it->host() == "new_tab_page") { - startup_urls->push_back(GURL(chrome::kChromeUINewTabURL)); -- } else if (it->host() == "welcome_page") { -- startup_urls->push_back(internals::GetWelcomePageURL()); - } else { - startup_urls->push_back(*it); - } -@@ -1121,10 +1119,6 @@ void StartupBrowserCreatorImpl::AddStart - if (startup_urls->empty()) { - AddSpecialURLs(startup_urls); - startup_urls->push_back(GURL(chrome::kChromeUINewTabURL)); -- -- // Special case the FIRST_RUN_LAST_TAB case of the welcome page. -- if (welcome_run_type_ == WelcomeRunType::FIRST_RUN_LAST_TAB) -- startup_urls->push_back(internals::GetWelcomePageURL()); - } - - if (signin::ShouldShowPromoAtStartup(profile_, is_first_run_)) { -@@ -1160,10 +1154,6 @@ void StartupBrowserCreatorImpl::AddStart - - void StartupBrowserCreatorImpl::AddSpecialURLs( - std::vector* url_list) const { -- // Optionally include the welcome page. -- if (welcome_run_type_ == WelcomeRunType::FIRST_TAB) -- url_list->insert(url_list->begin(), internals::GetWelcomePageURL()); -- - // If this Profile is marked for a reset prompt, ensure the reset - // settings dialog appears. - if (ProfileHasResetTrigger()) { --- a/chrome/browser/ui/startup/startup_tab_provider.cc +++ b/chrome/browser/ui/startup/startup_tab_provider.cc -@@ -189,12 +189,6 @@ bool StartupTabProviderImpl::ShouldShowW - StartupTabs StartupTabProviderImpl::GetStandardOnboardingTabsForState( - const StandardOnboardingTabsParams& params) { - StartupTabs tabs; -- if (CanShowWelcome(params.is_signin_allowed, params.is_supervised_user) && -- ShouldShowWelcomeForOnboarding(params.has_seen_welcome_page, -- params.is_signed_in, -- params.is_signin_in_progress)) { -- tabs.emplace_back(GetWelcomePageUrl(!params.is_first_run), false); -- } - return tabs; - } - -@@ -217,15 +211,8 @@ bool StartupTabProviderImpl::ShouldShowW - StartupTabs StartupTabProviderImpl::GetWin10OnboardingTabsForState( - const StandardOnboardingTabsParams& standard_params, - const Win10OnboardingTabsParams& win10_params) { -- if (CanShowWin10Welcome(win10_params.set_default_browser_allowed, -- standard_params.is_supervised_user) && -- ShouldShowWin10WelcomeForOnboarding(win10_params.has_seen_win10_promo, -- win10_params.is_default_browser)) { -- return {StartupTab(GetWin10WelcomePageUrl(!standard_params.is_first_run), -- false)}; -- } -- -- return GetStandardOnboardingTabsForState(standard_params); -+ StartupTabs tabs; -+ return tabs; - } - #endif - +@@ -58,7 +58,7 @@ bool ProfileHasOtherTabbedBrowser(Profil + + StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const { + // Onboarding content has not been launched on Chrome OS. +-#if defined(OS_CHROMEOS) ++#if 1 + return StartupTabs(); + #else + if (!profile) diff --git a/9000-disable-metrics.patch b/9000-disable-metrics.patch index d264727..158d4b6 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 -@@ -1208,6 +1208,11 @@ const FeatureEntry::FeatureVariation kTh +@@ -1215,6 +1215,11 @@ const FeatureEntry::FeatureVariation kSp // // When adding a new choice, add it to the end of the list. const FeatureEntry kFeatureEntries[] = { @@ -268,7 +268,7 @@ #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/metrics/histogram_base.h" -@@ -811,6 +812,8 @@ bool MetricsService::UmaMetricsProperlyS +@@ -809,6 +810,8 @@ bool MetricsService::UmaMetricsProperlyS void MetricsService::RegisterMetricsProvider( std::unique_ptr provider) { DCHECK_EQ(INITIALIZED, state_); @@ -279,7 +279,7 @@ --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -207,13 +207,17 @@ void TabHelpers::AttachTabHelpers(WebCon +@@ -215,13 +215,17 @@ void TabHelpers::AttachTabHelpers(WebCon HistoryTabHelper::CreateForWebContents(web_contents); InfoBarService::CreateForWebContents(web_contents); InstallableManager::CreateForWebContents(web_contents); @@ -301,7 +301,7 @@ PDFPluginPlaceholderObserver::CreateForWebContents(web_contents); PermissionRequestManager::CreateForWebContents(web_contents); PopupBlockerTabHelper::CreateForWebContents(web_contents); -@@ -278,7 +282,8 @@ void TabHelpers::AttachTabHelpers(WebCon +@@ -285,7 +289,8 @@ void TabHelpers::AttachTabHelpers(WebCon #if defined(OS_WIN) || defined(OS_MACOSX) || \ (defined(OS_LINUX) && !defined(OS_CHROMEOS)) diff --git a/9001-disable-profiler.patch b/9001-disable-profiler.patch deleted file mode 100644 index ae6d1d2..0000000 --- a/9001-disable-profiler.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/base/tracked_objects.cc -+++ b/base/tracked_objects.cc -@@ -897,10 +897,14 @@ void ThreadData::EnsureTlsInitialization - // never again change in this process. - ++incarnation_counter_; - -+ ThreadData::Status initial_startup_state = DEACTIVATED; -+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("enable-profiler")) -+ initial_startup_state = kInitialStartupState; -+ - // The lock is not critical for setting status_, but it doesn't hurt. It also - // ensures that if we have a racy initialization, that we'll bail as soon as - // we get the lock earlier in this method. -- base::subtle::Release_Store(&status_, kInitialStartupState); -+ base::subtle::Release_Store(&status_, initial_startup_state); - DCHECK(base::subtle::NoBarrier_Load(&status_) != UNINITIALIZED); - } - diff --git a/PKGBUILD b/PKGBUILD index 9aafb28..1b70d59 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,7 +5,7 @@ # Contributor: Daniel J Griffiths pkgname=inox -pkgver=62.0.3202.94 +pkgver=63.0.3239.84 pkgrel=1 _launcher_ver=5 pkgdesc="Chromium Spin-off to enhance privacy by disabling data transmission to Google" @@ -27,17 +27,17 @@ 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 - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/inox.desktop + 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/breakpad-use-ucontext_t.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/crc32c-string-view-check.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-exclude_unwind_tables.patch https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-widevine.patch # Patches from Gentoo - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-gn-bootstrap-r17.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-clang-r1.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-webrtc-r0.patch # Misc - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-libva-version.patch - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-vaapi-r14.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-libva-r2.patch + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/chromium-vaapi-r15.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/0003-disable-autofill-download-manager.patch @@ -59,12 +59,12 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/0019-disable-battery-status-service.patch 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 - https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/9001-disable-profiler.patch) + https://raw.githubusercontent.com/gcarq/inox-patchset/$pkgver/9000-disable-metrics.patch) -sha256sums=('cabc4d267bf08aabe11c5739048c43dde18c61acf595223a1c3aa1d3499558d4' + +sha256sums=('6de2754dfc333675ae6a67ae13c95666009b35c84f847b058edbf312e42fa3af' '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' - 'ff3f939a8757f482c1c5ba35c2c0f01ee80e2a2273c16238370081564350b148' + '782a512b8bcf4aa6e58036cc3454d037d0eea69f27d5b673902d494c3fb5b20d' '71471fa4690894420f9e04a2e9a622af620d92ac2714a35f9a4c4e90fa3968dd' '4a533acefbbc1567b0d74a1c0903e9179b8c59c1beabe748850795815366e509' '7b88830c5e0e9819f514ad68aae885d427541a907e25607e47dee1b0f38975fd' @@ -73,47 +73,46 @@ sha256sums=('cabc4d267bf08aabe11c5739048c43dde18c61acf595223a1c3aa1d3499558d4' '53a1e8da18069eb4d6ab3af9c923c22a0f020241a4839c3140e3601052ddf6ff' '896993987d4ef9f0ac7db454f288117316c2c80ed0b6764019afd760db222dad' '3df9b3bbdc07fde63d9e400954dcc6ab6e0e5454f0ef6447570eef0549337354' - '6e9a345f810d36068ee74ebba4708c70ab30421dad3571b6be5e9db635078ea8' - '35435e8dae76737baafecdc76d74a1c97281c4179e416556e033a06a31468e6d' + 'e53dc6f259acd39df13874f8a0f440528fae764b859dd71447991a5b1fac7c9c' 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808' - 'd81319f168dad0e411c8e810f73daa2f56ff579578771bd9c9bb1aa2d7c09a8b' - '4d0e95ab106eccc2e016c88a660712ee4393376e18a4793775fc9e22e8e7eb0b' - 'dd4fa56c084083a550799217ff65d6216c835a8ef2b7aa22bab3fe3932e4a9d6' - '71b9f821d25fdb6980695b3b64ddca98f701b6c70a0cf977a6d5fd523b70e236' + 'ab5368a3e3a67fa63b33fefc6788ad5b4a79089ef4db1011a14c3bee9fdf70c6' + 'bcb2f4588cf5dcf75cde855c7431e94fdcc34bdd68b876a90f65ab9938594562' + '73275413f078b1217a11e5a099777c1ace11a667144d5106975d1ff650540321' + 'a15b2ca40b5ca17d4763e41e226fb5faca22277027e8321675c87038dd9879d5' + '8a0ddd4464b5d89bff66e80913001d42e864f36d2d9896f5d43c2a785b021654' '605cca8be9828a29cc96d473847eef9452d572fe6a56dacd96426a202310ba58' 'fb91a7e30e2615e4eb0626b0fdcf97b92d4a727a52023730f408b02fee436c8d' - '7c6ff455d7fe9445a189fd2b309e9cf0c920187010276c79a032e913be2c949a' - 'e154725477b8b39cb6c2ccdb02d66234b9b584367a97bb7e99a847d3dc58067a' + '94d20bc91ce6f4c9405293b4480670af9e7c3a79f2b87268e663dc2f063cb6e4' + '08a1dcbb5ae2cb38815026f2f723da383f4275c58dc992078e6c7b006c651ec1' 'bd9194b0a1da60879ce36ac389da6b229be9be5ae6acfba04e3cb0e1cb15ea9f' - '9df213dabcf5e689a202541035c8326a94eb73c5741fcb59f022046405f6982a' - '25cc46b6a661bbcecb12840c6475287c6643258834daa99ba58b406f9914fdf1' + 'e20a71da88b78dcd0d5b490f66ecebcca4aa2e0d7b22df453c7adc90c1da2c02' + 'cf050473adae5b83680346b369997b5ead55dce282515f185e4096c5ed39f11d' '3190a507dfa00e863a0e622b5738db5cf19947f696ac7a790f427510cc15d1e1' '476593cf1e3bbf2539732567a70b0acea14033370317baf868f3d9701e4a1d5d' - '1a3233a14496819468b7f52e6d3f3f371942267eba9a9cb972e2edba0ad79836' + '6f0768e13f2218597f7c39f4398381934333ec302756147e488defa01cbb1c4c' 'c79f12e444d2c7b9b61de8d6698033cc8a84bb35f949908b3a366105367237b0' - '28dddc8a0f59f0ffa5cb3c24b64afb04b3980e34be53c42619978129c8968698' + 'bfb04c0c51b7f48e01ac514c5dfe26b3a93ffc2aa517f846c01d6f2668247a38' '795686bf0dd7bfac0f596155be8fc7ed3f6294a6b764f793cd1614085562ce38' '216829c72f1cc378bc66fb4f62f047cccd31684d946ba9a406b6e7a8f1351677' - 'bf1d064fd909ec6a9acc5dd1aeee245bc31eeb90fc3733d9449eb1afe6f262ae' - '19e25b660adc437a7f5bae3a3e44baad6b3aff223aa7029233b4e103974fc1b2' + '438a53a389a39568038cd353b5a8cd07d6e4e28277326ae64cd7ecce7caf93fa' + 'cb2bd17fbbd9184f15eb24d3b23deca92d06cb4b9ec31bd6944504e130d69ff8' 'c17556772059a64873ddac383f2976e3befb5c07c3019b641c989ffb5683c4cd' '80d2974001708c288a54c24e1dc896ef25916552b740765f6066a244c05ffcd5' 'dbe942b1eaba525ca6b81d398462a70360fc2043cbfe5d4105657c3bd721e592' - 'b618c79506032422cd7f7a74b6d2bf9715857fe31e5f79c9dfc08a38b3d3ee58' - '814fa3b82c8330b944b138ece864be4761fe17f42061816028b5d8c1f2609c8a') + '42425ef9f374020ce583225ad4ac5201aa0d7d08b91a4ba2b52c0ea5ffb153b7') # 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 declare -rgA _system_libs=( - #[ffmpeg]=ffmpeg # https://crbug.com/731766 + #[ffmpeg]=ffmpeg # https://crbug.com/731766 [flac]=flac - #[freetype]=freetype2 # https://crbug.com/pdfium/733 - [harfbuzz-ng]=harfbuzz-icu - #[icu]=icu # https://crbug.com/772655 + #[freetype]=freetype2 # https://crbug.com/pdfium/733 + #[harfbuzz-ng]=harfbuzz-icu # https://crbug.com/768938 + #[icu]=icu # https://crbug.com/772655 [libdrm]= [libjpeg]=libjpeg - #[libpng]=libpng # https://crbug.com/752403#c10 - #[libvpx]=libvpx # https://bugs.gentoo.org/611394 + #[libpng]=libpng # https://crbug.com/752403#c10 + #[libvpx]=libvpx # https://bugs.gentoo.org/611394 [libwebp]=libwebp [libxml]=libxml2 [libxslt]=libxslt @@ -130,8 +129,8 @@ prepare() { msg2 'Applying build patches' # https://crbug.com/710701 - local _chrome_build_hash=$(curl -s https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT | - base64 -d | grep -Po '^parent \K[0-9a-f]{40}$') + local _chrome_build_hash=$(base64 -d ../chromium-$pkgver.txt | + grep -Po '^parent \K[0-9a-f]{40}$') if [[ -z $_chrome_build_hash ]]; then error "Unable to fetch Chrome build hash." return 1 @@ -144,18 +143,24 @@ prepare() { sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | patch -Np1 - # Fix build with glibc 2.26 - patch -Np1 -i ../breakpad-use-ucontext_t.patch - - # Fix incorrect inclusion of in modes other than >= C++17 - patch -Np1 -d third_party/crc32c/src <../crc32c-string-view-check.patch + # https://chromium-review.googlesource.com/c/chromium/src/+/712575 + patch -Np1 -i ../chromium-exclude_unwind_tables.patch # Fixes from Gentoo - patch -Np1 -i ../chromium-gn-bootstrap-r17.patch + patch -Np1 -i ../chromium-clang-r1.patch + patch -Np1 -i ../chromium-webrtc-r0.patch + + # Remove compiler flags not supported by our system clang + sed -i \ + -e '/"-Wno-enum-compare-switch"/d' \ + -e '/"-Wno-null-pointer-arithmetic"/d' \ + -e '/"-Wno-tautological-unsigned-zero-compare"/d' \ + -e '/"-Wno-tautological-unsigned-enum-zero-compare"/d' \ + build/config/compiler/BUILD.gn msg2 'Applying VA-API patches' - patch -Np1 -i ../chromium-libva-version.patch - patch -Np1 -i ../chromium-vaapi-r14.patch + patch -Np1 -i ../chromium-libva-r2.patch + patch -Np1 -i ../chromium-vaapi-r15.patch msg2 'Applying Inox patchset' # Apply patches to fix building @@ -181,7 +186,6 @@ prepare() { patch -Np1 -i ../0019-disable-battery-status-service.patch patch -Np1 -i ../0021-disable-rlz.patch patch -Np1 -i ../9000-disable-metrics.patch - patch -Np1 -i ../9001-disable-profiler.patch # Use Python 2 find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} + @@ -220,6 +224,11 @@ build() { cd "$srcdir/chromium-$pkgver" + if check_buildoption ccache y; then + # Avoid falling back to preprocessor mode when sources contain time macros + export CCACHE_SLOPPINESS=time_macros + fi + export PATH="$srcdir/python2-path:$PATH" export TMPDIR="$srcdir/temp" mkdir -p "$TMPDIR" @@ -228,8 +237,6 @@ build() { export CXX=clang++ export AR=llvm-ar export NM=llvm-nm - export CFLAGS="${CFLAGS//-fno-plt/} -Wno-unknown-warning-option" - export CXXFLAGS="${CXXFLAGS//-fno-plt/} -Wno-unknown-warning-option" # TODO: enable_mdns=false (linker error) # TODO: enable_reporting=false (compiler error) @@ -264,6 +271,7 @@ build() { 'enable_google_now=false' 'safe_browsing_mode=0' 'enable_hotwording=false' + 'use_system_harfbuzz=true' ) if check_option strip y; then @@ -281,41 +289,44 @@ build() { } package() { - cd "$srcdir/chromium-launcher-$_launcher_ver" - make PREFIX=/usr DESTDIR="$pkgdir" install-strip + cd chromium-launcher-$_launcher_ver + make PREFIX=/usr DESTDIR="$pkgdir" install install -Dm644 LICENSE \ "$pkgdir/usr/share/licenses/$pkgname/LICENSE.launcher" cd "$srcdir/chromium-$pkgver" install -D out/Release/chrome "$pkgdir/usr/lib/$pkgname/$pkgname" - - install -Dm4755 out/Release/chrome_sandbox \ - "$pkgdir/usr/lib/$pkgname/chrome-sandbox" - + install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/$pkgname/chrome-sandbox" install -D out/Release/chromedriver "$pkgdir/usr/lib/$pkgname/inoxdriver" + ln -s /usr/lib/$pkgname/inoxdriver "$pkgdir/usr/bin/inoxdriver" + + install -Dm644 chrome/installer/linux/common/desktop.template \ + "$pkgdir/usr/share/applications/$pkgname.desktop" + install -Dm644 chrome/app/resources/manpage.1.in \ + "$pkgdir/usr/share/man/man1/$pkgname.1" + sed -i \ + -e "s/@@MENUNAME@@/${pkgname^}/g" \ + -e "s/@@PACKAGE@@/$pkgname/g" \ + -e "s/@@USR_BIN_SYMLINK_NAME@@/$pkgname/g" \ + "$pkgdir/usr/share/applications/$pkgname.desktop" \ + "$pkgdir/usr/share/man/man1/$pkgname.1" cp -a \ out/Release/{chrome_{100,200}_percent,resources}.pak \ out/Release/{*.bin,libwidevinecdmadapter.so} \ - out/Release/locales "$pkgdir/usr/lib/$pkgname/" + "$pkgdir/usr/lib/$pkgname/" + install -Dm644 -t "$pkgdir/usr/lib/$pkgname/locales" out/Release/locales/*.pak if [[ -z ${_system_libs[icu]+set} ]]; then cp out/Release/icudtl.dat "$pkgdir/usr/lib/$pkgname/" fi - install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/$pkgname.1" - - install -Dm644 "$srcdir/$pkgname.desktop" \ - "$pkgdir/usr/share/applications/$pkgname.desktop" - for size in 16 22 24 32 48 64 128 256; do install -Dm644 "$srcdir/product_logo_$size.png" \ "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/$pkgname.png" done - ln -s /usr/lib/$pkgname/inoxdriver "$pkgdir/usr/bin/inoxdriver" - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } diff --git a/breakpad-use-ucontext_t.patch b/breakpad-use-ucontext_t.patch deleted file mode 100644 index f323972..0000000 --- a/breakpad-use-ucontext_t.patch +++ /dev/null @@ -1,225 +0,0 @@ -From b6a312ed8e144a37da840ae50dbd39df5ffb7e9f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 2 Jul 2017 16:34:54 -0700 -Subject: [PATCH 2/2] replace struct ucontext with ucontext_t - -glibc 2.26 does not expose struct ucontext any longer - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - .../linux/dump_writer_common/ucontext_reader.cc | 30 +++++++++++----------- - .../linux/dump_writer_common/ucontext_reader.h | 10 ++++---- - .../src/client/linux/handler/exception_handler.cc | 8 +++--- - .../src/client/linux/handler/exception_handler.h | 2 +- - .../linux/microdump_writer/microdump_writer.cc | 2 +- - .../linux/minidump_writer/minidump_writer.cc | 2 +- - 6 files changed, 27 insertions(+), 27 deletions(-) - -diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -index c80724dd8..93b4d9f85 100644 ---- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -+++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -@@ -40,15 +40,15 @@ namespace google_breakpad { - - #if defined(__i386__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_ESP]; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_EIP]; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct _libc_fpstate* fp) { - const greg_t* regs = uc->uc_mcontext.gregs; - -@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - - #elif defined(__x86_64) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_RSP]; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_RIP]; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct _libc_fpstate* fpregs) { - const greg_t* regs = uc->uc_mcontext.gregs; - -@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - - #elif defined(__ARM_EABI__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.arm_sp; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.arm_pc; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { - out->context_flags = MD_CONTEXT_ARM_FULL; - - out->iregs[0] = uc->uc_mcontext.arm_r0; -@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { - - #elif defined(__aarch64__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.sp; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.pc; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct fpsimd_context* fpregs) { - out->context_flags = MD_CONTEXT_ARM64_FULL; - -@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - - #elif defined(__mips__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.pc; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { - #if _MIPS_SIM == _ABI64 - out->context_flags = MD_CONTEXT_MIPS64_FULL; - #elif _MIPS_SIM == _ABIO32 -diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h -index b6e77b4b5..2369a9ad3 100644 ---- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h -+++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h -@@ -41,21 +41,21 @@ namespace google_breakpad { - - // Wraps platform-dependent implementations of accessors to ucontext structs. - struct UContextReader { -- static uintptr_t GetStackPointer(const struct ucontext* uc); -+ static uintptr_t GetStackPointer(const ucontext_t* uc); - -- static uintptr_t GetInstructionPointer(const struct ucontext* uc); -+ static uintptr_t GetInstructionPointer(const ucontext_t* uc); - - // Juggle a arch-specific ucontext into a minidump format - // out: the minidump structure - // info: the collection of register structures. - #if defined(__i386__) || defined(__x86_64) -- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, -+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct _libc_fpstate* fp); - #elif defined(__aarch64__) -- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, -+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct fpsimd_context* fpregs); - #else -- static void FillCPUContext(RawContextCPU *out, const ucontext *uc); -+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc); - #endif - }; - -diff --git a/breakpad/src/client/linux/handler/exception_handler.cc b/breakpad/src/client/linux/handler/exception_handler.cc -index b63f973b8..f2688acaf 100644 ---- a/breakpad/src/client/linux/handler/exception_handler.cc -+++ b/breakpad/src/client/linux/handler/exception_handler.cc -@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) { - // Fill in all the holes in the struct to make Valgrind happy. - memset(&g_crash_context_, 0, sizeof(g_crash_context_)); - memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); -- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); -+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t)); - #if defined(__aarch64__) -- struct ucontext* uc_ptr = (struct ucontext*)uc; -+ ucontext_t* uc_ptr = (ucontext_t*)uc; - struct fpsimd_context* fp_ptr = - (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; - if (fp_ptr->head.magic == FPSIMD_MAGIC) { -@@ -452,7 +452,7 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) { - // FP state is not part of user ABI on ARM Linux. - // In case of MIPS Linux FP state is already part of struct ucontext - // and 'float_state' is not a member of CrashContext. -- struct ucontext* uc_ptr = (struct ucontext*)uc; -+ ucontext_t* uc_ptr = (ucontext_t*)uc; - if (uc_ptr->uc_mcontext.fpregs) { - memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, - sizeof(g_crash_context_.float_state)); -@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) { - // ExceptionHandler::HandleSignal(). - siginfo.si_code = SI_USER; - siginfo.si_pid = getpid(); -- struct ucontext context; -+ ucontext_t context; - getcontext(&context); - return HandleSignal(sig, &siginfo, &context); - } -diff --git a/breakpad/src/client/linux/handler/exception_handler.h b/breakpad/src/client/linux/handler/exception_handler.h -index 591c31085..846df772f 100644 ---- a/breakpad/src/client/linux/handler/exception_handler.h -+++ b/breakpad/src/client/linux/handler/exception_handler.h -@@ -191,7 +191,7 @@ class ExceptionHandler { - struct CrashContext { - siginfo_t siginfo; - pid_t tid; // the crashing thread. -- struct ucontext context; -+ ucontext_t context; - #if !defined(__ARM_EABI__) && !defined(__mips__) - // #ifdef this out because FP state is not part of user ABI for Linux ARM. - // In case of MIPS Linux FP state is already part of struct -diff --git a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc -index 6f5b43559..a508667a0 100644 ---- a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc -+++ b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc -@@ -571,7 +571,7 @@ class MicrodumpWriter { - - void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } - -- const struct ucontext* const ucontext_; -+ const ucontext_t* const ucontext_; - #if !defined(__ARM_EABI__) && !defined(__mips__) - const google_breakpad::fpstate_t* const float_state_; - #endif -diff --git a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc -index 86009b9f6..f2aec73d7 100644 ---- a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc -+++ b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc -@@ -1248,7 +1248,7 @@ class MinidumpWriter { - const int fd_; // File descriptor where the minidum should be written. - const char* path_; // Path to the file where the minidum should be written. - -- const struct ucontext* const ucontext_; // also from the signal handler -+ const ucontext_t* const ucontext_; // also from the signal handler - #if !defined(__ARM_EABI__) && !defined(__mips__) - const google_breakpad::fpstate_t* const float_state_; // ditto - #endif --- -2.13.2 - diff --git a/chromium-clang-r1.patch b/chromium-clang-r1.patch new file mode 100644 index 0000000..0fef167 --- /dev/null +++ b/chromium-clang-r1.patch @@ -0,0 +1,21 @@ +--- a/build/config/compiler/BUILD.gn.orig 2017-10-04 08:50:15.014675936 +0000 ++++ b/build/config/compiler/BUILD.gn 2017-10-04 08:50:32.831024327 +0000 +@@ -429,18 +429,6 @@ + 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=1", +- ] +- } +- + # 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-exclude_unwind_tables.patch b/chromium-exclude_unwind_tables.patch new file mode 100644 index 0000000..6723259 --- /dev/null +++ b/chromium-exclude_unwind_tables.patch @@ -0,0 +1,44 @@ +From 1fc37227522ccd314f82ec893ed15c6129296604 Mon Sep 17 00:00:00 2001 +From: Paul Jensen +Date: Wed, 11 Oct 2017 08:37:34 -0400 +Subject: [PATCH] Move exclude_unwind_tables back into declare_args + +There is desire to adjust this flag manually. + +BUG=762629 +R=thakis@chromium.org + +Change-Id: I3bd134c19270cd1f729b3ea078674e734493d4ab +--- + +diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni +index ad40fd9..50e19a4 100644 +--- a/build/config/compiler/compiler.gni ++++ b/build/config/compiler/compiler.gni +@@ -68,18 +68,18 @@ + + # Whether or not we should use position independent code. + use_pic = true ++ ++ # Exclude unwind tables for official builds as unwinding can be done from ++ # stack dumps produced by Crashpad at a later time "offline" in the crash ++ # server. For unofficial (e.g. development) builds and non-Chrome branded ++ # (e.g. Cronet which doesn't use Crashpad, crbug.com/479283) builds it's ++ # useful to be able to unwind at runtime. ++ exclude_unwind_tables = (is_chrome_branded && is_official_build) || ++ (is_chromecast && !is_cast_desktop_build && !is_debug) + } + + assert(!is_cfi || use_thin_lto, "CFI requires ThinLTO") + +-# Exclude unwind tables for official builds as unwinding can be done from stack +-# dumps produced by Crashpad at a later time "offline" in the crash server. +-# For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet +-# which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able +-# to unwind at runtime. +-exclude_unwind_tables = (is_chrome_branded && is_official_build) || +- (is_chromecast && !is_cast_desktop_build && !is_debug) +- + # If true, optimize for size. Does not affect windows builds. + # Linux & Mac favor speed over size. + # TODO(brettw) it's weird that Mac and desktop Linux are different. We should diff --git a/chromium-gn-bootstrap-r17.patch b/chromium-gn-bootstrap-r17.patch deleted file mode 100644 index 6cfd08d..0000000 --- a/chromium-gn-bootstrap-r17.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- a/tools/gn/bootstrap/bootstrap.py -+++ b/tools/gn/bootstrap/bootstrap.py -@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options): - - write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h', - { -+ 'ENABLE_LOCATION_SOURCE': 'false', - 'ENABLE_PROFILING': 'false', - 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false' - }) -@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options): - - write_gn_ninja(os.path.join(tempdir, 'build.ninja'), - root_gen_dir, options) -- cmd = ['ninja', '-C', tempdir] -+ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err'] - if options.verbose: - cmd.append('-v') - -@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/metrics/bucket_ranges.cc', - 'base/metrics/field_trial.cc', - 'base/metrics/field_trial_param_associator.cc', -+ 'base/metrics/field_trial_params.cc', - 'base/metrics/histogram.cc', - 'base/metrics/histogram_base.cc', - 'base/metrics/histogram_functions.cc', -@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/task_scheduler/scheduler_lock_impl.cc', - 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc', - 'base/task_scheduler/scheduler_worker.cc', -+ 'base/task_scheduler/scheduler_worker_pool.cc', - 'base/task_scheduler/scheduler_worker_pool_impl.cc', - 'base/task_scheduler/scheduler_worker_pool_params.cc', - 'base/task_scheduler/scheduler_worker_stack.cc', -@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/third_party/icu/icu_utf.cc', - 'base/third_party/nspr/prtime.cc', - 'base/threading/post_task_and_reply_impl.cc', -+ 'base/threading/scoped_blocking_call.cc', - 'base/threading/sequence_local_storage_map.cc', - 'base/threading/sequenced_task_runner_handle.cc', - 'base/threading/sequenced_worker_pool.cc', -@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/unguessable_token.cc', - 'base/value_iterators.cc', - 'base/values.cc', -- 'base/value_iterators.cc', - 'base/vlog.cc', - ]) - -@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options): - static_libraries['base']['sources'].extend([ - 'base/memory/shared_memory_handle_posix.cc', - 'base/memory/shared_memory_posix.cc', -- 'base/memory/shared_memory_tracker.cc', - 'base/nix/xdg_util.cc', - 'base/process/internal_linux.cc', - 'base/process/memory_linux.cc', -@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options): - cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args] - check_call(cmd) - -- cmd = ['ninja', '-C', build_dir] -+ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err'] - if options.verbose: - cmd.append('-v') - cmd.append('gn') diff --git a/chromium-libva-r2.patch b/chromium-libva-r2.patch new file mode 100644 index 0000000..855f85d --- /dev/null +++ b/chromium-libva-r2.patch @@ -0,0 +1,35 @@ +--- a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc ++++ b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc +@@ -313,11 +313,11 @@ bool GpuProcessPolicy::PreSandboxHook() + dlopen(I965DrvVideoPath, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); + if (I965HybridDrvVideoPath) + dlopen(I965HybridDrvVideoPath, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); +- dlopen("libva.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); ++ dlopen("libva.so.2", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); + #if defined(USE_OZONE) +- dlopen("libva-drm.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); ++ dlopen("libva-drm.so.2", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); + #elif defined(USE_X11) +- dlopen("libva-x11.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); ++ dlopen("libva-x11.so.2", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); + #endif + } + } +--- a/media/gpu/vaapi_wrapper.cc ++++ b/media/gpu/vaapi_wrapper.cc +@@ -1124,12 +1124,12 @@ void VaapiWrapper::PreSandboxInitializat + bool VaapiWrapper::PostSandboxInitialization() { + StubPathMap paths; + +- paths[kModuleVa].push_back("libva.so.1"); ++ paths[kModuleVa].push_back("libva.so.2"); + + #if defined(USE_X11) +- paths[kModuleVa_x11].push_back("libva-x11.so.1"); ++ paths[kModuleVa_x11].push_back("libva-x11.so.2"); + #elif defined(USE_OZONE) +- paths[kModuleVa_drm].push_back("libva-drm.so.1"); ++ paths[kModuleVa_drm].push_back("libva-drm.so.2"); + #endif + + return InitializeStubs(paths); diff --git a/chromium-libva-version.patch b/chromium-libva-version.patch deleted file mode 100644 index 905315f..0000000 --- a/chromium-libva-version.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/media/gpu/vaapi_wrapper.cc -+++ b/media/gpu/vaapi_wrapper.cc -@@ -1123,12 +1123,12 @@ void VaapiWrapper::PreSandboxInitialization() { - bool VaapiWrapper::PostSandboxInitialization() { - StubPathMap paths; - -- paths[kModuleVa].push_back("libva.so.1"); -+ paths[kModuleVa].push_back("libva.so.2"); - - #if defined(USE_X11) -- paths[kModuleVa_x11].push_back("libva-x11.so.1"); -+ paths[kModuleVa_x11].push_back("libva-x11.so.2"); - #elif defined(USE_OZONE) -- paths[kModuleVa_drm].push_back("libva-drm.so.1"); -+ paths[kModuleVa_drm].push_back("libva-drm.so.2"); - #endif - - return InitializeStubs(paths); diff --git a/chromium-vaapi-r14.patch b/chromium-vaapi-r15.patch similarity index 82% rename from chromium-vaapi-r14.patch rename to chromium-vaapi-r15.patch index 504fee5..b8dff36 100644 --- a/chromium-vaapi-r14.patch +++ b/chromium-vaapi-r15.patch @@ -1,6 +1,6 @@ -From d60511c973e432b97d9929dcfbd77c9af25dbd51 Mon Sep 17 00:00:00 2001 +From 7f29b44224439377592be2b75da0b86d82d8ad6d Mon Sep 17 00:00:00 2001 From: Daniel Charles -Date: Fri, 01 Sep 2017 15:57:43 -0700 +Date: Wed, 18 Oct 2017 17:27:42 -0700 Subject: [PATCH] Enable VAVDA, VAVEA and VAJDA on linux with VAAPI only This patch contains all the changes necessary to use VA-API along with @@ -36,23 +36,11 @@ Change-Id: Ifbbf5c9e5221a8b5733fc6d4d0cf984a1f103171 Signed-off-by: Daniel Charles --- -diff --git a/AUTHORS b/AUTHORS -index 9936ab9..db5e449 100644 ---- a/AUTHORS -+++ b/AUTHORS -@@ -161,6 +161,7 @@ - Daniel Bevenius - Daniel Bomar - Daniel Carvalho Liedke -+Daniel Charles - Daniel Imms - Daniel Johnson - Daniel Lockyer diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc -index e4baad6..9e4a9f5 100644 +index 3555293..4c3115f 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1227,12 +1227,14 @@ +@@ -1246,12 +1246,14 @@ flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, #if BUILDFLAG(ENABLE_WEBRTC) @@ -67,9 +55,9 @@ index e4baad6..9e4a9f5 100644 {"enable-webrtc-hw-h264-encoding", flag_descriptions::kWebrtcHwH264EncodingName, flag_descriptions::kWebrtcHwH264EncodingDescription, kOsAndroid | kOsCrOS, -@@ -1547,6 +1549,13 @@ - flag_descriptions::kMultideviceDescription, kOsCrOS, - FEATURE_VALUE_TYPE(features::kMultidevice)}, +@@ -1557,6 +1559,13 @@ + flag_descriptions::kSpuriousPowerButtonLidAngleChangeDescription, kOsCrOS, + MULTI_VALUE_TYPE(kSpuriousPowerButtonLidAngleChangeChoices)}, #endif // OS_CHROMEOS +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + { @@ -81,7 +69,7 @@ index e4baad6..9e4a9f5 100644 { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, -@@ -1554,6 +1563,7 @@ +@@ -1564,6 +1573,7 @@ kOsMac | kOsWin | kOsCrOS | kOsAndroid, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, @@ -89,7 +77,7 @@ index e4baad6..9e4a9f5 100644 {"mojo-video-encode-accelerator", flag_descriptions::kMojoVideoEncodeAcceleratorName, flag_descriptions::kMojoVideoEncodeAcceleratorDescription, -@@ -2212,12 +2222,17 @@ +@@ -2229,12 +2239,17 @@ FEATURE_VALUE_TYPE(features::kWebVrVsyncAlign)}, #endif // OS_ANDROID #endif // ENABLE_VR @@ -110,10 +98,18 @@ index e4baad6..9e4a9f5 100644 flag_descriptions::kV8CacheOptionsDescription, kOsAll, MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, diff --git a/chrome/browser/chromeos/login/chrome_restart_request.cc b/chrome/browser/chromeos/login/chrome_restart_request.cc -index 761a240..c29be3d 100644 +index 3815e79..d5d3712 100644 --- a/chrome/browser/chromeos/login/chrome_restart_request.cc +++ b/chrome/browser/chromeos/login/chrome_restart_request.cc -@@ -80,8 +80,13 @@ +@@ -19,6 +19,7 @@ + #include "base/sys_info.h" + #include "base/timer/timer.h" + #include "base/values.h" ++#include "build/build_config.h" + #include "cc/base/switches.h" + #include "chrome/browser/browser_process.h" + #include "chrome/browser/chromeos/boot_times_recorder.h" +@@ -79,8 +80,13 @@ ::switches::kDisable2dCanvasImageChromium, ::switches::kDisableAccelerated2dCanvas, ::switches::kDisableAcceleratedJpegDecoding, @@ -127,7 +123,7 @@ index 761a240..c29be3d 100644 ::switches::kDisableBlinkFeatures, ::switches::kDisableCastStreamingHWEncoding, ::switches::kDisableDistanceFieldText, -@@ -168,7 +173,7 @@ +@@ -166,7 +172,7 @@ ::switches::kDisableWebGLImageChromium, ::switches::kEnableWebGLImageChromium, ::switches::kEnableWebVR, @@ -137,7 +133,7 @@ index 761a240..c29be3d 100644 ::switches::kDisableWebRtcHWEncoding, #endif diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc -index 42fc3a2..a0700fe 100644 +index 74e6bc7..ab184a5 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc @@ -14,6 +14,13 @@ @@ -154,7 +150,7 @@ index 42fc3a2..a0700fe 100644 const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode"; const char kAcceleratedVideoDecodeDescription[] = "Hardware-accelerated video decode where available."; -@@ -1412,6 +1419,7 @@ +@@ -1478,6 +1485,7 @@ const char kWebrtcEchoCanceller3Description[] = "Experimental WebRTC echo canceller (AEC3)."; @@ -162,7 +158,7 @@ index 42fc3a2..a0700fe 100644 const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding"; const char kWebrtcHwDecodingDescription[] = "Support in WebRTC for decoding video streams using platform hardware."; -@@ -1419,6 +1427,7 @@ +@@ -1485,6 +1493,7 @@ const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding"; const char kWebrtcHwEncodingDescription[] = "Support in WebRTC for encoding video streams using platform hardware."; @@ -170,7 +166,7 @@ index 42fc3a2..a0700fe 100644 const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding"; const char kWebrtcHwH264EncodingDescription[] = -@@ -2205,14 +2214,16 @@ +@@ -2283,14 +2292,16 @@ // Chrome OS ------------------------------------------------------------------- @@ -189,10 +185,10 @@ index 42fc3a2..a0700fe 100644 const char kAllowTouchpadThreeFingerClickDescription[] = "Enables touchpad three-finger-click as middle button."; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h -index d6fcf7d..3cbc7ad 100644 +index 54a4950..5ace5e0 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -36,6 +36,10 @@ +@@ -37,6 +37,10 @@ extern const char kAccelerated2dCanvasName[]; extern const char kAccelerated2dCanvasDescription[]; @@ -203,7 +199,7 @@ index d6fcf7d..3cbc7ad 100644 extern const char kAcceleratedVideoDecodeName[]; extern const char kAcceleratedVideoDecodeDescription[]; -@@ -1351,13 +1355,17 @@ +@@ -1401,13 +1405,17 @@ #endif // defined(OS_MACOSX) @@ -225,10 +221,10 @@ index d6fcf7d..3cbc7ad 100644 extern const char kAllowTouchpadThreeFingerClickDescription[]; diff --git a/content/browser/gpu/compositor_util.cc b/content/browser/gpu/compositor_util.cc -index 0461556..3dc14164 100644 +index 122282d..bc102a3 100644 --- a/content/browser/gpu/compositor_util.cc +++ b/content/browser/gpu/compositor_util.cc -@@ -104,7 +104,11 @@ +@@ -105,7 +105,11 @@ {"video_decode", manager->IsFeatureBlacklisted( gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE), @@ -240,7 +236,7 @@ index 0461556..3dc14164 100644 "Accelerated video decode has been disabled, either via blacklist," " about:flags or the command line.", true}, -@@ -112,7 +116,11 @@ +@@ -113,7 +117,11 @@ {"video_encode", manager->IsFeatureBlacklisted( gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE), @@ -253,7 +249,7 @@ index 0461556..3dc14164 100644 " about:flags or the command line.", true}, diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc -index 4388cef..f3aa640 100644 +index 51aa672..963da85 100644 --- a/content/browser/gpu/gpu_data_manager_impl_private.cc +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc @@ -717,7 +717,11 @@ @@ -268,7 +264,7 @@ index 4388cef..f3aa640 100644 #if defined(USE_AURA) if (!CanUseGpuBrowserCompositor()) -@@ -751,7 +755,11 @@ +@@ -748,7 +752,11 @@ } if (ShouldDisableAcceleratedVideoDecode(command_line)) { @@ -280,7 +276,7 @@ index 4388cef..f3aa640 100644 } #if defined(USE_OZONE) -@@ -844,7 +852,12 @@ +@@ -826,7 +834,12 @@ const base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); if (!ShouldDisableAcceleratedVideoDecode(command_line) && @@ -294,7 +290,7 @@ index 4388cef..f3aa640 100644 prefs->pepper_accelerated_video_decode_enabled = true; } } -@@ -1043,7 +1056,13 @@ +@@ -1016,7 +1029,13 @@ // to resolve crbug/442039 has been collected. const std::string group_name = base::FieldTrialList::FindFullName( "DisableAcceleratedVideoDecode"); @@ -310,10 +306,10 @@ index 4388cef..f3aa640 100644 return false; } diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc -index e1879c6..f29313f 100644 +index 95d4dff..9b26d3f 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc -@@ -112,7 +112,11 @@ +@@ -111,7 +111,11 @@ // Command-line switches to propagate to the GPU process. static const char* const kSwitchNames[] = { @@ -325,7 +321,7 @@ index e1879c6..f29313f 100644 switches::kDisableBreakpad, switches::kDisableGpuRasterization, switches::kDisableGpuSandbox, -@@ -121,7 +125,7 @@ +@@ -120,7 +124,7 @@ switches::kDisableLogging, switches::kDisableSeccompFilterSandbox, switches::kDisableShaderNameHashing, @@ -353,7 +349,7 @@ index 8ca0ad0..8c489d0 100644 if (params_.use_mojo_service) { base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( diff --git a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc -index 22fbcb8..52b3337 100644 +index 34afec23..ad77490 100644 --- a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc +++ b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc @@ -56,15 +56,21 @@ @@ -383,12 +379,12 @@ index 22fbcb8..52b3337 100644 RecordInitDecodeUMA_Locked(); return; diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 35cb294..c39c975 100644 +index fbe4d21..1be295e 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2488,7 +2488,11 @@ +@@ -2506,7 +2506,11 @@ + switches::kDefaultTileHeight, switches::kDisable2dCanvasImageChromium, - switches::kDisable3DAPIs, switches::kDisableAcceleratedJpegDecoding, +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + switches::kEnableAcceleratedVideo, @@ -397,9 +393,9 @@ index 35cb294..c39c975 100644 +#endif switches::kDisableBackgroundTimerThrottling, switches::kDisableBreakpad, - switches::kDisablePreferCompositingToLCDText, -@@ -2641,8 +2645,10 @@ - switches::kEnablePepperTesting, + switches::kDisableBrowserSideNavigation, +@@ -2660,8 +2664,10 @@ + switches::kDisableMojoRenderer, #endif #if BUILDFLAG(ENABLE_WEBRTC) +#if !defined(OS_LINUX) || defined(OS_CHROMEOS) @@ -427,93 +423,6 @@ index 3d815a2..2c96048 100644 } private: -diff --git a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc -index ac5dc5a..ed6196c 100644 ---- a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc -+++ b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc -@@ -57,22 +57,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(__arm__) || defined(__aarch64__) - return true; -@@ -97,21 +81,14 @@ - #endif - } - --bool IsAcceleratedVaapiVideoEncodeEnabled() { -- bool accelerated_encode_enabled = false; --#if defined(OS_CHROMEOS) -- const base::CommandLine& command_line = -- *base::CommandLine::ForCurrentProcess(); -- accelerated_encode_enabled = -- !command_line.HasSwitch(switches::kDisableVaapiAcceleratedVideoEncode); --#endif -- return accelerated_encode_enabled; --} -- - bool IsAcceleratedVideoDecodeEnabled() { - const base::CommandLine& command_line = - *base::CommandLine::ForCurrentProcess(); -+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) -+ return command_line.HasSwitch(switches::kEnableAcceleratedVideo); -+#else - return !command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode); -+#endif - } - - intptr_t GpuSIGSYS_Handler(const struct arch_seccomp_data& args, -@@ -295,33 +272,6 @@ - GpuBrokerProcessPolicy::Create, - std::vector()); // No extra files in whitelist. - -- if (IsArchitectureX86_64() || IsArchitectureI386()) { -- // Accelerated video dlopen()'s some shared objects -- // inside the sandbox, so preload them now. -- if (IsAcceleratedVaapiVideoEncodeEnabled() || -- IsAcceleratedVideoDecodeEnabled()) { -- const char* I965DrvVideoPath = NULL; -- const char* I965HybridDrvVideoPath = NULL; -- -- if (IsArchitectureX86_64()) { -- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so"; -- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so"; -- } else if (IsArchitectureI386()) { -- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so"; -- } -- -- dlopen(I965DrvVideoPath, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); -- if (I965HybridDrvVideoPath) -- dlopen(I965HybridDrvVideoPath, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); -- dlopen("libva.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); --#if defined(USE_OZONE) -- dlopen("libva-drm.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); --#elif defined(USE_X11) -- dlopen("libva-x11.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); --#endif -- } -- } -- - return true; - } - diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn index a5424bb..b68b802 100644 --- a/content/gpu/BUILD.gn @@ -536,10 +445,10 @@ index a5424bb..b68b802 100644 + } } diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc -index 6a1de90..9a84e9e 100644 +index 556cf00..730f4ae 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc -@@ -245,7 +245,7 @@ +@@ -254,7 +254,7 @@ // Initializes StatisticsRecorder which tracks UMA histograms. base::StatisticsRecorder::Initialize(); @@ -548,8 +457,8 @@ index 6a1de90..9a84e9e 100644 // Set thread priority before sandbox initialization. base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); #endif -@@ -275,7 +275,7 @@ - GetContentClient()->SetGpuInfo(gpu_init.gpu_info()); +@@ -283,7 +283,7 @@ + GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; -#if defined(OS_ANDROID) || defined(OS_CHROMEOS) @@ -558,10 +467,18 @@ index 6a1de90..9a84e9e 100644 #endif diff --git a/content/public/browser/gpu_utils.cc b/content/public/browser/gpu_utils.cc -index 7d926da..70afc33 100644 +index 6aafb06..d4ddd8d 100644 --- a/content/public/browser/gpu_utils.cc +++ b/content/public/browser/gpu_utils.cc -@@ -57,12 +57,19 @@ +@@ -7,6 +7,7 @@ + #include "base/command_line.h" + #include "base/single_thread_task_runner.h" + #include "base/strings/string_number_conversions.h" ++#include "build/build_config.h" + #include "content/browser/gpu/gpu_process_host.h" + #include "content/public/common/content_features.h" + #include "content/public/common/content_switches.h" +@@ -57,12 +58,19 @@ gpu_preferences.ui_prioritize_in_gpu_process = command_line->HasSwitch(switches::kUIPrioritizeInGpuProcess); gpu_preferences.disable_accelerated_video_decode = @@ -584,10 +501,10 @@ index 7d926da..70afc33 100644 command_line->HasSwitch(switches::kDisableWebRtcHWEncoding); #endif diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc -index 78041e2..60f6597 100644 +index 4e699d1..3a7a2b7 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc -@@ -88,12 +88,21 @@ +@@ -89,12 +89,21 @@ // Disable gpu-accelerated 2d canvas. const char kDisableAccelerated2dCanvas[] = "disable-accelerated-2d-canvas"; @@ -610,7 +527,7 @@ index 78041e2..60f6597 100644 // Disables hardware acceleration of video decode, where available. const char kDisableAcceleratedVideoDecode[] = "disable-accelerated-video-decode"; -@@ -933,11 +942,13 @@ +@@ -932,11 +941,13 @@ // ignores this switch on its stable and beta channels. const char kDisableWebRtcEncryption[] = "disable-webrtc-encryption"; @@ -625,7 +542,7 @@ index 78041e2..60f6597 100644 // Enables negotiation of GCM cipher suites from RFC 7714 for SRTP in WebRTC. // See https://tools.ietf.org/html/rfc7714 for further information. diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h -index 9451a76..275b5ed 100644 +index 2704924..67d00bb 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h @@ -35,7 +35,11 @@ @@ -640,7 +557,7 @@ index 9451a76..275b5ed 100644 CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[]; CONTENT_EXPORT extern const char kDisableAudioSupportForDesktopShare[]; extern const char kDisableBackingStoreLimit[]; -@@ -107,6 +111,9 @@ +@@ -109,6 +113,9 @@ CONTENT_EXPORT extern const char kDomAutomationController[]; extern const char kDisable2dCanvasClipAntialiasing[]; CONTENT_EXPORT extern const char kDumpBlinkRuntimeCallStats[]; @@ -648,9 +565,9 @@ index 9451a76..275b5ed 100644 +CONTENT_EXPORT extern const char kEnableAcceleratedVideo[]; +#endif CONTENT_EXPORT extern const char kEnableAggressiveDOMStorageFlushing[]; + CONTENT_EXPORT extern const char kEnableAutomation[]; CONTENT_EXPORT extern const char kEnablePreferCompositingToLCDText[]; - CONTENT_EXPORT extern const char kEnableBlinkFeatures[]; -@@ -261,8 +268,10 @@ +@@ -256,8 +263,10 @@ #if BUILDFLAG(ENABLE_WEBRTC) CONTENT_EXPORT extern const char kDisableWebRtcEncryption[]; @@ -662,10 +579,10 @@ index 9451a76..275b5ed 100644 CONTENT_EXPORT extern const char kEnableWebRtcSrtpEncryptedHeaders[]; CONTENT_EXPORT extern const char kEnableWebRtcStunOrigin[]; diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc -index 9d05ac0..69555fa 100644 +index 017056c..825bdce 100644 --- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc +++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc -@@ -240,10 +240,19 @@ +@@ -239,10 +239,19 @@ const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled()) { @@ -687,10 +604,10 @@ index 9d05ac0..69555fa 100644 } } diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc -index 4bbfbf6..e85b5c6 100644 +index dc01117..2f9ee03 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1457,7 +1457,11 @@ +@@ -1456,7 +1456,11 @@ scoped_refptr media_task_runner = GetMediaThreadTaskRunner(); const bool enable_video_accelerator = @@ -703,7 +620,7 @@ index 4bbfbf6..e85b5c6 100644 #if defined(OS_MACOSX) || defined(OS_LINUX) !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) && diff --git a/gpu/command_buffer/service/gpu_preferences.h b/gpu/command_buffer/service/gpu_preferences.h -index 8dd0ff1..d6e5c59 100644 +index b37c2cc..a721eb7 100644 --- a/gpu/command_buffer/service/gpu_preferences.h +++ b/gpu/command_buffer/service/gpu_preferences.h @@ -50,7 +50,7 @@ @@ -716,10 +633,10 @@ index 8dd0ff1..d6e5c59 100644 bool disable_vaapi_accelerated_video_encode = false; #endif diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json -index 5edb5636..069ae95 100644 +index 1289a55..22e11e5 100644 --- a/gpu/config/software_rendering_list.json +++ b/gpu/config/software_rendering_list.json -@@ -371,17 +371,6 @@ +@@ -374,17 +374,6 @@ ] }, { @@ -738,10 +655,10 @@ index 5edb5636..069ae95 100644 "description": "Disable VMware software renderer on older Mesa", "cr_bugs": [145531, 332596, 571899, 629434], diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn -index 0362601..ebed982 100644 +index 490722c..1cda2fb 100644 --- a/media/filters/BUILD.gn +++ b/media/filters/BUILD.gn -@@ -182,7 +182,7 @@ +@@ -189,7 +189,7 @@ deps += [ "//media/base/android" ] } @@ -751,7 +668,7 @@ index 0362601..ebed982 100644 "h264_bitstream_buffer.cc", "h264_bitstream_buffer.h", diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn -index 613e830..a886955 100644 +index 729c6fa..4878251 100644 --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn @@ -24,6 +24,14 @@ @@ -780,10 +697,10 @@ index 613e830..a886955 100644 if (is_win) { diff --git a/media/gpu/gpu_video_decode_accelerator_factory.cc b/media/gpu/gpu_video_decode_accelerator_factory.cc -index 22f8f4a..ec6615d 100644 +index 2cee490..de02414 100644 --- a/media/gpu/gpu_video_decode_accelerator_factory.cc +++ b/media/gpu/gpu_video_decode_accelerator_factory.cc -@@ -86,6 +86,7 @@ +@@ -87,6 +87,7 @@ // profile (instead of calculating a superset). // TODO(posciak,henryhsu): improve this so that we choose a superset of // resolutions and other supported profile parameters. @@ -792,10 +709,10 @@ index 22f8f4a..ec6615d 100644 capabilities.supported_profiles = DXVAVideoDecodeAccelerator::GetSupportedProfiles(gpu_preferences, diff --git a/media/gpu/vaapi_wrapper.cc b/media/gpu/vaapi_wrapper.cc -index 97ed997..14511cb 100644 +index 1e72893..6495642 100644 --- a/media/gpu/vaapi_wrapper.cc +++ b/media/gpu/vaapi_wrapper.cc -@@ -1116,6 +1116,7 @@ +@@ -1117,6 +1117,7 @@ if (drm_file.IsValid()) GetDisplayState()->SetDrmFd(drm_file.GetPlatformFile()); #endif @@ -803,25 +720,3 @@ index 97ed997..14511cb 100644 } // static -diff --git a/services/ui/gpu/gpu_main.cc b/services/ui/gpu/gpu_main.cc -index 0916374..cabf058 100644 ---- a/services/ui/gpu/gpu_main.cc -+++ b/services/ui/gpu/gpu_main.cc -@@ -79,7 +79,7 @@ - thread_options.message_loop_type = base::MessageLoop::TYPE_IO; - #endif - --#if defined(OS_ANDROID) || defined(OS_CHROMEOS) -+#if defined(OS_LINUX) - thread_options.priority = base::ThreadPriority::DISPLAY; - #endif - CHECK(gpu_thread_.StartWithOptions(thread_options)); -@@ -89,7 +89,7 @@ - // should be possible to use |main_task_runner_| for doing IO tasks. - thread_options = base::Thread::Options(base::MessageLoop::TYPE_IO, 0); - thread_options.priority = base::ThreadPriority::NORMAL; --#if defined(OS_ANDROID) || defined(OS_CHROMEOS) -+#if defined(OS_LINUX) - // TODO(reveman): Remove this in favor of setting it explicitly for each type - // of process. - thread_options.priority = base::ThreadPriority::DISPLAY; diff --git a/chromium-webrtc-r0.patch b/chromium-webrtc-r0.patch new file mode 100644 index 0000000..e14b185 --- /dev/null +++ b/chromium-webrtc-r0.patch @@ -0,0 +1,34 @@ +From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Fri, 13 Oct 2017 15:49:32 +0200 +Subject: [PATCH] IWYU: Include math.h for round(3). + +math.h was being implicitly included, which can break the build with +alternative libc implementations. + +Bug: None +Change-Id: I969b320b65d0f44abb33d3e1036cfbcb859a4952 +Reviewed-on: https://webrtc-review.googlesource.com/9384 +Reviewed-by: Tommi +Commit-Queue: Raphael Kubo da Costa (rakuco) +Cr-Commit-Position: refs/heads/master@{#20292} +--- + p2p/base/port.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/p2p/base/port.cc b/p2p/base/port.cc +index a1b478d11..81aa0aadb 100644 +--- a/third_party/webrtc/p2p/base/port.cc ++++ b/third_party/webrtc/p2p/base/port.cc +@@ -10,6 +10,8 @@ + + #include "p2p/base/port.h" + ++#include ++ + #include + #include + +-- +2.15.0.rc2 + diff --git a/crc32c-string-view-check.patch b/crc32c-string-view-check.patch deleted file mode 100644 index 9f53ec0..0000000 --- a/crc32c-string-view-check.patch +++ /dev/null @@ -1,74 +0,0 @@ -From d0f929a5db87cb34d03afb0d8e8bfc95b8f786e3 Mon Sep 17 00:00:00 2001 -From: Victor Costan -Date: Mon, 11 Sep 2017 13:18:27 -0700 -Subject: [PATCH] More conservative check for availability. (#4) - -has_include() does not imply that the header can be -included and will work. The assumption fails on MSVC and libc++ [1, 2]. -Conversely, checking that __cplusplus > 201402L is not sufficient on its -own either, as the toolchain on Mac OS 10.12 passes that check but does -not contain a header. - -[1] https://crbug.com/759349 -[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79433 ---- - include/crc32c/crc32c.h | 10 +++------- - src/crc32c_unittest.cc | 6 ++---- - 2 files changed, 5 insertions(+), 11 deletions(-) - -diff --git a/include/crc32c/crc32c.h b/include/crc32c/crc32c.h -index 9f1973a..8ecab0d 100644 ---- a/include/crc32c/crc32c.h -+++ b/include/crc32c/crc32c.h -@@ -33,22 +33,18 @@ inline uint32_t Crc32c(const std::string& string) { - string.size()); - } - --#if defined(__has_include) -+#if __cplusplus > 201402L - #if __has_include() --// Visual Studio provides a header even in C++11 mode. When --// included, the header issues an #error. (C1189) --#if !defined(_MSC_VER) || __cplusplus >= 201703L - #include - --// Comptues the CRC32C of the bytes in the string_view. -+// Computes the CRC32C of the bytes in the string_view. - inline uint32_t Crc32c(const std::string_view& string_view) { - return Crc32c(reinterpret_cast(string_view.data()), - string_view.size()); - } - --#endif // !defined(_MSC_VER) || __cplusplus >= 201703L - #endif // __has_include() --#endif // defined(__has_include) -+#endif // __cplusplus > 201402L - - } // namespace crc32c - -diff --git a/src/crc32c_unittest.cc b/src/crc32c_unittest.cc -index 7a9c765..69babb3 100644 ---- a/src/crc32c_unittest.cc -+++ b/src/crc32c_unittest.cc -@@ -95,9 +95,8 @@ TEST(CRC32CTest, Crc32cStdString) { - EXPECT_EQ(static_cast(0x113fdb5c), crc32c::Crc32c(buf)); - } - --#if defined(__has_include) -+#if __cplusplus > 201402L - #if __has_include() --#if !defined(_MSC_VER) || __cplusplus >= 201703L - - TEST(CRC32CTest, Crc32cStdStringView) { - uint8_t buf[32]; -@@ -118,9 +117,8 @@ TEST(CRC32CTest, Crc32cStdStringView) { - EXPECT_EQ(static_cast(0x113fdb5c), crc32c::Crc32c(view)); - } - --#endif // !defined(_MSC_VER) || __cplusplus >= 201703L - #endif // __has_include() --#endif // defined(__has_include) -+#endif // __cplusplus > 201402L - - #define TESTED_EXTEND Extend - #include "./crc32c_extend_unittests.h" diff --git a/inox.desktop b/inox.desktop deleted file mode 100644 index 5bfb5ea..0000000 --- a/inox.desktop +++ /dev/null @@ -1,112 +0,0 @@ -[Desktop Entry] -Name=Inox -# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. -# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. -GenericName=Web Browser -GenericName[ar]=متصفح الشبكة -GenericName[bg]=Уеб браузър -GenericName[ca]=Navegador web -GenericName[cs]=WWW prohlížeč -GenericName[da]=Browser -GenericName[de]=Web-Browser -GenericName[el]=Περιηγητής ιστού -GenericName[en_GB]=Web Browser -GenericName[es]=Navegador web -GenericName[et]=Veebibrauser -GenericName[fi]=WWW-selain -GenericName[fr]=Navigateur Web -GenericName[gu]=વેબ બ્રાઉઝર -GenericName[he]=דפדפן אינטרנט -GenericName[hi]=वेब ब्राउज़र -GenericName[hu]=Webböngésző -GenericName[it]=Browser Web -GenericName[ja]=ウェブブラウザ -GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ -GenericName[ko]=웹 브라우저 -GenericName[lt]=Žiniatinklio naršyklė -GenericName[lv]=Tīmekļa pārlūks -GenericName[ml]=വെബ് ബ്രൌസര്‍ -GenericName[mr]=वेब ब्राऊजर -GenericName[nb]=Nettleser -GenericName[nl]=Webbrowser -GenericName[pl]=Przeglądarka WWW -GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador da Internet -GenericName[ro]=Navigator de Internet -GenericName[ru]=Веб-браузер -GenericName[sl]=Spletni brskalnik -GenericName[sv]=Webbläsare -GenericName[ta]=இணைய உலாவி -GenericName[th]=เว็บเบราว์เซอร์ -GenericName[tr]=Web Tarayıcı -GenericName[uk]=Навігатор Тенет -GenericName[zh_CN]=网页浏览器 -GenericName[zh_HK]=網頁瀏覽器 -GenericName[zh_TW]=網頁瀏覽器 -# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[fil]=Web Browser -GenericName[hr]=Web preglednik -GenericName[id]=Browser Web -GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର -GenericName[sk]=WWW prehliadač -GenericName[sr]=Интернет прегледник -GenericName[te]=మహాతల అన్వేషి -GenericName[vi]=Bộ duyệt Web -# Gnome and KDE 3 uses Comment. -Comment=Access the Internet -Comment[ar]=الدخول إلى الإنترنت -Comment[bg]=Достъп до интернет -Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন -Comment[ca]=Accedeix a Internet -Comment[cs]=Přístup k internetu -Comment[da]=Få adgang til internettet -Comment[de]=Internetzugriff -Comment[el]=Πρόσβαση στο Διαδίκτυο -Comment[en_GB]=Access the Internet -Comment[es]=Accede a Internet. -Comment[et]=Pääs Internetti -Comment[fi]=Käytä internetiä -Comment[fil]=I-access ang Internet -Comment[fr]=Accéder à Internet -Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો -Comment[he]=גישה אל האינטרנט -Comment[hi]=इंटरनेट तक पहुंच स्थापित करें -Comment[hr]=Pristup Internetu -Comment[hu]=Internetelérés -Comment[id]=Akses Internet -Comment[it]=Accesso a Internet -Comment[ja]=インターネットにアクセス -Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ -Comment[ko]=인터넷 연결 -Comment[lt]=Interneto prieiga -Comment[lv]=Piekļūt internetam -Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക -Comment[mr]=इंटरनेटमध्ये प्रवेश करा -Comment[nb]=Gå til Internett -Comment[nl]=Verbinding maken met internet -Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ -Comment[pl]=Skorzystaj z internetu -Comment[pt]=Aceder à Internet -Comment[pt_BR]=Acessar a internet -Comment[ro]=Accesaţi Internetul -Comment[ru]=Доступ в Интернет -Comment[sk]=Prístup do siete Internet -Comment[sl]=Dostop do interneta -Comment[sr]=Приступите Интернету -Comment[sv]=Gå ut på Internet -Comment[ta]=இணையத்தை அணுகுதல் -Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి -Comment[th]=เข้าถึงอินเทอร์เน็ต -Comment[tr]=İnternet'e erişin -Comment[uk]=Доступ до Інтернету -Comment[vi]=Truy cập Internet -Comment[zh_CN]=访问互联网 -Comment[zh_HK]=連線到網際網路 -Comment[zh_TW]=連線到網際網路 -Exec=inox %U -Terminal=false -Icon=inox -Type=Application -Categories=GTK;Network;WebBrowser; -MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;