Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/mozilla/dom/ChromeMessageBroadcaster.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
3
/* This Source Code Form is subject to the terms of the Mozilla Public
4
 * License, v. 2.0. If a copy of the MPL was not distributed with this
5
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7
#ifndef mozilla_dom_ChromeMessageBroadcaster_h
8
#define mozilla_dom_ChromeMessageBroadcaster_h
9
10
#include "mozilla/dom/MessageBroadcaster.h"
11
12
namespace mozilla {
13
namespace dom {
14
15
/**
16
 * Implementation for the WebIDL ChromeMessageBroadcaster interface. Used for window and
17
 * group message managers.
18
 */
19
class ChromeMessageBroadcaster final : public MessageBroadcaster
20
{
21
public:
22
  explicit ChromeMessageBroadcaster(MessageManagerFlags aFlags)
23
    : ChromeMessageBroadcaster(nullptr, aFlags)
24
0
  {
25
0
    MOZ_ASSERT(!(aFlags & ~(MessageManagerFlags::MM_GLOBAL |
26
0
                            MessageManagerFlags::MM_OWNSCALLBACK)));
27
0
  }
28
  explicit ChromeMessageBroadcaster(MessageBroadcaster* aParentManager)
29
    : ChromeMessageBroadcaster(aParentManager, MessageManagerFlags::MM_NONE)
30
0
  {}
31
32
  virtual JSObject* WrapObject(JSContext* aCx,
33
                               JS::Handle<JSObject*> aGivenProto) override;
34
35
  // FrameScriptLoader
36
  void LoadFrameScript(const nsAString& aUrl, bool aAllowDelayedLoad,
37
                       bool aRunInGlobalScope, mozilla::ErrorResult& aError)
38
0
  {
39
0
    LoadScript(aUrl, aAllowDelayedLoad, aRunInGlobalScope, aError);
40
0
  }
41
  void RemoveDelayedFrameScript(const nsAString& aURL)
42
0
  {
43
0
    RemoveDelayedScript(aURL);
44
0
  }
45
  void GetDelayedFrameScripts(JSContext* aCx,
46
                              nsTArray<nsTArray<JS::Value>>& aScripts,
47
                              mozilla::ErrorResult& aError)
48
0
  {
49
0
    GetDelayedScripts(aCx, aScripts, aError);
50
0
  }
51
52
private:
53
  ChromeMessageBroadcaster(MessageBroadcaster* aParentManager,
54
                           MessageManagerFlags aFlags)
55
    : MessageBroadcaster(aParentManager,
56
                         aFlags |
57
                         MessageManagerFlags::MM_CHROME)
58
0
  {}
59
};
60
61
} // namespace dom
62
} // namespace mozilla
63
64
#endif // mozilla_dom_ChromeMessageBroadcaster_h