1// Copyright 2014 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 ServiceWorkerClient_h
6#define ServiceWorkerClient_h
7
8#include "bindings/core/v8/ScriptWrappable.h"
9#include "bindings/core/v8/SerializedScriptValue.h"
10#include "platform/heap/Handle.h"
11#include "wtf/Forward.h"
12
13namespace blink {
14
15class ServiceWorkerClient FINAL : public GarbageCollected<ServiceWorkerClient>, public ScriptWrappable {
16    DEFINE_WRAPPERTYPEINFO();
17public:
18    static ServiceWorkerClient* create(unsigned id);
19
20    // ServiceWorkerClient.idl
21    unsigned id() const { return m_id; }
22    void postMessage(ExecutionContext*, PassRefPtr<SerializedScriptValue> message, const MessagePortArray*, ExceptionState&);
23
24    void trace(Visitor*) { }
25
26private:
27    explicit ServiceWorkerClient(unsigned id);
28
29    unsigned m_id;
30};
31
32} // namespace blink
33
34#endif // ServiceWorkerClient_h
35