search: Hide search providers which are blacklisted by parental controls
If a search provider is installed by an app which is blacklisted for the current user by their parental controls, don’t show it or results for it. Currently, this only filters ‘remote’ (not built-in to the shell) search providers. This seems fine for now; in future it could be expanded to also filter built-in search providers, if any of them end up needing to be filtered. No corresponding changes need to be made `remoteSearch.js`, because the results of `loadRemoteSearchProviders()` are filtered in `search.js`. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/465
This commit is contained in:
parent
3e5b90dbba
commit
143ab6ac7f
@ -6,6 +6,7 @@ const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
|
|||||||
const AppDisplay = imports.ui.appDisplay;
|
const AppDisplay = imports.ui.appDisplay;
|
||||||
const IconGrid = imports.ui.iconGrid;
|
const IconGrid = imports.ui.iconGrid;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
|
const ParentalControlsManager = imports.misc.parentalControlsManager;
|
||||||
const RemoteSearch = imports.ui.remoteSearch;
|
const RemoteSearch = imports.ui.remoteSearch;
|
||||||
const Util = imports.misc.util;
|
const Util = imports.misc.util;
|
||||||
|
|
||||||
@ -431,6 +432,9 @@ var SearchResultsView = GObject.registerClass({
|
|||||||
_init() {
|
_init() {
|
||||||
super._init({ name: 'searchResults', vertical: true });
|
super._init({ name: 'searchResults', vertical: true });
|
||||||
|
|
||||||
|
this._parentalControlsManager = ParentalControlsManager.getDefault();
|
||||||
|
this._parentalControlsManager.connect('app-filter-changed', this._reloadRemoteProviders.bind(this));
|
||||||
|
|
||||||
this._content = new MaxWidthBox({
|
this._content = new MaxWidthBox({
|
||||||
name: 'searchResultsContent',
|
name: 'searchResultsContent',
|
||||||
vertical: true,
|
vertical: true,
|
||||||
@ -505,6 +509,11 @@ var SearchResultsView = GObject.registerClass({
|
|||||||
|
|
||||||
_registerProvider(provider) {
|
_registerProvider(provider) {
|
||||||
provider.searchInProgress = false;
|
provider.searchInProgress = false;
|
||||||
|
|
||||||
|
// Filter out unwanted providers.
|
||||||
|
if (provider.appInfo && !this._parentalControlsManager.shouldShowApp(provider.appInfo))
|
||||||
|
return;
|
||||||
|
|
||||||
this._providers.push(provider);
|
this._providers.push(provider);
|
||||||
this._ensureProviderDisplay(provider);
|
this._ensureProviderDisplay(provider);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user