service_worker_data.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright 2016 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef EXTENSIONS_RENDERER_SERVICE_WORKER_DATA_H_
  5. #define EXTENSIONS_RENDERER_SERVICE_WORKER_DATA_H_
  6. #include <memory>
  7. #include "extensions/common/activation_sequence.h"
  8. #include "extensions/renderer/v8_schema_registry.h"
  9. namespace extensions {
  10. class NativeExtensionBindingsSystem;
  11. class ScriptContext;
  12. // Per ServiceWorker data in worker thread.
  13. // TODO(lazyboy): Also put worker ScriptContexts in this.
  14. class ServiceWorkerData {
  15. public:
  16. ServiceWorkerData(
  17. int64_t service_worker_version_id,
  18. ActivationSequence activation_sequence,
  19. ScriptContext* context,
  20. std::unique_ptr<NativeExtensionBindingsSystem> bindings_system);
  21. ServiceWorkerData(const ServiceWorkerData&) = delete;
  22. ServiceWorkerData& operator=(const ServiceWorkerData&) = delete;
  23. ~ServiceWorkerData();
  24. V8SchemaRegistry* v8_schema_registry() { return v8_schema_registry_.get(); }
  25. NativeExtensionBindingsSystem* bindings_system() {
  26. return bindings_system_.get();
  27. }
  28. int64_t service_worker_version_id() const {
  29. return service_worker_version_id_;
  30. }
  31. ActivationSequence activation_sequence() const {
  32. return activation_sequence_;
  33. }
  34. ScriptContext* context() const { return context_; }
  35. private:
  36. const int64_t service_worker_version_id_;
  37. const ActivationSequence activation_sequence_;
  38. ScriptContext* const context_ = nullptr;
  39. std::unique_ptr<V8SchemaRegistry> v8_schema_registry_;
  40. std::unique_ptr<NativeExtensionBindingsSystem> bindings_system_;
  41. };
  42. } // namespace extensions
  43. #endif // EXTENSIONS_RENDERER_SERVICE_WORKER_DATA_H_