Commit cb653512 authored by skau's avatar skau Committed by Commit bot

Allow the PrinterDetector to be constructed with a delegated profile.

The add printer dialog was crashing in Guest Mode because a
PrinterDetector could not be constructed.  It is okay for
PrinterDetector to be shared between logged in profiles.

BUG=724278

Review-Url: https://codereview.chromium.org/2898833002
Cr-Commit-Position: refs/heads/master@{#473761}
parent 7197acdf
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "chrome/browser/chromeos/printer_detector/printer_detector.h" #include "chrome/browser/chromeos/printer_detector/printer_detector.h"
#include "chrome/browser/chromeos/printing/printers_manager_factory.h" #include "chrome/browser/chromeos/printing/printers_manager_factory.h"
#include "chrome/browser/profiles/incognito_helpers.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/keyed_service/content/browser_context_dependency_manager.h"
...@@ -43,6 +44,11 @@ PrinterDetectorFactory::PrinterDetectorFactory() ...@@ -43,6 +44,11 @@ PrinterDetectorFactory::PrinterDetectorFactory()
PrinterDetectorFactory::~PrinterDetectorFactory() { PrinterDetectorFactory::~PrinterDetectorFactory() {
} }
content::BrowserContext* PrinterDetectorFactory::GetBrowserContextToUse(
content::BrowserContext* context) const {
return chrome::GetBrowserContextRedirectedInIncognito(context);
}
KeyedService* PrinterDetectorFactory::BuildServiceInstanceFor( KeyedService* PrinterDetectorFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const { content::BrowserContext* context) const {
if (base::CommandLine::ForCurrentProcess()->HasSwitch( if (base::CommandLine::ForCurrentProcess()->HasSwitch(
......
...@@ -24,11 +24,17 @@ class PrinterDetectorFactory : public BrowserContextKeyedServiceFactory { ...@@ -24,11 +24,17 @@ class PrinterDetectorFactory : public BrowserContextKeyedServiceFactory {
PrinterDetector* Get(content::BrowserContext* context); PrinterDetector* Get(content::BrowserContext* context);
protected:
// BrowserContextKeyedServiceFactory:
content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override;
private: private:
friend struct base::LazyInstanceTraitsBase<PrinterDetectorFactory>; friend struct base::LazyInstanceTraitsBase<PrinterDetectorFactory>;
PrinterDetectorFactory(); PrinterDetectorFactory();
~PrinterDetectorFactory() override; ~PrinterDetectorFactory() override;
// BrowserContextKeyedServiceFactory:
KeyedService* BuildServiceInstanceFor( KeyedService* BuildServiceInstanceFor(
content::BrowserContext* browser_context) const override; content::BrowserContext* browser_context) const override;
bool ServiceIsCreatedWithBrowserContext() const override; bool ServiceIsCreatedWithBrowserContext() const override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment