1 /*
2  * Copyright (C) 2012 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *  * Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  *  * Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25 
26 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SPEECH_SPEECH_GRAMMAR_H_
27 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SPEECH_SPEECH_GRAMMAR_H_
28 
29 #include "third_party/blink/renderer/modules/modules_export.h"
30 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
31 #include "third_party/blink/renderer/platform/heap/handle.h"
32 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
33 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
34 
35 namespace blink {
36 
37 class ScriptState;
38 
39 class MODULES_EXPORT SpeechGrammar final : public ScriptWrappable {
40   DEFINE_WRAPPERTYPEINFO();
41 
42  public:
43   static SpeechGrammar* Create();  // FIXME: The spec is not clear on what the
44                                    // constructor should look like.
45   static SpeechGrammar* Create(const KURL& src, double weight);
46 
47   SpeechGrammar();
48   SpeechGrammar(const KURL& src, double weight);
49 
src(ScriptState *)50   const KURL& src(ScriptState*) const { return src_; }
src()51   const KURL& src() const { return src_; }
52   void setSrc(ScriptState*, const String& src);
53 
weight()54   double weight() const { return weight_; }
setWeight(double weight)55   void setWeight(double weight) { weight_ = weight; }
56 
57  private:
58   KURL src_;
59   double weight_;
60 };
61 
62 }  // namespace blink
63 
64 #endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_SPEECH_SPEECH_GRAMMAR_H_
65