Bug 1286530 - Turn UDP/TCP Socket APIs to ChromeOnly draft
authorAlexandre Lissy <lissyx@lissyx.dyndns.org>
Fri, 22 Apr 2016 12:27:36 +0200
changeset 387253 5c8bc5e77b93b63e29e5758a93ce40c6f4bd5903
parent 387252 fa17ea49db2dc2f9ba53f45aed900e0a2d639576
child 387254 a2fba365271c3f0a4ba62608cecdf20d43b2e536
push id22914
push userbmo:lissyx+mozillians@lissyx.dyndns.org
push dateWed, 13 Jul 2016 15:39:24 +0000
bugs1286530
milestone50.0a1
Bug 1286530 - Turn UDP/TCP Socket APIs to ChromeOnly MozReview-Commit-ID: 5CmuER0FJCy
dom/network/TCPSocket.cpp
dom/webidl/Navigator.webidl
dom/webidl/TCPSocketErrorEvent.webidl
dom/webidl/UDPMessageEvent.webidl
dom/webidl/UDPSocket.webidl
--- 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;