diff --git a/libcef/browser/password/oh_password_manager_client.cc b/libcef/browser/password/oh_password_manager_client.cc index dca12a53cf6b262bcdb46c98a19c2b09cf6714a2..7896ad8adfc0c1eef650dc2ecd98232043b379f6 100644 --- a/libcef/browser/password/oh_password_manager_client.cc +++ b/libcef/browser/password/oh_password_manager_client.cc @@ -776,12 +776,17 @@ OhPasswordManagerClient::PasswordFormToJsonForRequest( imf_info->is_other_account)); } + password_manager::ContentPasswordManagerDriver* pwd_manager_driver = + driver_factory_->GetDriverForFrame(web_contents()->GetFocusedFrame()); std::unordered_map fillItem = { {KEY_USERNAME, username_data}, {KEY_PASSWORD, password_data}}; for (auto item : fillItem) { base::Value::List list; list.Append( base::Value::Dict().Set(KEY_FOCUS, item.second.is_focused ? 1 : 0)); + if (pwd_manager_driver != nullptr) { + item.second.bounds = TransformToRootCoordinates(pwd_manager_driver->render_frame_host(), item.second.bounds); + } list.Append(base::Value::Dict().Set( KEY_RECT_X, static_cast((item.second.bounds.x() + offset.x()) * ratio)));