| 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) {
|
|
|