Commit 82872cef authored by Istiaque Ahmed's avatar Istiaque Ahmed Committed by Commit Bot

Extensions: Extract IsWorkerThread() method to common place.

Update callsites to use the common method.

Bug: None
Test: Internal only change.
Change-Id: I218eb99850f1fc8221626201ee425bb108b5c5ad
Reviewed-on: https://chromium-review.googlesource.com/c/1491769
Commit-Queue: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: default avatarKaran Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636312}
parent a242f79e
......@@ -322,6 +322,8 @@ jumbo_source_set("renderer") {
"worker_script_context_set.h",
"worker_thread_dispatcher.cc",
"worker_thread_dispatcher.h",
"worker_thread_util.cc",
"worker_thread_util.h",
]
configs += [
......
......@@ -12,11 +12,11 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/worker_thread.h"
#include "extensions/renderer/extension_frame_helper.h"
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/script_context_set.h"
#include "extensions/renderer/v8_helpers.h"
#include "extensions/renderer/worker_thread_util.h"
#include "gin/converter.h"
#include "gin/per_isolate_data.h"
......@@ -44,7 +44,7 @@ void BoundLogMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) {
// A worker's ScriptContext neither lives in ScriptContextSet nor it has a
// RenderFrame associated with it, so early exit in this case.
// TODO(lazyboy): Fix.
if (content::WorkerThread::GetCurrentId() > 0)
if (worker_thread_util::IsWorkerThread())
return;
v8::Local<v8::Context> context = info.GetIsolate()->GetCurrentContext();
......
......@@ -99,6 +99,7 @@
#include "extensions/renderer/wake_event_page.h"
#include "extensions/renderer/worker_script_context_set.h"
#include "extensions/renderer/worker_thread_dispatcher.h"
#include "extensions/renderer/worker_thread_util.h"
#include "gin/converter.h"
#include "mojo/public/js/grit/mojo_bindings_resources.h"
#include "services/network/public/mojom/cors.mojom.h"
......@@ -497,7 +498,7 @@ void Dispatcher::DidStartServiceWorkerContextOnWorkerThread(
if (!ExtensionsClient::Get()->ExtensionAPIEnabledInExtensionServiceWorkers())
return;
DCHECK_NE(content::WorkerThread::GetCurrentId(), kMainThreadId);
DCHECK(worker_thread_util::IsWorkerThread());
WorkerThreadDispatcher::Get()->DidStartContext(service_worker_scope,
service_worker_version_id);
}
......
......@@ -11,6 +11,7 @@
#include "extensions/common/value_counter.h"
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/worker_thread_dispatcher.h"
#include "extensions/renderer/worker_thread_util.h"
namespace extensions {
......@@ -37,7 +38,7 @@ EventBookkeeper::EventBookkeeper() {}
// static
EventBookkeeper* EventBookkeeper::Get() {
if (content::WorkerThread::GetCurrentId() == kMainThreadId)
if (!worker_thread_util::IsWorkerThread())
return &g_main_thread_event_bookkeeper.Get();
return WorkerThreadDispatcher::Get()->event_bookkeeper();
}
......
......@@ -11,17 +11,10 @@
#include "extensions/common/api/messaging/port_id.h"
#include "extensions/common/extension_messages.h"
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/worker_thread_util.h"
namespace extensions {
namespace {
bool IsWorkerThread() {
return content::WorkerThread::GetCurrentId() != kMainThreadId;
}
} // namespace
ExtensionPort::ExtensionPort(ScriptContext* script_context,
const PortId& id,
int js_id)
......@@ -42,7 +35,7 @@ void ExtensionPort::PostExtensionMessage(std::unique_ptr<Message> message) {
void ExtensionPort::Close(bool close_channel) {
// TODO(crbug.com/925918): Support Service Worker.
DCHECK(!IsWorkerThread());
DCHECK(!worker_thread_util::IsWorkerThread());
content::RenderFrame* render_frame = script_context_->GetRenderFrame();
if (!render_frame)
......
......@@ -5,16 +5,16 @@
#include "extensions/renderer/get_script_context.h"
#include "base/logging.h"
#include "content/public/renderer/worker_thread.h"
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/script_context_set.h"
#include "extensions/renderer/worker_thread_dispatcher.h"
#include "extensions/renderer/worker_thread_util.h"
namespace extensions {
ScriptContext* GetScriptContextFromV8Context(v8::Local<v8::Context> context) {
ScriptContext* script_context =
content::WorkerThread::GetCurrentId() > 0
worker_thread_util::IsWorkerThread()
? WorkerThreadDispatcher::GetScriptContext()
: ScriptContextSet::GetContextByV8Context(context);
DCHECK(!script_context || script_context->v8_context() == context);
......
......@@ -30,6 +30,7 @@
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/script_context_set.h"
#include "extensions/renderer/v8_helpers.h"
#include "extensions/renderer/worker_thread_util.h"
#include "gin/converter.h"
#include "third_party/blink/public/web/web_user_gesture_indicator.h"
#include "v8/include/v8.h"
......@@ -52,10 +53,6 @@ namespace {
base::LazyInstance<std::map<ScriptContext*, MessagingBindings*>>::
DestructorAtExit g_messaging_map = LAZY_INSTANCE_INITIALIZER;
bool IsWorkerThread() {
return content::WorkerThread::GetCurrentId() != kMainThreadId;
}
} // namespace
MessagingBindings::MessagingBindings(ScriptContext* context)
......@@ -181,7 +178,7 @@ void MessagingBindings::BindToGC(
void MessagingBindings::OpenChannelToExtension(
const v8::FunctionCallbackInfo<v8::Value>& args) {
// TODO(crbug.com/925918): Support messaging from a Service Worker.
DCHECK(!IsWorkerThread());
DCHECK(!worker_thread_util::IsWorkerThread());
content::RenderFrame* render_frame = context()->GetRenderFrame();
if (!render_frame)
......@@ -238,7 +235,7 @@ void MessagingBindings::OpenChannelToNativeApp(
CHECK(context()->GetAvailability("runtime.connectNative").is_available());
// TODO(crbug.com/925918): Support native messaging for Service Workers.
DCHECK(!IsWorkerThread());
DCHECK(!worker_thread_util::IsWorkerThread());
content::RenderFrame* render_frame = context()->GetRenderFrame();
if (!render_frame)
......@@ -265,7 +262,7 @@ void MessagingBindings::OpenChannelToNativeApp(
void MessagingBindings::OpenChannelToTab(
const v8::FunctionCallbackInfo<v8::Value>& args) {
// TODO(crbug.com/925918): Support Service worker to tab messaging.
DCHECK(!IsWorkerThread());
DCHECK(!worker_thread_util::IsWorkerThread());
content::RenderFrame* render_frame = context()->GetRenderFrame();
if (!render_frame)
......
......@@ -8,6 +8,7 @@
#include <utility>
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/worker_thread_util.h"
namespace extensions {
......@@ -35,7 +36,7 @@ WorkerScriptContextSet::WorkerScriptContextSet() {}
WorkerScriptContextSet::~WorkerScriptContextSet() {}
void WorkerScriptContextSet::Insert(std::unique_ptr<ScriptContext> context) {
DCHECK_GT(content::WorkerThread::GetCurrentId(), 0)
DCHECK(worker_thread_util::IsWorkerThread())
<< "Must be called on a worker thread";
ContextVector* contexts = contexts_tls_.Get();
if (!contexts) {
......@@ -52,7 +53,7 @@ void WorkerScriptContextSet::Insert(std::unique_ptr<ScriptContext> context) {
void WorkerScriptContextSet::Remove(v8::Local<v8::Context> v8_context,
const GURL& url) {
DCHECK_GT(content::WorkerThread::GetCurrentId(), 0)
DCHECK(worker_thread_util::IsWorkerThread())
<< "Must be called on a worker thread";
ContextVector* contexts = contexts_tls_.Get();
if (!contexts) {
......
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "extensions/renderer/worker_thread_util.h"
#include "content/public/renderer/worker_thread.h"
#include "extensions/common/constants.h"
namespace extensions {
namespace worker_thread_util {
bool IsWorkerThread() {
return content::WorkerThread::GetCurrentId() != kMainThreadId;
}
} // namespace worker_thread_util
} // namespace extensions
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef EXTENSIONS_RENDERER_WORKER_THREAD_UTIL_H_
#define EXTENSIONS_RENDERER_WORKER_THREAD_UTIL_H_
namespace extensions {
namespace worker_thread_util {
// Returns true if the current thread is a worker thread.
bool IsWorkerThread();
} // namespace worker_thread_util
} // namespace extensions
#endif // EXTENSIONS_RENDERER_WORKER_THREAD_UTIL_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment