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_frame_observer.h" 12#include "third_party/WebKit/public/web/WebContentSecurityPolicy.h" 13#include "third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h" 14 15namespace content { 16 17class RenderFrameImpl; 18 19class SharedWorkerRepository : public RenderFrameObserver, 20 public blink::WebSharedWorkerRepositoryClient { 21 public: 22 explicit SharedWorkerRepository(RenderFrameImpl* render_frame); 23 virtual ~SharedWorkerRepository(); 24 25 // WebSharedWorkerRepositoryClient overrides. 26 virtual blink::WebSharedWorkerConnector* createSharedWorkerConnector( 27 const blink::WebURL& url, 28 const blink::WebString& name, 29 DocumentID document_id, 30 const blink::WebString& content_security_policy, 31 blink::WebContentSecurityPolicyType) OVERRIDE; 32 virtual void documentDetached(DocumentID document_id) OVERRIDE; 33 34 private: 35 std::set<DocumentID> documents_with_workers_; 36 37 DISALLOW_COPY_AND_ASSIGN(SharedWorkerRepository); 38}; 39 40} // namespace content 41 42#endif // CONTENT_RENDERER_SHARED_WORKER_REPOSITORY_H_ 43