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

Side by Side Diff: chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc

Issue 1135413002: Disable screenshot uploading if there has been user input. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Self-review Created 5 years, 7 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h" 5 #include "chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h"
6 6
7 #include "chrome/browser/browser_process.h" 7 #include "chrome/browser/browser_process.h"
8 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
9 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
10 #include "chrome/browser/chromeos/policy/status_uploader.h"
8 #include "chrome/browser/chromeos/policy/upload_job_impl.h" 11 #include "chrome/browser/chromeos/policy/upload_job_impl.h"
9 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" 12 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
10 #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h " 13 #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h "
11 #include "content/public/browser/browser_thread.h" 14 #include "content/public/browser/browser_thread.h"
12 15
13 namespace policy { 16 namespace policy {
14 17
15 ScreenshotDelegate::ScreenshotDelegate( 18 ScreenshotDelegate::ScreenshotDelegate(
16 scoped_refptr<base::TaskRunner> blocking_task_runner) 19 scoped_refptr<base::TaskRunner> blocking_task_runner)
17 : blocking_task_runner_(blocking_task_runner), weak_ptr_factory_(this) { 20 : blocking_task_runner_(blocking_task_runner), weak_ptr_factory_(this) {
18 } 21 }
19 22
20 ScreenshotDelegate::~ScreenshotDelegate() { 23 ScreenshotDelegate::~ScreenshotDelegate() {
21 } 24 }
22 25
26 bool ScreenshotDelegate::IsScreenshotAllowed() {
27 BrowserPolicyConnectorChromeOS* connector =
28 g_browser_process->platform_part()->browser_policy_connector_chromeos();
29 DeviceCloudPolicyManagerChromeOS* manager =
30 connector->GetDeviceCloudPolicyManager();
31 // DeviceCloudPolicyManagerChromeOS and StatusUploader can be null during
32 // shutdown (and unit tests) - don't allow screenshots unless we have a
33 // StatusUploader that can confirm that screenshots are allowed.
34 return manager && manager->GetStatusUploader() &&
35 manager->GetStatusUploader()->IsSessionDataUploadAllowed();
36 }
37
23 void ScreenshotDelegate::TakeSnapshot( 38 void ScreenshotDelegate::TakeSnapshot(
24 gfx::NativeWindow window, 39 gfx::NativeWindow window,
25 const gfx::Rect& source_rect, 40 const gfx::Rect& source_rect,
26 const ui::GrabWindowSnapshotAsyncPNGCallback& callback) { 41 const ui::GrabWindowSnapshotAsyncPNGCallback& callback) {
27 ui::GrabWindowSnapshotAsync( 42 ui::GrabWindowSnapshotAsync(
28 window, source_rect, blocking_task_runner_, 43 window, source_rect, blocking_task_runner_,
29 base::Bind(&ScreenshotDelegate::StoreScreenshot, 44 base::Bind(&ScreenshotDelegate::StoreScreenshot,
30 weak_ptr_factory_.GetWeakPtr(), callback)); 45 weak_ptr_factory_.GetWeakPtr(), callback));
31 } 46 }
32 47
(...skipping 13 matching lines...) Expand all
46 make_scoped_ptr(new UploadJobImpl::RandomMimeBoundaryGenerator))); 61 make_scoped_ptr(new UploadJobImpl::RandomMimeBoundaryGenerator)));
47 } 62 }
48 63
49 void ScreenshotDelegate::StoreScreenshot( 64 void ScreenshotDelegate::StoreScreenshot(
50 const ui::GrabWindowSnapshotAsyncPNGCallback& callback, 65 const ui::GrabWindowSnapshotAsyncPNGCallback& callback,
51 scoped_refptr<base::RefCountedBytes> png_data) { 66 scoped_refptr<base::RefCountedBytes> png_data) {
52 callback.Run(png_data); 67 callback.Run(png_data);
53 } 68 }
54 69
55 } // namespace policy 70 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h ('k') | chrome/browser/chromeos/policy/status_uploader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698