// 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);