Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(623)

Unified Diff: chrome/browser/extensions/api/tab_capture/tab_capture_api.cc

Issue 2272563011: [Extensions] Convert some SyncExtensionFunctions (Closed)
Patch Set: fix Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
index 9d3b30c483027332a1f2d6a9b65301311b52348f..1afbe59eb3ee647dd6e722a33bfac3daf49bdd92 100644
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
@@ -274,7 +274,7 @@ bool TabCaptureGetCapturedTabsFunction::RunSync() {
return true;
}
-bool TabCaptureCaptureOffscreenTabFunction::RunSync() {
+ExtensionFunction::ResponseAction TabCaptureCaptureOffscreenTabFunction::Run() {
std::unique_ptr<TabCapture::CaptureOffscreenTab::Params> params =
TabCapture::CaptureOffscreenTab::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
@@ -291,21 +291,15 @@ bool TabCaptureCaptureOffscreenTabFunction::RunSync() {
arraysize(kChromecastExtensionIds)) ||
SimpleFeature::IsIdInArray(extension()->id(), kMediaRouterExtensionIds,
arraysize(kMediaRouterExtensionIds));
- if (!is_whitelisted_extension) {
- error_ = kNotWhitelistedForOffscreenTabApi;
- return false;
- }
+ if (!is_whitelisted_extension)
+ return RespondNow(Error(kNotWhitelistedForOffscreenTabApi));
const GURL start_url(params->start_url);
- if (!IsAcceptableOffscreenTabUrl(start_url)) {
- SetError(kInvalidStartUrl);
- return false;
- }
+ if (!IsAcceptableOffscreenTabUrl(start_url))
+ return RespondNow(Error(kInvalidStartUrl));
- if (!OptionsSpecifyAudioOrVideo(params->options)) {
- SetError(kNoAudioOrVideo);
- return false;
- }
+ if (!OptionsSpecifyAudioOrVideo(params->options))
+ return RespondNow(Error(kNoAudioOrVideo));
content::WebContents* const extension_web_contents = GetSenderWebContents();
EXTENSION_FUNCTION_VALIDATE(extension_web_contents);
@@ -315,17 +309,14 @@ bool TabCaptureCaptureOffscreenTabFunction::RunSync() {
DetermineInitialSize(params->options),
(is_whitelisted_extension && params->options.presentation_id) ?
*params->options.presentation_id : std::string());
- if (!offscreen_tab) {
- SetError(kTooManyOffscreenTabs);
- return false;
- }
+ if (!offscreen_tab)
+ return RespondNow(Error(kTooManyOffscreenTabs));
if (!TabCaptureRegistry::Get(browser_context())->AddRequest(
offscreen_tab->web_contents(), extension()->id(), true)) {
// TODO(miu): Allow multiple consumers of single tab capture.
// http://crbug.com/535336
- SetError(kCapturingSameOffscreenTab);
- return false;
+ return RespondNow(Error(kCapturingSameOffscreenTab));
}
FilterDeprecatedGoogConstraints(&params->options);
AddMediaStreamSourceConstraints(offscreen_tab->web_contents(),
@@ -335,10 +326,7 @@ bool TabCaptureCaptureOffscreenTabFunction::RunSync() {
// the custom JS bindings in the extension's render process to complete the
// request. See the comment at end of TabCaptureCaptureFunction::RunSync()
// for more details.
- std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue());
- result->MergeDictionary(params->options.ToValue().get());
- SetResult(std::move(result));
- return true;
+ return RespondNow(OneArgument(params->options.ToValue()));
}
// static

Powered by Google App Engine
This is Rietveld 408576698