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

Unified Diff: extensions/renderer/console.cc

Issue 2819683002: [Extenisons Bindings] Don't throw unchecked errors; add console errors (Closed)
Patch Set: jbroman's Created 3 years, 8 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
« no previous file with comments | « extensions/renderer/console.h ('k') | extensions/renderer/declarative_event_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/console.cc
diff --git a/extensions/renderer/console.cc b/extensions/renderer/console.cc
index 245e14f9c24bef22fd58a154884b4f1cfaa2cbd3..ab3e5cc8b71702d50dac693c0ad85065975e1d74 100644
--- a/extensions/renderer/console.cc
+++ b/extensions/renderer/console.cc
@@ -54,31 +54,39 @@ void BoundLogMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) {
ScriptContext* script_context =
ScriptContextSet::GetContextByV8Context(context);
// TODO(devlin): Consider (D)CHECK(script_context)
- content::RenderFrame* render_frame =
- script_context ? script_context->GetRenderFrame() : nullptr;
const auto level = static_cast<content::ConsoleMessageLevel>(
info.Data().As<v8::Int32>()->Value());
- AddMessage(render_frame, level, message);
+ AddMessage(script_context, level, message);
}
gin::WrapperInfo kWrapperInfo = {gin::kEmbedderNativeGin};
} // namespace
-void Fatal(content::RenderFrame* render_frame, const std::string& message) {
- AddMessage(render_frame, content::CONSOLE_MESSAGE_LEVEL_ERROR, message);
+void Fatal(ScriptContext* context, const std::string& message) {
+ AddMessage(context, content::CONSOLE_MESSAGE_LEVEL_ERROR, message);
CheckWithMinidump(message);
}
-void AddMessage(content::RenderFrame* render_frame,
+void AddMessage(ScriptContext* script_context,
content::ConsoleMessageLevel level,
const std::string& message) {
+ if (!script_context) {
+ LOG(WARNING) << "Could not log \"" << message
+ << "\": no ScriptContext found";
+ return;
+ }
+ content::RenderFrame* render_frame = script_context->GetRenderFrame();
if (!render_frame) {
+ // TODO(lazyboy/devlin): This can happen when this is the context for a
+ // service worker. blink::WebEmbeddedWorker has an AddMessageToConsole
+ // method that we could theoretically hook into.
LOG(WARNING) << "Could not log \"" << message
<< "\": no render frame found";
- } else {
- render_frame->AddMessageToConsole(level, message);
+ return;
}
+
+ render_frame->AddMessageToConsole(level, message);
}
v8::Local<v8::Object> AsV8Object(v8::Isolate* isolate) {
« no previous file with comments | « extensions/renderer/console.h ('k') | extensions/renderer/declarative_event_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698