| 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..f610f77d33c52b053717e04de93b442f7c4d3a22 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
|
|
|