Home | History | Annotate | Download | only in renderer
      1 // Copyright (c) 2012 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 
      5 #ifndef CONTENT_RENDERER_WEBSHAREDWORKERREPOSITORY_IMPL_H_
      6 #define CONTENT_RENDERER_WEBSHAREDWORKERREPOSITORY_IMPL_H_
      7 
      8 #include "base/containers/hash_tables.h"
      9 #include "third_party/WebKit/public/web/WebSharedWorkerRepository.h"
     10 
     11 namespace WebKit {
     12 class WebSharedWorker;
     13 }
     14 
     15 namespace content {
     16 
     17 class WebSharedWorkerRepositoryImpl : public WebKit::WebSharedWorkerRepository {
     18  public:
     19   WebSharedWorkerRepositoryImpl();
     20   virtual ~WebSharedWorkerRepositoryImpl();
     21 
     22   virtual void addSharedWorker(WebKit::WebSharedWorker*, DocumentID document);
     23   virtual void documentDetached(DocumentID document);
     24 
     25   // Returns true if the document has created a SharedWorker (used by the
     26   // WebKit code to determine if the document can be suspended).
     27   virtual bool hasSharedWorkers(DocumentID document);
     28 
     29  private:
     30   // The set of documents that have created a SharedWorker.
     31   typedef base::hash_set<DocumentID> DocumentSet;
     32   DocumentSet shared_worker_parents_;
     33 };
     34 
     35 }  // namespace content
     36 
     37 #endif  // CONTENT_RENDERER_WEBSHAREDWORKERREPOSITORY_IMPL_H_
     38