1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_HANDLER_H_
12 #include "base/memory/ref_counted.h"
13 #include "content/public/browser/web_ui_message_handler.h"
14 #include "storage/common/quota/quota_types.h"
21 namespace quota_internals
{
23 class QuotaInternalsProxy
;
24 class GlobalStorageInfo
;
25 class PerHostStorageInfo
;
26 class PerOriginStorageInfo
;
27 typedef std::map
<std::string
, std::string
> Statistics
;
29 // This class handles message from WebUI page of chrome://quota-internals/.
30 // All methods in this class should be called on UI thread.
31 class QuotaInternalsHandler
: public content::WebUIMessageHandler
{
33 QuotaInternalsHandler();
34 ~QuotaInternalsHandler() override
;
35 void RegisterMessages() override
;
37 // Called by QuotaInternalsProxy to report information to WebUI page.
38 void ReportAvailableSpace(int64 available_space
);
39 void ReportGlobalInfo(const GlobalStorageInfo
& data
);
40 void ReportPerHostInfo(const std::vector
<PerHostStorageInfo
>& hosts
);
41 void ReportPerOriginInfo(const std::vector
<PerOriginStorageInfo
>& origins
);
42 void ReportStatistics(const Statistics
& stats
);
45 void OnRequestInfo(const base::ListValue
*);
46 void SendMessage(const std::string
& message
, const base::Value
& value
);
48 scoped_refptr
<QuotaInternalsProxy
> proxy_
;
50 DISALLOW_COPY_AND_ASSIGN(QuotaInternalsHandler
);
52 } // namespace quota_internals
54 #endif // CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_HANDLER_H_