summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-09-29 16:16:15 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-11-09 10:04:06 +0000
commita95a7417ad456115a1ef2da4bb8320531c0821f1 (patch)
treeedcd59279e486d2fd4a8f88a7ed025bcf925c6e6 /chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
parent33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (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.cc123
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(