diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-09-29 16:16:15 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-11-09 10:04:06 +0000 |
commit | a95a7417ad456115a1ef2da4bb8320531c0821f1 (patch) | |
tree | edcd59279e486d2fd4a8f88a7ed025bcf925c6e6 /chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc | |
parent | 33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (diff) |
BASELINE: Update Chromium to 106.0.5249.126
Change-Id: Ib0bb21c437a7d1686e21c33f2d329f2ac425b7ab
Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/438936
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc')
-rw-r--r-- | chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc | 123 |
1 files changed, 56 insertions, 67 deletions
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc index 17c33749491..4ae582a101f 100644 --- a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc +++ b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc @@ -39,8 +39,7 @@ #include "chrome/browser/ui/webui/settings/chromeos/server_printer_url_util.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/pref_names.h" -#include "chromeos/dbus/dbus_thread_manager.h" -#include "chromeos/dbus/debug_daemon/debug_daemon_client.h" +#include "chromeos/ash/components/dbus/debug_daemon/debug_daemon_client.h" #include "chromeos/printing/ppd_line_reader.h" #include "chromeos/printing/printer_configuration.h" #include "chromeos/printing/printer_translator.h" @@ -102,16 +101,16 @@ void QueryAutoconf(const Uri& uri, PrinterInfoCallback callback) { } // Returns the list of |printers| formatted as a CupsPrintersList. -base::Value BuildCupsPrintersList(const std::vector<Printer>& printers) { - base::Value printers_list(base::Value::Type::LIST); +base::Value::Dict BuildCupsPrintersList(const std::vector<Printer>& printers) { + base::Value::List printers_list; for (const Printer& printer : printers) { // Some of these printers could be invalid but we want to allow the user // to edit them. crbug.com/778383 printers_list.Append(GetCupsPrinterInfo(printer)); } - base::Value response(base::Value::Type::DICTIONARY); - response.SetKey("printerList", std::move(printers_list)); + base::Value::Dict response; + response.Set("printerList", std::move(printers_list)); return response; } @@ -119,19 +118,19 @@ base::Value BuildCupsPrintersList(const std::vector<Printer>& printers) { // CupsPrinterInfo representation. If any of the required fields are missing, // returns nullptr. std::unique_ptr<chromeos::Printer> DictToPrinter( - const base::DictionaryValue& printer_dict) { - const std::string* printer_id = printer_dict.FindStringKey("printerId"); - const std::string* printer_name = printer_dict.FindStringKey("printerName"); + const base::Value::Dict& printer_dict) { + const std::string* printer_id = printer_dict.FindString("printerId"); + const std::string* printer_name = printer_dict.FindString("printerName"); const std::string* printer_description = - printer_dict.FindStringKey("printerDescription"); + printer_dict.FindString("printerDescription"); const std::string* printer_make_and_model = - printer_dict.FindStringKey("printerMakeAndModel"); + printer_dict.FindString("printerMakeAndModel"); const std::string* printer_address = - printer_dict.FindStringKey("printerAddress"); + printer_dict.FindString("printerAddress"); const std::string* printer_protocol = - printer_dict.FindStringKey("printerProtocol"); + printer_dict.FindString("printerProtocol"); const std::string* print_server_uri = - printer_dict.FindStringKey("printServerUri"); + printer_dict.FindString("printServerUri"); if (!printer_id || !printer_name || !printer_description || !printer_make_and_model || !printer_address || !printer_protocol || !print_server_uri) { @@ -141,7 +140,7 @@ std::unique_ptr<chromeos::Printer> DictToPrinter( std::string printer_queue; // The protocol "socket" does not allow path. if (*printer_protocol != "socket") { - if (const std::string* ptr = printer_dict.FindStringKey("printerQueue")) { + if (const std::string* ptr = printer_dict.FindString("printerQueue")) { printer_queue = *ptr; // Path must start from '/' character. if (!printer_queue.empty() && printer_queue.front() != '/') @@ -198,25 +197,23 @@ bool IsValidUriChange(const Printer& existing_printer, } // Assumes |info| is a dictionary. -void SetPpdReference(const Printer::PpdReference& ppd_ref, base::Value* info) { +void SetPpdReference(const Printer::PpdReference& ppd_ref, + base::Value::Dict* info) { if (!ppd_ref.user_supplied_ppd_url.empty()) { - info->SetKey("ppdRefUserSuppliedPpdUrl", - base::Value(ppd_ref.user_supplied_ppd_url)); + info->Set("ppdRefUserSuppliedPpdUrl", ppd_ref.user_supplied_ppd_url); } else if (!ppd_ref.effective_make_and_model.empty()) { - info->SetKey("ppdRefEffectiveMakeAndModel", - base::Value(ppd_ref.effective_make_and_model)); + info->Set("ppdRefEffectiveMakeAndModel", ppd_ref.effective_make_and_model); } else { // Must be autoconf, shouldn't be possible NOTREACHED() << "Succeeded in PPD matching without emm"; } } -Printer::PpdReference GetPpdReference(const base::Value* info) { - const char ppd_ref_pathname[] = "printerPpdReference"; +Printer::PpdReference GetPpdReference(const base::Value::Dict* info) { auto* user_supplied_ppd_url = - info->FindPath({ppd_ref_pathname, "userSuppliedPPDUrl"}); + info->FindByDottedPath("printerPpdReference.userSuppliedPPDUrl"); auto* effective_make_and_model = - info->FindPath({ppd_ref_pathname, "effectiveMakeAndModel"}); - auto* autoconf = info->FindPath({ppd_ref_pathname, "autoconf"}); + info->FindByDottedPath("printerPpdReference.effectiveMakeAndModel"); + auto* autoconf = info->FindByDottedPath("printerPpdReference.autoconf"); Printer::PpdReference ret; @@ -383,8 +380,8 @@ void CupsPrintersHandler::HandleGetCupsSavedPrintersList( std::vector<Printer> printers = printers_manager_->GetPrinters(PrinterClass::kSaved); - auto response = BuildCupsPrintersList(printers); - ResolveJavascriptCallback(base::Value(callback_id), response); + ResolveJavascriptCallback(base::Value(callback_id), + BuildCupsPrintersList(printers)); } void CupsPrintersHandler::HandleGetCupsEnterprisePrintersList( @@ -397,8 +394,8 @@ void CupsPrintersHandler::HandleGetCupsEnterprisePrintersList( std::vector<Printer> printers = printers_manager_->GetPrinters(PrinterClass::kEnterprise); - auto response = BuildCupsPrintersList(printers); - ResolveJavascriptCallback(base::Value(callback_id), response); + ResolveJavascriptCallback(base::Value(callback_id), + BuildCupsPrintersList(printers)); } void CupsPrintersHandler::HandleUpdateCupsPrinter( @@ -445,10 +442,9 @@ void CupsPrintersHandler::HandleRemoveCupsPrinter( // Printer is deleted here. Do not access after this line. printers_manager_->RemoveSavedPrinter(printer_id); - DebugDaemonClient* client = DBusThreadManager::Get()->GetDebugDaemonClient(); - client->CupsRemovePrinter(printer_id, - base::BindOnce(&OnRemovedPrinter, protocol), - base::DoNothing()); + DebugDaemonClient::Get()->CupsRemovePrinter( + printer_id, base::BindOnce(&OnRemovedPrinter, protocol), + base::DoNothing()); } void CupsPrintersHandler::HandleGetPrinterInfo(const base::Value::List& args) { @@ -468,20 +464,19 @@ void CupsPrintersHandler::HandleGetPrinterInfo(const base::Value::List& args) { NOTREACHED() << "Dictionary missing"; return; } - const base::DictionaryValue& printer_dict = - base::Value::AsDictionaryValue(printer_value); + const base::Value::Dict& printer_dict = printer_value.GetDict(); AllowJavascript(); const std::string* printer_address = - printer_dict.FindStringKey("printerAddress"); + printer_dict.FindString("printerAddress"); if (!printer_address) { NOTREACHED() << "Address missing"; return; } std::string printer_queue; - if (const std::string* ptr = printer_dict.FindStringKey("printerQueue")) { + if (const std::string* ptr = printer_dict.FindString("printerQueue")) { printer_queue = *ptr; // Path must start from '/' character. if (!printer_queue.empty() && printer_queue.front() != '/') @@ -489,7 +484,7 @@ void CupsPrintersHandler::HandleGetPrinterInfo(const base::Value::List& args) { } const std::string* printer_protocol = - printer_dict.FindStringKey("printerProtocol"); + printer_dict.FindString("printerProtocol"); if (!printer_protocol) { NOTREACHED() << "Protocol missing"; return; @@ -587,12 +582,12 @@ void CupsPrintersHandler::OnAutoconfQueried( << ")"; // Bundle printer metadata - base::Value info(base::Value::Type::DICTIONARY); - info.SetKey("makeAndModel", base::Value(make_and_model)); - info.SetKey("autoconf", base::Value(ipp_everywhere)); + base::Value::Dict info; + info.Set("makeAndModel", make_and_model); + info.Set("autoconf", ipp_everywhere); if (ipp_everywhere) { - info.SetKey("ppdReferenceResolved", base::Value(true)); + info.Set("ppdReferenceResolved", true); ResolveJavascriptCallback(base::Value(callback_id), info); return; } @@ -611,18 +606,18 @@ void CupsPrintersHandler::OnAutoconfQueried( } void CupsPrintersHandler::OnPpdResolved(const std::string& callback_id, - base::Value info, + base::Value::Dict info, PpdProvider::CallbackResultCode res, const Printer::PpdReference& ppd_ref, const std::string& usb_manufacturer) { if (res != PpdProvider::CallbackResultCode::SUCCESS) { - info.SetKey("ppdReferenceResolved", base::Value(false)); + info.Set("ppdReferenceResolved", false); ResolveJavascriptCallback(base::Value(callback_id), info); return; } SetPpdReference(ppd_ref, &info); - info.SetKey("ppdReferenceResolved", base::Value(true)); + info.Set("ppdReferenceResolved", true); ResolveJavascriptCallback(base::Value(callback_id), info); } @@ -643,8 +638,7 @@ void CupsPrintersHandler::AddOrReconfigurePrinter(const base::Value::List& args, std::string callback_id = args[0].GetString(); const base::Value& printer_value = args[1]; CHECK(printer_value.is_dict()); - const base::DictionaryValue& printer_dict = - base::Value::AsDictionaryValue(printer_value); + const base::Value::Dict& printer_dict = printer_value.GetDict(); std::unique_ptr<Printer> printer = DictToPrinter(printer_dict); if (!printer) { @@ -687,12 +681,12 @@ void CupsPrintersHandler::AddOrReconfigurePrinter(const base::Value::List& args, // Read PPD selection if it was used. const std::string* ppd_manufacturer = - printer_dict.FindStringKey("ppdManufacturer"); - const std::string* ppd_model = printer_dict.FindStringKey("ppdModel"); + printer_dict.FindString("ppdManufacturer"); + const std::string* ppd_model = printer_dict.FindString("ppdModel"); // Read user provided PPD if it was used. const std::string* printer_ppd_path = - printer_dict.FindStringKey("printerPPDPath"); + printer_dict.FindString("printerPPDPath"); // Check if the printer already has a valid ppd_reference. Printer::PpdReference ppd_ref = GetPpdReference(&printer_dict); @@ -867,8 +861,7 @@ void CupsPrintersHandler::HandleGetCupsPrinterModels( base::Value::Dict response; response.Set("success", true); response.Set("models", base::Value::List()); - ResolveJavascriptCallback(base::Value(callback_id), - base::Value(std::move(response))); + ResolveJavascriptCallback(base::Value(callback_id), response); return; } @@ -921,8 +914,7 @@ void CupsPrintersHandler::ResolveManufacturersDone( base::Value::Dict response; response.Set("success", result_code == PpdProvider::SUCCESS); response.Set("manufacturers", std::move(manufacturers_value)); - ResolveJavascriptCallback(base::Value(callback_id), - base::Value(std::move(response))); + ResolveJavascriptCallback(base::Value(callback_id), response); } void CupsPrintersHandler::ResolvePrintersDone( @@ -940,8 +932,7 @@ void CupsPrintersHandler::ResolvePrintersDone( base::Value::Dict response; response.Set("success", result_code == PpdProvider::SUCCESS); response.Set("models", std::move(printers_value)); - ResolveJavascriptCallback(base::Value(callback_id), - base::Value(std::move(response))); + ResolveJavascriptCallback(base::Value(callback_id), response); } void CupsPrintersHandler::FileSelected(const base::FilePath& path, @@ -1009,8 +1000,7 @@ void CupsPrintersHandler::HandleSetUpCancel(const base::Value::List& args) { const base::Value& printer_value = args[0]; CHECK(printer_value.is_dict()); - std::unique_ptr<Printer> printer = - DictToPrinter(base::Value::AsDictionaryValue(printer_value)); + std::unique_ptr<Printer> printer = DictToPrinter(printer_value.GetDict()); if (printer) { printers_manager_->RecordSetupAbandoned(*printer); } @@ -1029,14 +1019,14 @@ void CupsPrintersHandler::OnPrintersChanged( UpdateDiscoveredPrinters(); break; case PrinterClass::kSaved: { - auto printers_list = BuildCupsPrintersList(printers); - FireWebUIListener("on-saved-printers-changed", printers_list); + FireWebUIListener("on-saved-printers-changed", + BuildCupsPrintersList(printers)); break; } case PrinterClass::kEnterprise: - auto enterprise_printers_list = BuildCupsPrintersList(printers); FireWebUIListener("on-enterprise-printers-changed", - enterprise_printers_list); + BuildCupsPrintersList(printers)); + break; } } @@ -1057,9 +1047,8 @@ void CupsPrintersHandler::UpdateDiscoveredPrinters() { PRINTER_LOG(DEBUG) << "Discovered printers updating. Automatic: " << automatic_printers_list.size() << " Discovered: " << discovered_printers_list.size(); - FireWebUIListener("on-nearby-printers-changed", - base::Value(std::move(automatic_printers_list)), - base::Value(std::move(discovered_printers_list))); + FireWebUIListener("on-nearby-printers-changed", automatic_printers_list, + discovered_printers_list); } void CupsPrintersHandler::HandleAddDiscoveredPrinter( @@ -1315,8 +1304,8 @@ void CupsPrintersHandler::OnQueryPrintServerCompleted( server_printers_fetcher_.reset(); // Create result value and finish the callback. - base::Value result_dict = BuildCupsPrintersList(printers); - ResolveJavascriptCallback(base::Value(callback_id), result_dict); + ResolveJavascriptCallback(base::Value(callback_id), + BuildCupsPrintersList(printers)); } void CupsPrintersHandler::HandleOpenPrintManagementApp( |