Bug 1286530 - Turn UDP/TCP Socket APIs to ChromeOnly
MozReview-Commit-ID: 5CmuER0FJCy
--- a/dom/network/TCPSocket.cpp
+++ b/dom/network/TCPSocket.cpp
@@ -1230,16 +1230,10 @@ TCPSocket::Observe(nsISupports* aSubject
return NS_OK;
}
/* static */
bool
TCPSocket::ShouldTCPSocketExist(JSContext* aCx, JSObject* aGlobal)
{
JS::Rooted<JSObject*> global(aCx, aGlobal);
- if (nsContentUtils::IsSystemPrincipal(nsContentUtils::ObjectPrincipal(global))) {
- return true;
- }
-
- const char* const perms[] = { "tcp-socket", nullptr };
- return Preferences::GetBool("dom.mozTCPSocket.enabled") &&
- CheckAnyPermissions(aCx, global, perms);
+ return nsContentUtils::IsSystemPrincipal(nsContentUtils::ObjectPrincipal(global));
}
--- a/dom/webidl/Navigator.webidl
+++ b/dom/webidl/Navigator.webidl
@@ -431,17 +431,17 @@ partial interface Navigator {
};
partial interface Navigator {
[Throws, Pref="dom.presentation.enabled", Func="Navigator::HasPresentationSupport", SameObject]
readonly attribute Presentation? presentation;
};
partial interface Navigator {
- [NewObject, Pref="dom.mozTCPSocket.enabled", CheckAnyPermissions="tcp-socket"]
+ [NewObject, Func="mozilla::dom::TCPSocket::ShouldTCPSocketExist"]
readonly attribute LegacyMozTCPSocket mozTCPSocket;
};
#ifdef MOZ_EME
partial interface Navigator {
[Pref="media.eme.apiVisible", NewObject]
Promise<MediaKeySystemAccess>
requestMediaKeySystemAccess(DOMString keySystem,
--- a/dom/webidl/TCPSocketErrorEvent.webidl
+++ b/dom/webidl/TCPSocketErrorEvent.webidl
@@ -4,18 +4,18 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* Dispatched as part of the "error" event in the following situations:
* - if there's an error detected when the TCPSocket closes
* - if there's an internal error while sending data
* - if there's an error connecting to the host
*/
-[Func="mozilla::dom::TCPSocket::ShouldTCPSocketExist",
- Constructor(DOMString type, optional TCPSocketErrorEventInit eventInitDict),
+[Constructor(DOMString type, optional TCPSocketErrorEventInit eventInitDict),
+ Func="mozilla::dom::TCPSocket::ShouldTCPSocketExist",
Exposed=(Window,System)]
interface TCPSocketErrorEvent : Event {
readonly attribute DOMString name;
readonly attribute DOMString message;
};
dictionary TCPSocketErrorEventInit : EventInit
{
--- a/dom/webidl/UDPMessageEvent.webidl
+++ b/dom/webidl/UDPMessageEvent.webidl
@@ -5,17 +5,17 @@
*
* The origin of this IDL file is
* http://www.w3.org/TR/raw-sockets/#interface-udpmessageevent
*/
//Bug 1056444: This interface should be removed after UDPSocket.input/UDPSocket.output are ready.
[Constructor(DOMString type, optional UDPMessageEventInit eventInitDict),
Pref="dom.udpsocket.enabled",
- CheckAnyPermissions="udp-socket"]
+ ChromeOnly]
interface UDPMessageEvent : Event {
readonly attribute DOMString remoteAddress;
readonly attribute unsigned short remotePort;
readonly attribute any data;
};
dictionary UDPMessageEventInit : EventInit {
DOMString remoteAddress = "";
--- a/dom/webidl/UDPSocket.webidl
+++ b/dom/webidl/UDPSocket.webidl
@@ -14,17 +14,17 @@ dictionary UDPOptions {
DOMString remoteAddress;
unsigned short remotePort;
boolean addressReuse = true;
boolean loopback = false;
};
[Constructor (optional UDPOptions options),
Pref="dom.udpsocket.enabled",
- CheckAnyPermissions="udp-socket"]
+ ChromeOnly]
interface UDPSocket : EventTarget {
readonly attribute DOMString? localAddress;
readonly attribute unsigned short? localPort;
readonly attribute DOMString? remoteAddress;
readonly attribute unsigned short? remotePort;
readonly attribute boolean addressReuse;
readonly attribute boolean loopback;
readonly attribute SocketReadyState readyState;