1 // Copyright 2013 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_SHARED_WORKER_REPOSITORY_H_ 6 #define CONTENT_RENDERER_SHARED_WORKER_REPOSITORY_H_ 7 8 #include <set> 9 10 #include "base/basictypes.h" 11 #include "content/public/renderer/render_view_observer.h" 12 #include "third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h" 13 14 namespace content { 15 16 class RenderViewImpl; 17 18 class SharedWorkerRepository : public RenderViewObserver, 19 public blink::WebSharedWorkerRepositoryClient { 20 public: 21 explicit SharedWorkerRepository(RenderViewImpl* render_view); 22 virtual ~SharedWorkerRepository(); 23 24 // WebSharedWorkerRepositoryClient overrides. 25 virtual blink::WebSharedWorkerConnector* createSharedWorkerConnector( 26 const blink::WebURL& url, 27 const blink::WebString& name, 28 DocumentID document_id) OVERRIDE; 29 virtual void documentDetached(DocumentID document_id) OVERRIDE; 30 31 private: 32 std::set<DocumentID> documents_with_workers_; 33 34 DISALLOW_COPY_AND_ASSIGN(SharedWorkerRepository); 35 }; 36 37 } // namespace content 38 39 #endif // CONTENT_RENDERER_SHARED_WORKER_REPOSITORY_H_ 40