remove message propagation

jh-changes
Shin'ya Ueoka 7 years ago
parent 86431e82f7
commit 903c9c78b7
  1. 2
      src/content/components/common/follow.js
  2. 5
      src/content/components/common/index.js
  3. 3
      src/content/components/common/input.js
  4. 3
      src/content/components/common/keymapper.js
  5. 2
      src/content/components/top-content/follow-controller.js
  6. 5
      src/content/components/top-content/index.js
  7. 12
      src/content/index.js
  8. 27
      src/shared/messages.js

@ -34,6 +34,8 @@ export default class Follow {
this.newTab = false; this.newTab = false;
this.hints = {}; this.hints = {};
this.targets = []; this.targets = [];
messages.onMessage(this.onMessage.bind(this));
} }
update() { update() {

@ -21,18 +21,19 @@ export default class Common {
]; ];
this.reloadSettings(); this.reloadSettings();
messages.onMessage(this.onMessage.bind(this));
} }
update() { update() {
this.children.forEach(c => c.update()); this.children.forEach(c => c.update());
} }
onMessage(message, sender) { onMessage(message) {
switch (message.type) { switch (message.type) {
case messages.SETTINGS_CHANGED: case messages.SETTINGS_CHANGED:
this.reloadSettings(); this.reloadSettings();
} }
this.children.forEach(c => c.onMessage(message, sender));
} }
reloadSettings() { reloadSettings() {

@ -69,7 +69,4 @@ export default class InputComponent {
e.target.getAttribute('contenteditable').toLowerCase() === 'true' || e.target.getAttribute('contenteditable').toLowerCase() === 'true' ||
e.target.getAttribute('contenteditable').toLowerCase() === ''); e.target.getAttribute('contenteditable').toLowerCase() === '');
} }
onMessage() {
}
} }

@ -28,7 +28,4 @@ export default class KeymapperComponent {
this.store.dispatch(inputActions.clearKeys()); this.store.dispatch(inputActions.clearKeys());
return true; return true;
} }
onMessage() {
}
} }

@ -17,6 +17,8 @@ export default class FollowController {
this.state = {}; this.state = {};
this.keys = []; this.keys = [];
this.producer = null; this.producer = null;
messages.onMessage(this.onMessage.bind(this));
} }
onMessage(message, sender) { onMessage(message, sender) {

@ -14,19 +14,20 @@ export default class TopContent {
// TODO make component // TODO make component
consoleFrames.initialize(window.document); consoleFrames.initialize(window.document);
messages.onMessage(this.onMessage.bind(this));
} }
update() { update() {
this.children.forEach(c => c.update()); this.children.forEach(c => c.update());
} }
onMessage(message, sender) { onMessage(message) {
switch (message.type) { switch (message.type) {
case messages.CONSOLE_HIDE_COMMAND: case messages.CONSOLE_HIDE_COMMAND:
this.win.focus(); this.win.focus();
consoleFrames.blur(window.document); consoleFrames.blur(window.document);
return Promise.resolve(); return Promise.resolve();
} }
this.children.forEach(c => c.onMessage(message, sender));
} }
} }

@ -14,16 +14,4 @@ store.subscribe(() => {
rootComponent.update(); rootComponent.update();
}); });
browser.runtime.onMessage.addListener(msg => rootComponent.onMessage(msg));
rootComponent.update(); rootComponent.update();
window.addEventListener('message', (event) => {
let message = null;
try {
message = JSON.parse(event.data);
} catch (e) {
// ignore unexpected message
return;
}
rootComponent.onMessage(message, event.source);
});

@ -1,3 +1,26 @@
const onWebMessage = (listener) => {
window.addEventListener('message', (event) => {
let sender = event.source;
let message = null;
try {
message = JSON.parse(event.data);
} catch (e) {
// ignore unexpected message
return;
}
listener(message, sender);
});
};
const onBackgroundMessage = (listener) => {
browser.runtime.onMessage.addListener(listener);
};
const onMessage = (listener) => {
onWebMessage(listener);
onBackgroundMessage(listener);
};
export default { export default {
BACKGROUND_OPERATION: 'background.operation', BACKGROUND_OPERATION: 'background.operation',
@ -23,4 +46,8 @@ export default {
SETTINGS_RELOAD: 'settings.reload', SETTINGS_RELOAD: 'settings.reload',
SETTINGS_CHANGED: 'settings.changed', SETTINGS_CHANGED: 'settings.changed',
SETTINGS_QUERY: 'settings.query', SETTINGS_QUERY: 'settings.query',
onWebMessage,
onBackgroundMessage,
onMessage,
}; };