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

Unified Diff: extensions/renderer/api_binding_js_util.h

Issue 2762623003: [Extensions Bindings] Add lastError utilities to APIBindingJSUtil (Closed)
Patch Set: . Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: extensions/renderer/api_binding_js_util.h
diff --git a/extensions/renderer/api_binding_js_util.h b/extensions/renderer/api_binding_js_util.h
index 00198069dccb2ad3930a32f3d99d6c228e630e57..edd501556aa5705a515e50a4c5bddef2f6a035b3 100644
--- a/extensions/renderer/api_binding_js_util.h
+++ b/extensions/renderer/api_binding_js_util.h
@@ -8,6 +8,7 @@
#include <string>
#include "base/macros.h"
+#include "extensions/renderer/api_binding_types.h"
#include "gin/wrappable.h"
#include "v8/include/v8.h"
@@ -27,7 +28,8 @@ class APIBindingJSUtil final : public gin::Wrappable<APIBindingJSUtil> {
public:
APIBindingJSUtil(const APITypeReferenceMap* type_refs,
APIRequestHandler* request_handler,
- APIEventHandler* event_handler);
+ APIEventHandler* event_handler,
+ const binding::RunJSFunction& run_js);
~APIBindingJSUtil() override;
static gin::WrapperInfo kWrapperInfo;
@@ -62,6 +64,23 @@ class APIBindingJSUtil final : public gin::Wrappable<APIBindingJSUtil> {
// being added.
void InvalidateEvent(gin::Arguments* arguments, v8::Local<v8::Object> event);
+ // Sets the last error in the context.
+ void SetLastError(gin::Arguments* arguments, const std::string& error);
+
+ // Clears the last error in the context.
+ void ClearLastError(gin::Arguments* arguments);
+
+ // Returns true if there is a set lastError in the given context.
+ void HasLastError(gin::Arguments* arguments);
+
+ // Sets the lastError in the given context, runs the provided callback with
+ // the supplied arguments, and then clears the last error.
+ void RunCallbackWithLastError(
+ gin::Arguments* arguments,
+ const std::string& error,
+ v8::Local<v8::Function> callback,
+ std::vector<v8::Local<v8::Value>> callback_args);
jbroman 2017/03/20 20:14:49 Is it advantageous to provide the arguments separa
Devlin 2017/03/20 23:10:40 Nope - this was just for parity with the JS equiva
+
// Type references. Guaranteed to outlive this object.
const APITypeReferenceMap* type_refs_;
@@ -71,6 +90,8 @@ class APIBindingJSUtil final : public gin::Wrappable<APIBindingJSUtil> {
// The event handler. Guaranteed to outlive this object.
APIEventHandler* event_handler_;
+ binding::RunJSFunction run_js_;
+
DISALLOW_COPY_AND_ASSIGN(APIBindingJSUtil);
};

Powered by Google App Engine
This is Rietveld 408576698