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

Side by Side Diff: components/physical_web/webui/physical_web_base_message_handler.h

Issue 2571853003: Move PW message handler logic to components (Closed)
Patch Set: Set WebUI at handler Registration time Created 3 years, 11 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
(Empty)
1 // Copyright 2016 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.
4
5 #ifndef COMPONENTS_PHYSICAL_WEB_WEBUI_PHYSICAL_WEB_BASE_MESSAGE_HANDLER_H_
6 #define COMPONENTS_PHYSICAL_WEB_WEBUI_PHYSICAL_WEB_BASE_MESSAGE_HANDLER_H_
7
8 #include "base/callback.h"
9 #include "base/macros.h"
10 #include "base/values.h"
11
12 namespace physical_web {
13
14 class PhysicalWebDataSource;
15
16 } // namespace physical_web
17
18 namespace physical_web_ui {
19
20 // This is the equivalent of content::WebUI::MessageCallback.
21 typedef base::Callback<void(const base::ListValue*)> MessageCallback;
22
23 // The base handler for Javascript messages for the chrome://physical-web page.
24 // This does not implement WebUIMessageHandler or register its methods.
25 class PhysicalWebBaseMessageHandler {
26 public:
27 PhysicalWebBaseMessageHandler();
28 virtual ~PhysicalWebBaseMessageHandler();
29
30 // Handles the RequestNearbyURLs message, returning URLs that are currently
31 // being broadcasted by Physical Web transports.
32 void HandleRequestNearbyURLs(const base::ListValue* args);
33
34 // Handles a click on a Physical Web URL, recording the click and
35 // directing the user appropriately.
36 void HandlePhysicalWebItemClicked(const base::ListValue* args);
37
38 // Registers the messages that this MessageHandler can handle.
39 void RegisterMessages();
40
41 protected:
42 // Subclasses should implement these protected methods as a pass through to
43 // the similarly named methods of the appropriate WebUI object (the exact
44 // WebUI class differs per platform).
45 virtual void RegisterMessageCallback(
46 const std::string& message,
47 const MessageCallback& callback) = 0;
48 virtual void CallJavaScriptFunction(const std::string& function,
49 const base::Value& arg) = 0;
50 virtual physical_web::PhysicalWebDataSource* GetPhysicalWebDataSource() = 0;
51
52 private:
53 DISALLOW_COPY_AND_ASSIGN(PhysicalWebBaseMessageHandler);
54 };
55
56 } // namespace physical_web_ui
57
58 #endif // COMPONENTS_PHYSICAL_WEB_WEBUI_PHYSICAL_WEB_BASE_MESSAGE_HANDLER_H_
OLDNEW
« no previous file with comments | « components/physical_web/webui/BUILD.gn ('k') | components/physical_web/webui/physical_web_base_message_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698