diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-07-01 12:20:27 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-07-01 10:39:40 +0000 |
commit | 7366110654eec46f21b6824f302356426f48cd74 (patch) | |
tree | f2ff1845183f6117a692bb0c705475c8c13556d5 /chromium/extensions/renderer/worker_script_context_set.h | |
parent | b92421879c003a0857b2074f7e05b3bbbb326569 (diff) | |
download | qtwebengine-chromium-7366110654eec46f21b6824f302356426f48cd74.tar.gz |
BASELINE: Update Chromium to 51.0.2704.106
Also add a few extra files we might need for future features.
Change-Id: I517c35e43221c610976d347c966d070ad44d4c2b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'chromium/extensions/renderer/worker_script_context_set.h')
-rw-r--r-- | chromium/extensions/renderer/worker_script_context_set.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/chromium/extensions/renderer/worker_script_context_set.h b/chromium/extensions/renderer/worker_script_context_set.h new file mode 100644 index 00000000000..dd33a77d6a7 --- /dev/null +++ b/chromium/extensions/renderer/worker_script_context_set.h @@ -0,0 +1,46 @@ +// Copyright 2015 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_SCRIPT_CONTEXT_SET_H_ +#define EXTENSIONS_RENDERER_WORKER_SCRIPT_CONTEXT_SET_H_ + +#include "base/macros.h" +#include "base/memory/scoped_ptr.h" +#include "base/memory/scoped_vector.h" +#include "base/threading/thread_local.h" +#include "content/public/child/worker_thread.h" +#include "url/gurl.h" +#include "v8/include/v8.h" + +namespace extensions { + +class ScriptContext; + +// A set of ScriptContexts owned by worker threads. Thread safe. +class WorkerScriptContextSet : public content::WorkerThread::Observer { + public: + WorkerScriptContextSet(); + + ~WorkerScriptContextSet() override; + + // Inserts |context| into the set. Contexts are stored in TLS. + void Insert(scoped_ptr<ScriptContext> context); + + // Removes the ScriptContext associated with |v8_context| which was added for + // |url| (used for sanity checking). + void Remove(v8::Local<v8::Context> v8_context, const GURL& url); + + private: + // WorkerThread::Observer: + void WillStopCurrentWorkerThread() override; + + // Implement thread safety by storing each ScriptContext in TLS. + base::ThreadLocalPointer<ScopedVector<ScriptContext>> contexts_tls_; + + DISALLOW_COPY_AND_ASSIGN(WorkerScriptContextSet); +}; + +} // namespace extensions + +#endif // EXTENSIONS_RENDERER_WORKER_SCRIPT_CONTEXT_SET_H_ |