original_string: public function uninstall_plugin($component, progress_trace $progress) {
  
          $pluginfo = $this->get_plugin_info($component);
  
          if (is_null($pluginfo)) {
              return false;
          }
  
          // Give the pluginfo class a chance to execute some steps.
          $result = $pluginfo->uninstall($progress);
          if (!$result) {
              return false;
          }
  
          // Call the legacy core function to uninstall the plugin.
          ob_start();
          uninstall_plugin($pluginfo->type, $pluginfo->name);
          $progress->output(ob_get_clean());
  
          return true;
      }
code: public function uninstall_plugin($component, progress_trace $progress) {
  
          $pluginfo = $this->get_plugin_info($component);
  
          if (is_null($pluginfo)) {
              return false;
          }
  
          // Give the pluginfo class a chance to execute some steps.
          $result = $pluginfo->uninstall($progress);
          if (!$result) {
              return false;
          }
  
          // Call the legacy core function to uninstall the plugin.
          ob_start();
          uninstall_plugin($pluginfo->type, $pluginfo->name);
          $progress->output(ob_get_clean());
  
          return true;
      }
code_tokens: public function uninstall_plugin ( $ component , progress_trace $ progress ) { $ pluginfo = $ this -> get_plugin_info ( $ component ) ; if ( is_null ( $ pluginfo ) ) { return false ; } // Give the pluginfo class a chance to execute some steps. $ result = $ pluginfo -> uninstall ( $ progress ) ; if ( ! $ result ) { return false ; } // Call the legacy core function to uninstall the plugin. ob_start ( ) ; uninstall_plugin ( $ pluginfo -> type , $ pluginfo -> name ) ; $ progress -> output ( ob_get_clean ( ) ) ; return true ; }
docstring: Uninstall the given plugin.
  
  Automatically cleans-up all remaining configuration data, log records, events,
  files from the file pool etc.
  
  In the future, the functionality of {@link uninstall_plugin()} function may be moved
  into this method and all the code should be refactored to use it. At the moment, we
  mimic this future behaviour by wrapping that function call.
  
  @param string $component
  @param progress_trace $progress traces the process
  @return bool true on success, false on errors/problems
docstring_tokens: Uninstall the given plugin .