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

Unified Diff: chrome/browser/ui/webui/supervised_user_internals_message_handler.cc

Issue 2776493005: Convert SupervisedUserResourceThrottle to a NavigationThrottle. (Closed)
Patch Set: Response to comments Created 3 years, 9 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/supervised_user_internals_message_handler.cc
diff --git a/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc b/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc
index 6018d646028377c5c21829b4bac8400bdd1df039..63e4126215e0c89ed3db4fa3f0ffaf5c91afe5ad 100644
--- a/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc
+++ b/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc
@@ -20,6 +20,7 @@
#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
#include "chrome/browser/supervised_user/supervised_user_settings_service.h"
#include "chrome/browser/supervised_user/supervised_user_settings_service_factory.h"
+#include "chrome/browser/supervised_user/supervised_user_url_filter.h"
#include "chrome/common/channel_info.h"
#include "components/signin/core/browser/account_tracker_service.h"
#include "components/supervised_user_error_page/supervised_user_error_page.h"
@@ -114,61 +115,8 @@ std::string FilteringBehaviorReasonToString(
} // namespace
-// Helper class that lives on the IO thread, listens to the
-// SupervisedUserURLFilter there, and posts results back to the UI thread.
-class SupervisedUserInternalsMessageHandler::IOThreadHelper
- : public base::RefCountedThreadSafe<IOThreadHelper,
- BrowserThread::DeleteOnIOThread>,
- public SupervisedUserURLFilter::Observer {
- public:
- using OnURLCheckedCallback =
- base::Callback<void(const GURL&,
- SupervisedUserURLFilter::FilteringBehavior,
- supervised_user_error_page::FilteringBehaviorReason,
- bool uncertain)>;
-
- IOThreadHelper(scoped_refptr<const SupervisedUserURLFilter> filter,
- const OnURLCheckedCallback& callback)
- : filter_(filter), callback_(callback) {
- BrowserThread::PostTask(BrowserThread::IO,
- FROM_HERE,
- base::Bind(&IOThreadHelper::InitOnIOThread, this));
- }
-
- private:
- friend class base::DeleteHelper<IOThreadHelper>;
- friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>;
- virtual ~IOThreadHelper() {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
- filter_->RemoveObserver(this);
- }
-
- // SupervisedUserURLFilter::Observer:
- void OnSiteListUpdated() override {}
- void OnURLChecked(const GURL& url,
- SupervisedUserURLFilter::FilteringBehavior behavior,
- supervised_user_error_page::FilteringBehaviorReason reason,
- bool uncertain) override {
- BrowserThread::PostTask(BrowserThread::UI,
- FROM_HERE,
- base::Bind(callback_,
- url, behavior, reason, uncertain));
- }
-
- void InitOnIOThread() {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
- filter_->AddObserver(this);
- }
-
- scoped_refptr<const SupervisedUserURLFilter> filter_;
- OnURLCheckedCallback callback_;
-
- DISALLOW_COPY_AND_ASSIGN(IOThreadHelper);
-};
-
SupervisedUserInternalsMessageHandler::SupervisedUserInternalsMessageHandler()
- : weak_factory_(this) {
-}
+ : scoped_observer_(this), weak_factory_(this) {}
SupervisedUserInternalsMessageHandler::
~SupervisedUserInternalsMessageHandler() {
@@ -205,13 +153,10 @@ SupervisedUserInternalsMessageHandler::GetSupervisedUserService() {
void SupervisedUserInternalsMessageHandler::HandleRegisterForEvents(
const base::ListValue* args) {
DCHECK(args->empty());
+ if (scoped_observer_.IsObservingSources())
+ return;
- if (!io_thread_helper_.get()) {
- io_thread_helper_ = new IOThreadHelper(
- GetSupervisedUserService()->GetURLFilterForIOThread(),
- base::Bind(&SupervisedUserInternalsMessageHandler::OnURLChecked,
- weak_factory_.GetWeakPtr()));
- }
+ scoped_observer_.Add(GetSupervisedUserService()->GetURLFilter());
}
void SupervisedUserInternalsMessageHandler::HandleGetBasicInfo(
@@ -230,8 +175,7 @@ void SupervisedUserInternalsMessageHandler::HandleTryURL(
if (!url.is_valid())
return;
- SupervisedUserURLFilter* filter =
- GetSupervisedUserService()->GetURLFilterForUIThread();
+ SupervisedUserURLFilter* filter = GetSupervisedUserService()->GetURLFilter();
std::map<std::string, base::string16> whitelists =
filter->GetMatchingWhitelistTitles(url);
filter->GetFilteringBehaviorForURLWithAsyncChecks(
@@ -256,8 +200,7 @@ void SupervisedUserInternalsMessageHandler::SendBasicInfo() {
profile->IsLegacySupervised());
AddSectionEntry(section_profile, "Child", profile->IsChild());
- SupervisedUserURLFilter* filter =
- GetSupervisedUserService()->GetURLFilterForUIThread();
+ SupervisedUserURLFilter* filter = GetSupervisedUserService()->GetURLFilter();
base::ListValue* section_filter = AddSection(section_list.get(), "Filter");
AddSectionEntry(section_filter, "Blacklist active", filter->HasBlacklist());
@@ -327,6 +270,8 @@ void SupervisedUserInternalsMessageHandler::OnTryURLResult(
"chrome.supervised_user_internals.receiveTryURLResult", result);
}
+void SupervisedUserInternalsMessageHandler::OnSiteListUpdated() {}
+
void SupervisedUserInternalsMessageHandler::OnURLChecked(
const GURL& url,
SupervisedUserURLFilter::FilteringBehavior behavior,

Powered by Google App Engine
This is Rietveld 408576698