OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_CHROME_EXTENSION_FUNCTION_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_CHROME_EXTENSION_FUNCTION_H_ |
6 #define CHROME_BROWSER_EXTENSIONS_CHROME_EXTENSION_FUNCTION_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_CHROME_EXTENSION_FUNCTION_H_ |
7 | 7 |
8 #include "chrome/browser/extensions/chrome_extension_function_details.h" | 8 #include "chrome/browser/extensions/chrome_extension_function_details.h" |
9 #include "extensions/browser/extension_function.h" | 9 #include "extensions/browser/extension_function.h" |
10 | 10 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
47 // This method can return NULL if there is no matching browser, which can | 47 // This method can return NULL if there is no matching browser, which can |
48 // happen if only incognito windows are open, or early in startup or shutdown | 48 // happen if only incognito windows are open, or early in startup or shutdown |
49 // shutdown when there are no active windows. | 49 // shutdown when there are no active windows. |
50 // | 50 // |
51 // TODO(stevenjb): Replace this with GetExtensionWindowController(). | 51 // TODO(stevenjb): Replace this with GetExtensionWindowController(). |
52 Browser* GetCurrentBrowser(); | 52 Browser* GetCurrentBrowser(); |
53 | 53 |
54 // Same as above but uses WindowControllerList instead of BrowserList. | 54 // Same as above but uses WindowControllerList instead of BrowserList. |
55 extensions::WindowController* GetExtensionWindowController(); | 55 extensions::WindowController* GetExtensionWindowController(); |
56 | 56 |
57 // Gets the "current" web contents if any. If there is no associated web | 57 // ExtensionFunction: |
58 // contents then defaults to the foremost one. | |
59 content::WebContents* GetAssociatedWebContents() override; | 58 content::WebContents* GetAssociatedWebContents() override; |
59 void SetError(const std::string& error) override; | |
60 const std::string& GetError() const override; | |
61 | |
62 protected: | |
63 ~ChromeUIThreadExtensionFunction() override; | |
60 | 64 |
61 // Responds with success/failure. |results_| or |error_| should be set | 65 // Responds with success/failure. |results_| or |error_| should be set |
62 // accordingly. | 66 // accordingly. |
63 void SendResponse(bool success); | 67 void SendResponse(bool success); |
64 | 68 |
65 protected: | 69 // Sets a single Value as the results of the function. |
66 ~ChromeUIThreadExtensionFunction() override; | 70 void SetResult(std::unique_ptr<base::Value> result); |
71 | |
72 // Sets multiple Values as the results of the function. | |
73 void SetResultList(std::unique_ptr<base::ListValue> results); | |
74 | |
75 std::unique_ptr<base::ListValue> results_; | |
76 std::string error_; | |
lazyboy
2016/09/30 01:16:05
I'm finding this very hard to grok, can we use dif
Devlin
2016/09/30 18:29:09
We can't name these something different, because e
| |
67 | 77 |
68 private: | 78 private: |
69 ChromeExtensionFunctionDetails chrome_details_; | 79 ChromeExtensionFunctionDetails chrome_details_; |
70 }; | 80 }; |
71 | 81 |
72 // A chrome specific analog to AsyncExtensionFunction. This has access to a | 82 // A chrome specific analog to AsyncExtensionFunction. This has access to a |
73 // chrome Profile. | 83 // chrome Profile. |
74 // | 84 // |
75 // DEPRECATED: Please consider inherting UIThreadExtensionFunction or | 85 // DEPRECATED: Please consider inherting UIThreadExtensionFunction or |
76 // AsyncExtensionFunction directly. Then if you need access to Chrome details, | 86 // AsyncExtensionFunction directly. Then if you need access to Chrome details, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
117 static bool ValidationFailure(ChromeSyncExtensionFunction* function); | 127 static bool ValidationFailure(ChromeSyncExtensionFunction* function); |
118 | 128 |
119 private: | 129 private: |
120 // If you're hitting a compile error here due to "final" - great! You're doing | 130 // If you're hitting a compile error here due to "final" - great! You're doing |
121 // the right thing, you just need to extend ChromeUIThreadExtensionFunction | 131 // the right thing, you just need to extend ChromeUIThreadExtensionFunction |
122 // instead of ChromeSyncExtensionFunction. | 132 // instead of ChromeSyncExtensionFunction. |
123 ResponseAction Run() final; | 133 ResponseAction Run() final; |
124 }; | 134 }; |
125 | 135 |
126 #endif // CHROME_BROWSER_EXTENSIONS_CHROME_EXTENSION_FUNCTION_H_ | 136 #endif // CHROME_BROWSER_EXTENSIONS_CHROME_EXTENSION_FUNCTION_H_ |
OLD | NEW |