17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_WEBUI_SYNC_FILE_SYSTEM_INTERNALS_EXTENSION_STATUSES_HANDLER_H_ 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#define CHROME_BROWSER_UI_WEBUI_SYNC_FILE_SYSTEM_INTERNALS_EXTENSION_STATUSES_HANDLER_H_ 77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/compiler_specific.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/memory/weak_ptr.h" 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "content/public/browser/web_ui_message_handler.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class Profile; 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace syncfs_internals { 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// This class handles message from WebUI page of chrome://syncfs-internals/ 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// for the Extension Statuses tab. It corresponds to browser/resources/ 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// sync_file_system_internals/extension_statuses.html. All methods in this class 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// should be called on UI thread. 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class ExtensionStatusesHandler : public content::WebUIMessageHandler { 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) explicit ExtensionStatusesHandler(Profile* profile); 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual ~ExtensionStatusesHandler(); 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Shared by Extension Statuses Tab and also File Metadata Tab to generate the 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // extension drop down. 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) static void GetExtensionStatusesAsDictionary( 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) Profile* profile, 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const base::Callback<void(const base::ListValue&)>& callback); 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // WebUIMessageHandler implementation. 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual void RegisterMessages() OVERRIDE; 337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) private: 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void GetExtensionStatuses(const base::ListValue* args); 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void DidGetExtensionStatuses(const base::ListValue& list); 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Profile* profile_; 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::WeakPtrFactory<ExtensionStatusesHandler> weak_ptr_factory_; 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ExtensionStatusesHandler); 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace syncfs_internals 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif // CHROME_BROWSER_UI_WEBUI_SYNC_FILE_SYSTEM_INTERNALS_EXTENSION_STATUSES_HANDLER_H_ 47