Bug 1342636 - Part 1: Factor out the fallback screen configuration code into a shared header; r=kanru

This commit is contained in:
Ehsan Akhgari 2017-03-08 22:06:09 -05:00
Родитель a50d01215c
Коммит 48c08aeda9
3 изменённых файлов: 48 добавлений и 27 удалений

Просмотреть файл

@ -2,10 +2,7 @@
* 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 "Hal.h"
#include "mozilla/dom/ScreenOrientation.h"
#include "nsIScreenManager.h"
#include "nsServiceManagerUtils.h"
#include "FallbackScreenConfiguration.h"
namespace mozilla {
namespace hal_impl {
@ -23,29 +20,7 @@ DisableScreenConfigurationNotifications()
void
GetCurrentScreenConfiguration(hal::ScreenConfiguration* aScreenConfiguration)
{
nsresult rv;
nsCOMPtr<nsIScreenManager> screenMgr =
do_GetService("@mozilla.org/gfx/screenmanager;1", &rv);
if (NS_FAILED(rv)) {
NS_ERROR("Can't find nsIScreenManager!");
return;
}
nsIntRect rect;
int32_t colorDepth, pixelDepth;
dom::ScreenOrientationInternal orientation;
nsCOMPtr<nsIScreen> screen;
screenMgr->GetPrimaryScreen(getter_AddRefs(screen));
screen->GetRect(&rect.x, &rect.y, &rect.width, &rect.height);
screen->GetColorDepth(&colorDepth);
screen->GetPixelDepth(&pixelDepth);
orientation = rect.width >= rect.height
? dom::eScreenOrientation_LandscapePrimary
: dom::eScreenOrientation_PortraitPrimary;
*aScreenConfiguration =
hal::ScreenConfiguration(rect, orientation, 0, colorDepth, pixelDepth);
fallback::GetCurrentScreenConfiguration(aScreenConfiguration);
}
bool

Просмотреть файл

@ -0,0 +1,42 @@
/* 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 "Hal.h"
#include "mozilla/dom/ScreenOrientation.h"
#include "nsIScreenManager.h"
#include "nsServiceManagerUtils.h"
namespace mozilla {
namespace fallback {
inline void
GetCurrentScreenConfiguration(hal::ScreenConfiguration* aScreenConfiguration)
{
nsresult rv;
nsCOMPtr<nsIScreenManager> screenMgr =
do_GetService("@mozilla.org/gfx/screenmanager;1", &rv);
if (NS_FAILED(rv)) {
NS_ERROR("Can't find nsIScreenManager!");
return;
}
nsIntRect rect;
int32_t colorDepth, pixelDepth;
dom::ScreenOrientationInternal orientation;
nsCOMPtr<nsIScreen> screen;
screenMgr->GetPrimaryScreen(getter_AddRefs(screen));
screen->GetRect(&rect.x, &rect.y, &rect.width, &rect.height);
screen->GetColorDepth(&colorDepth);
screen->GetPixelDepth(&pixelDepth);
orientation = rect.width >= rect.height
? dom::eScreenOrientation_LandscapePrimary
: dom::eScreenOrientation_PortraitPrimary;
*aScreenConfiguration =
hal::ScreenConfiguration(rect, orientation, 0, colorDepth, pixelDepth);
}
}
}

Просмотреть файл

@ -23,6 +23,10 @@ EXPORTS.mozilla += [
'HalWakeLock.h',
]
EXPORTS.mozilla.fallback += [
'fallback/FallbackScreenConfiguration.h',
]
UNIFIED_SOURCES += [
'HalWakeLock.cpp',
'sandbox/SandboxHal.cpp',