Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: ext/content.js

Issue 29716600: Issue 6292 - Make issue reporter compatible with test server (Closed)
Patch Set: Created March 7, 2018, 4:06 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-present eyeo GmbH 3 * Copyright (C) 2006-present eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 }; 60 };
61 61
62 /* Polyfills */ 62 /* Polyfills */
63 63
64 if (!("runtime" in browser)) 64 if (!("runtime" in browser))
65 browser.runtime = {}; 65 browser.runtime = {};
66 66
67 browser.runtime.sendMessage = (message, responseCallback) => 67 browser.runtime.sendMessage = (message, responseCallback) =>
68 { 68 {
69 let messageId = ++maxMessageId; 69 let messageId = ++maxMessageId;
70
71 ext.backgroundPage._sendRawMessage({ 70 ext.backgroundPage._sendRawMessage({
72 type: "message", 71 type: "message",
73 messageId, 72 messageId,
74 payload: message 73 payload: message
75 }); 74 });
76 75
77 let resolvePromise = null; 76 let resolvePromise = null;
78 let callbackWrapper = event => 77 let callbackWrapper = event =>
79 { 78 {
80 if (event.data.type == "response" && event.data.messageId == messageId) 79 if (event.data.type == "response" && event.data.messageId == messageId)
81 { 80 {
82 window.removeEventListener("message", callbackWrapper); 81 window.removeEventListener("message", callbackWrapper);
83 resolvePromise(event.data.payload); 82 resolvePromise(event.data.payload);
84 } 83 }
85 }; 84 };
86 window.addEventListener("message", callbackWrapper); 85 window.addEventListener("message", callbackWrapper);
87 if (responseCallback) 86 if (responseCallback)
88 { 87 {
89 resolvePromise = responseCallback; 88 resolvePromise = responseCallback;
90 } 89 }
91 else 90 else
92 { 91 {
93 return new Promise((resolve, reject) => 92 return new Promise((resolve, reject) =>
94 { 93 {
95 resolvePromise = resolve; 94 resolvePromise = resolve;
96 }); 95 });
97 } 96 }
98 }; 97 };
98
99 if (!("tabs" in browser))
100 browser.tabs = new Map([[0, {url: "example.com"}]]);
101
102 browser.tabs.get = (...args) =>
103 {
104 let result = Map.prototype.get.apply(browser.tabs, args);
a.giammarchi 2018/03/07 17:11:04 if you can use `Map.prototype.get.apply` with `bro
a.giammarchi 2018/03/07 17:17:49 actually, on a second thought, I don't understand
saroyanm 2018/03/08 15:14:27 This implementation is just use uses prototype.get
a.giammarchi 2018/03/08 17:27:34 it's not so clear from the code. Maybe a comment m
saroyanm 2018/03/08 18:16:47 Noted, I'll add one.
saroyanm 2018/03/12 15:45:21 Done.
105 return new Promise((resolve, reject) =>
a.giammarchi 2018/03/07 17:11:04 If I understand correctly result is synchronous so
saroyanm 2018/03/08 15:14:27 This is the Mock implmenetation of tabs.get -> htt
a.giammarchi 2018/03/08 17:27:34 when the result is already known, there is no diff
saroyanm 2018/03/08 18:16:47 Sorry I think I misread your initial I though you
saroyanm 2018/03/12 15:45:21 Done.
106 {
107 if (result)
108 resolve(result);
109 else
110 reject(new Error("Tab cannot be found"));
111 });
112 }
99 }()); 113 }());
OLDNEW
« no previous file with comments | « background.js ('k') | issue-reporter.html » ('j') | issue-reporter.html » ('J')

Powered by Google App Engine
This is Rietveld