/usr/include/firefox-esr-52/mozilla/dom/HTMLVideoElement.h is in firefox-esr-dev 52.8.1esr-1~deb8u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_dom_HTMLVideoElement_h
#define mozilla_dom_HTMLVideoElement_h
#include "mozilla/Attributes.h"
#include "mozilla/dom/HTMLMediaElement.h"
namespace mozilla {
namespace dom {
class WakeLock;
class VideoPlaybackQuality;
class HTMLVideoElement final : public HTMLMediaElement
{
public:
typedef mozilla::dom::NodeInfo NodeInfo;
explicit HTMLVideoElement(already_AddRefed<NodeInfo>& aNodeInfo);
NS_IMPL_FROMCONTENT_HTML_WITH_TAG(HTMLVideoElement, video)
using HTMLMediaElement::GetPaused;
NS_IMETHOD_(bool) IsVideo() override {
return true;
}
virtual bool ParseAttribute(int32_t aNamespaceID,
nsIAtom* aAttribute,
const nsAString& aValue,
nsAttrValue& aResult) override;
NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const override;
static void Init();
virtual nsMapRuleToAttributesFunc GetAttributeMappingFunction() const override;
virtual nsresult Clone(NodeInfo *aNodeInfo, nsINode **aResult) const override;
// Set size with the current video frame's height and width.
// If there is no video frame, returns NS_ERROR_FAILURE.
nsresult GetVideoSize(nsIntSize* size);
virtual nsresult SetAcceptHeader(nsIHttpChannel* aChannel) override;
// Element
virtual bool IsInteractiveHTMLContent(bool aIgnoreTabindex) const override;
// WebIDL
uint32_t Width() const
{
return GetIntAttr(nsGkAtoms::width, 0);
}
void SetWidth(uint32_t aValue, ErrorResult& aRv)
{
SetUnsignedIntAttr(nsGkAtoms::width, aValue, 0, aRv);
}
uint32_t Height() const
{
return GetIntAttr(nsGkAtoms::height, 0);
}
void SetHeight(uint32_t aValue, ErrorResult& aRv)
{
SetUnsignedIntAttr(nsGkAtoms::height, aValue, 0, aRv);
}
uint32_t VideoWidth() const
{
if (mMediaInfo.HasVideo()) {
if (mMediaInfo.mVideo.mRotation == VideoInfo::Rotation::kDegree_90 ||
mMediaInfo.mVideo.mRotation == VideoInfo::Rotation::kDegree_270) {
return mMediaInfo.mVideo.mDisplay.height;
}
return mMediaInfo.mVideo.mDisplay.width;
}
return 0;
}
uint32_t VideoHeight() const
{
if (mMediaInfo.HasVideo()) {
if (mMediaInfo.mVideo.mRotation == VideoInfo::Rotation::kDegree_90 ||
mMediaInfo.mVideo.mRotation == VideoInfo::Rotation::kDegree_270) {
return mMediaInfo.mVideo.mDisplay.width;
}
return mMediaInfo.mVideo.mDisplay.height;
}
return 0;
}
VideoInfo::Rotation RotationDegrees() const
{
return mMediaInfo.mVideo.mRotation;
}
void GetPoster(nsAString& aValue)
{
GetURIAttr(nsGkAtoms::poster, nullptr, aValue);
}
void SetPoster(const nsAString& aValue, ErrorResult& aRv)
{
SetHTMLAttr(nsGkAtoms::poster, aValue, aRv);
}
uint32_t MozParsedFrames() const;
uint32_t MozDecodedFrames() const;
uint32_t MozPresentedFrames() const;
uint32_t MozPaintedFrames();
double MozFrameDelay();
bool MozHasAudio() const;
bool MozUseScreenWakeLock() const;
void SetMozUseScreenWakeLock(bool aValue);
void NotifyOwnerDocumentActivityChanged() override;
// Gives access to the decoder's frame statistics, if present.
FrameStatistics* GetFrameStatistics();
already_AddRefed<VideoPlaybackQuality> GetVideoPlaybackQuality();
protected:
virtual ~HTMLVideoElement();
virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
virtual void WakeLockCreate() override;
virtual void WakeLockRelease() override;
void UpdateScreenWakeLock();
bool mUseScreenWakeLock;
RefPtr<WakeLock> mScreenWakeLock;
private:
static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
nsRuleData* aData);
};
} // namespace dom
} // namespace mozilla
#endif // mozilla_dom_HTMLVideoElement_h
|