mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 892392 - Execute BluetoothService::StartInternal() at startup, r=gyeh
This commit is contained in:
parent
6b51784fd9
commit
94d685e575
@ -168,8 +168,9 @@ private:
|
||||
class BluetoothService::ToggleBtTask : public nsRunnable
|
||||
{
|
||||
public:
|
||||
ToggleBtTask(bool aEnabled)
|
||||
ToggleBtTask(bool aEnabled, bool aIsStartup)
|
||||
: mEnabled(aEnabled)
|
||||
, mIsStartup(aIsStartup)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
}
|
||||
@ -178,14 +179,18 @@ public:
|
||||
{
|
||||
MOZ_ASSERT(!NS_IsMainThread());
|
||||
|
||||
/*
|
||||
/**
|
||||
* mEnabled: expected status of bluetooth
|
||||
* gBluetoothService->IsEnabled(): real status of bluetooth
|
||||
*
|
||||
* When two values are the same, we don't switch on/off bluetooth,
|
||||
* but we still do ToggleBtAck task.
|
||||
* When two values are the same, we don't switch on/off bluetooth
|
||||
* but we still do ToggleBtAck task. One special case happens at startup
|
||||
* stage. At startup, the initialization of BluetoothService still has to
|
||||
* be done even if mEnabled is equal to the status of Bluetooth firmware.
|
||||
*
|
||||
* Please see bug 892392 for more information.
|
||||
*/
|
||||
if (mEnabled == gBluetoothService->IsEnabledInternal()) {
|
||||
if (!mIsStartup && mEnabled == gBluetoothService->IsEnabledInternal()) {
|
||||
NS_WARNING("Bluetooth has already been enabled/disabled before.");
|
||||
} else {
|
||||
// Switch on/off bluetooth
|
||||
@ -225,6 +230,7 @@ public:
|
||||
|
||||
private:
|
||||
bool mEnabled;
|
||||
bool mIsStartup;
|
||||
};
|
||||
|
||||
class BluetoothService::StartupTask : public nsISettingsServiceCallback
|
||||
@ -442,7 +448,7 @@ BluetoothService::DistributeSignal(const BluetoothSignal& aSignal)
|
||||
}
|
||||
|
||||
nsresult
|
||||
BluetoothService::StartStopBluetooth(bool aStart)
|
||||
BluetoothService::StartStopBluetooth(bool aStart, bool aIsStartup)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
@ -469,7 +475,7 @@ BluetoothService::StartStopBluetooth(bool aStart)
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIRunnable> runnable = new ToggleBtTask(aStart);
|
||||
nsCOMPtr<nsIRunnable> runnable = new ToggleBtTask(aStart, aIsStartup);
|
||||
rv = mBluetoothCommandThread->Dispatch(runnable, NS_DISPATCH_NORMAL);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -539,7 +545,7 @@ nsresult
|
||||
BluetoothService::HandleStartupSettingsCheck(bool aEnable)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
return StartStopBluetooth(aEnable);
|
||||
return StartStopBluetooth(aEnable, true);
|
||||
}
|
||||
|
||||
nsresult
|
||||
@ -625,7 +631,7 @@ BluetoothService::HandleSettingsChanged(const nsAString& aData)
|
||||
|
||||
gToggleInProgress = true;
|
||||
|
||||
nsresult rv = StartStopBluetooth(value.toBoolean());
|
||||
nsresult rv = StartStopBluetooth(value.toBoolean(), false);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
@ -690,7 +696,7 @@ BluetoothService::HandleShutdown()
|
||||
}
|
||||
}
|
||||
|
||||
if (IsEnabled() && NS_FAILED(StartStopBluetooth(false))) {
|
||||
if (IsEnabled() && NS_FAILED(StartStopBluetooth(false, false))) {
|
||||
MOZ_ASSERT(false, "Failed to deliver stop message!");
|
||||
}
|
||||
|
||||
|
@ -325,7 +325,7 @@ protected:
|
||||
Cleanup();
|
||||
|
||||
nsresult
|
||||
StartStopBluetooth(bool aStart);
|
||||
StartStopBluetooth(bool aStart, bool aIsStartup);
|
||||
|
||||
/**
|
||||
* Platform specific startup functions go here. Usually deals with member
|
||||
|
Loading…
Reference in New Issue
Block a user