diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index 3a3a6e369..62be703ca 100644 --- a/CHROMIUM_BUILD_COMPATIBILITY.txt +++ b/CHROMIUM_BUILD_COMPATIBILITY.txt @@ -7,5 +7,5 @@ # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding { - 'chromium_checkout': 'refs/tags/69.0.3453.0', + 'chromium_checkout': 'refs/tags/69.0.3464.0', } diff --git a/libcef/browser/browser_host_impl.cc b/libcef/browser/browser_host_impl.cc index 97cd97813..5f5f16fee 100644 --- a/libcef/browser/browser_host_impl.cc +++ b/libcef/browser/browser_host_impl.cc @@ -227,7 +227,7 @@ bool CefBrowserHost::CreateBrowser( // Create the browser on the UI thread. CreateBrowserHelper* helper = new CreateBrowserHelper( windowInfo, client, url, settings, request_context); - CEF_POST_TASK(CEF_UIT, base::Bind(CreateBrowserWithHelper, helper)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(CreateBrowserWithHelper, helper)); return true; } @@ -268,8 +268,7 @@ CefRefPtr CefBrowserHost::CreateBrowserSync( create_params.window_info.reset(new CefWindowInfo(windowInfo)); create_params.client = client; create_params.url = GURL(url.ToString()); - if (!url.empty() && - !create_params.url.is_valid() && + if (!url.empty() && !create_params.url.is_valid() && !create_params.url.has_scheme()) { std::string new_url = std::string("http://") + url.ToString(); create_params.url = GURL(new_url); @@ -621,8 +620,8 @@ void CefBrowserHostImpl::CloseBrowser(bool force_close) { CloseContents(contents); } } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::CloseBrowser, this, - force_close)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::CloseBrowser, + this, force_close)); } } @@ -650,7 +649,7 @@ bool CefBrowserHostImpl::TryCloseBrowser() { void CefBrowserHostImpl::SetFocus(bool focus) { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::SetFocus, this, focus)); + base::BindOnce(&CefBrowserHostImpl::SetFocus, this, focus)); return; } @@ -704,8 +703,8 @@ void CefBrowserHostImpl::SetZoomLevel(double zoomLevel) { if (web_contents()) content::HostZoomMap::SetZoomLevel(web_contents(), zoomLevel); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::SetZoomLevel, this, - zoomLevel)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::SetZoomLevel, + this, zoomLevel)); } } @@ -718,9 +717,9 @@ void CefBrowserHostImpl::RunFileDialog( CefRefPtr callback) { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::RunFileDialog, this, mode, - title, default_file_path, accept_filters, - selected_accept_filter, callback)); + base::BindOnce(&CefBrowserHostImpl::RunFileDialog, this, mode, + title, default_file_path, accept_filters, + selected_accept_filter, callback)); return; } @@ -732,8 +731,8 @@ void CefBrowserHostImpl::RunFileDialog( void CefBrowserHostImpl::StartDownload(const CefString& url) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::StartDownload, this, url)); + CEF_POST_TASK( + CEF_UIT, base::BindOnce(&CefBrowserHostImpl::StartDownload, this, url)); return; } @@ -767,9 +766,10 @@ void CefBrowserHostImpl::DownloadImage( bool bypass_cache, CefRefPtr callback) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::DownloadImage, this, - image_url, is_favicon, max_image_size, - bypass_cache, callback)); + CEF_POST_TASK( + CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::DownloadImage, this, image_url, + is_favicon, max_image_size, bypass_cache, callback)); return; } @@ -785,7 +785,7 @@ void CefBrowserHostImpl::DownloadImage( web_contents()->DownloadImage( gurl, is_favicon, max_image_size * gfx::ImageSkia::GetMaxSupportedScale(), - bypass_cache, base::Bind(OnDownloadImage, max_image_size, callback)); + bypass_cache, base::BindOnce(OnDownloadImage, max_image_size, callback)); } void CefBrowserHostImpl::Print() { @@ -796,7 +796,7 @@ void CefBrowserHostImpl::Print() { printing::CefPrintViewManager::FromWebContents(actionable_contents) ->PrintNow(actionable_contents->GetRenderViewHost()->GetMainFrame()); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::Print, this)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::Print, this)); } } @@ -817,8 +817,8 @@ void CefBrowserHostImpl::PrintToPDF(const CefString& path, ->PrintToPDF(actionable_contents->GetMainFrame(), base::FilePath(path), settings, pdf_callback); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::PrintToPDF, this, - path, settings, callback)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::PrintToPDF, this, + path, settings, callback)); } } @@ -846,8 +846,8 @@ void CefBrowserHostImpl::Find(int identifier, web_contents()->Find(identifier, searchText, options); } else { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::Find, this, identifier, - searchText, forward, matchCase, findNext)); + base::BindOnce(&CefBrowserHostImpl::Find, this, identifier, + searchText, forward, matchCase, findNext)); } } @@ -861,8 +861,8 @@ void CefBrowserHostImpl::StopFinding(bool clearSelection) { : content::STOP_FIND_ACTION_KEEP_SELECTION; web_contents()->StopFinding(action); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::StopFinding, this, - clearSelection)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::StopFinding, + this, clearSelection)); } } @@ -890,7 +890,7 @@ void CefBrowserHostImpl::ShowDevTools(const CefWindowInfo& windowInfo, } else { ShowDevToolsHelper* helper = new ShowDevToolsHelper( this, windowInfo, client, settings, inspect_element_at); - CEF_POST_TASK(CEF_UIT, base::Bind(ShowDevToolsWithHelper, helper)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(ShowDevToolsWithHelper, helper)); } } @@ -901,7 +901,7 @@ void CefBrowserHostImpl::CloseDevTools() { devtools_frontend_->Close(); } else { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::CloseDevTools, this)); + base::BindOnce(&CefBrowserHostImpl::CloseDevTools, this)); } } @@ -922,8 +922,9 @@ void CefBrowserHostImpl::GetNavigationEntries( return; if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::GetNavigationEntries, - this, visitor, current_only)); + CEF_POST_TASK( + CEF_UIT, base::BindOnce(&CefBrowserHostImpl::GetNavigationEntries, this, + visitor, current_only)); return; } @@ -979,8 +980,8 @@ void CefBrowserHostImpl::SetAccessibilityState( if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::SetAccessibilityState, this, - accessibility_state)); + base::BindOnce(&CefBrowserHostImpl::SetAccessibilityState, + this, accessibility_state)); return; } @@ -1003,8 +1004,9 @@ void CefBrowserHostImpl::SetAutoResizeEnabled(bool enabled, const CefSize& min_size, const CefSize& max_size) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::SetAutoResizeEnabled, - this, enabled, min_size, max_size)); + CEF_POST_TASK( + CEF_UIT, base::BindOnce(&CefBrowserHostImpl::SetAutoResizeEnabled, this, + enabled, min_size, max_size)); return; } @@ -1045,8 +1047,9 @@ bool CefBrowserHostImpl::IsWindowRenderingDisabled() { void CefBrowserHostImpl::ReplaceMisspelling(const CefString& word) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::ReplaceMisspelling, - this, word)); + CEF_POST_TASK( + CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::ReplaceMisspelling, this, word)); return; } @@ -1056,8 +1059,9 @@ void CefBrowserHostImpl::ReplaceMisspelling(const CefString& word) { void CefBrowserHostImpl::AddWordToDictionary(const CefString& word) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::AddWordToDictionary, - this, word)); + CEF_POST_TASK( + CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::AddWordToDictionary, this, word)); return; } @@ -1079,7 +1083,8 @@ void CefBrowserHostImpl::AddWordToDictionary(const CefString& word) { void CefBrowserHostImpl::WasResized() { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::WasResized, this)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::WasResized, this)); return; } @@ -1097,7 +1102,7 @@ void CefBrowserHostImpl::WasHidden(bool hidden) { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHost::WasHidden, this, hidden)); + base::BindOnce(&CefBrowserHost::WasHidden, this, hidden)); return; } @@ -1116,7 +1121,7 @@ void CefBrowserHostImpl::NotifyScreenInfoChanged() { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK( CEF_UIT, - base::Bind(&CefBrowserHostImpl::NotifyScreenInfoChanged, this)); + base::BindOnce(&CefBrowserHostImpl::NotifyScreenInfoChanged, this)); return; } @@ -1134,7 +1139,7 @@ void CefBrowserHostImpl::Invalidate(PaintElementType type) { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::Invalidate, this, type)); + base::BindOnce(&CefBrowserHostImpl::Invalidate, this, type)); return; } @@ -1146,8 +1151,8 @@ void CefBrowserHostImpl::Invalidate(PaintElementType type) { void CefBrowserHostImpl::SendKeyEvent(const CefKeyEvent& event) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::SendKeyEvent, this, event)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::SendKeyEvent, + this, event)); return; } @@ -1166,8 +1171,9 @@ void CefBrowserHostImpl::SendMouseClickEvent(const CefMouseEvent& event, bool mouseUp, int clickCount) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::SendMouseClickEvent, - this, event, type, mouseUp, clickCount)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::SendMouseClickEvent, this, + event, type, mouseUp, clickCount)); return; } @@ -1183,8 +1189,9 @@ void CefBrowserHostImpl::SendMouseClickEvent(const CefMouseEvent& event, void CefBrowserHostImpl::SendMouseMoveEvent(const CefMouseEvent& event, bool mouseLeave) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::SendMouseMoveEvent, - this, event, mouseLeave)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::SendMouseMoveEvent, this, + event, mouseLeave)); return; } @@ -1200,8 +1207,9 @@ void CefBrowserHostImpl::SendMouseWheelEvent(const CefMouseEvent& event, int deltaX, int deltaY) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::SendMouseWheelEvent, - this, event, deltaX, deltaY)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::SendMouseWheelEvent, this, + event, deltaX, deltaY)); return; } @@ -1219,8 +1227,9 @@ void CefBrowserHostImpl::SendFocusEvent(bool setFocus) { void CefBrowserHostImpl::SendCaptureLostEvent() { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::SendCaptureLostEvent, this)); + CEF_POST_TASK( + CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::SendCaptureLostEvent, this)); return; } @@ -1235,7 +1244,7 @@ void CefBrowserHostImpl::NotifyMoveOrResizeStarted() { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK( CEF_UIT, - base::Bind(&CefBrowserHostImpl::NotifyMoveOrResizeStarted, this)); + base::BindOnce(&CefBrowserHostImpl::NotifyMoveOrResizeStarted, this)); return; } @@ -1259,8 +1268,8 @@ int CefBrowserHostImpl::GetWindowlessFrameRate() { void CefBrowserHostImpl::SetWindowlessFrameRate(int frame_rate) { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::SetWindowlessFrameRate, this, - frame_rate)); + base::BindOnce(&CefBrowserHostImpl::SetWindowlessFrameRate, + this, frame_rate)); return; } @@ -1284,16 +1293,17 @@ bool CefBrowserHostImpl::CanGoBack() { void CefBrowserHostImpl::GoBack() { if (CEF_CURRENTLY_ON_UIT()) { - if (frame_destruction_pending_) { - // Try again after frame destruction has completed. - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::GoBack, this)); + if (navigation_locked()) { + // Try again after the lock has been released. + set_pending_navigation_action( + base::BindOnce(&CefBrowserHostImpl::GoBack, this)); return; } if (web_contents() && web_contents()->GetController().CanGoBack()) web_contents()->GetController().GoBack(); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::GoBack, this)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::GoBack, this)); } } @@ -1304,16 +1314,18 @@ bool CefBrowserHostImpl::CanGoForward() { void CefBrowserHostImpl::GoForward() { if (CEF_CURRENTLY_ON_UIT()) { - if (frame_destruction_pending_) { - // Try again after frame destruction has completed. - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::GoForward, this)); + if (navigation_locked()) { + // Try again after the lock has been released. + set_pending_navigation_action( + base::BindOnce(&CefBrowserHostImpl::GoForward, this)); return; } if (web_contents() && web_contents()->GetController().CanGoForward()) web_contents()->GetController().GoForward(); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::GoForward, this)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::GoForward, this)); } } @@ -1324,25 +1336,26 @@ bool CefBrowserHostImpl::IsLoading() { void CefBrowserHostImpl::Reload() { if (CEF_CURRENTLY_ON_UIT()) { - if (frame_destruction_pending_) { - // Try again after frame destruction has completed. - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::Reload, this)); + if (navigation_locked()) { + // Try again after the lock has been released. + set_pending_navigation_action( + base::BindOnce(&CefBrowserHostImpl::Reload, this)); return; } if (web_contents()) web_contents()->GetController().Reload(content::ReloadType::NORMAL, true); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::Reload, this)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::Reload, this)); } } void CefBrowserHostImpl::ReloadIgnoreCache() { if (CEF_CURRENTLY_ON_UIT()) { - if (frame_destruction_pending_) { - // Try again after frame destruction has completed. - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::ReloadIgnoreCache, this)); + if (navigation_locked()) { + // Try again after the lock has been released. + set_pending_navigation_action( + base::BindOnce(&CefBrowserHostImpl::ReloadIgnoreCache, this)); return; } @@ -1352,22 +1365,23 @@ void CefBrowserHostImpl::ReloadIgnoreCache() { } } else { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::ReloadIgnoreCache, this)); + base::BindOnce(&CefBrowserHostImpl::ReloadIgnoreCache, this)); } } void CefBrowserHostImpl::StopLoad() { if (CEF_CURRENTLY_ON_UIT()) { - if (frame_destruction_pending_) { - // Try again after frame destruction has completed. - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::StopLoad, this)); + if (navigation_locked()) { + // Try again after the lock has been released. + set_pending_navigation_action( + base::BindOnce(&CefBrowserHostImpl::StopLoad, this)); return; } if (web_contents()) web_contents()->Stop(); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::StopLoad, this)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::StopLoad, this)); } } @@ -1656,11 +1670,11 @@ void CefBrowserHostImpl::LoadURL(int64 frame_id, if (frame_id == CefFrameHostImpl::kMainFrameId) { // Go through the navigation controller. if (CEF_CURRENTLY_ON_UIT()) { - if (frame_destruction_pending_) { - // Try again after frame destruction has completed. - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::LoadURL, this, frame_id, - url, referrer, transition, extra_headers)); + if (navigation_locked()) { + // Try again after the lock has been released. + set_pending_navigation_action( + base::BindOnce(&CefBrowserHostImpl::LoadURL, this, frame_id, url, + referrer, transition, extra_headers)); return; } @@ -1684,9 +1698,9 @@ void CefBrowserHostImpl::LoadURL(int64 frame_id, OnSetFocus(FOCUS_SOURCE_NAVIGATION); } } else { - CEF_POST_TASK( - CEF_UIT, base::Bind(&CefBrowserHostImpl::LoadURL, this, frame_id, url, - referrer, transition, extra_headers)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::LoadURL, this, frame_id, + url, referrer, transition, extra_headers)); } } else { CefNavigateParams params(GURL(url), transition); @@ -1745,8 +1759,9 @@ void CefBrowserHostImpl::SendCommand( Send(new CefMsg_Request(MSG_ROUTING_NONE, params)); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::SendCommand, this, - frame_id, command, responseHandler)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::SendCommand, this, + frame_id, command, responseHandler)); } } @@ -1786,9 +1801,10 @@ void CefBrowserHostImpl::SendCode( Send(new CefMsg_Request(MSG_ROUTING_NONE, params)); } else { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::SendCode, this, - frame_id, is_javascript, code, script_url, - script_start_line, responseHandler)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::SendCode, this, frame_id, + is_javascript, code, script_url, + script_start_line, responseHandler)); } } @@ -1800,7 +1816,7 @@ void CefBrowserHostImpl::ExecuteJavaScriptWithUserGestureForTests( if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK( CEF_UIT, - base::Bind( + base::BindOnce( &CefBrowserHostImpl::ExecuteJavaScriptWithUserGestureForTests, this, frame_id, javascript)); return; @@ -1824,7 +1840,7 @@ void CefBrowserHostImpl::ExecuteJavaScriptWithUserGestureForTests( void CefBrowserHostImpl::ViewText(const std::string& text) { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::ViewText, this, text)); + base::BindOnce(&CefBrowserHostImpl::ViewText, this, text)); return; } @@ -1847,7 +1863,7 @@ void CefBrowserHostImpl::HandleExternalProtocol(const GURL& url) { } else { CEF_POST_TASK( CEF_UIT, - base::Bind(&CefBrowserHostImpl::HandleExternalProtocol, this, url)); + base::BindOnce(&CefBrowserHostImpl::HandleExternalProtocol, this, url)); } } @@ -1889,8 +1905,8 @@ void CefBrowserHostImpl::OnSetFocus(cef_focus_source_t source) { if (platform_delegate_) platform_delegate_->SendFocusEvent(true); } else { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::OnSetFocus, this, source)); + CEF_POST_TASK( + CEF_UIT, base::BindOnce(&CefBrowserHostImpl::OnSetFocus, this, source)); } } @@ -1958,9 +1974,10 @@ void CefBrowserHostImpl::ImeSetComposition( } if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::ImeSetComposition, this, text, - underlines, replacement_range, selection_range)); + CEF_POST_TASK( + CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::ImeSetComposition, this, text, + underlines, replacement_range, selection_range)); return; } @@ -1981,8 +1998,8 @@ void CefBrowserHostImpl::ImeCommitText(const CefString& text, if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::ImeCommitText, this, text, - replacement_range, relative_cursor_pos)); + base::BindOnce(&CefBrowserHostImpl::ImeCommitText, this, text, + replacement_range, relative_cursor_pos)); return; } @@ -2001,8 +2018,8 @@ void CefBrowserHostImpl::ImeFinishComposingText(bool keep_selection) { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::ImeFinishComposingText, this, - keep_selection)); + base::BindOnce(&CefBrowserHostImpl::ImeFinishComposingText, + this, keep_selection)); return; } @@ -2019,8 +2036,9 @@ void CefBrowserHostImpl::ImeCancelComposition() { } if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::ImeCancelComposition, this)); + CEF_POST_TASK( + CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::ImeCancelComposition, this)); return; } @@ -2040,8 +2058,9 @@ void CefBrowserHostImpl::DragTargetDragEnter( } if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::DragTargetDragEnter, - this, drag_data, event, allowed_ops)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::DragTargetDragEnter, this, + drag_data, event, allowed_ops)); return; } @@ -2065,8 +2084,9 @@ void CefBrowserHostImpl::DragTargetDragOver( } if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::DragTargetDragOver, - this, event, allowed_ops)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::DragTargetDragOver, this, + event, allowed_ops)); return; } @@ -2083,8 +2103,8 @@ void CefBrowserHostImpl::DragTargetDragLeave() { } if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::DragTargetDragLeave, this)); + CEF_POST_TASK(CEF_UIT, base::BindOnce( + &CefBrowserHostImpl::DragTargetDragLeave, this)); return; } @@ -2101,8 +2121,8 @@ void CefBrowserHostImpl::DragTargetDrop(const CefMouseEvent& event) { } if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, - base::Bind(&CefBrowserHostImpl::DragTargetDrop, this, event)); + CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::DragTargetDrop, + this, event)); return; } @@ -2121,7 +2141,7 @@ void CefBrowserHostImpl::DragSourceSystemDragEnded() { if (!CEF_CURRENTLY_ON_UIT()) { CEF_POST_TASK( CEF_UIT, - base::Bind(&CefBrowserHostImpl::DragSourceSystemDragEnded, this)); + base::BindOnce(&CefBrowserHostImpl::DragSourceSystemDragEnded, this)); return; } @@ -2141,8 +2161,9 @@ void CefBrowserHostImpl::DragSourceEndedAt( } if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK(CEF_UIT, base::Bind(&CefBrowserHostImpl::DragSourceEndedAt, - this, x, y, op)); + CEF_POST_TASK( + CEF_UIT, + base::BindOnce(&CefBrowserHostImpl::DragSourceEndedAt, this, x, y, op)); return; } @@ -2558,7 +2579,7 @@ void CefBrowserHostImpl::ResizeDueToAutoResize(content::WebContents* source, void CefBrowserHostImpl::RequestMediaAccessPermission( content::WebContents* web_contents, const content::MediaStreamRequest& request, - const content::MediaResponseCallback& callback) { + content::MediaResponseCallback callback) { CEF_REQUIRE_UIT(); content::MediaStreamDevices devices; @@ -2567,8 +2588,8 @@ void CefBrowserHostImpl::RequestMediaAccessPermission( base::CommandLine::ForCurrentProcess(); if (!command_line->HasSwitch(switches::kEnableMediaStream)) { // Cancel the request. - callback.Run(devices, content::MEDIA_DEVICE_PERMISSION_DENIED, - std::unique_ptr()); + std::move(callback).Run(devices, content::MEDIA_DEVICE_PERMISSION_DENIED, + std::unique_ptr()); return; } @@ -2605,8 +2626,8 @@ void CefBrowserHostImpl::RequestMediaAccessPermission( } } - callback.Run(devices, content::MEDIA_DEVICE_OK, - std::unique_ptr()); + std::move(callback).Run(devices, content::MEDIA_DEVICE_OK, + std::unique_ptr()); } bool CefBrowserHostImpl::CheckMediaAccessPermission( @@ -2758,9 +2779,8 @@ void CefBrowserHostImpl::RenderProcessGone(base::TerminationStatus status) { if (client_.get()) { CefRefPtr handler = client_->GetRequestHandler(); if (handler.get()) { - frame_destruction_pending_ = true; + std::unique_ptr navigation_lock = CreateNavigationLock(); handler->OnRenderProcessTerminated(this, ts); - frame_destruction_pending_ = false; } } } @@ -2951,6 +2971,38 @@ bool CefBrowserHostImpl::HasObserver(Observer* observer) const { return observers_.HasObserver(observer); } +CefBrowserHostImpl::NavigationLock::NavigationLock( + CefRefPtr browser) + : browser_(browser) { + CEF_REQUIRE_UIT(); + browser_->navigation_lock_count_++; +} + +CefBrowserHostImpl::NavigationLock::~NavigationLock() { + CEF_REQUIRE_UIT(); + if (--browser_->navigation_lock_count_ == 0) { + if (!browser_->pending_navigation_action_.is_null()) { + CEF_POST_TASK(CEF_UIT, std::move(browser_->pending_navigation_action_)); + } + } +} + +std::unique_ptr +CefBrowserHostImpl::CreateNavigationLock() { + return base::WrapUnique(new NavigationLock(this)); +} + +bool CefBrowserHostImpl::navigation_locked() const { + CEF_REQUIRE_UIT(); + return navigation_lock_count_ > 0; +} + +void CefBrowserHostImpl::set_pending_navigation_action( + base::OnceClosure action) { + CEF_REQUIRE_UIT(); + pending_navigation_action_ = std::move(action); +} + // content::WebContentsObserver::OnMessageReceived() message handlers. // ----------------------------------------------------------------------------- @@ -3124,7 +3176,6 @@ CefBrowserHostImpl::CefBrowserHostImpl( main_frame_id_(CefFrameHostImpl::kInvalidFrameId), focused_frame_id_(CefFrameHostImpl::kInvalidFrameId), destruction_state_(DESTRUCTION_STATE_NONE), - frame_destruction_pending_(false), window_destroyed_(false), is_in_onsetfocus_(false), focus_on_editable_field_(false), @@ -3489,12 +3540,11 @@ void CefBrowserHostImpl::OnLoadError(CefRefPtr frame, if (client_.get()) { CefRefPtr handler = client_->GetLoadHandler(); if (handler.get()) { - frame_destruction_pending_ = true; + std::unique_ptr navigation_lock = CreateNavigationLock(); // Notify the handler that loading has failed. handler->OnLoadError(this, frame, static_cast(error_code), net::ErrorToShortString(error_code), url.spec()); - frame_destruction_pending_ = false; } } } @@ -3560,9 +3610,9 @@ void CefBrowserHostImpl::ConfigureAutoResize() { bool CefBrowserHostImpl::Send(IPC::Message* message) { if (!CEF_CURRENTLY_ON_UIT()) { - CEF_POST_TASK( - CEF_UIT, base::Bind(base::IgnoreResult(&CefBrowserHostImpl::Send), this, - message)); + CEF_POST_TASK(CEF_UIT, + base::BindOnce(base::IgnoreResult(&CefBrowserHostImpl::Send), + this, message)); return true; } diff --git a/libcef/browser/browser_host_impl.h b/libcef/browser/browser_host_impl.h index 382d27f93..06f0f5a02 100644 --- a/libcef/browser/browser_host_impl.h +++ b/libcef/browser/browser_host_impl.h @@ -474,7 +474,7 @@ class CefBrowserHostImpl : public CefBrowserHost, void RequestMediaAccessPermission( content::WebContents* web_contents, const content::MediaStreamRequest& request, - const content::MediaResponseCallback& callback) override; + content::MediaResponseCallback callback) override; bool CheckMediaAccessPermission(content::RenderFrameHost* render_frame_host, const GURL& security_origin, content::MediaStreamType type) override; @@ -521,6 +521,20 @@ class CefBrowserHostImpl : public CefBrowserHost, void RemoveObserver(Observer* observer); bool HasObserver(Observer* observer) const; + class NavigationLock final { + private: + friend class CefBrowserHostImpl; + friend std::unique_ptr::deleter_type; + + explicit NavigationLock(CefRefPtr browser); + ~NavigationLock(); + + CefRefPtr browser_; + }; + + // Block navigation-related events on NavigationLock life span. + std::unique_ptr CreateNavigationLock(); + private: class DevToolsWebContentsObserver; @@ -580,6 +594,11 @@ class CefBrowserHostImpl : public CefBrowserHost, void DestroyExtensionHost(); void OnExtensionHostDeleted(); + // Returns true if navigation actions are currently locked. + bool navigation_locked() const; + // Action to be executed once the navigation lock is released. + void set_pending_navigation_action(base::OnceClosure action); + // Update or create a frame object. |frame_id| (renderer routing id) will be // >= 0 if the frame currently exists in the renderer process. |frame_id| will // be < 0 for the main frame if it has not yet navigated for the first time, @@ -686,9 +705,11 @@ class CefBrowserHostImpl : public CefBrowserHost, // thread. DestructionState destruction_state_; - // True if frame destruction is currently pending. Navigation should not occur - // while this flag is true. - bool frame_destruction_pending_; + // Navigation will not occur while |navigation_lock_count_| > 0. + // |pending_navigation_action_| will be executed when the lock is released. + // Only accessed on the UI thread. + int navigation_lock_count_ = 0; + base::OnceClosure pending_navigation_action_; // True if the OS window hosting the browser has been destroyed. Only accessed // on the UI thread. diff --git a/libcef/browser/content_browser_client.cc b/libcef/browser/content_browser_client.cc index eeb8f79d6..77095f517 100644 --- a/libcef/browser/content_browser_client.cc +++ b/libcef/browser/content_browser_client.cc @@ -430,6 +430,11 @@ bool NavigationOnUIThread( request->Set(params, is_main_frame); request->SetReadOnly(true); + // Initiating a new navigation in OnBeforeBrowse will delete the + // InterceptNavigationThrottle that currently owns this callback, + // resulting in a crash. Use the lock to prevent that. + std::unique_ptr navigation_lock = + browser->CreateNavigationLock(); ignore_navigation = handler->OnBeforeBrowse( browser.get(), frame, request.get(), params.has_user_gesture(), params.is_redirect()); diff --git a/libcef/browser/extensions/extension_host_delegate.cc b/libcef/browser/extensions/extension_host_delegate.cc index 09642903f..b7b48ff00 100644 --- a/libcef/browser/extensions/extension_host_delegate.cc +++ b/libcef/browser/extensions/extension_host_delegate.cc @@ -42,7 +42,7 @@ void CefExtensionHostDelegate::CreateTab( void CefExtensionHostDelegate::ProcessMediaAccessRequest( content::WebContents* web_contents, const content::MediaStreamRequest& request, - const content::MediaResponseCallback& callback, + content::MediaResponseCallback callback, const Extension* extension) { // Never routed here from CefBrowserHostImpl. NOTREACHED(); diff --git a/libcef/browser/extensions/extension_host_delegate.h b/libcef/browser/extensions/extension_host_delegate.h index b9a841be6..6bd64a573 100644 --- a/libcef/browser/extensions/extension_host_delegate.h +++ b/libcef/browser/extensions/extension_host_delegate.h @@ -28,7 +28,7 @@ class CefExtensionHostDelegate : public ExtensionHostDelegate { bool user_gesture) override; void ProcessMediaAccessRequest(content::WebContents* web_contents, const content::MediaStreamRequest& request, - const content::MediaResponseCallback& callback, + content::MediaResponseCallback callback, const Extension* extension) override; bool CheckMediaAccessPermission(content::RenderFrameHost* render_frame_host, const GURL& security_origin, diff --git a/libcef/browser/net/network_delegate.cc b/libcef/browser/net/network_delegate.cc index 4ded88779..7d74358ec 100644 --- a/libcef/browser/net/network_delegate.cc +++ b/libcef/browser/net/network_delegate.cc @@ -32,18 +32,18 @@ namespace { class CefBeforeResourceLoadCallbackImpl : public CefRequestCallback { public: - typedef net::CompletionCallback CallbackType; + typedef net::CompletionOnceCallback CallbackType; CefBeforeResourceLoadCallbackImpl(CefRefPtr cef_request, GURL* new_url, net::URLRequest* url_request, bool force_google_safesearch, - const CallbackType& callback) + CallbackType callback) : cef_request_(cef_request), new_url_(new_url), url_request_(url_request), force_google_safesearch_(force_google_safesearch), - callback_(callback) { + callback_(std::move(callback)) { DCHECK(new_url); DCHECK(url_request_); @@ -56,13 +56,14 @@ class CefBeforeResourceLoadCallbackImpl : public CefRequestCallback { if (!callback_.is_null()) { // The callback is still pending. Cancel it now. if (CEF_CURRENTLY_ON_IOT()) { - RunNow(cef_request_, new_url_, url_request_, callback_, + RunNow(cef_request_, new_url_, url_request_, std::move(callback_), force_google_safesearch_, false); } else { - CEF_POST_TASK( - CEF_IOT, base::Bind(&CefBeforeResourceLoadCallbackImpl::RunNow, - cef_request_, new_url_, url_request_, callback_, - force_google_safesearch_, false)); + CEF_POST_TASK(CEF_IOT, + base::Bind(&CefBeforeResourceLoadCallbackImpl::RunNow, + cef_request_, new_url_, url_request_, + base::Passed(std::move(callback_)), + force_google_safesearch_, false)); } } } @@ -79,12 +80,13 @@ class CefBeforeResourceLoadCallbackImpl : public CefRequestCallback { void ContinueNow(bool allow) { CEF_REQUIRE_IOT(); if (!callback_.is_null()) { - RunNow(cef_request_, new_url_, url_request_, callback_, + RunNow(cef_request_, new_url_, url_request_, std::move(callback_), force_google_safesearch_, allow); Disconnect(); } } + private: void Disconnect() { CEF_REQUIRE_IOT(); cef_request_ = nullptr; @@ -93,7 +95,6 @@ class CefBeforeResourceLoadCallbackImpl : public CefRequestCallback { callback_.Reset(); } - private: // Used to disconnect the callback when the associated URLRequest is // destroyed. class Disconnector : public base::SupportsUserData::Data { @@ -114,7 +115,7 @@ class CefBeforeResourceLoadCallbackImpl : public CefRequestCallback { static void RunNow(CefRefPtr cef_request, GURL* new_url, net::URLRequest* request, - const CallbackType& callback, + CallbackType callback, bool force_google_safesearch, bool allow) { CEF_REQUIRE_IOT(); @@ -144,7 +145,7 @@ class CefBeforeResourceLoadCallbackImpl : public CefRequestCallback { if (force_google_safesearch && allow && new_url->is_empty()) safe_search_util::ForceGoogleSafeSearch(request, new_url); - callback.Run(allow ? net::OK : net::ERR_ABORTED); + std::move(callback).Run(allow ? net::OK : net::ERR_ABORTED); } } @@ -168,17 +169,18 @@ int CefBeforeResourceLoadCallbackImpl::kLocatorKey = 0; class CefAuthCallbackImpl : public CefAuthCallback { public: - CefAuthCallbackImpl(const net::NetworkDelegate::AuthCallback& callback, - net::AuthCredentials* credentials) - : callback_(callback), credentials_(credentials) {} + typedef net::NetworkDelegate::AuthCallback CallbackType; + + CefAuthCallbackImpl(CallbackType callback, net::AuthCredentials* credentials) + : callback_(std::move(callback)), credentials_(credentials) {} ~CefAuthCallbackImpl() override { if (!callback_.is_null()) { // The auth callback is still pending. Cancel it now. if (CEF_CURRENTLY_ON_IOT()) { - CancelNow(callback_); + CancelNow(std::move(callback_)); } else { - CEF_POST_TASK(CEF_IOT, - base::Bind(&CefAuthCallbackImpl::CancelNow, callback_)); + CEF_POST_TASK(CEF_IOT, base::Bind(&CefAuthCallbackImpl::CancelNow, + base::Passed(std::move(callback_)))); } } } @@ -187,8 +189,8 @@ class CefAuthCallbackImpl : public CefAuthCallback { if (CEF_CURRENTLY_ON_IOT()) { if (!callback_.is_null()) { credentials_->Set(username, password); - callback_.Run(net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); - callback_.Reset(); + std::move(callback_).Run( + net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); } } else { CEF_POST_TASK(CEF_IOT, base::Bind(&CefAuthCallbackImpl::Continue, this, @@ -199,23 +201,23 @@ class CefAuthCallbackImpl : public CefAuthCallback { void Cancel() override { if (CEF_CURRENTLY_ON_IOT()) { if (!callback_.is_null()) { - CancelNow(callback_); - callback_.Reset(); + CancelNow(std::move(callback_)); } } else { CEF_POST_TASK(CEF_IOT, base::Bind(&CefAuthCallbackImpl::Cancel, this)); } } - void Disconnect() { callback_.Reset(); } + CallbackType Disconnect() WARN_UNUSED_RESULT { return std::move(callback_); } private: - static void CancelNow(const net::NetworkDelegate::AuthCallback& callback) { + static void CancelNow(CallbackType callback) { CEF_REQUIRE_IOT(); - callback.Run(net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION); + std::move(callback).Run( + net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION); } - net::NetworkDelegate::AuthCallback callback_; + CallbackType callback_; net::AuthCredentials* credentials_; IMPLEMENT_REFCOUNTING(CefAuthCallbackImpl); @@ -277,10 +279,9 @@ std::unique_ptr CefNetworkDelegate::CreateSourceStream( return upstream; } -int CefNetworkDelegate::OnBeforeURLRequest( - net::URLRequest* request, - const net::CompletionCallback& callback, - GURL* new_url) { +int CefNetworkDelegate::OnBeforeURLRequest(net::URLRequest* request, + net::CompletionOnceCallback callback, + GURL* new_url) { if (net_util::IsInternalRequest(request)) return net::OK; @@ -312,7 +313,7 @@ int CefNetworkDelegate::OnBeforeURLRequest( CefRefPtr callbackImpl( new CefBeforeResourceLoadCallbackImpl(requestPtr, new_url, request, force_google_safesearch, - callback)); + std::move(callback))); // Give the client an opportunity to evaluate the request. cef_return_value_t retval = handler->OnBeforeResourceLoad( @@ -338,7 +339,9 @@ int CefNetworkDelegate::OnBeforeURLRequest( return net::OK; } -void CefNetworkDelegate::OnCompleted(net::URLRequest* request, bool started) { +void CefNetworkDelegate::OnCompleted(net::URLRequest* request, + bool started, + int net_error) { if (net_util::IsInternalRequest(request)) return; @@ -391,7 +394,7 @@ void CefNetworkDelegate::OnCompleted(net::URLRequest* request, bool started) { net::NetworkDelegate::AuthRequiredResponse CefNetworkDelegate::OnAuthRequired( net::URLRequest* request, const net::AuthChallengeInfo& auth_info, - const AuthCallback& callback, + AuthCallback callback, net::AuthCredentials* credentials) { if (net_util::IsInternalRequest(request)) return AUTH_REQUIRED_RESPONSE_NO_ACTION; @@ -406,14 +409,14 @@ net::NetworkDelegate::AuthRequiredResponse CefNetworkDelegate::OnAuthRequired( CefRefPtr frame = browser->GetFrameForRequest(request); CefRefPtr callbackPtr( - new CefAuthCallbackImpl(callback, credentials)); + new CefAuthCallbackImpl(std::move(callback), credentials)); if (handler->GetAuthCredentials( browser.get(), frame, auth_info.is_proxy, auth_info.challenger.host(), auth_info.challenger.port(), auth_info.realm, auth_info.scheme, callbackPtr.get())) { return AUTH_REQUIRED_RESPONSE_IO_PENDING; } else { - callbackPtr->Disconnect(); + callback = callbackPtr->Disconnect(); } } } @@ -426,14 +429,14 @@ net::NetworkDelegate::AuthRequiredResponse CefNetworkDelegate::OnAuthRequired( CefRefPtr client = user_data->GetClient(); if (client.get()) { CefRefPtr callbackPtr( - new CefAuthCallbackImpl(callback, credentials)); + new CefAuthCallbackImpl(std::move(callback), credentials)); if (client->GetAuthCredentials( auth_info.is_proxy, auth_info.challenger.host(), auth_info.challenger.port(), auth_info.realm, auth_info.scheme, callbackPtr.get())) { return AUTH_REQUIRED_RESPONSE_IO_PENDING; } else { - callbackPtr->Disconnect(); + callback = callbackPtr->Disconnect(); } } } diff --git a/libcef/browser/net/network_delegate.h b/libcef/browser/net/network_delegate.h index 73ec0626d..82631e6fa 100644 --- a/libcef/browser/net/network_delegate.h +++ b/libcef/browser/net/network_delegate.h @@ -30,14 +30,16 @@ class CefNetworkDelegate : public net::NetworkDelegateImpl { net::URLRequest* request, std::unique_ptr upstream) override; int OnBeforeURLRequest(net::URLRequest* request, - const net::CompletionCallback& callback, + net::CompletionOnceCallback callback, GURL* new_url) override; AuthRequiredResponse OnAuthRequired( net::URLRequest* request, const net::AuthChallengeInfo& auth_info, - const AuthCallback& callback, + AuthCallback callback, net::AuthCredentials* credentials) override; - void OnCompleted(net::URLRequest* request, bool started) override; + void OnCompleted(net::URLRequest* request, + bool started, + int net_error) override; bool OnCanGetCookies(const net::URLRequest& request, const net::CookieList& cookie_list) override; bool OnCanSetCookie(const net::URLRequest& request, diff --git a/libcef/browser/printing/print_view_manager.cc b/libcef/browser/printing/print_view_manager.cc index c8b278892..5cef7563a 100644 --- a/libcef/browser/printing/print_view_manager.cc +++ b/libcef/browser/printing/print_view_manager.cc @@ -259,7 +259,9 @@ void CefPrintViewManager::OnRequestPrintPreview( } void CefPrintViewManager::OnMetafileReadyForPrinting( - const PrintHostMsg_DidPreviewDocument_Params& params) { + content::RenderFrameHost* render_frame_host, + const PrintHostMsg_DidPreviewDocument_Params& params, + const PrintHostMsg_PreviewIds& ids) { DCHECK_CURRENTLY_ON(BrowserThread::UI); StopWorker(params.document_cookie); diff --git a/libcef/browser/printing/print_view_manager.h b/libcef/browser/printing/print_view_manager.h index 1f54c5ac4..8bd97872e 100644 --- a/libcef/browser/printing/print_view_manager.h +++ b/libcef/browser/printing/print_view_manager.h @@ -14,9 +14,10 @@ namespace content { class RenderFrameHost; class RenderProcessHost; -} +} // namespace content struct PrintHostMsg_DidPreviewDocument_Params; +struct PrintHostMsg_PreviewIds; struct PrintHostMsg_RequestPrintPreview_Params; namespace printing { @@ -52,7 +53,9 @@ class CefPrintViewManager void OnDidShowPrintDialog(content::RenderFrameHost* rfh); void OnRequestPrintPreview(const PrintHostMsg_RequestPrintPreview_Params&); void OnMetafileReadyForPrinting( - const PrintHostMsg_DidPreviewDocument_Params&); + content::RenderFrameHost* render_frame_host, + const PrintHostMsg_DidPreviewDocument_Params& params, + const PrintHostMsg_PreviewIds& ids); void TerminatePdfPrintJob(); diff --git a/libcef/browser/printing/printing_message_filter.cc b/libcef/browser/printing/printing_message_filter.cc index 3dc7eac8f..5b1d2d31c 100644 --- a/libcef/browser/printing/printing_message_filter.cc +++ b/libcef/browser/printing/printing_message_filter.cc @@ -281,9 +281,9 @@ void CefPrintingMessageFilter::OnUpdatePrintSettingsReply( } } -void CefPrintingMessageFilter::OnCheckForCancel(int32_t preview_ui_id, - int preview_request_id, - bool* cancel) { +void CefPrintingMessageFilter::OnCheckForCancel( + const PrintHostMsg_PreviewIds& ids, + bool* cancel) { *cancel = false; } diff --git a/libcef/browser/printing/printing_message_filter.h b/libcef/browser/printing/printing_message_filter.h index 290acc9e0..84d9abb31 100644 --- a/libcef/browser/printing/printing_message_filter.h +++ b/libcef/browser/printing/printing_message_filter.h @@ -17,6 +17,7 @@ #include "content/public/browser/browser_message_filter.h" #include "printing/buildflags/buildflags.h" +struct PrintHostMsg_PreviewIds; struct PrintHostMsg_ScriptedPrint_Params; class Profile; @@ -74,9 +75,7 @@ class CefPrintingMessageFilter : public content::BrowserMessageFilter { IPC::Message* reply_msg); // Check to see if print preview has been cancelled. - void OnCheckForCancel(int32_t preview_ui_id, - int preview_request_id, - bool* cancel); + void OnCheckForCancel(const PrintHostMsg_PreviewIds& ids, bool* cancel); std::unique_ptr printing_shutdown_notifier_; diff --git a/libcef/browser/speech_recognition_manager_delegate.cc b/libcef/browser/speech_recognition_manager_delegate.cc index 0d58abb71..4a2fb4d92 100644 --- a/libcef/browser/speech_recognition_manager_delegate.cc +++ b/libcef/browser/speech_recognition_manager_delegate.cc @@ -50,11 +50,11 @@ void CefSpeechRecognitionManagerDelegate::OnAudioEnd(int session_id) {} void CefSpeechRecognitionManagerDelegate::OnRecognitionResults( int session_id, - const std::vector& result) {} + const std::vector& result) {} void CefSpeechRecognitionManagerDelegate::OnRecognitionError( int session_id, - const content::mojom::SpeechRecognitionError& error) {} + const blink::mojom::SpeechRecognitionError& error) {} void CefSpeechRecognitionManagerDelegate::OnAudioLevelsChange( int session_id, diff --git a/libcef/browser/speech_recognition_manager_delegate.h b/libcef/browser/speech_recognition_manager_delegate.h index cfc7d6a98..932781879 100644 --- a/libcef/browser/speech_recognition_manager_delegate.h +++ b/libcef/browser/speech_recognition_manager_delegate.h @@ -31,11 +31,11 @@ class CefSpeechRecognitionManagerDelegate void OnRecognitionEnd(int session_id) override; void OnRecognitionResults( int session_id, - const std::vector& result) + const std::vector& result) override; void OnRecognitionError( int session_id, - const content::mojom::SpeechRecognitionError& error) override; + const blink::mojom::SpeechRecognitionError& error) override; void OnAudioLevelsChange(int session_id, float volume, float noise_volume) override; diff --git a/libcef/browser/ssl_host_state_delegate.cc b/libcef/browser/ssl_host_state_delegate.cc index 60c727bed..07a8966aa 100644 --- a/libcef/browser/ssl_host_state_delegate.cc +++ b/libcef/browser/ssl_host_state_delegate.cc @@ -17,8 +17,7 @@ CertPolicy::~CertPolicy() {} // For an allowance, we consider a given |cert| to be a match to a saved // allowed cert if the |error| is an exact match to or subset of the errors // in the saved CertStatus. -bool CertPolicy::Check(const net::X509Certificate& cert, - net::CertStatus error) const { +bool CertPolicy::Check(const net::X509Certificate& cert, int error) const { net::SHA256HashValue fingerprint = cert.CalculateChainFingerprint256(); const auto& allowed_iter = allowed_.find(fingerprint); if ((allowed_iter != allowed_.end()) && (allowed_iter->second & error) && @@ -28,8 +27,7 @@ bool CertPolicy::Check(const net::X509Certificate& cert, return false; } -void CertPolicy::Allow(const net::X509Certificate& cert, - net::CertStatus error) { +void CertPolicy::Allow(const net::X509Certificate& cert, int error) { // If this same cert had already been saved with a different error status, // this will replace it with the new error status. net::SHA256HashValue fingerprint = cert.CalculateChainFingerprint256(); @@ -59,7 +57,7 @@ bool CefSSLHostStateDelegate::DidHostRunInsecureContent( void CefSSLHostStateDelegate::AllowCert(const std::string& host, const net::X509Certificate& cert, - net::CertStatus error) { + int error) { cert_policy_for_host_[host].Allow(cert, error); } @@ -84,7 +82,7 @@ void CefSSLHostStateDelegate::Clear( SSLHostStateDelegate::CertJudgment CefSSLHostStateDelegate::QueryPolicy( const std::string& host, const net::X509Certificate& cert, - net::CertStatus error, + int error, bool* expired_previous_decision) { return cert_policy_for_host_[host].Check(cert, error) ? SSLHostStateDelegate::ALLOWED diff --git a/libcef/browser/ssl_host_state_delegate.h b/libcef/browser/ssl_host_state_delegate.h index a74d0d53b..40bdec88f 100644 --- a/libcef/browser/ssl_host_state_delegate.h +++ b/libcef/browser/ssl_host_state_delegate.h @@ -10,7 +10,6 @@ #include "content/public/browser/ssl_host_state_delegate.h" #include "net/base/hash_value.h" -#include "net/cert/cert_status_flags.h" #include "net/cert/x509_certificate.h" // Implementation based on android_webview/browser/aw_ssl_host_state_delegate.h. @@ -25,11 +24,11 @@ class CertPolicy { // Returns true if the user has decided to proceed through the ssl error // before. For a certificate to be allowed, it must not have any // *additional* errors from when it was allowed. - bool Check(const net::X509Certificate& cert, net::CertStatus error) const; + bool Check(const net::X509Certificate& cert, int error) const; // Causes the policy to allow this certificate for a given |error|. And // remember the user's choice. - void Allow(const net::X509Certificate& cert, net::CertStatus error); + void Allow(const net::X509Certificate& cert, int error); // Returns true if and only if there exists a user allow exception for some // certificate. @@ -37,7 +36,7 @@ class CertPolicy { private: // The set of fingerprints of allowed certificates. - std::map allowed_; + std::map allowed_; }; } // namespace internal @@ -50,13 +49,13 @@ class CefSSLHostStateDelegate : public content::SSLHostStateDelegate { // SSLHostStateDelegate methods: void AllowCert(const std::string& host, const net::X509Certificate& cert, - net::CertStatus error) override; + int error) override; void Clear( const base::Callback& host_filter) override; content::SSLHostStateDelegate::CertJudgment QueryPolicy( const std::string& host, const net::X509Certificate& cert, - net::CertStatus error, + int error, bool* expired_previous_decision) override; void HostRanInsecureContent(const std::string& host, int child_id, diff --git a/libcef/browser/storage_partition_proxy.cc b/libcef/browser/storage_partition_proxy.cc index 0f6072d65..ca7336490 100644 --- a/libcef/browser/storage_partition_proxy.cc +++ b/libcef/browser/storage_partition_proxy.cc @@ -222,7 +222,7 @@ content::BrowserContext* CefStoragePartitionProxy::browser_context() const { mojo::BindingId CefStoragePartitionProxy::Bind( int process_id, - mojo::InterfaceRequest request) { + mojo::InterfaceRequest request) { return parent_->Bind(process_id, std::move(request)); } diff --git a/libcef/browser/storage_partition_proxy.h b/libcef/browser/storage_partition_proxy.h index 079ec67e7..42220b8bd 100644 --- a/libcef/browser/storage_partition_proxy.h +++ b/libcef/browser/storage_partition_proxy.h @@ -85,7 +85,7 @@ class CefStoragePartitionProxy : public content::StoragePartition { content::BrowserContext* browser_context() const override; mojo::BindingId Bind( int process_id, - mojo::InterfaceRequest request) + mojo::InterfaceRequest request) override; void set_site_for_service_worker( const GURL& site_for_service_worker) override; diff --git a/libcef/common/response_impl.cc b/libcef/common/response_impl.cc index 9a871a0da..2e786836c 100644 --- a/libcef/common/response_impl.cc +++ b/libcef/common/response_impl.cc @@ -173,7 +173,7 @@ void CefResponseImpl::SetResponseHeaders( base::AutoLock lock_scope(lock_); CHECK_READONLY_RETURN_VOID(); - header_map_.empty(); + header_map_.clear(); size_t iter = 0; std::string name, value; diff --git a/libcef/common/value_base.cc b/libcef/common/value_base.cc index a31136939..b8e61ff71 100644 --- a/libcef/common/value_base.cc +++ b/libcef/common/value_base.cc @@ -173,7 +173,7 @@ void CefValueController::TakeFrom(CefValueController* other) { DCHECK(reference_map_.find(it->first) == reference_map_.end()); reference_map_.insert(std::make_pair(it->first, it->second)); } - other->reference_map_.empty(); + other->reference_map_.clear(); } if (!other->dependency_map_.empty()) { diff --git a/patch/patches/browser_plugin_guest_1565.patch b/patch/patches/browser_plugin_guest_1565.patch index 82b6e8ae5..6268aeeb1 100644 --- a/patch/patches/browser_plugin_guest_1565.patch +++ b/patch/patches/browser_plugin_guest_1565.patch @@ -1,5 +1,5 @@ diff --git content/browser/browser_plugin/browser_plugin_guest.cc content/browser/browser_plugin/browser_plugin_guest.cc -index a0bc9305e62d..0c8d42c55302 100644 +index 06b5f2da12bb..6dbe883dc237 100644 --- content/browser/browser_plugin/browser_plugin_guest.cc +++ content/browser/browser_plugin/browser_plugin_guest.cc @@ -313,8 +313,11 @@ void BrowserPluginGuest::InitInternal( @@ -37,10 +37,10 @@ index a0bc9305e62d..0c8d42c55302 100644 attached_ = true; diff --git content/browser/frame_host/interstitial_page_impl.cc content/browser/frame_host/interstitial_page_impl.cc -index 7c55f52cb49a..fa1c85a86ed5 100644 +index ad9de41d1e3e..a87ec19a5f54 100644 --- content/browser/frame_host/interstitial_page_impl.cc +++ content/browser/frame_host/interstitial_page_impl.cc -@@ -619,7 +619,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() { +@@ -622,7 +622,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() { WebContentsView* wcv = static_cast(web_contents())->GetView(); RenderWidgetHostViewBase* view = @@ -79,7 +79,7 @@ index cf8c74f4c744..b8cefb4b154b 100644 // Creates a new View that holds a popup and receives messages for it. virtual RenderWidgetHostViewBase* CreateViewForPopupWidget( diff --git content/browser/web_contents/web_contents_view_aura.cc content/browser/web_contents/web_contents_view_aura.cc -index 984fa41d064c..f68457a39a4f 100644 +index 617bfe3a5d24..b8c801e26b5e 100644 --- content/browser/web_contents/web_contents_view_aura.cc +++ content/browser/web_contents/web_contents_view_aura.cc @@ -781,7 +781,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size, @@ -140,7 +140,7 @@ index 17275be93025..6c73effc578b 100644 RenderWidgetHost* render_widget_host) override; void SetPageTitle(const base::string16& title) override; diff --git content/browser/web_contents/web_contents_view_guest.cc content/browser/web_contents/web_contents_view_guest.cc -index 699570cc1390..0c8bb808e657 100644 +index f6a43ca61131..21b61264d99f 100644 --- content/browser/web_contents/web_contents_view_guest.cc +++ content/browser/web_contents/web_contents_view_guest.cc @@ -67,6 +67,8 @@ gfx::NativeWindow WebContentsViewGuest::GetTopLevelNativeWindow() const { @@ -152,15 +152,15 @@ index 699570cc1390..0c8bb808e657 100644 // In aura, ScreenPositionClient doesn't work properly if we do // not have the native view associated with this WebContentsViewGuest in the // view hierarchy. We add this view as embedder's child here. -@@ -79,6 +81,8 @@ void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) { +@@ -78,6 +80,8 @@ void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) { + } void WebContentsViewGuest::OnGuestDetached(WebContentsView* old_parent_view) { - #if defined(USE_AURA) + if (!platform_view_->GetNativeView()) + return; - if (!base::FeatureList::IsEnabled(features::kMash)) { + #if defined(USE_AURA) + if (features::IsAshInBrowserProcess()) { old_parent_view->GetNativeView()->RemoveChild( - platform_view_->GetNativeView()); @@ -132,7 +136,8 @@ void WebContentsViewGuest::CreateView(const gfx::Size& initial_size, } diff --git a/patch/patches/chrome_browser.patch b/patch/patches/chrome_browser.patch index 95e038423..7e5d7c254 100644 --- a/patch/patches/chrome_browser.patch +++ b/patch/patches/chrome_browser.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn -index fa2126cb222c..e8544c6dff5a 100644 +index f6fba56b8717..4b20d96517e0 100644 --- chrome/browser/BUILD.gn +++ chrome/browser/BUILD.gn @@ -8,6 +8,7 @@ import("//build/config/features.gni") @@ -10,7 +10,7 @@ index fa2126cb222c..e8544c6dff5a 100644 import("//chrome/common/features.gni") import("//components/feature_engagement/features.gni") import("//components/feed/features.gni") -@@ -1616,6 +1617,7 @@ jumbo_split_static_library("browser") { +@@ -1618,6 +1619,7 @@ jumbo_split_static_library("browser") { "//base:i18n", "//base/allocator:buildflags", "//cc", @@ -18,7 +18,7 @@ index fa2126cb222c..e8544c6dff5a 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -1885,6 +1887,10 @@ jumbo_split_static_library("browser") { +@@ -1886,6 +1888,10 @@ jumbo_split_static_library("browser") { ] } diff --git a/patch/patches/chrome_browser_profiles.patch b/patch/patches/chrome_browser_profiles.patch index 568d8aa3c..2ee337119 100644 --- a/patch/patches/chrome_browser_profiles.patch +++ b/patch/patches/chrome_browser_profiles.patch @@ -70,7 +70,7 @@ index e8e76ce5b954..1dd338dd0142 100644 content::BrowserContext* GetBrowserContextRedirectedInIncognito( content::BrowserContext* context); diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc -index 447db8165e88..c0d93c351580 100644 +index 359f6f767bf8..9d3ff4cd0845 100644 --- chrome/browser/profiles/profile_manager.cc +++ chrome/browser/profiles/profile_manager.cc @@ -382,7 +382,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) diff --git a/patch/patches/chrome_plugins.patch b/patch/patches/chrome_plugins.patch index d22b227db..4907174fa 100644 --- a/patch/patches/chrome_plugins.patch +++ b/patch/patches/chrome_plugins.patch @@ -157,10 +157,10 @@ index 484e07af5a98..0e62e20095c7 100644 // If we broke out of the loop, we have found an enabled plugin. bool enabled = i < matching_plugins.size(); diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc -index f0a93eb48969..a4e12d0ec28e 100644 +index 6a15716bb62f..60883d8e1031 100644 --- chrome/renderer/chrome_content_renderer_client.cc +++ chrome/renderer/chrome_content_renderer_client.cc -@@ -762,6 +762,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -761,6 +761,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( if ((status == chrome::mojom::PluginStatus::kUnauthorized || status == chrome::mojom::PluginStatus::kBlocked) && @@ -168,7 +168,7 @@ index f0a93eb48969..a4e12d0ec28e 100644 observer->IsPluginTemporarilyAllowed(identifier)) { status = chrome::mojom::PluginStatus::kAllowed; } -@@ -949,7 +950,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -948,7 +949,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( render_frame->GetRemoteAssociatedInterfaces()->GetInterface( &plugin_auth_host); plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier); @@ -178,7 +178,7 @@ index f0a93eb48969..a4e12d0ec28e 100644 break; } case chrome::mojom::PluginStatus::kBlocked: { -@@ -958,7 +960,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -957,7 +959,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); placeholder->AllowLoading(); RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked")); @@ -188,7 +188,7 @@ index f0a93eb48969..a4e12d0ec28e 100644 break; } case chrome::mojom::PluginStatus::kBlockedByPolicy: { -@@ -968,7 +971,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -967,7 +970,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( group_name)); RenderThread::Get()->RecordAction( UserMetricsAction("Plugin_BlockedByPolicy")); @@ -198,7 +198,7 @@ index f0a93eb48969..a4e12d0ec28e 100644 break; } case chrome::mojom::PluginStatus::kBlockedNoLoading: { -@@ -976,7 +980,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -975,7 +979,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( IDR_BLOCKED_PLUGIN_HTML, l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING, group_name)); diff --git a/patch/patches/chrome_widevine.patch b/patch/patches/chrome_widevine.patch index e29c53218..1fad54032 100644 --- a/patch/patches/chrome_widevine.patch +++ b/patch/patches/chrome_widevine.patch @@ -1,5 +1,5 @@ diff --git chrome/common/chrome_content_client.cc chrome/common/chrome_content_client.cc -index 231520b1bb17..e1a0128d258a 100644 +index c4c094b012f1..28c4a2567fb4 100644 --- chrome/common/chrome_content_client.cc +++ chrome/common/chrome_content_client.cc @@ -94,7 +94,8 @@ diff --git a/patch/patches/compositor_1368.patch b/patch/patches/compositor_1368.patch index 344a451fd..7f214213f 100644 --- a/patch/patches/compositor_1368.patch +++ b/patch/patches/compositor_1368.patch @@ -1,5 +1,5 @@ diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc -index 32cd0a269af4..31d419d3e14d 100644 +index ef785207cd5b..bafbce4fdfd4 100644 --- content/browser/compositor/gpu_process_transport_factory.cc +++ content/browser/compositor/gpu_process_transport_factory.cc @@ -494,10 +494,20 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( @@ -26,7 +26,7 @@ index 32cd0a269af4..31d419d3e14d 100644 } else { DCHECK(context_provider); diff --git ui/compositor/compositor.h ui/compositor/compositor.h -index c2f670f2726f..98282dc3fc70 100644 +index 7efccc23d777..f355c678027b 100644 --- ui/compositor/compositor.h +++ ui/compositor/compositor.h @@ -24,6 +24,7 @@ @@ -37,7 +37,7 @@ index c2f670f2726f..98282dc3fc70 100644 #include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkMatrix44.h" #include "ui/compositor/compositor_animation_observer.h" -@@ -190,6 +191,17 @@ class COMPOSITOR_EXPORT ContextFactory { +@@ -191,6 +192,17 @@ class COMPOSITOR_EXPORT ContextFactory { virtual bool SyncTokensRequiredForDisplayCompositor() = 0; }; @@ -55,7 +55,7 @@ index c2f670f2726f..98282dc3fc70 100644 // Compositor object to take care of GPU painting. // A Browser compositor object is responsible for generating the final // displayable form of pixels comprising a single widget's contents. It draws an -@@ -229,6 +241,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -231,6 +243,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, // Schedules a redraw of the layer tree associated with this compositor. void ScheduleDraw(); @@ -65,7 +65,7 @@ index c2f670f2726f..98282dc3fc70 100644 // Sets the root of the layer tree drawn by this Compositor. The root layer // must have no parent. The compositor's root layer is reset if the root layer // is destroyed. NULL can be passed to reset the root layer, in which case the -@@ -457,6 +472,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -455,6 +470,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, ui::ContextFactory* context_factory_; ui::ContextFactoryPrivate* context_factory_private_; diff --git a/patch/patches/content_2015.patch b/patch/patches/content_2015.patch index 1267bcb4e..1c0d6c9ab 100644 --- a/patch/patches/content_2015.patch +++ b/patch/patches/content_2015.patch @@ -94,10 +94,10 @@ index b23698013a09..d60eb48c6efd 100644 "WillFailRequest state should come before WillProcessResponse"); return render_frame_host_; diff --git content/browser/frame_host/render_frame_host_impl.cc content/browser/frame_host/render_frame_host_impl.cc -index 968f4bfd098f..035c093e5a2c 100644 +index f9201541ac71..4b0ab7598429 100644 --- content/browser/frame_host/render_frame_host_impl.cc +++ content/browser/frame_host/render_frame_host_impl.cc -@@ -1593,6 +1593,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( +@@ -1606,6 +1606,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( if (GetNavigationHandle()) { GetNavigationHandle()->set_net_error_code( static_cast(params.error_code)); @@ -105,7 +105,7 @@ index 968f4bfd098f..035c093e5a2c 100644 } frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params); -@@ -3612,9 +3613,9 @@ void RenderFrameHostImpl::CommitNavigation( +@@ -3629,9 +3630,9 @@ void RenderFrameHostImpl::CommitNavigation( // however only do this for cross-document navigations, because the // alternative would be redundant effort. network::mojom::URLLoaderFactoryPtrInfo default_factory_info; @@ -118,7 +118,7 @@ index 968f4bfd098f..035c093e5a2c 100644 if (subresource_loader_params && subresource_loader_params->loader_factory_info.is_valid()) { // If the caller has supplied a default URLLoaderFactory override (for -@@ -4334,8 +4335,8 @@ void RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryAndObserve( +@@ -4351,8 +4352,8 @@ void RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryAndObserve( RenderFrameDevToolsAgentHost::WillCreateURLLoaderFactory( this, false /* is_navigation */, false /* is_download */, &default_factory_request); @@ -129,7 +129,7 @@ index 968f4bfd098f..035c093e5a2c 100644 if (g_create_network_factory_callback_for_test.Get().is_null()) { storage_partition->GetNetworkContext()->CreateURLLoaderFactory( std::move(default_factory_request), std::move(params)); -@@ -4622,8 +4623,8 @@ void RenderFrameHostImpl::ConnectToPrefetchURLLoaderService( +@@ -4639,8 +4640,8 @@ void RenderFrameHostImpl::ConnectToPrefetchURLLoaderService( DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(base::FeatureList::IsEnabled(network::features::kNetworkService)); auto* storage_partition = @@ -224,10 +224,10 @@ index 7f3ab224bd15..7fb3e94d8756 100644 const std::string& mime_type, bool* found, diff --git content/browser/loader/mime_sniffing_resource_handler.cc content/browser/loader/mime_sniffing_resource_handler.cc -index bed70acf54df..3985020b3423 100644 +index b67153fefc82..91fcf3c5559b 100644 --- content/browser/loader/mime_sniffing_resource_handler.cc +++ content/browser/loader/mime_sniffing_resource_handler.cc -@@ -495,8 +495,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler( +@@ -494,8 +494,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler( WebPluginInfo plugin; bool has_plugin = plugin_service_->GetPluginInfo( info->GetChildID(), info->GetRenderFrameID(), info->GetContext(), @@ -273,10 +273,10 @@ index 4e11056a3dc9..973ad50975e1 100644 const std::string& mime_type, bool allow_wildcard, diff --git content/common/frame_messages.h content/common/frame_messages.h -index 6375b644540c..b9ccfdb14dea 100644 +index 3b966ad75bde..b2d23f74d5c1 100644 --- content/common/frame_messages.h +++ content/common/frame_messages.h -@@ -1369,8 +1369,9 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, +@@ -1363,8 +1363,9 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, // Used to get the list of plugins. |main_frame_origin| is used to handle // exceptions for plugin content settings. @@ -287,7 +287,7 @@ index 6375b644540c..b9ccfdb14dea 100644 url::Origin /* main_frame_origin */, std::vector /* plugins */) -@@ -1378,9 +1379,10 @@ IPC_SYNC_MESSAGE_CONTROL2_1(FrameHostMsg_GetPlugins, +@@ -1372,9 +1373,10 @@ IPC_SYNC_MESSAGE_CONTROL2_1(FrameHostMsg_GetPlugins, // type. If there is no matching plugin, |found| is false. // |actual_mime_type| is the actual mime type supported by the // found plugin. @@ -348,7 +348,7 @@ index 3b610b1f554e..7c439e060779 100644 WebPluginInfo* plugin) = 0; diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h -index 5395f8eb0736..8543081de7d0 100644 +index a2dc7a811e75..416918123564 100644 --- content/public/renderer/content_renderer_client.h +++ content/public/renderer/content_renderer_client.h @@ -74,6 +74,9 @@ class CONTENT_EXPORT ContentRendererClient { @@ -361,7 +361,7 @@ index 5395f8eb0736..8543081de7d0 100644 // Notifies that a new RenderFrame has been created. virtual void RenderFrameCreated(RenderFrame* render_frame) {} -@@ -352,6 +355,10 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -348,6 +351,10 @@ class CONTENT_EXPORT ContentRendererClient { // This method may invalidate the frame. virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {} @@ -387,7 +387,7 @@ index 74a031ad10c3..3b3f9e292f4b 100644 virtual void FocusedNodeChanged(const blink::WebNode& node) {} diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc -index ae67d75b76b8..98b38322e68c 100644 +index 9f54a39d8f6f..bf060d707217 100644 --- content/renderer/render_frame_impl.cc +++ content/renderer/render_frame_impl.cc @@ -3292,7 +3292,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( @@ -410,7 +410,7 @@ index ae67d75b76b8..98b38322e68c 100644 void RenderFrameImpl::WillCommitProvisionalLoad() { diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc -index 204a30082489..e091b7d8feab 100644 +index a6afde1429ec..f7787dd2a032 100644 --- content/renderer/render_thread_impl.cc +++ content/renderer/render_thread_impl.cc @@ -866,6 +866,8 @@ void RenderThreadImpl::Init( @@ -423,10 +423,10 @@ index 204a30082489..e091b7d8feab 100644 base::Bind(&RenderThreadImpl::OnRendererInterfaceRequest, base::Unretained(this))); diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc -index 635a6c368466..38c8aef73844 100644 +index 17b392f4f7ad..855198cec08a 100644 --- content/renderer/renderer_blink_platform_impl.cc +++ content/renderer/renderer_blink_platform_impl.cc -@@ -787,12 +787,14 @@ RendererBlinkPlatformImpl::CreateMIDIAccessor( +@@ -784,12 +784,14 @@ RendererBlinkPlatformImpl::CreateMIDIAccessor( void RendererBlinkPlatformImpl::GetPluginList( bool refresh, @@ -442,7 +442,7 @@ index 635a6c368466..38c8aef73844 100644 for (const WebPluginInfo& plugin : plugins) { builder->AddPlugin(WebString::FromUTF16(plugin.name), WebString::FromUTF16(plugin.desc), -@@ -1214,6 +1216,14 @@ void RendererBlinkPlatformImpl::RequestPurgeMemory() { +@@ -1239,6 +1241,14 @@ void RendererBlinkPlatformImpl::RequestPurgeMemory() { base::MemoryCoordinatorClientRegistry::GetInstance()->PurgeMemory(); } @@ -458,10 +458,10 @@ index 635a6c368466..38c8aef73844 100644 if (!web_database_host_) { web_database_host_ = blink::mojom::ThreadSafeWebDatabaseHostPtr::Create( diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h -index 8fa06edcbd6f..e6a3da8f46d0 100644 +index 59747e5db8fa..e3cad79609c6 100644 --- content/renderer/renderer_blink_platform_impl.h +++ content/renderer/renderer_blink_platform_impl.h -@@ -122,6 +122,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -125,6 +125,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { bool IsLockedToSite() const override; void GetPluginList(bool refresh, @@ -469,7 +469,7 @@ index 8fa06edcbd6f..e6a3da8f46d0 100644 const blink::WebSecurityOrigin& mainFrameOrigin, blink::WebPluginListBuilder* builder) override; blink::WebPublicSuffixList* PublicSuffixList() override; -@@ -236,6 +237,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -239,6 +240,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { mojo::ScopedDataPipeConsumerHandle handle) override; void RequestPurgeMemory() override; diff --git a/patch/patches/content_runprocess_2456.patch b/patch/patches/content_runprocess_2456.patch index 57e49cbc2..abca622c6 100644 --- a/patch/patches/content_runprocess_2456.patch +++ b/patch/patches/content_runprocess_2456.patch @@ -1,8 +1,8 @@ diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc -index 83e8990edf17..89bdab3f3885 100644 +index 0f81f0524014..b330e3902a8d 100644 --- content/app/content_main_runner_impl.cc +++ content/app/content_main_runner_impl.cc -@@ -603,7 +603,8 @@ int RunBrowserProcessMain( +@@ -604,7 +604,8 @@ int RunBrowserProcessMain( ContentMainDelegate* delegate, std::unique_ptr service_manager_thread) { if (delegate) { @@ -52,7 +52,7 @@ index c4bdfd36ad0c..f6830c35fd1d 100644 return nullptr; } diff --git content/public/app/content_main_delegate.h content/public/app/content_main_delegate.h -index b5d8b1889d60..ea6af1600c36 100644 +index 979e25d1c1b9..87ef81c4e913 100644 --- content/public/app/content_main_delegate.h +++ content/public/app/content_main_delegate.h @@ -30,6 +30,7 @@ class DataPack; diff --git a/patch/patches/crashpad_1995.patch b/patch/patches/crashpad_1995.patch index 5eb91d119..1259ce0ca 100644 --- a/patch/patches/crashpad_1995.patch +++ b/patch/patches/crashpad_1995.patch @@ -45,7 +45,7 @@ index bcf172e645a2..f879aa745adf 100644 // on the given |command_line|. void SetCrashKeysFromCommandLine(const base::CommandLine& command_line); diff --git chrome_elf/BUILD.gn chrome_elf/BUILD.gn -index c4744fbd2a78..05d10cc09d69 100644 +index e1207fd03292..4453785e72df 100644 --- chrome_elf/BUILD.gn +++ chrome_elf/BUILD.gn @@ -7,6 +7,7 @@ diff --git a/patch/patches/crashpad_tp_1995.patch b/patch/patches/crashpad_tp_1995.patch index 7fd661899..db18ed75c 100644 --- a/patch/patches/crashpad_tp_1995.patch +++ b/patch/patches/crashpad_tp_1995.patch @@ -146,7 +146,7 @@ index a2b0c74636f4..01370fdc20d9 100644 struct Data; diff --git third_party/crashpad/crashpad/handler/BUILD.gn third_party/crashpad/crashpad/handler/BUILD.gn -index cf4f3e8463ba..8d0d261df1ec 100644 +index 24251b0a9398..5eff85d4dbb5 100644 --- third_party/crashpad/crashpad/handler/BUILD.gn +++ third_party/crashpad/crashpad/handler/BUILD.gn @@ -12,6 +12,7 @@ @@ -179,7 +179,7 @@ index cf4f3e8463ba..8d0d261df1ec 100644 cflags = [ "/wd4201" ] # nonstandard extension used : nameless struct/union } diff --git third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc -index 715c533a2756..6f19e2ebc234 100644 +index 4783ecb252b1..d94295cfa9fb 100644 --- third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc +++ third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc @@ -264,6 +264,8 @@ CrashReportUploadThread::UploadResult CrashReportUploadThread::UploadReport( @@ -243,7 +243,7 @@ index 2ec1147d2620..8ff9a72e0bd7 100644 //! \brief Calls ProcessPendingReports() in response to ReportPending() having //! been called on any thread, as well as periodically on a timer. diff --git third_party/crashpad/crashpad/handler/handler_main.cc third_party/crashpad/crashpad/handler/handler_main.cc -index 70192cf4dd47..37a4380c65ba 100644 +index 412ee11272ab..4229907a6d79 100644 --- third_party/crashpad/crashpad/handler/handler_main.cc +++ third_party/crashpad/crashpad/handler/handler_main.cc @@ -36,8 +36,10 @@ @@ -268,7 +268,7 @@ index 70192cf4dd47..37a4380c65ba 100644 namespace crashpad { namespace { -@@ -176,6 +182,9 @@ struct Options { +@@ -179,6 +185,9 @@ struct Options { bool periodic_tasks; bool rate_limit; bool upload_gzip; @@ -278,8 +278,8 @@ index 70192cf4dd47..37a4380c65ba 100644 }; // Splits |key_value| on '=' and inserts the resulting key and value into |map|. -@@ -537,6 +546,9 @@ int HandlerMain(int argc, - kOptionInitialClientFD, +@@ -541,6 +550,9 @@ int HandlerMain(int argc, + kOptionSanitizationInformation, #endif kOptionURL, + kOptionMaxUploads, @@ -288,7 +288,7 @@ index 70192cf4dd47..37a4380c65ba 100644 // Standard options. kOptionHelp = -2, -@@ -594,6 +606,9 @@ int HandlerMain(int argc, +@@ -602,6 +614,9 @@ int HandlerMain(int argc, {"url", required_argument, nullptr, kOptionURL}, {"help", no_argument, nullptr, kOptionHelp}, {"version", no_argument, nullptr, kOptionVersion}, @@ -298,7 +298,7 @@ index 70192cf4dd47..37a4380c65ba 100644 {nullptr, 0, nullptr, 0}, }; -@@ -719,6 +734,27 @@ int HandlerMain(int argc, +@@ -737,6 +752,27 @@ int HandlerMain(int argc, options.url = optarg; break; } @@ -326,7 +326,7 @@ index 70192cf4dd47..37a4380c65ba 100644 case kOptionHelp: { Usage(me); MetricsRecordExit(Metrics::LifetimeMilestone::kExitedEarly); -@@ -827,8 +863,14 @@ int HandlerMain(int argc, +@@ -851,8 +887,14 @@ int HandlerMain(int argc, upload_thread_options.upload_gzip = options.upload_gzip; upload_thread_options.watch_pending_reports = options.periodic_tasks; @@ -341,7 +341,7 @@ index 70192cf4dd47..37a4380c65ba 100644 upload_thread.Get()->Start(); } -@@ -849,7 +891,8 @@ int HandlerMain(int argc, +@@ -880,7 +922,8 @@ int HandlerMain(int argc, ScopedStoppable prune_thread; if (options.periodic_tasks) { prune_thread.Reset(new PruneCrashReportThread( diff --git a/patch/patches/extensions_1947.patch b/patch/patches/extensions_1947.patch index 2e01880a7..31df61e05 100644 --- a/patch/patches/extensions_1947.patch +++ b/patch/patches/extensions_1947.patch @@ -27,10 +27,10 @@ index 53c7404ef1f9..ac33df7cfe0e 100644 auto* browser_context = web_contents->GetBrowserContext(); StreamsPrivateAPI* streams_private = GetStreamsPrivateAPI(browser_context); diff --git content/browser/frame_host/render_frame_host_manager.cc content/browser/frame_host/render_frame_host_manager.cc -index 1afa9972b8ad..ad51e305b31e 100644 +index f57d8ead39af..201b60891caf 100644 --- content/browser/frame_host/render_frame_host_manager.cc +++ content/browser/frame_host/render_frame_host_manager.cc -@@ -907,10 +907,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( +@@ -917,10 +917,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( // TODO(alexmos): This check should've been enforced earlier in the // navigation, in chrome::Navigate(). Verify this, and then convert this to // a CHECK and remove the fallback. @@ -46,7 +46,7 @@ index 1afa9972b8ad..ad51e305b31e 100644 return true; } -@@ -1051,7 +1052,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( +@@ -1061,7 +1062,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( // Double-check that the new SiteInstance is associated with the right // BrowserContext. @@ -57,10 +57,10 @@ index 1afa9972b8ad..ad51e305b31e 100644 // If |new_instance| is a new SiteInstance for a subframe that requires a // dedicated process, set its process reuse policy so that such subframes are diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h -index 8bcced1f4bf8..c17119e455de 100644 +index 062add3424de..b2b4a46193df 100644 --- content/public/browser/content_browser_client.h +++ content/public/browser/content_browser_client.h -@@ -375,6 +375,13 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -376,6 +376,13 @@ class CONTENT_EXPORT ContentBrowserClient { // Returns true if error page should be isolated in its own process. virtual bool ShouldIsolateErrorPage(bool in_main_frame); @@ -75,7 +75,7 @@ index 8bcced1f4bf8..c17119e455de 100644 // current SiteInstance, if it does not yet have a site. virtual bool ShouldAssignSiteForURL(const GURL& url); diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc -index ea08a7efdbe2..e01b98fd4552 100644 +index 8017d648301b..a0dbd923c64d 100644 --- extensions/browser/extension_host.cc +++ extensions/browser/extension_host.cc @@ -68,11 +68,12 @@ ExtensionHost::ExtensionHost(const Extension* extension, @@ -145,7 +145,7 @@ index ea08a7efdbe2..e01b98fd4552 100644 ExtensionRegistry::Get(browser_context_)->RemoveObserver(this); diff --git extensions/browser/extension_host.h extensions/browser/extension_host.h -index 8c7a96fdc179..6462365b24f2 100644 +index 369f4451607e..1849f3a7bcb7 100644 --- extensions/browser/extension_host.h +++ extensions/browser/extension_host.h @@ -51,13 +51,19 @@ class ExtensionHost : public DeferredStartRenderHost, diff --git a/patch/patches/gn_config.patch b/patch/patches/gn_config.patch index 5a95cb86d..b2536dfcd 100644 --- a/patch/patches/gn_config.patch +++ b/patch/patches/gn_config.patch @@ -1,8 +1,8 @@ diff --git .gn .gn -index 65c8804cc47c..f3a9a704abec 100644 +index 87fb8815433e..f19fba48f06c 100644 --- .gn +++ .gn -@@ -246,6 +246,8 @@ exec_script_whitelist = +@@ -247,6 +247,8 @@ exec_script_whitelist = # in the Chromium repo outside of //build. "//build_overrides/build.gni", @@ -12,7 +12,7 @@ index 65c8804cc47c..f3a9a704abec 100644 # https://crbug.com/474506. "//clank/java/BUILD.gn", diff --git BUILD.gn BUILD.gn -index 378aa8822bec..5fddd6adbf28 100644 +index db688ae72c3b..2f59b23ad90a 100644 --- BUILD.gn +++ BUILD.gn @@ -193,6 +193,7 @@ group("gn_all") { @@ -77,7 +77,7 @@ index 4d9d1f45f870..c668f93a50f3 100644 goma_prefix = "" } diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py -index 7405c61df323..4df7c57fe72f 100644 +index 2ee36e28f50d..7a08b9789226 100644 --- build/toolchain/win/setup_toolchain.py +++ build/toolchain/win/setup_toolchain.py @@ -134,25 +134,28 @@ def _LoadToolchainEnv(cpu, sdk_dir, target_store): @@ -129,10 +129,10 @@ index 7405c61df323..4df7c57fe72f 100644 diff --git build/vs_toolchain.py build/vs_toolchain.py -index aeb7bdadc73e..84b8541f1ff3 100755 +index 83847f456676..bf6254a0ebb6 100755 --- build/vs_toolchain.py +++ build/vs_toolchain.py -@@ -82,11 +82,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): +@@ -68,11 +68,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): runtime_path = os.path.pathsep.join(vs_runtime_dll_dirs) os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH'] elif sys.platform == 'win32' and not depot_tools_win_toolchain: @@ -152,7 +152,7 @@ index aeb7bdadc73e..84b8541f1ff3 100755 # directory in order to run binaries locally, but they are needed in order # to create isolates or the mini_installer. Copying them to the output diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni -index fde31eb044ed..b4fd21636719 100644 +index eca08ff7bc76..908257ebd5ec 100644 --- chrome/chrome_paks.gni +++ chrome/chrome_paks.gni @@ -257,7 +257,7 @@ template("chrome_paks") { diff --git a/patch/patches/gritsettings.patch b/patch/patches/gritsettings.patch index 3561fc5ac..2ecc8ed12 100644 --- a/patch/patches/gritsettings.patch +++ b/patch/patches/gritsettings.patch @@ -1,5 +1,5 @@ diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids -index fc16a42e623e..2dd0879350ee 100644 +index 2c9ca8bbae88..f18ec6b7ffb4 100644 --- tools/gritsettings/resource_ids +++ tools/gritsettings/resource_ids @@ -414,4 +414,11 @@ diff --git a/patch/patches/ime_1610.patch b/patch/patches/ime_1610.patch index 55e8592cb..f409acea7 100644 --- a/patch/patches/ime_1610.patch +++ b/patch/patches/ime_1610.patch @@ -1,5 +1,5 @@ diff --git ui/base/ime/input_method_win_base.cc ui/base/ime/input_method_win_base.cc -index 499a1b11d221..39d05334d0af 100644 +index db76ef3d5f87..816473414034 100644 --- ui/base/ime/input_method_win_base.cc +++ ui/base/ime/input_method_win_base.cc @@ -72,8 +72,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const { diff --git a/patch/patches/linux_build.patch b/patch/patches/linux_build.patch index 294b7856c..eba07efc2 100644 --- a/patch/patches/linux_build.patch +++ b/patch/patches/linux_build.patch @@ -1,5 +1,5 @@ diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn -index b7ad87f06562..e3ccb39deb36 100644 +index 2d82ed5b4e23..4bf0e3a8fc94 100644 --- build/config/compiler/BUILD.gn +++ build/config/compiler/BUILD.gn @@ -152,7 +152,7 @@ declare_args() { diff --git a/patch/patches/net_filter_515.patch b/patch/patches/net_filter_515.patch index f86e61ff1..9df1ff01a 100644 --- a/patch/patches/net_filter_515.patch +++ b/patch/patches/net_filter_515.patch @@ -1,16 +1,16 @@ diff --git net/base/network_delegate.h net/base/network_delegate.h -index e3b6502ff7ee..a3b4b2d40d5f 100644 +index fdd61fecfc9b..b9590ca9c4fb 100644 --- net/base/network_delegate.h +++ net/base/network_delegate.h @@ -17,6 +17,7 @@ - #include "net/base/completion_callback.h" + #include "net/base/completion_once_callback.h" #include "net/base/net_export.h" #include "net/cookies/canonical_cookie.h" +#include "net/filter/source_stream.h" #include "net/proxy_resolution/proxy_retry_info.h" class GURL; -@@ -127,6 +128,10 @@ class NET_EXPORT NetworkDelegate { +@@ -123,6 +124,10 @@ class NET_EXPORT NetworkDelegate { bool CanUseReportingClient(const url::Origin& origin, const GURL& endpoint) const; @@ -22,7 +22,7 @@ index e3b6502ff7ee..a3b4b2d40d5f 100644 THREAD_CHECKER(thread_checker_); diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc -index ce35b438d7a2..3cc110b6fd4c 100644 +index dbe08e3e375f..11051c636d5a 100644 --- net/url_request/url_request_job.cc +++ net/url_request/url_request_job.cc @@ -460,6 +460,12 @@ void URLRequestJob::NotifyHeadersComplete() { diff --git a/patch/patches/net_urlrequest_1327.patch b/patch/patches/net_urlrequest_1327.patch index c5315b85a..34e4ee810 100644 --- a/patch/patches/net_urlrequest_1327.patch +++ b/patch/patches/net_urlrequest_1327.patch @@ -1,8 +1,8 @@ diff --git net/url_request/url_request.h net/url_request/url_request.h -index 13b7326d6d50..d9b1dac19cd8 100644 +index 8551e92a205d..0bc5443c9f2e 100644 --- net/url_request/url_request.h +++ net/url_request/url_request.h -@@ -723,10 +723,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData { +@@ -724,10 +724,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData { } bool upgrade_if_insecure() const { return upgrade_if_insecure_; } diff --git a/patch/patches/pdfium_print_549365.patch b/patch/patches/pdfium_print_549365.patch index 3ea210c64..e98922403 100644 --- a/patch/patches/pdfium_print_549365.patch +++ b/patch/patches/pdfium_print_549365.patch @@ -1,5 +1,5 @@ diff --git BUILD.gn BUILD.gn -index 3422b8153..c3bba36c1 100644 +index 132f3c28e..4726a808c 100644 --- BUILD.gn +++ BUILD.gn @@ -248,6 +248,10 @@ jumbo_static_library("pdfium") { @@ -14,7 +14,7 @@ index 3422b8153..c3bba36c1 100644 jumbo_static_library("test_support") { diff --git fpdfsdk/fpdf_view.cpp fpdfsdk/fpdf_view.cpp -index 96de5d56e..f4ec36618 100644 +index 0e76548ab..cb89a1a4c 100644 --- fpdfsdk/fpdf_view.cpp +++ fpdfsdk/fpdf_view.cpp @@ -38,6 +38,7 @@ diff --git a/patch/patches/prefs_content_1161.patch b/patch/patches/prefs_content_1161.patch index 5b4f40ca3..f701665c6 100644 --- a/patch/patches/prefs_content_1161.patch +++ b/patch/patches/prefs_content_1161.patch @@ -35,14 +35,14 @@ index 78cbf5f3db86..9a4906a32336 100644 bool record_whole_document; SavePreviousDocumentResources save_previous_document_resources; diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc -index 4a2a3fac30ae..79f1e8192c9d 100644 +index 2ac60a4826d1..e658a53dc76a 100644 --- content/renderer/render_view_impl.cc +++ content/renderer/render_view_impl.cc -@@ -1227,6 +1227,7 @@ void RenderViewImpl::ApplyWebPreferencesInternal( +@@ -1205,6 +1205,7 @@ void RenderViewImpl::ApplyWebPreferencesInternal( blink::WebView* web_view, CompositorDependencies* compositor_deps) { ApplyWebPreferences(prefs, web_view); + web_view->SetBaseBackgroundColor(prefs.base_background_color); } - void RenderViewImpl::OnForceRedraw(const ui::LatencyInfo& latency_info) { + void RenderViewImpl::OnForceRedraw(int snapshot_id) { diff --git a/patch/patches/print_header_footer_1478_1565.patch b/patch/patches/print_header_footer_1478_1565.patch index 314e04412..c2684d1c2 100644 --- a/patch/patches/print_header_footer_1478_1565.patch +++ b/patch/patches/print_header_footer_1478_1565.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn -index 5734c8471ba4..2eadc767d8fe 100644 +index 30a33ab1cb73..1cbb401d639e 100644 --- chrome/browser/ui/BUILD.gn +++ chrome/browser/ui/BUILD.gn -@@ -896,6 +896,7 @@ split_static_library("ui") { +@@ -888,6 +888,7 @@ split_static_library("ui") { "//base:i18n", "//base/allocator:buildflags", "//cc/paint", @@ -116,7 +116,7 @@ index 006966fd1c58..db9cd49af2a4 100644 #endif diff --git components/printing/common/print_messages.cc components/printing/common/print_messages.cc -index 8b6f52b3f80a..d88865648117 100644 +index c2eee7803d32..8b4ecb1db44f 100644 --- components/printing/common/print_messages.cc +++ components/printing/common/print_messages.cc @@ -140,7 +140,6 @@ PrintMsg_PrintFrame_Params::PrintMsg_PrintFrame_Params() {} @@ -127,13 +127,13 @@ index 8b6f52b3f80a..d88865648117 100644 PrintHostMsg_RequestPrintPreview_Params:: PrintHostMsg_RequestPrintPreview_Params() : is_modifiable(false), -@@ -162,4 +161,3 @@ PrintHostMsg_SetOptionsFromDocument_Params:: +@@ -170,4 +169,3 @@ PrintHostMsg_SetOptionsFromDocument_Params:: PrintHostMsg_SetOptionsFromDocument_Params:: ~PrintHostMsg_SetOptionsFromDocument_Params() { } -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) diff --git components/printing/common/print_messages.h components/printing/common/print_messages.h -index cd3fe2986af2..6b377d0ad476 100644 +index d85d26c7e79c..ecced6678eb5 100644 --- components/printing/common/print_messages.h +++ components/printing/common/print_messages.h @@ -86,7 +86,6 @@ struct PrintMsg_PrintFrame_Params { @@ -144,7 +144,7 @@ index cd3fe2986af2..6b377d0ad476 100644 struct PrintHostMsg_RequestPrintPreview_Params { PrintHostMsg_RequestPrintPreview_Params(); ~PrintHostMsg_RequestPrintPreview_Params(); -@@ -105,7 +104,6 @@ struct PrintHostMsg_SetOptionsFromDocument_Params { +@@ -113,7 +112,6 @@ struct PrintHostMsg_SetOptionsFromDocument_Params { printing::DuplexMode duplex; printing::PageRanges page_ranges; }; @@ -152,7 +152,7 @@ index cd3fe2986af2..6b377d0ad476 100644 #endif // INTERNAL_COMPONENTS_PRINTING_COMMON_PRINT_MESSAGES_H_ -@@ -204,7 +202,6 @@ IPC_STRUCT_TRAITS_BEGIN(printing::PageRange) +@@ -212,7 +210,6 @@ IPC_STRUCT_TRAITS_BEGIN(printing::PageRange) IPC_STRUCT_TRAITS_MEMBER(to) IPC_STRUCT_TRAITS_END() @@ -160,7 +160,7 @@ index cd3fe2986af2..6b377d0ad476 100644 IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_RequestPrintPreview_Params) IPC_STRUCT_TRAITS_MEMBER(is_modifiable) IPC_STRUCT_TRAITS_MEMBER(webnode_only) -@@ -225,7 +222,6 @@ IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_SetOptionsFromDocument_Params) +@@ -238,7 +235,6 @@ IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_SetOptionsFromDocument_Params) // Specifies page range to be printed. IPC_STRUCT_TRAITS_MEMBER(page_ranges) IPC_STRUCT_TRAITS_END() @@ -168,7 +168,7 @@ index cd3fe2986af2..6b377d0ad476 100644 IPC_STRUCT_TRAITS_BEGIN(printing::PageSizeMargins) IPC_STRUCT_TRAITS_MEMBER(content_width) -@@ -270,7 +266,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintContent_Params) +@@ -283,7 +279,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintContent_Params) IPC_STRUCT_MEMBER(printing::ContentToProxyIdMap, subframe_content_info) IPC_STRUCT_END() @@ -176,15 +176,15 @@ index cd3fe2986af2..6b377d0ad476 100644 // Parameters to describe a rendered document. IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewDocument_Params) // Document's content including metafile data and subframe info. -@@ -315,7 +310,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidGetPreviewPageCount_Params) - // The id of the preview request. - IPC_STRUCT_MEMBER(int, preview_request_id) +@@ -319,7 +314,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidGetPreviewPageCount_Params) + // Scaling % to fit to page + IPC_STRUCT_MEMBER(int, fit_to_page_scaling) IPC_STRUCT_END() -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) // Parameters to describe a rendered page. IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintDocument_Params) -@@ -351,10 +345,8 @@ IPC_STRUCT_END() +@@ -355,20 +349,18 @@ IPC_STRUCT_END() // Messages sent from the browser to the renderer. @@ -195,7 +195,18 @@ index cd3fe2986af2..6b377d0ad476 100644 // Tells the RenderFrame to initiate printing or print preview for a particular // node, depending on which mode the RenderFrame is in. -@@ -379,13 +371,13 @@ IPC_MESSAGE_ROUTED1(PrintMsg_PrintingDone, + IPC_MESSAGE_ROUTED0(PrintMsg_PrintNodeUnderContextMenu) + +-#if BUILDFLAG(ENABLE_PRINTING) + // Tells the RenderFrame to switch the CSS to print media type, renders every + // requested pages and switch back the CSS to display media type. + IPC_MESSAGE_ROUTED0(PrintMsg_PrintPages) + ++#if BUILDFLAG(ENABLE_PRINTING) + // Like PrintMsg_PrintPages, but using the print preview document's frame/node. + IPC_MESSAGE_ROUTED0(PrintMsg_PrintForSystemDialog) + #endif +@@ -383,13 +375,13 @@ IPC_MESSAGE_ROUTED1(PrintMsg_PrintingDone, // Tells the RenderFrame whether printing is enabled or not. IPC_MESSAGE_ROUTED1(PrintMsg_SetPrintingEnabled, bool /* enabled */) @@ -210,7 +221,7 @@ index cd3fe2986af2..6b377d0ad476 100644 // Tells the RenderFrame that print preview dialog was closed. IPC_MESSAGE_ROUTED0(PrintMsg_ClosePrintPreviewDialog) #endif -@@ -451,7 +443,6 @@ IPC_MESSAGE_CONTROL3(PrintHostMsg_TempFileForPrintingWritten, +@@ -455,7 +447,6 @@ IPC_MESSAGE_CONTROL3(PrintHostMsg_TempFileForPrintingWritten, int /* page count */) #endif // defined(OS_ANDROID) @@ -218,31 +229,31 @@ index cd3fe2986af2..6b377d0ad476 100644 // Asks the browser to do print preview. IPC_MESSAGE_ROUTED1(PrintHostMsg_RequestPrintPreview, PrintHostMsg_RequestPrintPreview_Params /* params */) -@@ -485,7 +476,6 @@ IPC_SYNC_MESSAGE_ROUTED2_1(PrintHostMsg_CheckForCancel, - // The memory handle in this message is already valid in the browser process. - IPC_MESSAGE_ROUTED1(PrintHostMsg_MetafileReadyForPrinting, - PrintHostMsg_DidPreviewDocument_Params /* params */) +@@ -492,7 +483,6 @@ IPC_SYNC_MESSAGE_ROUTED1_1(PrintHostMsg_CheckForCancel, + IPC_MESSAGE_ROUTED2(PrintHostMsg_MetafileReadyForPrinting, + PrintHostMsg_DidPreviewDocument_Params /* params */, + PrintHostMsg_PreviewIds /* ids */) -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) // This is sent when there are invalid printer settings. IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError) -@@ -494,7 +484,6 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError) +@@ -501,7 +491,6 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError) IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintingFailed, int /* document cookie */) -#if BUILDFLAG(ENABLE_PRINT_PREVIEW) // Tell the browser print preview failed. - IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintPreviewFailed, - int /* document cookie */) -@@ -521,6 +510,5 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview, - // Notify the browser to set print presets based on source PDF document. - IPC_MESSAGE_ROUTED1(PrintHostMsg_SetOptionsFromDocument, - PrintHostMsg_SetOptionsFromDocument_Params /* params */) + IPC_MESSAGE_ROUTED2(PrintHostMsg_PrintPreviewFailed, + int /* document cookie */, +@@ -532,6 +521,5 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview, + IPC_MESSAGE_ROUTED2(PrintHostMsg_SetOptionsFromDocument, + PrintHostMsg_SetOptionsFromDocument_Params /* params */, + PrintHostMsg_PreviewIds /* ids */) -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) #endif // COMPONENTS_PRINTING_COMMON_PRINT_MESSAGES_H_ diff --git components/printing/renderer/print_render_frame_helper.cc components/printing/renderer/print_render_frame_helper.cc -index a1ca0fcadf3d..acd81619b0f6 100644 +index d1f6630b05c6..66a9e8a04627 100644 --- components/printing/renderer/print_render_frame_helper.cc +++ components/printing/renderer/print_render_frame_helper.cc @@ -340,7 +340,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame, @@ -316,15 +327,15 @@ index a1ca0fcadf3d..acd81619b0f6 100644 void PrintRenderFrameHelper::OnPrintPreview( const base::DictionaryValue& settings) { if (ipc_nesting_level_ > 1) -@@ -1388,7 +1382,6 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() { - Send(new PrintHostMsg_MetafileReadyForPrinting(routing_id(), preview_params)); +@@ -1396,7 +1390,6 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() { + ids)); return true; } -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) void PrintRenderFrameHelper::OnPrintingDone(bool success) { if (ipc_nesting_level_ > 1) -@@ -1403,7 +1396,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) { +@@ -1411,7 +1404,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) { is_printing_enabled_ = enabled; } @@ -332,7 +343,7 @@ index a1ca0fcadf3d..acd81619b0f6 100644 void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { if (ipc_nesting_level_ > 1) return; -@@ -1414,7 +1406,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { +@@ -1422,7 +1414,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { // that instead. auto plugin = delegate_->GetPdfElement(frame); if (!plugin.IsNull()) { @@ -342,7 +353,7 @@ index a1ca0fcadf3d..acd81619b0f6 100644 return; } print_preview_context_.InitWithFrame(frame); -@@ -1423,6 +1417,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { +@@ -1431,6 +1425,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { : PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME); } @@ -350,7 +361,7 @@ index a1ca0fcadf3d..acd81619b0f6 100644 void PrintRenderFrameHelper::OnClosePrintPreviewDialog() { print_preview_context_.source_frame()->DispatchAfterPrintEvent(); } -@@ -1510,11 +1505,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1518,11 +1513,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { print_node_in_progress_ = true; @@ -363,7 +374,21 @@ index a1ca0fcadf3d..acd81619b0f6 100644 } else { // Make a copy of the node, in case RenderView::OnContextMenuClosed() resets // its |context_menu_node_|. -@@ -1604,7 +1597,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { +@@ -1598,13 +1591,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, + void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { + int cookie = + print_pages_params_ ? print_pages_params_->params.document_cookie : 0; +-#if BUILDFLAG(ENABLE_PRINT_PREVIEW) + PrintHostMsg_PreviewIds ids; + if (print_pages_params_) { + ids.ui_id = print_pages_params_->params.preview_ui_id; + ids.request_id = print_pages_params_->params.preview_request_id; + } +-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) + switch (result) { + case OK: + break; +@@ -1619,7 +1610,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { } break; @@ -371,15 +396,15 @@ index a1ca0fcadf3d..acd81619b0f6 100644 case FAIL_PREVIEW: if (!is_print_ready_metafile_sent_) { if (notify_browser_of_print_failure_) { -@@ -1621,7 +1613,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { - cookie)); +@@ -1637,7 +1627,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { + cookie, ids)); print_preview_context_.Failed(false); break; -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) } prep_frame_view_.reset(); print_pages_params_.reset(); -@@ -1793,7 +1784,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame, +@@ -1809,7 +1798,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame, return true; } @@ -387,7 +412,7 @@ index a1ca0fcadf3d..acd81619b0f6 100644 bool PrintRenderFrameHelper::SetOptionsFromPdfDocument( PrintHostMsg_SetOptionsFromDocument_Params* options) { blink::WebLocalFrame* source_frame = print_preview_context_.source_frame(); -@@ -1887,7 +1877,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings( +@@ -1903,7 +1891,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings( print_preview_context_.set_error(PREVIEW_ERROR_INVALID_PRINTER_SETTINGS); return false; } @@ -395,7 +420,7 @@ index a1ca0fcadf3d..acd81619b0f6 100644 void PrintRenderFrameHelper::GetPrintSettingsFromUser( blink::WebLocalFrame* frame, -@@ -2044,7 +2033,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem( +@@ -2060,7 +2047,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem( return true; } @@ -403,8 +428,8 @@ index a1ca0fcadf3d..acd81619b0f6 100644 void PrintRenderFrameHelper::ShowScriptedPrintPreview() { if (is_scripted_preview_delayed_) { is_scripted_preview_delayed_ = false; -@@ -2167,7 +2155,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered( - Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params)); +@@ -2186,7 +2172,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered( + Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params, ids)); return true; } -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) diff --git a/patch/patches/rwh_background_color_1984.patch b/patch/patches/rwh_background_color_1984.patch index f2cc5de0e..0fc068d85 100644 --- a/patch/patches/rwh_background_color_1984.patch +++ b/patch/patches/rwh_background_color_1984.patch @@ -1,5 +1,5 @@ diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc -index 9987ac296f63..829b7fe0decc 100644 +index 3cacc3fdac2d..694dfa1c3901 100644 --- content/browser/renderer_host/render_widget_host_view_aura.cc +++ content/browser/renderer_host/render_widget_host_view_aura.cc @@ -718,10 +718,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const { @@ -32,6 +32,6 @@ index 9987ac296f63..829b7fe0decc 100644 + ignore_result(rvh->GetWebkitPreferences()); + } + - if (!features::IsMashEnabled()) + if (features::IsAshInBrowserProcess()) return; diff --git a/patch/patches/storage_partition_1973.patch b/patch/patches/storage_partition_1973.patch index 340c7fcfe..bea677468 100644 --- a/patch/patches/storage_partition_1973.patch +++ b/patch/patches/storage_partition_1973.patch @@ -1,8 +1,8 @@ diff --git content/browser/appcache/appcache_internals_ui.cc content/browser/appcache/appcache_internals_ui.cc -index 3a34269fbc04..b3637d969367 100644 +index f33713440f4f..f5cb6cd28a08 100644 --- content/browser/appcache/appcache_internals_ui.cc +++ content/browser/appcache/appcache_internals_ui.cc -@@ -373,8 +373,8 @@ void AppCacheInternalsUI::CreateProxyForPartition( +@@ -375,8 +375,8 @@ void AppCacheInternalsUI::CreateProxyForPartition( StoragePartition* storage_partition) { scoped_refptr proxy = new Proxy(weak_ptr_factory_.GetWeakPtr(), storage_partition->GetPath()); @@ -73,7 +73,7 @@ index cda94e43e866..84fde20fdce2 100644 partition->GetBluetoothAllowedDevicesMap(); return allowed_devices_map->GetOrCreateAllowedDevices(GetOrigin()); diff --git content/browser/browser_context.cc content/browser/browser_context.cc -index 69271e39f274..529af0b12e20 100644 +index 569e77cdb061..a663e6f4d4bc 100644 --- content/browser/browser_context.cc +++ content/browser/browser_context.cc @@ -131,11 +131,18 @@ StoragePartition* GetStoragePartitionFromConfig( @@ -98,7 +98,7 @@ index 69271e39f274..529af0b12e20 100644 } void SaveSessionStateOnIOThread( -@@ -564,6 +571,11 @@ ServiceManagerConnection* BrowserContext::GetServiceManagerConnectionFor( +@@ -565,6 +572,11 @@ ServiceManagerConnection* BrowserContext::GetServiceManagerConnectionFor( BrowserContext::BrowserContext() : unique_id_(base::UnguessableToken::Create().ToString()) {} @@ -111,7 +111,7 @@ index 69271e39f274..529af0b12e20 100644 CHECK(GetUserData(kMojoWasInitialized)) << "Attempting to destroy a BrowserContext that never called " diff --git content/browser/devtools/protocol/network_handler.cc content/browser/devtools/protocol/network_handler.cc -index 65d2b979fc14..8efcf3d986c0 100644 +index b9b4b2346364..be5ffdfc18be 100644 --- content/browser/devtools/protocol/network_handler.cc +++ content/browser/devtools/protocol/network_handler.cc @@ -945,8 +945,7 @@ class BackgroundSyncRestorer { @@ -161,7 +161,7 @@ index ec9ab86d0ca6..0fe5219f1e84 100644 base::WeakPtrFactory weak_factory_; diff --git content/browser/download/download_manager_impl.cc content/browser/download/download_manager_impl.cc -index d9873b33fb85..998d35106dca 100644 +index 9a52db09db96..a7e8e9960aea 100644 --- content/browser/download/download_manager_impl.cc +++ content/browser/download/download_manager_impl.cc @@ -86,9 +86,9 @@ @@ -187,7 +187,7 @@ index d9873b33fb85..998d35106dca 100644 } bool CanRequestURLFromRenderer(int render_process_id, GURL url) { -@@ -252,7 +251,7 @@ base::FilePath GetTemporaryDownloadDirectory() { +@@ -265,7 +264,7 @@ base::FilePath GetTemporaryDownloadDirectory() { #endif scoped_refptr @@ -196,7 +196,7 @@ index d9873b33fb85..998d35106dca 100644 RenderFrameHost* rfh, bool is_download) { network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info; -@@ -269,7 +268,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition, +@@ -282,7 +281,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition, } } return base::MakeRefCounted( @@ -205,7 +205,7 @@ index d9873b33fb85..998d35106dca 100644 std::move(proxy_factory_ptr_info), std::move(proxy_factory_request)); } -@@ -1018,7 +1017,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete( +@@ -1062,7 +1061,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete( tab_referrer_url = entry->GetReferrer().url; } } @@ -214,7 +214,7 @@ index d9873b33fb85..998d35106dca 100644 GetStoragePartition(browser_context_, render_process_id, render_frame_id); in_progress_manager_->InterceptDownloadFromNavigation( std::move(resource_request), render_process_id, render_frame_id, site_url, -@@ -1068,10 +1067,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( +@@ -1112,10 +1111,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( base::MakeRefCounted( params->url(), browser_context_->GetPath()); } else { @@ -228,10 +228,10 @@ index d9873b33fb85..998d35106dca 100644 CreateDownloadURLLoaderFactoryGetter(storage_partition, rfh, true); } diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc -index ea9f9f31fa80..dceece69c291 100644 +index db605075334b..8091ca84ab73 100644 --- content/browser/loader/navigation_url_loader_impl.cc +++ content/browser/loader/navigation_url_loader_impl.cc -@@ -987,7 +987,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController +@@ -986,7 +986,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController // path does as well for navigations. bool has_plugin = PluginService::GetInstance()->GetPluginInfo( -1 /* render_process_id */, -1 /* render_frame_id */, resource_context_, @@ -240,7 +240,7 @@ index ea9f9f31fa80..dceece69c291 100644 false /* allow_wildcard */, &stale, &plugin, nullptr); if (stale) { -@@ -1323,7 +1323,7 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( +@@ -1319,7 +1319,7 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( network::mojom::URLLoaderFactoryPtrInfo proxied_factory_info; network::mojom::URLLoaderFactoryRequest proxied_factory_request; @@ -249,7 +249,7 @@ index ea9f9f31fa80..dceece69c291 100644 if (frame_tree_node) { // |frame_tree_node| may be null in some unit test environments. GetContentClient() -@@ -1371,7 +1371,8 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( +@@ -1367,7 +1367,8 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( DCHECK(!request_controller_); request_controller_ = std::make_unique( std::move(initial_interceptors), std::move(new_request), resource_context, @@ -306,10 +306,10 @@ index 1c36dd8f388c..c294ba21ebdb 100644 partition->GetPaymentAppContext(); diff --git content/browser/renderer_host/render_process_host_impl.cc content/browser/renderer_host/render_process_host_impl.cc -index 11d5369b25bf..8351c27b2806 100644 +index 423cb81a09e2..324b01db8cbf 100644 --- content/browser/renderer_host/render_process_host_impl.cc +++ content/browser/renderer_host/render_process_host_impl.cc -@@ -728,11 +728,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, +@@ -740,11 +740,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, // Gets the correct render process to use for this SiteInstance. RenderProcessHost* GetProcessHost(SiteInstance* site_instance, bool is_for_guests_only) { @@ -325,7 +325,7 @@ index 11d5369b25bf..8351c27b2806 100644 // Is this the default storage partition? If it isn't, then just give it its // own non-shared process. -@@ -1344,7 +1343,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { +@@ -1342,7 +1341,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { // static RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( BrowserContext* browser_context, @@ -334,7 +334,7 @@ index 11d5369b25bf..8351c27b2806 100644 SiteInstance* site_instance, bool is_for_guests_only) { if (g_render_process_host_factory_) { -@@ -1353,8 +1352,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( +@@ -1351,8 +1350,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( } if (!storage_partition_impl) { @@ -345,7 +345,7 @@ index 11d5369b25bf..8351c27b2806 100644 } // If we've made a StoragePartition for guests (e.g., for the tag), // stash the Site URL on it. This way, when we start a service worker inside -@@ -1379,7 +1378,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = +@@ -1377,7 +1376,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = RenderProcessHostImpl::RenderProcessHostImpl( BrowserContext* browser_context, @@ -354,7 +354,7 @@ index 11d5369b25bf..8351c27b2806 100644 bool is_for_guests_only) : fast_shutdown_started_(false), deleting_soon_(false), -@@ -1412,7 +1411,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1410,7 +1409,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( indexed_db_factory_(new IndexedDBDispatcherHost( id_, storage_partition_impl_->GetURLRequestContext(), @@ -364,7 +364,7 @@ index 11d5369b25bf..8351c27b2806 100644 ChromeBlobStorageContext::GetFor(browser_context_))), channel_connected_(false), sent_render_process_ready_(false), -@@ -1447,7 +1447,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1445,7 +1445,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( } push_messaging_manager_.reset(new PushMessagingManager( @@ -374,7 +374,7 @@ index 11d5369b25bf..8351c27b2806 100644 AddObserver(indexed_db_factory_.get()); #if defined(OS_MACOSX) -@@ -1773,6 +1774,17 @@ void RenderProcessHostImpl::ResetChannelProxy() { +@@ -1771,6 +1772,17 @@ void RenderProcessHostImpl::ResetChannelProxy() { void RenderProcessHostImpl::CreateMessageFilters() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -382,28 +382,26 @@ index 11d5369b25bf..8351c27b2806 100644 + // Cast to the derived type from StoragePartitionImpl. + auto app_cache_service = static_cast( + storage_partition_impl_->GetAppCacheService()); -+ auto dom_storage_context = static_cast( -+ storage_partition_impl_->GetDOMStorageContext()); + auto cache_storage_context = static_cast( + storage_partition_impl_->GetCacheStorageContext()); ++ auto dom_storage_context = static_cast( ++ storage_partition_impl_->GetDOMStorageContext()); + auto service_worker_context = static_cast( + storage_partition_impl_->GetServiceWorkerContext()); + - AddFilter(new ResourceSchedulerFilter(GetID())); MediaInternals* media_internals = MediaInternals::GetInstance(); // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages -@@ -1786,8 +1798,8 @@ void RenderProcessHostImpl::CreateMessageFilters() { - new RenderMessageFilter( + // from guests. +@@ -1783,7 +1795,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { + base::MakeRefCounted( GetID(), GetBrowserContext(), request_context.get(), widget_helper_.get(), media_internals, -- storage_partition_impl_->GetDOMStorageContext(), -- storage_partition_impl_->GetCacheStorageContext())); -+ dom_storage_context, -+ cache_storage_context)); +- storage_partition_impl_->GetCacheStorageContext()); ++ cache_storage_context); AddFilter(render_message_filter.get()); render_frame_message_filter_ = new RenderFrameMessageFilter( -@@ -1814,10 +1826,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1810,10 +1822,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { ChromeBlobStorageContext::GetFor(browser_context); resource_message_filter_ = new ResourceMessageFilter( @@ -416,7 +414,7 @@ index 11d5369b25bf..8351c27b2806 100644 storage_partition_impl_->GetPrefetchURLLoaderService(), std::move(get_contexts_callback), BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); -@@ -1826,8 +1838,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1822,8 +1834,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { AddFilter( new MidiHost(GetID(), BrowserMainLoop::GetInstance()->midi_service())); @@ -426,7 +424,7 @@ index 11d5369b25bf..8351c27b2806 100644 peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID()); AddFilter(peer_connection_tracker_host_.get()); -@@ -1845,7 +1856,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1841,7 +1852,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { auto service_worker_filter = base::MakeRefCounted( @@ -435,7 +433,7 @@ index 11d5369b25bf..8351c27b2806 100644 AddFilter(service_worker_filter.get()); p2p_socket_dispatcher_host_ = new P2PSocketDispatcherHost( -@@ -1854,10 +1865,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1850,10 +1861,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { AddFilter(new TraceMessageFilter(GetID())); AddFilter(new ResolveProxyMsgHelper(request_context.get())); @@ -446,7 +444,7 @@ index 11d5369b25bf..8351c27b2806 100644 } void RenderProcessHostImpl::BindCacheStorage( -@@ -1869,7 +1876,8 @@ void RenderProcessHostImpl::BindCacheStorage( +@@ -1865,7 +1872,8 @@ void RenderProcessHostImpl::BindCacheStorage( cache_storage_dispatcher_host_ = base::MakeRefCounted(); cache_storage_dispatcher_host_->Init( @@ -456,7 +454,7 @@ index 11d5369b25bf..8351c27b2806 100644 } // Send the binding to IO thread, because Cache Storage handles Mojo IPC on IO // thread entirely. -@@ -1995,7 +2003,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { +@@ -2013,7 +2021,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { registry->AddInterface(base::BindRepeating( &AppCacheDispatcherHost::Create, @@ -467,7 +465,7 @@ index 11d5369b25bf..8351c27b2806 100644 AddUIThreadInterface(registry.get(), base::Bind(&FieldTrialRecorder::Create)); diff --git content/browser/renderer_host/render_process_host_impl.h content/browser/renderer_host/render_process_host_impl.h -index 036658008228..e7e77c3016e3 100644 +index c4bc2f4b6a11..826db9885c6a 100644 --- content/browser/renderer_host/render_process_host_impl.h +++ content/browser/renderer_host/render_process_host_impl.h @@ -89,7 +89,6 @@ class ResourceMessageFilter; @@ -487,7 +485,7 @@ index 036658008228..e7e77c3016e3 100644 SiteInstance* site_instance, bool is_for_guests_only); -@@ -439,7 +438,7 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -444,7 +443,7 @@ class CONTENT_EXPORT RenderProcessHostImpl // Use CreateRenderProcessHost() instead of calling this constructor // directly. RenderProcessHostImpl(BrowserContext* browser_context, @@ -496,7 +494,7 @@ index 036658008228..e7e77c3016e3 100644 bool is_for_guests_only); // Initializes a new IPC::ChannelProxy in |channel_|, which will be connected -@@ -703,10 +702,10 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -712,10 +711,10 @@ class CONTENT_EXPORT RenderProcessHostImpl // called. int instance_id_ = 1; @@ -584,7 +582,7 @@ index 469c8b3aa8d9..d1f7eb1f9571 100644 std::move(factory_bundle_for_renderer), service_worker_context_, process_id, diff --git content/browser/storage_partition_impl.h content/browser/storage_partition_impl.h -index e80daeffae73..ca80581c021c 100644 +index 06cca44a1517..378193727006 100644 --- content/browser/storage_partition_impl.h +++ content/browser/storage_partition_impl.h @@ -96,7 +96,7 @@ class CONTENT_EXPORT StoragePartitionImpl @@ -619,11 +617,11 @@ index e80daeffae73..ca80581c021c 100644 + PrefetchURLLoaderService* GetPrefetchURLLoaderService() override; + CookieStoreContext* GetCookieStoreContext() override; - // mojom::StoragePartitionService interface. + // blink::mojom::StoragePartitionService interface. void OpenLocalStorage(const url::Origin& origin, -@@ -152,18 +152,18 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -152,18 +152,19 @@ class CONTENT_EXPORT StoragePartitionImpl const std::string& namespace_id, - mojom::SessionStorageNamespaceRequest request) override; + blink::mojom::SessionStorageNamespaceRequest request) override; - scoped_refptr url_loader_factory_getter() { - return url_loader_factory_getter_; @@ -639,12 +637,13 @@ index e80daeffae73..ca80581c021c 100644 // binding. mojo::BindingId Bind( int process_id, -- mojo::InterfaceRequest request); -+ mojo::InterfaceRequest request) override; +- mojo::InterfaceRequest request); ++ mojo::InterfaceRequest request) ++ override; auto& bindings_for_testing() { return bindings_; } -@@ -174,10 +174,11 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -174,10 +175,11 @@ class CONTENT_EXPORT StoragePartitionImpl // one must use the "chrome-guest://blahblah" site URL to ensure that the // service worker stays in this StoragePartition. This is an empty GURL if // this StoragePartition is not for guests. @@ -687,7 +686,7 @@ index 075ae3e7431e..57fb5fd2c4a8 100644 void InitializeOnIOThread(); diff --git content/browser/webui/web_ui_url_loader_factory.cc content/browser/webui/web_ui_url_loader_factory.cc -index baa74f4c5e5e..3d5ebb876ea1 100644 +index 0b8ff3fcc618..730ea693d521 100644 --- content/browser/webui/web_ui_url_loader_factory.cc +++ content/browser/webui/web_ui_url_loader_factory.cc @@ -19,13 +19,13 @@ @@ -705,7 +704,7 @@ index baa74f4c5e5e..3d5ebb876ea1 100644 #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/common/url_constants.h" -@@ -313,9 +313,8 @@ class WebUIURLLoaderFactory : public network::mojom::URLLoaderFactory, +@@ -312,9 +312,8 @@ class WebUIURLLoaderFactory : public network::mojom::URLLoaderFactory, const std::string& scheme() const { return scheme_; } private: @@ -746,18 +745,21 @@ index b5cad2b73640..da041c3faf19 100644 std::map; diff --git content/public/browser/storage_partition.h content/public/browser/storage_partition.h -index 28e2c251a117..5eb3ea81db32 100644 +index 28e2c251a117..e8c6105fdeee 100644 --- content/public/browser/storage_partition.h +++ content/public/browser/storage_partition.h -@@ -14,6 +14,7 @@ +@@ -14,8 +14,10 @@ #include "base/files/file_path.h" #include "base/time/time.h" #include "content/common/content_export.h" +#include "mojo/public/cpp/bindings/binding_set.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/mojom/cookie_manager.mojom.h" ++#include "third_party/blink/public/mojom/dom_storage/storage_partition_service.mojom.h" -@@ -59,12 +60,28 @@ class ServiceWorkerContext; + class GURL; + +@@ -59,12 +61,28 @@ class ServiceWorkerContext; class SharedWorkerService; class WebPackageContext; @@ -786,7 +788,7 @@ index 28e2c251a117..5eb3ea81db32 100644 // Defines what persistent state a child process can access. // // The StoragePartition defines the view each child process has of the -@@ -102,6 +119,7 @@ class CONTENT_EXPORT StoragePartition { +@@ -102,6 +120,7 @@ class CONTENT_EXPORT StoragePartition { virtual storage::FileSystemContext* GetFileSystemContext() = 0; virtual storage::DatabaseTracker* GetDatabaseTracker() = 0; virtual DOMStorageContext* GetDOMStorageContext() = 0; @@ -794,7 +796,7 @@ index 28e2c251a117..5eb3ea81db32 100644 virtual IndexedDBContext* GetIndexedDBContext() = 0; virtual ServiceWorkerContext* GetServiceWorkerContext() = 0; virtual SharedWorkerService* GetSharedWorkerService() = 0; -@@ -224,6 +242,27 @@ class CONTENT_EXPORT StoragePartition { +@@ -224,6 +243,27 @@ class CONTENT_EXPORT StoragePartition { // Wait until all deletions tasks are finished. For test use only. virtual void WaitForDeletionTasksForTesting() = 0; @@ -813,7 +815,7 @@ index 28e2c251a117..5eb3ea81db32 100644 + + virtual mojo::BindingId Bind( + int process_id, -+ mojo::InterfaceRequest request) = 0; ++ mojo::InterfaceRequest request) = 0; + + virtual void set_site_for_service_worker( + const GURL& site_for_service_worker) = 0; diff --git a/patch/patches/views_1749_2102.patch b/patch/patches/views_1749_2102.patch index e82afd50c..f3ba1fc8c 100644 --- a/patch/patches/views_1749_2102.patch +++ b/patch/patches/views_1749_2102.patch @@ -39,7 +39,7 @@ index a19e6e937f87..817b7eada253 100644 virtual void MenuWillShow() {} diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc -index 39702db77da5..fa1a84425200 100644 +index a60952af55e0..7934c02ea3bb 100644 --- ui/gfx/render_text.cc +++ ui/gfx/render_text.cc @@ -524,6 +524,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) { @@ -57,7 +57,7 @@ index 39702db77da5..fa1a84425200 100644 void RenderText::SetDisplayRect(const Rect& r) { if (r != display_rect_) { display_rect_ = r; -@@ -1485,6 +1493,19 @@ void RenderText::OnTextAttributeChanged() { +@@ -1489,6 +1497,19 @@ void RenderText::OnTextAttributeChanged() { if (!multiline_ && replace_newline_chars_with_symbols_) base::ReplaceChars(layout_text_, kNewline, kNewlineSymbol, &layout_text_); @@ -78,10 +78,10 @@ index 39702db77da5..fa1a84425200 100644 } diff --git ui/gfx/render_text.h ui/gfx/render_text.h -index 4cc2bdc85fe8..2b05443698da 100644 +index 5032b215594e..6c5edfedb251 100644 --- ui/gfx/render_text.h +++ ui/gfx/render_text.h -@@ -299,6 +299,10 @@ class GFX_EXPORT RenderText { +@@ -300,6 +300,10 @@ class GFX_EXPORT RenderText { void SetElideBehavior(ElideBehavior elide_behavior); ElideBehavior elide_behavior() const { return elide_behavior_; } @@ -92,7 +92,7 @@ index 4cc2bdc85fe8..2b05443698da 100644 const Rect& display_rect() const { return display_rect_; } void SetDisplayRect(const Rect& r); -@@ -882,6 +886,8 @@ class GFX_EXPORT RenderText { +@@ -886,6 +890,8 @@ class GFX_EXPORT RenderText { // Extra spacing placed between glyphs; used for obscured text styling. int glyph_spacing_ = 0; @@ -295,10 +295,10 @@ index 1d35afeda78f..333f9c0f778d 100644 std::unique_ptr selection_controller_; diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc -index 7feb65bfdd66..c970760173ab 100644 +index cb9ff25e88a5..6dbd8472cea2 100644 --- ui/views/controls/menu/menu_controller.cc +++ ui/views/controls/menu/menu_controller.cc -@@ -2411,8 +2411,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem( +@@ -2417,8 +2417,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem( void MenuController::OpenSubmenuChangeSelectionIfCan() { MenuItemView* item = pending_state_.item; @@ -313,7 +313,7 @@ index 7feb65bfdd66..c970760173ab 100644 MenuItemView* to_select = NULL; if (item->GetSubmenu()->GetMenuItemCount() > 0) to_select = FindInitialSelectableMenuItem(item, INCREMENT_SELECTION_DOWN); -@@ -2427,8 +2432,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() { +@@ -2433,8 +2438,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() { void MenuController::CloseSubmenu() { MenuItemView* item = state_.item; DCHECK(item); diff --git a/patch/patches/views_widget_180_1481_1565_1677_1749.patch b/patch/patches/views_widget_180_1481_1565_1677_1749.patch index e0668bba1..827a31247 100644 --- a/patch/patches/views_widget_180_1481_1565_1677_1749.patch +++ b/patch/patches/views_widget_180_1481_1565_1677_1749.patch @@ -427,7 +427,7 @@ index c7296fed234d..244d0034a1c4 100644 if (native_widget_delegate->IsDialogBox()) { *style |= DS_MODALFRAME; diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc -index cadeb2322620..ced9be6715ed 100644 +index 8038ca7fcece..2277290bb117 100644 --- ui/views/win/hwnd_message_handler.cc +++ ui/views/win/hwnd_message_handler.cc @@ -2809,10 +2809,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, diff --git a/patch/patches/web_contents_1257_1565.patch b/patch/patches/web_contents_1257_1565.patch index 6da8fb201..9c11698dd 100644 --- a/patch/patches/web_contents_1257_1565.patch +++ b/patch/patches/web_contents_1257_1565.patch @@ -1,8 +1,8 @@ diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc -index 59f3a5069faa..8b47e7a5b9f3 100644 +index c586ac23d506..608e99a2eeab 100644 --- content/browser/web_contents/web_contents_impl.cc +++ content/browser/web_contents/web_contents_impl.cc -@@ -1862,21 +1862,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -1915,21 +1915,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { std::string unique_name; frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name); @@ -45,7 +45,7 @@ index 59f3a5069faa..8b47e7a5b9f3 100644 CHECK(render_view_host_delegate_view_); CHECK(view_.get()); -@@ -2484,6 +2493,15 @@ void WebContentsImpl::CreateNewWindow( +@@ -2605,6 +2614,15 @@ void WebContentsImpl::CreateNewWindow( create_params.renderer_initiated_creation = main_frame_route_id != MSG_ROUTING_NONE; @@ -61,7 +61,7 @@ index 59f3a5069faa..8b47e7a5b9f3 100644 std::unique_ptr new_contents; if (!is_guest) { create_params.context = view_->GetNativeView(); -@@ -2514,7 +2532,7 @@ void WebContentsImpl::CreateNewWindow( +@@ -2635,7 +2653,7 @@ void WebContentsImpl::CreateNewWindow( // TODO(brettw): It seems bogus that we have to call this function on the // newly created object and give it one of its own member variables. new_view->CreateViewForWidget( @@ -70,7 +70,7 @@ index 59f3a5069faa..8b47e7a5b9f3 100644 } // Save the created window associated with the route so we can show it // later. -@@ -5814,7 +5832,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { +@@ -5951,7 +5969,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager( RenderViewHost* render_view_host) { RenderWidgetHostViewBase* rwh_view = @@ -95,7 +95,7 @@ index df508da0aef2..f6f4bf42b108 100644 WebContents::CreateParams::CreateParams(const CreateParams& other) = default; diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h -index f7a44dd2bbe1..0e4954c46f2a 100644 +index edd94aab382e..9343feb8c3c4 100644 --- content/public/browser/web_contents.h +++ content/public/browser/web_contents.h @@ -75,9 +75,11 @@ class BrowserPluginGuestDelegate; @@ -122,7 +122,7 @@ index f7a44dd2bbe1..0e4954c46f2a 100644 // Creates a new WebContents. diff --git content/public/browser/web_contents_delegate.h content/public/browser/web_contents_delegate.h -index a4d4d079fbaa..4f5f626846bc 100644 +index 414e3423091d..062f5d0167e8 100644 --- content/public/browser/web_contents_delegate.h +++ content/public/browser/web_contents_delegate.h @@ -47,10 +47,12 @@ class ColorChooser; diff --git a/patch/patches/webkit_plugin_info_2015.patch b/patch/patches/webkit_plugin_info_2015.patch index e90fe2e2a..fade437e8 100644 --- a/patch/patches/webkit_plugin_info_2015.patch +++ b/patch/patches/webkit_plugin_info_2015.patch @@ -1,8 +1,8 @@ diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h -index a1595fbd3904..62a0c1b4e10d 100644 +index 1607d2617d3e..476a5147ab84 100644 --- third_party/blink/public/platform/platform.h +++ third_party/blink/public/platform/platform.h -@@ -376,6 +376,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -374,6 +374,7 @@ class BLINK_PLATFORM_EXPORT Platform { // satisfy this call. mainFrameOrigin is used by the browser process to // filter plugins from the plugin list based on content settings. virtual void GetPluginList(bool refresh, @@ -10,7 +10,7 @@ index a1595fbd3904..62a0c1b4e10d 100644 const WebSecurityOrigin& main_frame_origin, WebPluginListBuilder*) {} -@@ -727,6 +728,11 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -718,6 +719,11 @@ class BLINK_PLATFORM_EXPORT Platform { // runs during Chromium's build step). virtual bool IsTakingV8ContextSnapshot() { return false; } @@ -23,7 +23,7 @@ index a1595fbd3904..62a0c1b4e10d 100644 Platform(); virtual ~Platform(); diff --git third_party/blink/renderer/core/dom/dom_implementation.cc third_party/blink/renderer/core/dom/dom_implementation.cc -index 8c40eef254a8..b9ac9f2a3472 100644 +index a2fbf84747aa..8ab120155ccd 100644 --- third_party/blink/renderer/core/dom/dom_implementation.cc +++ third_party/blink/renderer/core/dom/dom_implementation.cc @@ -243,10 +243,11 @@ Document* DOMImplementation::createDocument(const String& type, @@ -41,7 +41,7 @@ index 8c40eef254a8..b9ac9f2a3472 100644 .Top() .GetSecurityContext() diff --git third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc -index f98ae01cd46d..bba0b1930bff 100644 +index c3d5777b9fab..a1388f5afe0d 100644 --- third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc +++ third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc @@ -325,6 +325,8 @@ WebDevToolsAgentImpl::Session::Session( @@ -62,10 +62,10 @@ index f98ae01cd46d..bba0b1930bff 100644 void WebDevToolsAgentImpl::Session::SendProtocolResponse(int session_id, diff --git third_party/blink/renderer/core/frame/local_frame.cc third_party/blink/renderer/core/frame/local_frame.cc -index bfd4da31b97d..56acd87eb3d9 100644 +index ccc77a631977..74923148f3e2 100644 --- third_party/blink/renderer/core/frame/local_frame.cc +++ third_party/blink/renderer/core/frame/local_frame.cc -@@ -1230,7 +1230,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { +@@ -1242,7 +1242,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { PluginData* LocalFrame::GetPluginData() const { if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin)) return nullptr; @@ -75,10 +75,10 @@ index bfd4da31b97d..56acd87eb3d9 100644 } diff --git third_party/blink/renderer/core/page/page.cc third_party/blink/renderer/core/page/page.cc -index 877d500ed7a2..bc548efe2032 100644 +index a7a90df7f73a..f890d1a61626 100644 --- third_party/blink/renderer/core/page/page.cc +++ third_party/blink/renderer/core/page/page.cc -@@ -157,7 +157,8 @@ Page::Page(PageClients& page_clients) +@@ -158,7 +158,8 @@ Page::Page(PageClients& page_clients) overscroll_controller_( OverscrollController::Create(GetVisualViewport(), GetChromeClient())), main_frame_(nullptr), @@ -138,7 +138,7 @@ index 877d500ed7a2..bc548efe2032 100644 page->NotifyPluginsChanged(); } } -@@ -709,7 +729,8 @@ void Page::Trace(blink::Visitor* visitor) { +@@ -711,7 +731,8 @@ void Page::Trace(blink::Visitor* visitor) { visitor->Trace(visual_viewport_); visitor->Trace(overscroll_controller_); visitor->Trace(main_frame_); @@ -149,7 +149,7 @@ index 877d500ed7a2..bc548efe2032 100644 visitor->Trace(use_counter_); visitor->Trace(plugins_changed_observers_); diff --git third_party/blink/renderer/core/page/page.h third_party/blink/renderer/core/page/page.h -index 821b8c58c38a..96194ac3f10d 100644 +index 68ea2ac5efd4..8661fa0ebe1c 100644 --- third_party/blink/renderer/core/page/page.h +++ third_party/blink/renderer/core/page/page.h @@ -138,7 +138,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, @@ -162,7 +162,7 @@ index 821b8c58c38a..96194ac3f10d 100644 // Resets the plugin data for all pages in the renderer process and notifies // PluginsChangedObservers. -@@ -367,7 +368,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, +@@ -366,7 +367,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, // longer needed. Member main_frame_; diff --git a/patch/patches/webkit_pointer_event_781966.patch b/patch/patches/webkit_pointer_event_781966.patch index e3412abbf..c6b54ec71 100644 --- a/patch/patches/webkit_pointer_event_781966.patch +++ b/patch/patches/webkit_pointer_event_781966.patch @@ -1,5 +1,5 @@ diff --git third_party/blink/renderer/core/input/pointer_event_manager.cc third_party/blink/renderer/core/input/pointer_event_manager.cc -index 99194c3c383c..f5c7e7084aab 100644 +index e48a89c9b8d8..512cf3aff54b 100644 --- third_party/blink/renderer/core/input/pointer_event_manager.cc +++ third_party/blink/renderer/core/input/pointer_event_manager.cc @@ -284,7 +284,7 @@ void PointerEventManager::HandlePointerInterruption( diff --git a/patch/patches/webkit_popups.patch b/patch/patches/webkit_popups.patch index 0538526fb..f60804c6c 100644 --- a/patch/patches/webkit_popups.patch +++ b/patch/patches/webkit_popups.patch @@ -1,5 +1,5 @@ diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h -index f7c3e651b3ce..ce3e42c6900d 100644 +index bf85495790f5..83d0f5eadf43 100644 --- third_party/blink/public/web/web_view.h +++ third_party/blink/public/web/web_view.h @@ -358,6 +358,7 @@ class WebView : protected WebWidget { @@ -20,7 +20,7 @@ index f7c3e651b3ce..ce3e42c6900d 100644 // Call these methods before and after running a nested, modal event loop diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc -index 224122471b0e..92aad351f293 100644 +index 066b937a6700..290596dceb21 100644 --- third_party/blink/renderer/core/exported/web_view_impl.cc +++ third_party/blink/renderer/core/exported/web_view_impl.cc @@ -246,8 +246,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) { @@ -48,7 +48,7 @@ index 224122471b0e..92aad351f293 100644 suppress_next_keypress_event_(false), ime_accept_events_(true), diff --git third_party/blink/renderer/core/exported/web_view_impl.h third_party/blink/renderer/core/exported/web_view_impl.h -index 69f1438873b2..86443bf1f05e 100644 +index 3a9f0243cbee..1b402bd2b79f 100644 --- third_party/blink/renderer/core/exported/web_view_impl.h +++ third_party/blink/renderer/core/exported/web_view_impl.h @@ -105,7 +105,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, diff --git a/patch/patches/webui_2037.patch b/patch/patches/webui_2037.patch index 3353bab33..635042271 100644 --- a/patch/patches/webui_2037.patch +++ b/patch/patches/webui_2037.patch @@ -35,7 +35,7 @@ index f68368e79f85..654b7b9312e6 100644 extensions::ExtensionRegistry::Get(profile); std::string extensions_list; diff --git chrome/browser/memory_details.cc chrome/browser/memory_details.cc -index 509b62c78375..f48dd53e30c3 100644 +index 6dd7385d105f..1b8635f7569f 100644 --- chrome/browser/memory_details.cc +++ chrome/browser/memory_details.cc @@ -16,6 +16,7 @@ @@ -60,10 +60,10 @@ index 509b62c78375..f48dd53e30c3 100644 render_process_host->GetBrowserContext(); extensions::ExtensionRegistry* extension_registry = diff --git chrome/browser/ui/webui/net_internals/net_internals_ui.cc chrome/browser/ui/webui/net_internals/net_internals_ui.cc -index 488d0c70949f..d95b2e9b3cf9 100644 +index 230edefeca1d..c60e20a28dc9 100644 --- chrome/browser/ui/webui/net_internals/net_internals_ui.cc +++ chrome/browser/ui/webui/net_internals/net_internals_ui.cc -@@ -527,41 +527,31 @@ void NetInternalsMessageHandler::OnClearBrowserCache( +@@ -529,41 +529,31 @@ void NetInternalsMessageHandler::OnClearBrowserCache( void NetInternalsMessageHandler::OnGetPrerenderInfo( const base::ListValue* list) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -110,7 +110,7 @@ index 488d0c70949f..d95b2e9b3cf9 100644 } //////////////////////////////////////////////////////////////////////////////// -@@ -641,9 +631,17 @@ void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady( +@@ -643,9 +633,17 @@ void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady( PrePopulateEventList(); @@ -131,7 +131,7 @@ index 488d0c70949f..d95b2e9b3cf9 100644 } void NetInternalsMessageHandler::IOThreadImpl::OnGetNetInfo( -@@ -1139,7 +1137,8 @@ void NetInternalsMessageHandler::IOThreadImpl::PrePopulateEventList() { +@@ -1141,7 +1139,8 @@ void NetInternalsMessageHandler::IOThreadImpl::PrePopulateEventList() { std::set contexts; for (const auto& getter : context_getters_) contexts.insert(getter->GetURLRequestContext()); diff --git a/patch/patches/webview_plugin_2020.patch b/patch/patches/webview_plugin_2020.patch index f6f4ad674..cc10c00c9 100644 --- a/patch/patches/webview_plugin_2020.patch +++ b/patch/patches/webview_plugin_2020.patch @@ -1,8 +1,8 @@ diff --git chrome/app/generated_resources.grd chrome/app/generated_resources.grd -index bf7c0f302d68..42f43506c444 100644 +index d732faf1ef16..67befd96e1b9 100644 --- chrome/app/generated_resources.grd +++ chrome/app/generated_resources.grd -@@ -4602,7 +4602,7 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -4595,7 +4595,7 @@ Keep your key file in a safe place. You will need it to create new versions of y diff --git a/tools/gn_args.py b/tools/gn_args.py index 620b3612e..b99488f7c 100644 --- a/tools/gn_args.py +++ b/tools/gn_args.py @@ -264,6 +264,10 @@ def GetRequiredArgs(): # issue #2424). result['use_bundled_fontconfig'] = False + # Disable vulkan to avoid linker errors. + # See https://bugs.chromium.org/p/chromium/issues/detail?id=848100#c4 + result['enable_vulkan'] = False + if platform == 'macosx': # Always generate dSYM files. The make_distrib script will fail if # enable_dsyms=true is not explicitly set when is_official_build=false.