Fix activatePlugin measurements not completing
Summary: `activatePlugin` events where not recorded correctly for Sandy plugins. Although the starting measuerments is fired the `connections` reducer, the completing event fires from `PluginContainer`. Since this is done as part of a ref-update (!!), see [here](https://www.internalfb.com/intern/diffusion/FBS/browse/master/xplat/sonar/desktop/app/src/PluginContainer.tsx?commit=65a625ea9941&lines=155), and the ref to the corresponding element is not set for Sandy plugins, the event was never marked as completed. Fixed this by making it part of the `activate` life-cycle event of Sandy plugins. Reviewed By: passy Differential Revision: D25421537 fbshipit-source-id: 5cbfeb91cc12e4520fa271bab24034094d7ddb39
This commit is contained in:
committed by
Facebook GitHub Bot
parent
8dc321c1ee
commit
4832d6275b
@@ -12,6 +12,7 @@ import type {Logger} from '../fb-interfaces/Logger';
|
||||
import type {Store} from '../reducers';
|
||||
import createPaste from '../fb-stubs/createPaste';
|
||||
import GK from '../fb-stubs/GK';
|
||||
import {getInstance} from '../fb-stubs/Logger';
|
||||
|
||||
let flipperLibInstance: FlipperLib | undefined;
|
||||
|
||||
@@ -22,6 +23,7 @@ export function initializeFlipperLibImplementation(
|
||||
// late require to avoid cyclic dependency
|
||||
const {addSandyPluginEntries} = require('../MenuBar');
|
||||
flipperLibInstance = {
|
||||
logger: getInstance(),
|
||||
enableMenuEntries(entries) {
|
||||
addSandyPluginEntries(entries);
|
||||
},
|
||||
|
||||
@@ -7,12 +7,14 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {Logger} from '../utils/Logger';
|
||||
import {NormalizedMenuEntry} from './MenuEntry';
|
||||
|
||||
/**
|
||||
* This interface exposes all global methods for which an implementation will be provided by Flipper itself
|
||||
*/
|
||||
export interface FlipperLib {
|
||||
logger: Logger;
|
||||
enableMenuEntries(menuEntries: NormalizedMenuEntry[]): void;
|
||||
createPaste(input: string): Promise<string | undefined>;
|
||||
GK(gatekeeper: string): boolean;
|
||||
|
||||
@@ -172,6 +172,9 @@ export abstract class BasePluginInstance {
|
||||
this.activated = true;
|
||||
this.flipperLib.enableMenuEntries(this.menuEntries);
|
||||
this.events.emit('activate');
|
||||
this.flipperLib.logger.trackTimeSince(
|
||||
`activePlugin-${this.definition.id}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ import {
|
||||
} from '../plugin/DevicePlugin';
|
||||
import {BasePluginInstance} from '../plugin/PluginBase';
|
||||
import {FlipperLib} from '../plugin/FlipperLib';
|
||||
import {stubLogger} from '../utils/Logger';
|
||||
|
||||
type Renderer = RenderResult<typeof queries>;
|
||||
|
||||
@@ -346,6 +347,7 @@ export function renderDevicePlugin<Module extends FlipperDevicePluginModule>(
|
||||
|
||||
export function createMockFlipperLib(options?: StartPluginOptions): FlipperLib {
|
||||
return {
|
||||
logger: stubLogger,
|
||||
enableMenuEntries: jest.fn(),
|
||||
createPaste: jest.fn(),
|
||||
GK(gk: string) {
|
||||
|
||||
@@ -35,7 +35,7 @@ export interface Logger {
|
||||
debug(data: any, category: string): void;
|
||||
}
|
||||
|
||||
export const _LoggerContext = createContext<Logger>({
|
||||
export const stubLogger: Logger = {
|
||||
track() {},
|
||||
trackTimeSince() {},
|
||||
info() {
|
||||
@@ -54,7 +54,9 @@ export const _LoggerContext = createContext<Logger>({
|
||||
// eslint-disable-next-line
|
||||
console.debug.apply(console, arguments as any);
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
export const _LoggerContext = createContext<Logger>(stubLogger);
|
||||
|
||||
/**
|
||||
* Provides the default logger that can be used for console logging,
|
||||
|
||||
Reference in New Issue
Block a user