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

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:50f7bacc4f2a
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/. */
4
5 let testPort, sidebarPort, apiPort;
6
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