Index: chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc |
diff --git a/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc b/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc |
index b850a5961e4cc9d9a8edf39631bb74b7becd4c21..c431d684a2cf2bfd93c870250e0808f56d7577cb 100644 |
--- a/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc |
+++ b/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc |
@@ -5,6 +5,9 @@ |
#include "chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h" |
#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
+#include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" |
+#include "chrome/browser/chromeos/policy/status_uploader.h" |
#include "chrome/browser/chromeos/policy/upload_job_impl.h" |
#include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" |
#include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h" |
@@ -20,6 +23,18 @@ ScreenshotDelegate::ScreenshotDelegate( |
ScreenshotDelegate::~ScreenshotDelegate() { |
} |
+bool ScreenshotDelegate::IsScreenshotAllowed() { |
+ BrowserPolicyConnectorChromeOS* connector = |
+ g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
+ DeviceCloudPolicyManagerChromeOS* manager = |
+ connector->GetDeviceCloudPolicyManager(); |
+ // DeviceCloudPolicyManagerChromeOS and StatusUploader can be null during |
+ // shutdown (and unit tests) - don't allow screenshots unless we have a |
+ // StatusUploader that can confirm that screenshots are allowed. |
+ return manager && manager->GetStatusUploader() && |
+ manager->GetStatusUploader()->IsSessionDataUploadAllowed(); |
+} |
+ |
void ScreenshotDelegate::TakeSnapshot( |
gfx::NativeWindow window, |
const gfx::Rect& source_rect, |