Commit 48026231 authored by ananta@chromium.org's avatar ananta@chromium.org

Add a helper function to query whether parental control logging is on for the current chrome user

to base\win\metro.

BUG=133560
R=cpu
Review URL: https://chromiumcodereview.appspot.com/10693133

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146214 0039d316-1c4b-4281-b951-d872f2087c98
parent 5243df07
......@@ -4,7 +4,10 @@
#include "base/win/metro.h"
#include "base/message_loop.h"
#include "base/string_util.h"
#include "base/win/scoped_comptr.h"
#include "base/win/windows_version.h"
namespace base {
namespace win {
......@@ -83,5 +86,40 @@ bool IsTouchEnabled() {
(NID_READY | NID_INTEGRATED_TOUCH);
}
bool IsParentalControlActivityLoggingOn() {
DCHECK(MessageLoop::current() &&
(MessageLoop::current()->type() == MessageLoop::TYPE_UI));
// Query this info on Windows 8 and above.
if (base::win::GetVersion() < base::win::VERSION_WIN8)
return false;
static bool parental_control_logging_required = false;
static bool parental_control_status_determined = false;
if (parental_control_status_determined)
return parental_control_logging_required;
parental_control_status_determined = true;
ScopedComPtr<IWindowsParentalControlsCore> parent_controls;
HRESULT hr = parent_controls.CreateInstance(
__uuidof(WindowsParentalControls));
if (FAILED(hr))
return false;
ScopedComPtr<IWPCSettings> settings;
hr = parent_controls->GetUserSettings(NULL, settings.Receive());
if (FAILED(hr))
return false;
unsigned long restrictions = 0;
settings->GetRestrictions(&restrictions);
parental_control_logging_required =
(restrictions & WPCFLAG_LOGGING_REQUIRED) == WPCFLAG_LOGGING_REQUIRED;
return parental_control_logging_required;
}
} // namespace win
} // namespace base
......@@ -6,6 +6,7 @@
#define BASE_WIN_METRO_H_
#include <windows.h>
#include <wpcapi.h>
#include "base/base_export.h"
#include "base/string16.h"
......@@ -61,6 +62,10 @@ BASE_EXPORT wchar_t* LocalAllocAndCopyString(const string16& src);
// Returns true if the screen supports touch.
BASE_EXPORT bool IsTouchEnabled();
// Returns true if Windows 8 Parental control activity logging is enabled.
// Can only be called on the UI thread.
BASE_EXPORT bool IsParentalControlActivityLoggingOn();
} // namespace win
} // namespace base
......
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