Compare commits

...

1 Commits

Author SHA1 Message Date
Shelley Vohr
dd5283c6a0 refactor: remove more base::AdaptCallbackForRepeating 2025-05-06 16:03:18 +02:00
2 changed files with 31 additions and 8 deletions

View File

@@ -731,17 +731,30 @@ void App::AllowCertificateError(
bool is_main_frame_request,
bool strict_enforcement,
base::OnceCallback<void(content::CertificateRequestResultType)> callback) {
auto adapted_callback = base::AdaptCallbackForRepeating(std::move(callback));
auto shared_callback = std::make_shared<
base::OnceCallback<void(content::CertificateRequestResultType)>>(
std::move(callback));
v8::Isolate* isolate = JavascriptEnvironment::GetIsolate();
v8::HandleScope handle_scope(isolate);
auto js_callback = base::BindRepeating(
[](std::shared_ptr<base::OnceCallback<void(
content::CertificateRequestResultType)>> callback,
content::CertificateRequestResultType result) {
if (callback && *callback)
std::move(*callback).Run(result);
},
shared_callback);
bool prevent_default = Emit(
"certificate-error", WebContents::FromOrCreate(isolate, web_contents),
request_url, net::ErrorToString(cert_error), ssl_info.cert,
adapted_callback, is_main_frame_request);
request_url, net::ErrorToString(cert_error), ssl_info.cert, js_callback,
is_main_frame_request);
// Deny the certificate by default.
if (!prevent_default)
adapted_callback.Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_DENY);
js_callback.Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_DENY);
}
base::OnceClosure App::SelectClientCertificate(

View File

@@ -52,11 +52,21 @@ void MenuViews::PopupAt(BaseWindow* window,
// callback, it is fine passing OnceCallback to it because we reset the
// menu runner immediately when the menu is closed.
int32_t window_id = window->weak_map_id();
auto close_callback = base::AdaptCallbackForRepeating(
base::BindOnce(&MenuViews::OnClosed, weak_factory_.GetWeakPtr(),
window_id, std::move(callback_with_ref)));
auto shared_callback =
std::make_shared<base::OnceClosure>(std::move(callback_with_ref));
auto close_callback = base::BindRepeating(
[](base::WeakPtr<MenuViews> self, int32_t id,
std::shared_ptr<base::OnceClosure> callback) {
if (self && callback && *callback) {
auto cb = std::move(*callback);
self->OnClosed(id, std::move(cb));
}
},
weak_factory_.GetWeakPtr(), window_id, shared_callback);
auto& runner = menu_runners_[window_id] =
std::make_unique<MenuRunner>(model(), flags, std::move(close_callback));
std::make_unique<MenuRunner>(model(), flags, close_callback);
runner->RunMenuAt(native_window->widget(), nullptr,
gfx::Rect{location, gfx::Size{}},
views::MenuAnchorPosition::kTopLeft, source_type);