mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:18:48 +00:00
b3dd358267
- Bug 1247362 - move mAnonymousGlobalScope tracing into nsMessageManagerScriptExecutor; r=mccr8 (9b33b54bc9)
- Bug 1195881 - Contextual Identity working under e10s. r=tanvi r=sicking r=baku (b3fd69bd92)
- Bug 1174624 - Add the Transferable parameter into SendAsyncMessage of nsFrameMessageManager. r=baku (33911dc6f7)
- Bug 1174624 - Add PortIdentifier copy code in order to communicate with same process. r=baku (d597f24e20)
- Bug 1234176 - Do not send memory pressure events to applications sent into the background. r=dhylands (687f154573)
- Bug 1201394 - Remove unused mLRUPoolSize member variable. r=gsvelto (a109934b8d)
- Bug 1144132 follow up to fix static check build bustage on a CLOSED TREE with r=me (050f49060e)
- Bug 1153394 - make HangMonitorChild::sInstance an atomic variable; r=billm (89e6905f3f)
- Bug 1202952 - Fix directory picking for e10s on Windows by making FilePickerParent use the correct nsIFilePicker API for directory picking. r=roc (a7e964d4fa)
- Bug 1227312 - Avoid calling FinalizeChildData twice in GenerateCompleteMinidump. r=ted (c29e6786ae)
- Bug 1222109 - Initialize mHasGamepadListener in InitializeMembers(); r=cleu (8057137e5d)
- Bug 1231498 - ContentParent::RecvCreateWindow() should fail in opt builds if passed bad chromeflags. r=billm (639fb93101)
- minor indentation (f5dbd8996c)
- fix misspatch (3b306e0084)
- Bug 1101264: Truncate long sourceName messages since they can be massive data: URLs. r=bent (c528048e58)
- Bug 1233497 - Update test_bug1086684.html to not access CPOWs unsafely inside SpecialPowers. r=mrbkap (d5d161eac2)
- align tests (24d98036dc)
- Bug 1232931 Return null instead of throwing if swm.getWorkerByID() cannot find the worker. r=ochameau IGNORE IDL for comment only change (17f293f323)
- Bug 1186812 (part 3) - Replace nsBaseHashtable::EnumerateRead() calls in dom/{ipc,plugins}/. r=jimm. (a944fa4480)
- Bug 1234656 - Add TouchEvent ctor, r=mbrubeck (842245df14)
- Bug 1246854 - Remove unnecessary warning. r=botond (7d0532e516)
- Bug 1245393 - Measure s{,Default}RootBranch in the Preferences memory reporter. r=froydnj. (be200f9ebe)
- Bug 1089232 - Updates nsContentPrefService to take an extra isPrivate argument. r=adw (9ea4fe075d)
- Bug 1229519: Fix toolkit/components/contentprefs to pass eslint checks. r=mconley (e48b64448b)
- Bug 663570 - MetaCSP Part 6: CSP preload changes (r=sicking) (65700820c1)
- Bug 1030936 - [CSP] remove fast-path for certified apps once the C++ backend is activated. r=ckerschb (e9527e9cfc)
- Bug 1228497 - initialize 3 members in class. r=christophkerschbaumer (44414e8429)
- Bug 1208946 - Strip URIs in CSP reports (r=dveditz) (dd6c18a8ff)
- Bug 1247464 - Run CSP report URIs through the URL classifier. r=ckerschb (ebb3570172)
- Bug 1242909, r=ckerschb (569de89b26)
- Bug 1119565: Ensure that a plugin listener's stream type is always set, even when it is STREAM_TYPE_UNKNOWN; r=jimm (43fb9ebdb9)
- Bug 1228116 - Relax Security checks for DTD loads. r=sicking (b77e2c4531)
- Bug 1195173 - Use channel->ascynOpen2 layout/style/Loader.cpp (r=bz) (97de97b864)
- let-var (fb35f8f50c)
- Bug 1226324 - Do not use NS_ENSURCE_SUCCESS(rv, NS_OK) within nsContentSecurityManager. r=tanvi (745ecaf562)
- Bug 1221365 - Tests for "Is origin potentially trustworthy?" logic. r=ckerschb,bkelly (1d520ebcc5)
- Bug 1132211 - Dispatch an event when <input type=password> is added to a document (including outside of a form). r=smaug (3e9acb8bf3)
- Bug 1217766 - All PDFs trigger the insecure password warning. r=MattN,bz (0ea7e35b96)
- Bug 1155471 - Mark some members of nsNodeInfoManager as MOZ_NON_OWNING_REF; r=baku (bd47bcea10)
- Tests for bug 1200856; r=sicking (454ff8048a)
- Bug 1243453 P1 Make nsCORSListenerProxy call UpdateChannel() for internal redirects. r=sicking (f2a45b1997)
- Bug 1243453 P2 Test XHR with a non-intercepting service worker. r=ehsan (d83b31ab3d)
- Bug 1169233 - Get grey (inactive) text color from menu labels. r=karlt (470155483b)
- Bug 1161056 - Gtk3 - use sMozWindowBackground colors for combobox background. r=karlt (4502f5583a)
- Bug 1169232 - [gtk3] Add background class to tooltip window to get correct background color. r=karlt (9421a23b1c)
- Bug 1219717 - Derive text color/background from GtkTextView. r=karlt (a39cd997ee)
- Bug 1241239 - Fix missing 'using mozilla::LogLevel' in nsIdleServiceGTK.cpp. r=karlt (16bacfc530)
- Bug 1209659 - Disable client-side decorations on broken Gtk3 versions (<3.20). r=karlt (d5cbd4c0fb)
- Bug 540078 - Remove assertion annotations that are no longer needed and add crashtest. (89f33bb00c)
- Bug 1168219 - Make nsIWidget::Configuration::mChild a smart pointer on widget/qt too. r=froydnj (0f2f97a31b)
- Bug 1234385: Add downloadable blocklist support for between comparison types, by recognizing driverVersionMax when parsing. r=benwa (87617d0fa1)
- Bug 1112712 - DOM key mapping for soft1 soft2 and call keys r=schien (3f4360e64b)
- Bug 1237691 - Implement Oculus Head Pose Prediction (3f6b0122e3)
- Bug 1041882 - Remove Froyo-specific OMX plugin support. r=snorp (eb2f6dd36a)
- Bug 1205930 - Tighten up warnings handling in media/omx-plugin/. r=gerald. (86845d720a)
- Bug 1153849 - Use MOZ_JPEG_CFLAGS when build libyuv with system jpeg. r=jesup (a38f53057d)
- Bug 1240635 - Interpret glyph x-offsets on SVG vertical text paths in the correct direction. r=longsonr (ce90452da1)
- Bug 1185266 - Look up painting properties on the SVGTextFrame when painting text frames that are direct children of <text>. r=jwatt (9c89ab71eb)
- Bug 1143096 - Init all WebMBufferedParser members - r=kinetik (7df2e4e0c3)
- Bug 1231855 - Avoid inserting out of (timecode) order entries in WebMBufferedParser. r=jya (f7806faec4)
166 lines
4.8 KiB
C++
166 lines
4.8 KiB
C++
/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
* 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/. */
|
|
|
|
#include <math.h>
|
|
|
|
#include "prlink.h"
|
|
#include "prmem.h"
|
|
#include "prenv.h"
|
|
#include "gfxPrefs.h"
|
|
#include "nsString.h"
|
|
#include "mozilla/Preferences.h"
|
|
#include "mozilla/unused.h"
|
|
#include "nsServiceManagerUtils.h"
|
|
#include "nsIScreenManager.h"
|
|
|
|
|
|
#ifdef XP_WIN
|
|
#include "../layers/d3d11/CompositorD3D11.h"
|
|
#endif
|
|
|
|
#include "VRDeviceProxy.h"
|
|
#include "VRManagerChild.h"
|
|
|
|
using namespace mozilla;
|
|
using namespace mozilla::gfx;
|
|
|
|
VRDeviceProxy::VRDeviceProxy(const VRDeviceUpdate& aDeviceUpdate)
|
|
: mDeviceInfo(aDeviceUpdate.mDeviceInfo)
|
|
, mSensorState(aDeviceUpdate.mSensorState)
|
|
{
|
|
MOZ_COUNT_CTOR(VRDeviceProxy);
|
|
|
|
if (mDeviceInfo.mScreenRect.width && mDeviceInfo.mScreenRect.height) {
|
|
if (mDeviceInfo.mIsFakeScreen) {
|
|
mScreen = MakeFakeScreen(mDeviceInfo.mScreenRect);
|
|
} else {
|
|
nsCOMPtr<nsIScreenManager> screenmgr = do_GetService("@mozilla.org/gfx/screenmanager;1");
|
|
if (screenmgr) {
|
|
screenmgr->ScreenForRect(mDeviceInfo.mScreenRect.x, mDeviceInfo.mScreenRect.y,
|
|
mDeviceInfo.mScreenRect.width, mDeviceInfo.mScreenRect.height,
|
|
getter_AddRefs(mScreen));
|
|
}
|
|
}
|
|
#ifdef DEBUG
|
|
printf_stderr("VR DEVICE SCREEN: %d %d %d %d\n",
|
|
mDeviceInfo.mScreenRect.x, mDeviceInfo.mScreenRect.y,
|
|
mDeviceInfo.mScreenRect.width, mDeviceInfo.mScreenRect.height);
|
|
#endif
|
|
}
|
|
}
|
|
|
|
VRDeviceProxy::~VRDeviceProxy() {
|
|
MOZ_COUNT_DTOR(VRDeviceProxy);
|
|
}
|
|
|
|
void
|
|
VRDeviceProxy::UpdateDeviceInfo(const VRDeviceUpdate& aDeviceUpdate)
|
|
{
|
|
mDeviceInfo = aDeviceUpdate.mDeviceInfo;
|
|
mSensorState = aDeviceUpdate.mSensorState;
|
|
}
|
|
|
|
bool
|
|
VRDeviceProxy::SetFOV(const VRFieldOfView& aFOVLeft, const VRFieldOfView& aFOVRight,
|
|
double zNear, double zFar)
|
|
{
|
|
VRManagerChild *vm = VRManagerChild::Get();
|
|
vm->SendSetFOV(mDeviceInfo.mDeviceID, aFOVLeft, aFOVRight, zNear, zFar);
|
|
return true;
|
|
}
|
|
|
|
void
|
|
VRDeviceProxy::ZeroSensor()
|
|
{
|
|
VRManagerChild *vm = VRManagerChild::Get();
|
|
vm->SendResetSensor(mDeviceInfo.mDeviceID);
|
|
}
|
|
|
|
VRHMDSensorState
|
|
VRDeviceProxy::GetSensorState()
|
|
{
|
|
VRManagerChild *vm = VRManagerChild::Get();
|
|
Unused << vm->SendKeepSensorTracking(mDeviceInfo.mDeviceID);
|
|
return mSensorState;
|
|
}
|
|
|
|
VRHMDSensorState
|
|
VRDeviceProxy::GetImmediateSensorState()
|
|
{
|
|
// XXX TODO - Need to perform IPC call to get the current sensor
|
|
// state rather than the predictive state used for the frame rendering.
|
|
return GetSensorState();
|
|
}
|
|
|
|
void
|
|
VRDeviceProxy::UpdateSensorState(const VRHMDSensorState& aSensorState)
|
|
{
|
|
mSensorState = aSensorState;
|
|
}
|
|
|
|
// Dummy nsIScreen implementation, for when we just need to specify a size
|
|
class FakeScreen : public nsIScreen
|
|
{
|
|
public:
|
|
explicit FakeScreen(const IntRect& aScreenRect)
|
|
: mScreenRect(aScreenRect)
|
|
{ }
|
|
|
|
NS_DECL_ISUPPORTS
|
|
|
|
NS_IMETHOD GetRect(int32_t *l, int32_t *t, int32_t *w, int32_t *h) override {
|
|
*l = mScreenRect.x;
|
|
*t = mScreenRect.y;
|
|
*w = mScreenRect.width;
|
|
*h = mScreenRect.height;
|
|
return NS_OK;
|
|
}
|
|
NS_IMETHOD GetAvailRect(int32_t *l, int32_t *t, int32_t *w, int32_t *h) override {
|
|
return GetRect(l, t, w, h);
|
|
}
|
|
NS_IMETHOD GetRectDisplayPix(int32_t *l, int32_t *t, int32_t *w, int32_t *h) override {
|
|
return GetRect(l, t, w, h);
|
|
}
|
|
NS_IMETHOD GetAvailRectDisplayPix(int32_t *l, int32_t *t, int32_t *w, int32_t *h) override {
|
|
return GetAvailRect(l, t, w, h);
|
|
}
|
|
|
|
NS_IMETHOD GetId(uint32_t* aId) override { *aId = (uint32_t)-1; return NS_OK; }
|
|
NS_IMETHOD GetPixelDepth(int32_t* aPixelDepth) override { *aPixelDepth = 24; return NS_OK; }
|
|
NS_IMETHOD GetColorDepth(int32_t* aColorDepth) override { *aColorDepth = 24; return NS_OK; }
|
|
|
|
NS_IMETHOD LockMinimumBrightness(uint32_t aBrightness) override { return NS_ERROR_NOT_AVAILABLE; }
|
|
NS_IMETHOD UnlockMinimumBrightness(uint32_t aBrightness) override { return NS_ERROR_NOT_AVAILABLE; }
|
|
NS_IMETHOD GetRotation(uint32_t* aRotation) override {
|
|
*aRotation = nsIScreen::ROTATION_0_DEG;
|
|
return NS_OK;
|
|
}
|
|
NS_IMETHOD SetRotation(uint32_t aRotation) override { return NS_ERROR_NOT_AVAILABLE; }
|
|
NS_IMETHOD GetContentsScaleFactor(double* aContentsScaleFactor) override {
|
|
*aContentsScaleFactor = 1.0;
|
|
return NS_OK;
|
|
}
|
|
NS_IMETHOD GetDefaultCSSScaleFactor(double* aScaleFactor) override {
|
|
*aScaleFactor = 1.0;
|
|
return NS_OK;
|
|
}
|
|
|
|
protected:
|
|
virtual ~FakeScreen() {}
|
|
|
|
IntRect mScreenRect;
|
|
};
|
|
|
|
NS_IMPL_ISUPPORTS(FakeScreen, nsIScreen)
|
|
|
|
|
|
/* static */ already_AddRefed<nsIScreen>
|
|
VRDeviceProxy::MakeFakeScreen(const IntRect& aScreenRect)
|
|
{
|
|
nsCOMPtr<nsIScreen> screen = new FakeScreen(aScreenRect);
|
|
return screen.forget();
|
|
}
|
|
|