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

Side by Side Diff: chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.cc

Issue 2912893002: MD Bookmarks: Support policies for disabling bookmark editing (Closed)
Patch Set: canEdit -> globalCanEdit Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.h" 5 #include "chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/common/pref_names.h" 10 #include "chrome/common/pref_names.h"
11 #include "components/bookmarks/common/bookmark_pref_names.h"
11 #include "components/prefs/pref_change_registrar.h" 12 #include "components/prefs/pref_change_registrar.h"
12 #include "components/prefs/pref_service.h" 13 #include "components/prefs/pref_service.h"
13 14
14 BookmarksMessageHandler::BookmarksMessageHandler() {} 15 BookmarksMessageHandler::BookmarksMessageHandler() {}
15 16
16 BookmarksMessageHandler::~BookmarksMessageHandler() {} 17 BookmarksMessageHandler::~BookmarksMessageHandler() {}
17 18
18 void BookmarksMessageHandler::RegisterMessages() { 19 void BookmarksMessageHandler::RegisterMessages() {
19 web_ui()->RegisterMessageCallback( 20 web_ui()->RegisterMessageCallback(
20 "getIncognitoAvailability", 21 "getIncognitoAvailability",
21 base::Bind(&BookmarksMessageHandler::HandleGetIncognitoAvailability, 22 base::Bind(&BookmarksMessageHandler::HandleGetIncognitoAvailability,
22 base::Unretained(this))); 23 base::Unretained(this)));
24 web_ui()->RegisterMessageCallback(
25 "getCanEditBookmarks",
26 base::Bind(&BookmarksMessageHandler::HandleGetCanEditBookmarks,
27 base::Unretained(this)));
23 } 28 }
24 29
25 void BookmarksMessageHandler::OnJavascriptAllowed() { 30 void BookmarksMessageHandler::OnJavascriptAllowed() {
26 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); 31 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
27 pref_change_registrar_.Init(prefs); 32 pref_change_registrar_.Init(prefs);
28 pref_change_registrar_.Add( 33 pref_change_registrar_.Add(
29 prefs::kIncognitoModeAvailability, 34 prefs::kIncognitoModeAvailability,
30 base::Bind(&BookmarksMessageHandler::UpdateIncognitoAvailability, 35 base::Bind(&BookmarksMessageHandler::UpdateIncognitoAvailability,
31 base::Unretained(this))); 36 base::Unretained(this)));
37 pref_change_registrar_.Add(
38 bookmarks::prefs::kEditBookmarksEnabled,
39 base::Bind(&BookmarksMessageHandler::UpdateCanEditBookmarks,
40 base::Unretained(this)));
32 } 41 }
33 42
34 void BookmarksMessageHandler::OnJavascriptDisallowed() { 43 void BookmarksMessageHandler::OnJavascriptDisallowed() {
35 pref_change_registrar_.RemoveAll(); 44 pref_change_registrar_.RemoveAll();
36 } 45 }
37 46
38 void BookmarksMessageHandler::UpdateIncognitoAvailability() {
39 FireWebUIListener("incognito-availability-changed",
40 base::Value(GetIncognitoAvailability()));
41 }
42
43 int BookmarksMessageHandler::GetIncognitoAvailability() { 47 int BookmarksMessageHandler::GetIncognitoAvailability() {
44 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); 48 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
45 return prefs->GetInteger(prefs::kIncognitoModeAvailability); 49 return prefs->GetInteger(prefs::kIncognitoModeAvailability);
46 } 50 }
47 51
48 void BookmarksMessageHandler::HandleGetIncognitoAvailability( 52 void BookmarksMessageHandler::HandleGetIncognitoAvailability(
49 const base::ListValue* args) { 53 const base::ListValue* args) {
50 CHECK_EQ(1U, args->GetSize()); 54 CHECK_EQ(1U, args->GetSize());
51 const base::Value* callback_id; 55 const base::Value* callback_id;
52 CHECK(args->Get(0, &callback_id)); 56 CHECK(args->Get(0, &callback_id));
53 57
54 AllowJavascript(); 58 AllowJavascript();
55 59
56 ResolveJavascriptCallback(*callback_id, 60 ResolveJavascriptCallback(*callback_id,
57 base::Value(GetIncognitoAvailability())); 61 base::Value(GetIncognitoAvailability()));
58 } 62 }
63
64 void BookmarksMessageHandler::UpdateIncognitoAvailability() {
65 FireWebUIListener("incognito-availability-changed",
66 base::Value(GetIncognitoAvailability()));
67 }
68
69 bool BookmarksMessageHandler::CanEditBookmarks() {
70 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
71 return prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled);
72 }
73
74 void BookmarksMessageHandler::HandleGetCanEditBookmarks(
75 const base::ListValue* args) {
76 CHECK_EQ(1U, args->GetSize());
77 const base::Value* callback_id;
78 CHECK(args->Get(0, &callback_id));
79
80 AllowJavascript();
81
82 ResolveJavascriptCallback(*callback_id, base::Value(CanEditBookmarks()));
83 }
84
85 void BookmarksMessageHandler::UpdateCanEditBookmarks() {
86 FireWebUIListener("can-edit-bookmarks-changed",
87 base::Value(CanEditBookmarks()));
88 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698