| // Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| function createWindow(url, l, t, w, h, fullscreen) { |
| chrome.windows.create( |
| {left: l, top: t, width: w, height: h, focused: true, url: url}, |
| function(win) { |
| if (fullscreen) { |
| chrome.windows.update(win.id, {state: "fullscreen"}); |
| } |
| }); |
| } |
| |
| function onMessageHandler(message, sender, sendResponse) { |
| console.log("Background got message: " + message.method); |
| if (!message.method) |
| return; |
| if (message.method == "createWindow") { |
| console.log("Create window."); |
| createWindow(message.url, message.left, message.top, |
| message.width, message.height, message.fullscreen); |
| } else if (message.method == "setFullscreen") { |
| console.log("Set window " + sender.tab.windowId + " to fullscreen."); |
| chrome.windows.update(sender.tab.windowId, {state: "fullscreen"}); |
| } else if (message.method == "updateWindow") { |
| console.log("Update window " + sender.tab.windowId + ": " + |
| message.updateInfo); |
| chrome.windows.update(sender.tab.windowId, message.updateInfo); |
| } else if (message.method == "moveAndSetFullscreen") { |
| console.log("Move window " + sender.tab.windowId + |
| " to external display and set it to fullscreen."); |
| chrome.system.display.getInfo(function(info) { |
| var internal_width = null; |
| var i = 0; |
| for (i = 0; i < info.length; i++) { |
| if (info[i].isInternal) { |
| internal_width = info[i].bounds.width; |
| } |
| } |
| |
| if (internal_width == null) { |
| console.log('Cannot get internal display width.'); |
| return; |
| } |
| chrome.windows.update(sender.tab.windowId, { |
| left: internal_width + 1, |
| top: 0, |
| width: 300, |
| height: 300}); |
| chrome.windows.update(sender.tab.windowId, {state: "fullscreen"}); |
| }); |
| } |
| } |
| |
| chrome.runtime.onMessage.addListener(onMessageHandler); |