Make sure that failing to process an individual event, does not crash the plugin
Summary: See title Reviewed By: jknoxville Differential Revision: D19177573 fbshipit-source-id: 269a6a09887c930d446315eeaa31f28e1d100e7f
This commit is contained in:
committed by
Facebook Github Bot
parent
b8e752412e
commit
1f6a344f4d
@@ -82,13 +82,18 @@ function processMessage(
|
|||||||
const statName = `${plugin.name}.${message.method}`;
|
const statName = `${plugin.name}.${message.method}`;
|
||||||
const reducerStartTime = Date.now();
|
const reducerStartTime = Date.now();
|
||||||
flipperRecorderAddEvent(pluginKey, message.method, message.params);
|
flipperRecorderAddEvent(pluginKey, message.method, message.params);
|
||||||
const newPluginState = plugin.persistedStateReducer!(
|
try {
|
||||||
state,
|
const newPluginState = plugin.persistedStateReducer!(
|
||||||
message.method,
|
state,
|
||||||
message.params,
|
message.method,
|
||||||
);
|
message.params,
|
||||||
addBackgroundStat(statName, Date.now() - reducerStartTime);
|
);
|
||||||
return newPluginState;
|
addBackgroundStat(statName, Date.now() - reducerStartTime);
|
||||||
|
return newPluginState;
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`Failed to process event for plugin ${plugin.name}`, e);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function processMessageImmediately(
|
export function processMessageImmediately(
|
||||||
@@ -190,10 +195,11 @@ export async function processMessageQueue(
|
|||||||
let offset = 0;
|
let offset = 0;
|
||||||
let newPluginState = persistedState;
|
let newPluginState = persistedState;
|
||||||
do {
|
do {
|
||||||
newPluginState = plugin.persistedStateReducer!(
|
newPluginState = processMessage(
|
||||||
newPluginState,
|
newPluginState,
|
||||||
messages[offset].method,
|
pluginKey,
|
||||||
messages[offset].params,
|
plugin,
|
||||||
|
messages[offset],
|
||||||
);
|
);
|
||||||
offset++;
|
offset++;
|
||||||
progress++;
|
progress++;
|
||||||
|
|||||||
Reference in New Issue
Block a user