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

Unified Diff: chrome/browser/ui/ash/cast_config_delegate_chromeos.cc

Issue 1167643003: Correctly invoke the exported cast functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Add comments Created 5 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/ash/cast_config_delegate_chromeos.cc
diff --git a/chrome/browser/ui/ash/cast_config_delegate_chromeos.cc b/chrome/browser/ui/ash/cast_config_delegate_chromeos.cc
index b2196e97705e01ef346d7214d2696d8168ced72f..c97aeea96c7f273993f472b462b72df8ccb99d40 100644
--- a/chrome/browser/ui/ash/cast_config_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/cast_config_delegate_chromeos.cc
@@ -127,26 +127,32 @@ bool CastConfigDelegateChromeos::HasCastExtension() const {
void CastConfigDelegateChromeos::GetReceiversAndActivities(
const ReceiversAndActivitesCallback& callback) {
+ // The extension API methods are exported to the global namespace, not to
+ // backgroundSetup, even though they are conceptually methods on
+ // backgroundSetup. This means that to invoke the exported methods, we
+ // have to manually bind the this argument using call (versus doing the
+ // more expected backgroundSetup.getMirrorCapable...()).
achuithb 2015/06/05 23:46:49 Hmm, how about something more along the lines of:
ExecuteJavaScriptWithCallback(
- "backgroundSetup.getMirrorCapableReceiversAndActivities();",
+ "getMirrorCapableReceiversAndActivities.call(backgroundSetup);",
base::Bind(&GetReceiversAndActivitiesCallback, callback));
}
void CastConfigDelegateChromeos::CastToReceiver(
const std::string& receiver_id) {
- ExecuteJavaScript("backgroundSetup.launchDesktopMirroring('" + receiver_id +
- "');");
+ // See comment in GetReceiversAndActivities.
+ ExecuteJavaScript("launchDesktopMirroring.call(backgroundSetup, '" +
+ receiver_id + "');");
}
void CastConfigDelegateChromeos::StopCasting() {
- ExecuteJavaScript("backgroundSetup.stopMirroring('user-stop')");
-
+ // See comment in GetReceiversAndActivities.
// TODO(jdufault): Remove this after the beta/release versions of the
// cast extension have been updated so that they properly export the
// stopMirroring function. For now, we try to invoke all of the other
// names that the function goes by. See crbug.com/489929.
- ExecuteJavaScript("backgroundSetup.stopCastMirroring('user-stop');");
ExecuteJavaScript("backgroundSetup.Qu('user-stop');");
+ ExecuteJavaScript("stopCastMirroring.call(backgroundSetup, 'user-stop');");
+ ExecuteJavaScript("stopMirroring.call(backgroundSetup, 'user-stop');");
}
void CastConfigDelegateChromeos::LaunchCastOptions() {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698