hookContainer = $hookContainer; } /** @inheritDoc */ public function onVisualEditorApiVisualEditorEditPreSave( ProperPageIdentity $page, UserIdentity $user, string $wikitext, array &$params, array $pluginData, array &$apiResponse ) { return $this->hookContainer->run( 'VisualEditorApiVisualEditorEditPreSave', [ $page, $user, $wikitext, &$params, $pluginData, &$apiResponse ], [ 'abortable' => true ] ); } /** @inheritDoc */ public function onVisualEditorApiVisualEditorEditPostSave( ProperPageIdentity $page, UserIdentity $user, string $wikitext, array $params, array $pluginData, array $saveResult, array &$apiResponse ): void { $this->hookContainer->run( 'VisualEditorApiVisualEditorEditPostSave', [ $page, $user, $wikitext, $params, $pluginData, $saveResult, &$apiResponse ], [ 'abortable' => false ] ); } /** @inheritDoc */ public function onVisualEditorBeforeEditor( OutputPage $output, Skin $skin ): bool { return $this->hookContainer->run( 'VisualEditorBeforeEditor', [ $output, $skin ], [ 'abortable' => true ] ); } }