### Issue Details

* **Electron Version:**
  * 12, 11, 10, 9
* **Operating System:**
  * all
* **Last Known Working Electron version:**
  * NA

### Expected Behavior
The Promise returned by `contentTracing.stopTracing()` should always either resolve or reject.

### Actual Behavior
If called when a trace is not in progress, `contentTracing.stopTracing()` never resolves or rejects.

### To Reproduce
https://gist.github.com/8eb40af81ba15dbe4c50735a6ec4489d

note `'done'` is never printed.
shell/browser/api/electron_api_content_tracing.cc
base::FilePath temp_file_path;
  if (!base::CreateTemporaryFile(&temp_file_path))
    return base::nullopt;
  return base::make_optional(std::move(temp_file_path));
}
void StopTracing(gin_helper::Promise<base::FilePath> promise,