Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6678)

Unified Diff: chrome/browser/ui/webui/print_preview/printer_backend_proxy.cc

Issue 2542363002: Interrogate PpdProvider from PrintPreview. (Closed)
Patch Set: assert that the proxy is destructed on the ui thread Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/print_preview/printer_backend_proxy.cc
diff --git a/chrome/browser/ui/webui/print_preview/printer_backend_proxy.cc b/chrome/browser/ui/webui/print_preview/printer_backend_proxy.cc
index effbb06c0d45e3532ef7a9dc6ff37666ed58006a..5b4812295832cc5d840beadae429c27e669aec42 100644
--- a/chrome/browser/ui/webui/print_preview/printer_backend_proxy.cc
+++ b/chrome/browser/ui/webui/print_preview/printer_backend_proxy.cc
@@ -52,8 +52,6 @@ std::unique_ptr<base::DictionaryValue> FetchCapabilitiesOnBlockingPool(
return GetSettingsOnBlockingPool(device_name, basic_info);
}
-} // namespace
-
std::string GetDefaultPrinterOnBlockingPoolThread() {
DCHECK(content::BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread());
@@ -65,21 +63,50 @@ std::string GetDefaultPrinterOnBlockingPoolThread() {
return default_printer;
}
-void EnumeratePrinters(Profile* /* profile */,
- const EnumeratePrintersCallback& cb) {
- base::PostTaskAndReplyWithResult(
- content::BrowserThread::GetBlockingPool(), FROM_HERE,
- base::Bind(&EnumeratePrintersOnBlockingPoolThread), cb);
-}
+// Default implementation of PrinterBackendProxy. Makes calls directly to
+// the print backend on the appropriate thread.
+class PrinterBackendProxyDefault : public PrinterBackendProxy {
+ public:
+ PrinterBackendProxyDefault(){};
+
+ ~PrinterBackendProxyDefault() override {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ }
+
+ void GetDefaultPrinter(const DefaultPrinterCallback& cb) override {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+ base::PostTaskAndReplyWithResult(
+ content::BrowserThread::GetBlockingPool(), FROM_HERE,
+ base::Bind(&GetDefaultPrinterOnBlockingPoolThread), cb);
+ }
-void ConfigurePrinterAndFetchCapabilities(Profile* /* profile */,
- const std::string& device_name,
- const PrinterSetupCallback& cb) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ void EnumeratePrinters(const EnumeratePrintersCallback& cb) override {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+ base::PostTaskAndReplyWithResult(
+ content::BrowserThread::GetBlockingPool(), FROM_HERE,
+ base::Bind(&EnumeratePrintersOnBlockingPoolThread), cb);
+ }
+
+ void ConfigurePrinterAndFetchCapabilities(
+ const std::string& device_name,
+ const PrinterSetupCallback& cb) override {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+ base::PostTaskAndReplyWithResult(
+ content::BrowserThread::GetBlockingPool(), FROM_HERE,
+ base::Bind(&FetchCapabilitiesOnBlockingPool, device_name), cb);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PrinterBackendProxyDefault);
+};
+
+} // namespace
- base::PostTaskAndReplyWithResult(
- content::BrowserThread::GetBlockingPool(), FROM_HERE,
- base::Bind(&FetchCapabilitiesOnBlockingPool, device_name), cb);
+std::unique_ptr<PrinterBackendProxy> PrinterBackendProxy::Create() {
+ return base::MakeUnique<PrinterBackendProxyDefault>();
}
} // namespace printing

Powered by Google App Engine
This is Rietveld 408576698