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

Unified Diff: chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.cc

Issue 2902103002: MD Bookmarks: Disable 'Open in Incognito Window' when Incognito is disabled (Closed)
Patch Set: Review comment Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.cc
diff --git a/chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.cc b/chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.cc
new file mode 100644
index 0000000000000000000000000000000000000000..47dea5bc7377be1a773cc9350b9f48a2d7f371a6
--- /dev/null
+++ b/chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.cc
@@ -0,0 +1,58 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/md_bookmarks/bookmarks_message_handler.h"
+
+#include "base/bind.h"
+#include "base/values.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/pref_change_registrar.h"
+#include "components/prefs/pref_service.h"
+
+BookmarksMessageHandler::BookmarksMessageHandler() {}
+
+BookmarksMessageHandler::~BookmarksMessageHandler() {}
+
+void BookmarksMessageHandler::RegisterMessages() {
+ web_ui()->RegisterMessageCallback(
+ "getIncognitoAvailability",
+ base::Bind(&BookmarksMessageHandler::HandleGetIncognitoAvailability,
+ base::Unretained(this)));
+}
+
+void BookmarksMessageHandler::OnJavascriptAllowed() {
+ PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
+ pref_change_registrar_.Init(prefs);
+ pref_change_registrar_.Add(
+ prefs::kIncognitoModeAvailability,
+ base::Bind(&BookmarksMessageHandler::UpdateIncognitoAvailability,
+ base::Unretained(this)));
+}
+
+void BookmarksMessageHandler::OnJavascriptDisallowed() {
+ pref_change_registrar_.RemoveAll();
+}
+
+void BookmarksMessageHandler::UpdateIncognitoAvailability() {
+ FireWebUIListener("incognito-availability-changed",
+ base::Value(GetIncognitoAvailability()));
+}
+
+int BookmarksMessageHandler::GetIncognitoAvailability() {
+ PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
+ return prefs->GetInteger(prefs::kIncognitoModeAvailability);
+}
+
+void BookmarksMessageHandler::HandleGetIncognitoAvailability(
+ const base::ListValue* args) {
+ CHECK_EQ(1U, args->GetSize());
+ const base::Value* callback_id;
+ CHECK(args->Get(0, &callback_id));
+
+ AllowJavascript();
+
+ ResolveJavascriptCallback(*callback_id,
+ base::Value(GetIncognitoAvailability()));
+}

Powered by Google App Engine
This is Rietveld 408576698