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

Side by Side Diff: chrome/browser/extensions/extension_function.h

Issue 251093: Modify extension request IPC messages to pass a ListValue instead of a string. (Closed)
Patch Set: notreached messages Created 11 years, 2 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
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_FUNCTION_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_FUNCTION_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_FUNCTION_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_FUNCTION_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 18 matching lines...) Expand all
29 // APIs that live beyond a single stack frame. 29 // APIs that live beyond a single stack frame.
30 class ExtensionFunction : public base::RefCounted<ExtensionFunction> { 30 class ExtensionFunction : public base::RefCounted<ExtensionFunction> {
31 public: 31 public:
32 ExtensionFunction() : request_id_(-1), name_(""), has_callback_(false) {} 32 ExtensionFunction() : request_id_(-1), name_(""), has_callback_(false) {}
33 virtual ~ExtensionFunction() {} 33 virtual ~ExtensionFunction() {}
34 34
35 // Specifies the name of the function. 35 // Specifies the name of the function.
36 void set_name(const std::string& name) { name_ = name; } 36 void set_name(const std::string& name) { name_ = name; }
37 const std::string name() { return name_; } 37 const std::string name() { return name_; }
38 38
39 // Specifies the raw arguments to the function, as a JSON-encoded string. 39 // Specifies the raw arguments to the function, as a JSON value.
40 virtual void SetArgs(const std::string& args) = 0; 40 virtual void SetArgs(const Value* args) = 0;
41 41
42 // Retrieves the results of the function as a JSON-encoded string (may 42 // Retrieves the results of the function as a JSON-encoded string (may
43 // be empty). 43 // be empty).
44 virtual const std::string GetResult() = 0; 44 virtual const std::string GetResult() = 0;
45 45
46 // Retrieves any error string from the function. 46 // Retrieves any error string from the function.
47 virtual const std::string GetError() = 0; 47 virtual const std::string GetError() = 0;
48 48
49 void set_dispatcher_peer(ExtensionFunctionDispatcher::Peer* peer) { 49 void set_dispatcher_peer(ExtensionFunctionDispatcher::Peer* peer) {
50 peer_ = peer; 50 peer_ = peer;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 // the browser's UI thread*. 96 // the browser's UI thread*.
97 // Note that once Run() returns, dispatcher() can be NULL, so be sure to 97 // Note that once Run() returns, dispatcher() can be NULL, so be sure to
98 // NULL-check. 98 // NULL-check.
99 // TODO(aa) Remove this extra level of inheritance once the browser stops 99 // TODO(aa) Remove this extra level of inheritance once the browser stops
100 // parsing JSON (and instead uses custom serialization of Value objects). 100 // parsing JSON (and instead uses custom serialization of Value objects).
101 class AsyncExtensionFunction : public ExtensionFunction { 101 class AsyncExtensionFunction : public ExtensionFunction {
102 public: 102 public:
103 AsyncExtensionFunction() : args_(NULL), bad_message_(false) {} 103 AsyncExtensionFunction() : args_(NULL), bad_message_(false) {}
104 virtual ~AsyncExtensionFunction() {} 104 virtual ~AsyncExtensionFunction() {}
105 105
106 virtual void SetArgs(const std::string& args); 106 virtual void SetArgs(const Value* args);
107 virtual const std::string GetResult(); 107 virtual const std::string GetResult();
108 virtual const std::string GetError() { return error_; } 108 virtual const std::string GetError() { return error_; }
109 virtual void Run() { 109 virtual void Run() {
110 if (!RunImpl()) 110 if (!RunImpl())
111 SendResponse(false); 111 SendResponse(false);
112 } 112 }
113 113
114 // Derived classes should implement this method to do their work and return 114 // Derived classes should implement this method to do their work and return
115 // success/failure. 115 // success/failure.
116 virtual bool RunImpl() = 0; 116 virtual bool RunImpl() = 0;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 virtual void Run() { 160 virtual void Run() {
161 SendResponse(RunImpl()); 161 SendResponse(RunImpl());
162 } 162 }
163 163
164 private: 164 private:
165 DISALLOW_COPY_AND_ASSIGN(SyncExtensionFunction); 165 DISALLOW_COPY_AND_ASSIGN(SyncExtensionFunction);
166 }; 166 };
167 167
168 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_FUNCTION_H_ 168 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_FUNCTION_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_dom_ui.cc ('k') | chrome/browser/extensions/extension_function.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698