browser/base/content/test/social/social_worker.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 let testPort, sidebarPort, apiPort;
     7 onconnect = function(e) {
     8   let port = e.ports[0];
     9   port.onmessage = function onMessage(event) {
    10     let topic = event.data.topic;
    11     switch (topic) {
    12       case "test-init":
    13         testPort = port;
    14         port.postMessage({topic: "test-init-done"});
    15         break;
    16       case "ping":
    17         port.postMessage({topic: "pong"});
    18         break;
    19       case "test-logout":
    20         apiPort.postMessage({topic: "social.user-profile", data: {}});
    21         break;
    22       case "sidebar-message":
    23         sidebarPort = port;
    24         if (testPort && event.data.result == "ok")
    25           testPort.postMessage({topic:"got-sidebar-message"});
    26         break;
    27       case "service-window-message":
    28         testPort.postMessage({topic:"got-service-window-message",
    29                               location: event.data.location});
    30         break;
    31       case "service-window-closed-message":
    32         testPort.postMessage({topic:"got-service-window-closed-message"});
    33         break;
    34       case "test-service-window":
    35         sidebarPort.postMessage({topic:"test-service-window"});
    36         break;
    37       case "test-service-window-twice":
    38         sidebarPort.postMessage({topic:"test-service-window-twice"});
    39         break;
    40       case "test-service-window-twice-result":
    41         testPort.postMessage({topic: "test-service-window-twice-result", result: event.data.result })
    42         break;
    43       case "test-close-service-window":
    44         sidebarPort.postMessage({topic:"test-close-service-window"});
    45         break;
    46       case "panel-message":
    47         if (testPort && event.data.result == "ok")
    48           testPort.postMessage({topic:"got-panel-message",
    49                                 location: event.data.location
    50                                });
    51         break;
    52       case "status-panel-visibility":
    53         testPort.postMessage({topic:"got-social-panel-visibility", result: event.data.result });
    54         break;
    55       case "test-chatbox-open":
    56         sidebarPort.postMessage(event.data);
    57         break;
    58       case "chatbox-opened":
    59         testPort.postMessage(event.data);
    60         break;
    61       case "chatbox-message":
    62         testPort.postMessage({topic:"got-chatbox-message", result: event.data.result});
    63         break;
    64       case "chatbox-visibility":
    65         testPort.postMessage({topic:"got-chatbox-visibility", result: event.data.result});
    66         break;
    67       case "test-flyout-open":
    68         sidebarPort.postMessage({topic:"test-flyout-open"});
    69         break;
    70       case "flyout-message":
    71         testPort.postMessage({topic:"got-flyout-message", result: event.data.result});
    72         break;
    73       case "flyout-visibility":
    74         testPort.postMessage({topic:"got-flyout-visibility", result: event.data.result});
    75         break;
    76       case "test-flyout-close":
    77         sidebarPort.postMessage({topic:"test-flyout-close"});
    78         break;
    79       case "test-worker-chat":
    80         apiPort.postMessage({topic: "social.request-chat", data: event.data.data });
    81         break;
    82       case "social.initialize":
    83         // This is the workerAPI port, respond and set up a notification icon.
    84         // For multiprovider tests, we support acting like different providers
    85         // based on the domain we load from.
    86         apiPort = port;
    87         // purposely fall through and set the profile on initialization
    88       case "test-set-profile":
    89         let profile;
    90         if (location.href.indexOf("https://test1.example.com") == 0) {
    91           profile = {
    92             portrait: "https://test1.example.com/portrait.jpg",
    93             userName: "tester",
    94             displayName: "Test1 User",
    95           };
    96         } else {
    97           profile = {
    98             portrait: "https://example.com/portrait.jpg",
    99             userName: "trickster",
   100             displayName: "Kuma Lisa",
   101             profileURL: "http://en.wikipedia.org/wiki/Kuma_Lisa"
   102           };
   103         }
   104         apiPort.postMessage({topic: "social.user-profile", data: profile});
   105         break;
   106       case "test-ambient-notification":
   107         apiPort.postMessage({topic: "social.ambient-notification", data: event.data.data});
   108         break;
   109       case "test-isVisible":
   110         sidebarPort.postMessage({topic: "test-isVisible"});
   111         break;
   112       case "test-isVisible-response":
   113         testPort.postMessage({topic: "got-isVisible-response", result: event.data.result});
   114         break;
   115       case "share-data-message":
   116         if (testPort)
   117           testPort.postMessage({topic:"got-share-data-message", result: event.data.result});
   118         break;
   119       case "worker.update":
   120         apiPort.postMessage({topic: 'social.manifest-get'});
   121         break;
   122       case "social.manifest":
   123         event.data.data.version = 2;
   124         apiPort.postMessage({topic: 'social.manifest-set', data: event.data.data});
   125         break;
   126     }
   127   }
   128 }

mercurial