1// Copyright (c) 2013 The Chromium OS 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.
4
5function createWindow(url, l, t, w, h, fullscreen) {
6  chrome.windows.create(
7      {left: l, top: t, width: w, height: h, focused: true, url: url},
8      function(win) {
9        if (fullscreen) {
10          chrome.windows.update(win.id, {state: "fullscreen"});
11        }
12      });
13}
14
15function onMessageHandler(message, sender, sendResponse) {
16  console.log("Background got message: " + message.method);
17  if (!message.method)
18    return;
19  if (message.method == "createWindow") {
20    console.log("Create window.");
21    createWindow(message.url, message.left, message.top,
22        message.width, message.height, message.fullscreen);
23  } else if (message.method == "setFullscreen") {
24    console.log("Set window " + sender.tab.windowId + " to fullscreen.");
25    chrome.windows.update(sender.tab.windowId, {state: "fullscreen"});
26  } else if (message.method == "updateWindow") {
27    console.log("Update window " + sender.tab.windowId + ": " +
28                message.updateInfo);
29    chrome.windows.update(sender.tab.windowId, message.updateInfo);
30  } else if (message.method == "moveAndSetFullscreen") {
31    console.log("Move window " + sender.tab.windowId +
32                " to external display and set it to fullscreen.");
33    chrome.system.display.getInfo(function(info) {
34        var internal_width = null;
35        var i = 0;
36        for (i = 0; i < info.length; i++) {
37          if (info[i].isInternal) {
38            internal_width = info[i].bounds.width;
39          }
40        }
41
42        if (internal_width == null) {
43          console.log('Cannot get internal display width.');
44          return;
45        }
46        chrome.windows.update(sender.tab.windowId, {
47            left: internal_width + 1,
48            top: 0,
49            width: 300,
50            height: 300});
51        chrome.windows.update(sender.tab.windowId, {state: "fullscreen"});
52    });
53  }
54}
55
56chrome.runtime.onMessage.addListener(onMessageHandler);
57