diff --git a/CLOBBER b/CLOBBER index 67935e9333ae..7edad007f24b 100644 --- a/CLOBBER +++ b/CLOBBER @@ -22,4 +22,7 @@ # changes to stick? As of bug 928195, this shouldn't be necessary! Please # don't change CLOBBER for WebIDL changes any more. -Bug 1102488 - Changes to Android build system. +Bug 1105308 - Cleanup BluetoothUtils.{cpp,h} + +This patch set moves some files around and requires a rebuild +of the build system's dependency information. diff --git a/dom/bluetooth/bluedroid/BluetoothUtils.cpp b/dom/bluetooth/BluetoothUtils.cpp similarity index 82% rename from dom/bluetooth/bluedroid/BluetoothUtils.cpp rename to dom/bluetooth/BluetoothUtils.cpp index efa5076a9b02..c52ff5b58a77 100644 --- a/dom/bluetooth/bluedroid/BluetoothUtils.cpp +++ b/dom/bluetooth/BluetoothUtils.cpp @@ -4,20 +4,13 @@ * 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 "base/basictypes.h" - +#include "BluetoothUtils.h" #include "BluetoothReplyRunnable.h" #include "BluetoothService.h" -#include "BluetoothServiceBluedroid.h" -#include "BluetoothUtils.h" #include "jsapi.h" -#include "mozilla/Scoped.h" #include "mozilla/dom/bluetooth/BluetoothTypes.h" #include "nsContentUtils.h" -#include "nsIScriptContext.h" #include "nsISystemMessagesInternal.h" -#include "nsString.h" -#include "nsTArray.h" #include "nsServiceManagerUtils.h" BEGIN_BLUETOOTH_NAMESPACE @@ -114,6 +107,37 @@ BroadcastSystemMessage(const nsAString& aType, return true; } +bool +BroadcastSystemMessage(const nsAString& aType, + const InfallibleTArray& aData) +{ + mozilla::AutoSafeJSContext cx; + NS_ASSERTION(!::JS_IsExceptionPending(cx), + "Shouldn't get here when an exception is pending!"); + + JS::Rooted obj(cx, JS_NewObject(cx, nullptr, JS::NullPtr(), + JS::NullPtr())); + if (!obj) { + BT_WARNING("Failed to new JSObject for system message!"); + return false; + } + + if (!SetJsObject(cx, aData, obj)) { + BT_WARNING("Failed to set properties of system message!"); + return false; + } + + nsCOMPtr systemMessenger = + do_GetService("@mozilla.org/system-message-internal;1"); + NS_ENSURE_TRUE(systemMessenger, false); + + JS::Rooted value(cx, JS::ObjectValue(*obj)); + systemMessenger->BroadcastMessage(aType, value, + JS::UndefinedHandleValue); + + return true; +} + void DispatchBluetoothReply(BluetoothReplyRunnable* aRunnable, const BluetoothValue& aValue, diff --git a/dom/bluetooth/bluez/BluetoothUtils.h b/dom/bluetooth/BluetoothUtils.h similarity index 84% rename from dom/bluetooth/bluez/BluetoothUtils.h rename to dom/bluetooth/BluetoothUtils.h index e9fd38176376..41449762e551 100644 --- a/dom/bluetooth/bluez/BluetoothUtils.h +++ b/dom/bluetooth/BluetoothUtils.h @@ -4,8 +4,8 @@ * 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_bluetooth_bluetoothutils_h__ -#define mozilla_dom_bluetooth_bluetoothutils_h__ +#ifndef mozilla_dom_bluetooth_bluetoothutils_h +#define mozilla_dom_bluetooth_bluetoothutils_h #include "BluetoothCommon.h" #include "js/TypeDecls.h" @@ -21,6 +21,10 @@ SetJsObject(JSContext* aContext, const BluetoothValue& aValue, JS::Handle aObj); +bool +BroadcastSystemMessage(const nsAString& aType, + const BluetoothValue& aData); + bool BroadcastSystemMessage(const nsAString& aType, const InfallibleTArray& aData); diff --git a/dom/bluetooth/bluedroid/BluetoothUtils.h b/dom/bluetooth/bluedroid/BluetoothUtils.h deleted file mode 100644 index 420cc5a38970..000000000000 --- a/dom/bluetooth/bluedroid/BluetoothUtils.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */ -/* vim: set ts=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_bluetooth_bluetoothutils_h__ -#define mozilla_dom_bluetooth_bluetoothutils_h__ - -#include "BluetoothCommon.h" -#include "js/TypeDecls.h" - -BEGIN_BLUETOOTH_NAMESPACE - -class BluetoothNamedValue; -class BluetoothValue; -class BluetoothReplyRunnable; - -bool -SetJsObject(JSContext* aContext, - const BluetoothValue& aValue, - JS::Handle aObj); - -bool -BroadcastSystemMessage(const nsAString& aType, - const BluetoothValue& aData); - -void -DispatchBluetoothReply(BluetoothReplyRunnable* aRunnable, - const BluetoothValue& aValue, - const nsAString& aErrorStr); - -void -DispatchStatusChangedEvent(const nsAString& aType, - const nsAString& aDeviceAddress, - bool aStatus); - -END_BLUETOOTH_NAMESPACE - -#endif diff --git a/dom/bluetooth/bluez/BluetoothUtils.cpp b/dom/bluetooth/bluez/BluetoothUtils.cpp deleted file mode 100644 index 4440750856fd..000000000000 --- a/dom/bluetooth/bluez/BluetoothUtils.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */ -/* vim: set ts=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/. */ - -#include "base/basictypes.h" - -#include "BluetoothReplyRunnable.h" -#include "BluetoothService.h" -#include "BluetoothUtils.h" -#include "jsapi.h" -#include "mozilla/Scoped.h" -#include "mozilla/dom/bluetooth/BluetoothTypes.h" -#include "nsContentUtils.h" -#include "nsIScriptContext.h" -#include "nsISystemMessagesInternal.h" -#include "nsString.h" -#include "nsTArray.h" -#include "nsServiceManagerUtils.h" - -BEGIN_BLUETOOTH_NAMESPACE - -bool -SetJsObject(JSContext* aContext, - const BluetoothValue& aValue, - JS::Handle aObj) -{ - MOZ_ASSERT(aContext && aObj); - - if (aValue.type() != BluetoothValue::TArrayOfBluetoothNamedValue) { - BT_WARNING("SetJsObject: Invalid parameter type"); - return false; - } - - const nsTArray& arr = - aValue.get_ArrayOfBluetoothNamedValue(); - - for (uint32_t i = 0; i < arr.Length(); i++) { - JS::Rooted val(aContext); - const BluetoothValue& v = arr[i].value(); - - switch(v.type()) { - case BluetoothValue::TnsString: { - JSString* jsData = JS_NewUCStringCopyN(aContext, - v.get_nsString().BeginReading(), - v.get_nsString().Length()); - NS_ENSURE_TRUE(jsData, false); - val = STRING_TO_JSVAL(jsData); - break; - } - case BluetoothValue::Tuint32_t: - val = INT_TO_JSVAL(v.get_uint32_t()); - break; - case BluetoothValue::Tbool: - val = BOOLEAN_TO_JSVAL(v.get_bool()); - break; - default: - BT_WARNING("SetJsObject: Parameter is not handled"); - break; - } - - if (!JS_SetProperty(aContext, aObj, - NS_ConvertUTF16toUTF8(arr[i].name()).get(), - val)) { - BT_WARNING("Failed to set property"); - return false; - } - } - - return true; -} - -bool -BroadcastSystemMessage(const nsAString& aType, - const InfallibleTArray& aData) -{ - mozilla::AutoSafeJSContext cx; - NS_ASSERTION(!::JS_IsExceptionPending(cx), - "Shouldn't get here when an exception is pending!"); - - JS::Rooted obj(cx, JS_NewObject(cx, nullptr, JS::NullPtr(), - JS::NullPtr())); - if (!obj) { - BT_WARNING("Failed to new JSObject for system message!"); - return false; - } - - if (!SetJsObject(cx, aData, obj)) { - BT_WARNING("Failed to set properties of system message!"); - return false; - } - - nsCOMPtr systemMessenger = - do_GetService("@mozilla.org/system-message-internal;1"); - NS_ENSURE_TRUE(systemMessenger, false); - - JS::Rooted value(cx, JS::ObjectValue(*obj)); - systemMessenger->BroadcastMessage(aType, value, - JS::UndefinedHandleValue); - - return true; -} - -void -DispatchBluetoothReply(BluetoothReplyRunnable* aRunnable, - const BluetoothValue& aValue, - const nsAString& aErrorStr) -{ - // Reply will be deleted by the runnable after running on main thread - BluetoothReply* reply; - if (!aErrorStr.IsEmpty()) { - nsString err(aErrorStr); - reply = new BluetoothReply(BluetoothReplyError(err)); - } else { - MOZ_ASSERT(aValue.type() != BluetoothValue::T__None); - reply = new BluetoothReply(BluetoothReplySuccess(aValue)); - } - - aRunnable->SetReply(reply); - if (NS_FAILED(NS_DispatchToMainThread(aRunnable))) { - BT_WARNING("Failed to dispatch to main thread!"); - } -} - -void -DispatchStatusChangedEvent(const nsAString& aType, - const nsAString& aAddress, - bool aStatus) -{ - MOZ_ASSERT(NS_IsMainThread()); - - InfallibleTArray data; - data.AppendElement( - BluetoothNamedValue(NS_LITERAL_STRING("address"), nsString(aAddress))); - data.AppendElement( - BluetoothNamedValue(NS_LITERAL_STRING("status"), aStatus)); - - BluetoothSignal signal(nsString(aType), NS_LITERAL_STRING(KEY_ADAPTER), data); - - BluetoothService* bs = BluetoothService::Get(); - NS_ENSURE_TRUE_VOID(bs); - bs->DistributeSignal(signal); -} - -END_BLUETOOTH_NAMESPACE diff --git a/dom/bluetooth/moz.build b/dom/bluetooth/moz.build index 585be1865c67..50c91a62ba17 100644 --- a/dom/bluetooth/moz.build +++ b/dom/bluetooth/moz.build @@ -15,6 +15,7 @@ if CONFIG['MOZ_B2G_BT']: 'BluetoothPropertyContainer.cpp', 'BluetoothReplyRunnable.cpp', 'BluetoothService.cpp', + 'BluetoothUtils.cpp', 'BluetoothUuid.cpp', 'ipc/BluetoothChild.cpp', 'ipc/BluetoothParent.cpp', @@ -36,8 +37,7 @@ if CONFIG['MOZ_B2G_BT']: 'bluez/BluetoothHfpManager.cpp', 'bluez/BluetoothOppManager.cpp', 'bluez/BluetoothSocket.cpp', - 'bluez/BluetoothUnixSocketConnector.cpp', - 'bluez/BluetoothUtils.cpp', + 'bluez/BluetoothUnixSocketConnector.cpp' ] LOCAL_INCLUDES += [ 'bluez', @@ -60,8 +60,7 @@ if CONFIG['MOZ_B2G_BT']: 'bluedroid/BluetoothServiceBluedroid.cpp', 'bluedroid/BluetoothSocket.cpp', 'bluedroid/BluetoothSocketHALInterface.cpp', - 'bluedroid/BluetoothSocketMessageWatcher.cpp', - 'bluedroid/BluetoothUtils.cpp', + 'bluedroid/BluetoothSocketMessageWatcher.cpp' ] LOCAL_INCLUDES += [ 'bluedroid',