Backed out 3 changesets (bug 1870106, bug 1845276) for causing doc generate failures...
[gecko.git] / widget / headless / HeadlessScreenHelper.cpp
blob4d8dbfa0d123a967bf7d80bb2ecae30be0a3297d
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/. */
7 #include "HeadlessScreenHelper.h"
9 #include "prenv.h"
10 #include "mozilla/dom/DOMTypes.h"
11 #include "mozilla/RefPtr.h"
12 #include "nsTArray.h"
14 namespace mozilla {
15 namespace widget {
17 /* static */
18 LayoutDeviceIntRect HeadlessScreenHelper::GetScreenRect() {
19 char* ev = PR_GetEnv("MOZ_HEADLESS_WIDTH");
20 int width = 1366;
21 if (ev) {
22 width = atoi(ev);
24 ev = PR_GetEnv("MOZ_HEADLESS_HEIGHT");
25 int height = 768;
26 if (ev) {
27 height = atoi(ev);
29 return LayoutDeviceIntRect(0, 0, width, height);
32 HeadlessScreenHelper::HeadlessScreenHelper() {
33 AutoTArray<RefPtr<Screen>, 1> screenList;
34 LayoutDeviceIntRect rect = GetScreenRect();
35 auto ret = MakeRefPtr<Screen>(
36 rect, rect, 24, 24, 0, DesktopToLayoutDeviceScale(),
37 CSSToLayoutDeviceScale(), 96.0f, Screen::IsPseudoDisplay::No);
38 screenList.AppendElement(ret.forget());
39 ScreenManager::Refresh(std::move(screenList));
42 } // namespace widget
43 } // namespace mozilla