blob: 9bdd0b5e2726f9f8d461fa5a71346708c509739a [file] [log] [blame]
[email protected]6ff1c332023-03-08 10:01:471
2// Copyright 2023 The Chromium Authors
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5
6#ifndef CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_BROWSER_UTILS_H_
7#define CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_BROWSER_UTILS_H_
8
Aga Wronskae4822652023-05-22 16:45:239#include <string>
10
[email protected]6ff1c332023-03-08 10:01:4711#include "content/public/browser/web_contents.h"
12#include "url/gurl.h"
13
Duong Dace4749152023-05-04 19:10:1214class ProfileSelections;
Aga Wronskae4822652023-05-22 16:45:2315class Profile;
Duong Dace4749152023-05-04 19:10:1216
[email protected]6ff1c332023-03-08 10:01:4717namespace supervised_user {
18
Duong Dace4749152023-05-04 19:10:1219// Returns true if both the extensions are enabled and the provided url is a
20// Webstore or Download url.
[email protected]6ff1c332023-03-08 10:01:4721bool IsSupportedChromeExtensionURL(const GURL& effective_url);
22
Nohemi Fernandez0ff06402024-08-06 10:07:1823// Returns true if the extension handling mode for skipping parent approval is
24// enabled and the parent has authorized installing extensions without their
25// approval.
26// Returns false if the user is not supervised.
27bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile);
28
Liza Bipinc8f38302024-08-02 08:39:5529// Returns true if the extensions permissions parental control is enabled
30// for supervised users.
31// Returns false if the user is not supervised.
32bool AreExtensionsPermissionsEnabled(Profile* profile);
33
[email protected]6ff1c332023-03-08 10:01:4734// Returns true if the parent allowlist should be skipped.
35bool ShouldContentSkipParentAllowlistFiltering(content::WebContents* contents);
36
Duong Dace4749152023-05-04 19:10:1237// Returns how supervised_user factories that are needed in Guest profile
38// should be created.
39ProfileSelections BuildProfileSelectionsForRegularAndGuest();
40
Aga Wronskae4822652023-05-22 16:45:2341// Returns given name of the primary account associated with the profile.
42std::string GetAccountGivenName(Profile& profile);
43
[email protected]503e2922023-06-23 13:38:3744// Asserts that `is_child` matches the child status of the primary user.
45// Terminates user session in case of status mismatch in order to prevent
46// supervision incidents. Relevant on Chrome OS platform that has the concept
47// of the user.
48void AssertChildStatusOfTheUser(Profile* profile, bool is_child);
49
[email protected]6ff1c332023-03-08 10:01:4750} // namespace supervised_user
51
52#endif // CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_BROWSER_UTILS_H_