Roll src/third_party/WebKit 3529d49:06e8485 (svn 202554:202555)
[chromium-blink-merge.git] / remoting / webapp / crd / js / cs_oauth2_trampoline.js
blobb03bfb093faa53b2f2e8b71f410e62abece9b50c
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // For open-source builds, the redirect URL ends in /dev. For official builds,
6 // it ends in /rel/{extension-id}. This distinction is handled by the manifest;
7 // all we have to do here is check the extension id in the case that there is
8 // one, to allow the official beta and dev channels to co-exist.
10 var extensionId = chrome.i18n.getMessage('@@extension_id');
11 var officialPath = '/talkgadget/oauth/chrome-remote-desktop/rel/' + extensionId;
12 var unofficialPath = '/talkgadget/oauth/chrome-remote-desktop/dev';
14 if (window.location.pathname == officialPath ||
15     window.location.pathname == unofficialPath) {
16   var query = window.location.search.substring(1);
17   var parts = query.split('&');
18   var queryArgs = {};
19   for (var i = 0; i < parts.length; i++) {
20     var pair = parts[i].split('=');
21     queryArgs[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
22   }
24   // Chrome may not deliver the message if window.close() is called after
25   // sendMessage(), see crbug.com/444130 . To ensure the message is delivered
26   // wait for a response before closing the window.
27   chrome.extension.sendMessage(queryArgs, function() { window.close(); });