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

Unified Diff: chrome/browser/ui/ash/screenshot_taker.cc

Issue 10692110: screenshot disabling policy (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixed Android and Mac builds Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/feedback.js ('k') | chrome/browser/ui/webui/feedback_ui.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/ash/screenshot_taker.cc
diff --git a/chrome/browser/ui/ash/screenshot_taker.cc b/chrome/browser/ui/ash/screenshot_taker.cc
index 7786c5e4eac4b2607c474f89b1c45d18c28f4733..f11a55f0b0ef34e6f93f489df02cd87a1a302ce7 100644
--- a/chrome/browser/ui/ash/screenshot_taker.cc
+++ b/chrome/browser/ui/ash/screenshot_taker.cc
@@ -18,6 +18,7 @@
#include "base/memory/ref_counted_memory.h"
#include "base/stringprintf.h"
#include "base/time.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/download/download_prefs.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/profiles/profile.h"
@@ -111,10 +112,21 @@ void SaveScreenshot(const FilePath& screenshot_directory,
}
}
+bool AreScreenshotsDisabled() {
+ return g_browser_process->local_state()->GetBoolean(
+ prefs::kDisableScreenshots);
+}
+
bool GrabWindowSnapshot(aura::Window* window,
const gfx::Rect& snapshot_bounds,
std::vector<unsigned char>* png_data) {
#if defined(OS_LINUX)
+ // browser::GrabWindowSnapshot checks this too, but RootWindow::GrabSnapshot
+ // does not. The statement below is only to support linux-specific XGetImage
+ // optimization.
+ if (AreScreenshotsDisabled())
+ return false;
+
// We use XGetImage() for Linux/ChromeOS for performance reasons.
// See crbug.com/119492
// TODO(mukai): remove this when the performance issue has been fixed.
@@ -148,6 +160,9 @@ void ScreenshotTaker::HandleTakePartialScreenshot(
aura::Window* window, const gfx::Rect& rect) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+ if (AreScreenshotsDisabled())
+ return;
+
scoped_refptr<base::RefCountedBytes> png_data(new base::RefCountedBytes);
bool is_logged_in = true;
« no previous file with comments | « chrome/browser/resources/feedback.js ('k') | chrome/browser/ui/webui/feedback_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698