1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_WINDOW_SNAPSHOT_WINDOW_SNAPSHOT_H_ 6 #define CHROME_BROWSER_UI_WINDOW_SNAPSHOT_WINDOW_SNAPSHOT_H_ 7 8 #include <vector> 9 10 #include "ui/gfx/native_widget_types.h" 11 12 class PrefRegistrySimple; 13 14 namespace gfx { 15 class Rect; 16 } 17 18 namespace chrome { 19 20 void RegisterScreenshotPrefs(PrefRegistrySimple* registry); 21 22 // Grabs a snapshot of the rectangle area |snapshot_bounds| with respect to the 23 // top left corner of the designated window and stores a PNG representation 24 // into a byte vector. On Windows, |window| may be NULL to grab a snapshot of 25 // the primary monitor. This takes into account calling user context (ie. checks 26 // policy settings if taking screenshots is allowed), and is intended to be used 27 // by browser code. If you need to take a screenshot for debugging purposes, 28 // consider using ui::GrabWindowSnapshot. 29 // Returns true if the operation is successful (ie. permitted). 30 bool GrabWindowSnapshotForUser( 31 gfx::NativeWindow window, 32 std::vector<unsigned char>* png_representation, 33 const gfx::Rect& snapshot_bounds); 34 35 } // namespace chrome 36 37 #endif // CHROME_BROWSER_UI_WINDOW_SNAPSHOT_WINDOW_SNAPSHOT_H_ 38