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 type {Store} from '../reducers';
|
||||||
import createPaste from '../fb-stubs/createPaste';
|
import createPaste from '../fb-stubs/createPaste';
|
||||||
import GK from '../fb-stubs/GK';
|
import GK from '../fb-stubs/GK';
|
||||||
|
import {getInstance} from '../fb-stubs/Logger';
|
||||||
|
|
||||||
let flipperLibInstance: FlipperLib | undefined;
|
let flipperLibInstance: FlipperLib | undefined;
|
||||||
|
|
||||||
@@ -22,6 +23,7 @@ export function initializeFlipperLibImplementation(
|
|||||||
// late require to avoid cyclic dependency
|
// late require to avoid cyclic dependency
|
||||||
const {addSandyPluginEntries} = require('../MenuBar');
|
const {addSandyPluginEntries} = require('../MenuBar');
|
||||||
flipperLibInstance = {
|
flipperLibInstance = {
|
||||||
|
logger: getInstance(),
|
||||||
enableMenuEntries(entries) {
|
enableMenuEntries(entries) {
|
||||||
addSandyPluginEntries(entries);
|
addSandyPluginEntries(entries);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,12 +7,14 @@
|
|||||||
* @format
|
* @format
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import {Logger} from '../utils/Logger';
|
||||||
import {NormalizedMenuEntry} from './MenuEntry';
|
import {NormalizedMenuEntry} from './MenuEntry';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This interface exposes all global methods for which an implementation will be provided by Flipper itself
|
* This interface exposes all global methods for which an implementation will be provided by Flipper itself
|
||||||
*/
|
*/
|
||||||
export interface FlipperLib {
|
export interface FlipperLib {
|
||||||
|
logger: Logger;
|
||||||
enableMenuEntries(menuEntries: NormalizedMenuEntry[]): void;
|
enableMenuEntries(menuEntries: NormalizedMenuEntry[]): void;
|
||||||
createPaste(input: string): Promise<string | undefined>;
|
createPaste(input: string): Promise<string | undefined>;
|
||||||
GK(gatekeeper: string): boolean;
|
GK(gatekeeper: string): boolean;
|
||||||
|
|||||||
@@ -172,6 +172,9 @@ export abstract class BasePluginInstance {
|
|||||||
this.activated = true;
|
this.activated = true;
|
||||||
this.flipperLib.enableMenuEntries(this.menuEntries);
|
this.flipperLib.enableMenuEntries(this.menuEntries);
|
||||||
this.events.emit('activate');
|
this.events.emit('activate');
|
||||||
|
this.flipperLib.logger.trackTimeSince(
|
||||||
|
`activePlugin-${this.definition.id}`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import {
|
|||||||
} from '../plugin/DevicePlugin';
|
} from '../plugin/DevicePlugin';
|
||||||
import {BasePluginInstance} from '../plugin/PluginBase';
|
import {BasePluginInstance} from '../plugin/PluginBase';
|
||||||
import {FlipperLib} from '../plugin/FlipperLib';
|
import {FlipperLib} from '../plugin/FlipperLib';
|
||||||
|
import {stubLogger} from '../utils/Logger';
|
||||||
|
|
||||||
type Renderer = RenderResult<typeof queries>;
|
type Renderer = RenderResult<typeof queries>;
|
||||||
|
|
||||||
@@ -346,6 +347,7 @@ export function renderDevicePlugin<Module extends FlipperDevicePluginModule>(
|
|||||||
|
|
||||||
export function createMockFlipperLib(options?: StartPluginOptions): FlipperLib {
|
export function createMockFlipperLib(options?: StartPluginOptions): FlipperLib {
|
||||||
return {
|
return {
|
||||||
|
logger: stubLogger,
|
||||||
enableMenuEntries: jest.fn(),
|
enableMenuEntries: jest.fn(),
|
||||||
createPaste: jest.fn(),
|
createPaste: jest.fn(),
|
||||||
GK(gk: string) {
|
GK(gk: string) {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export interface Logger {
|
|||||||
debug(data: any, category: string): void;
|
debug(data: any, category: string): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const _LoggerContext = createContext<Logger>({
|
export const stubLogger: Logger = {
|
||||||
track() {},
|
track() {},
|
||||||
trackTimeSince() {},
|
trackTimeSince() {},
|
||||||
info() {
|
info() {
|
||||||
@@ -54,7 +54,9 @@ export const _LoggerContext = createContext<Logger>({
|
|||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
console.debug.apply(console, arguments as any);
|
console.debug.apply(console, arguments as any);
|
||||||
},
|
},
|
||||||
});
|
};
|
||||||
|
|
||||||
|
export const _LoggerContext = createContext<Logger>(stubLogger);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides the default logger that can be used for console logging,
|
* Provides the default logger that can be used for console logging,
|
||||||
|
|||||||
Reference in New Issue
Block a user