57 lines
2.0 KiB
JavaScript
57 lines
2.0 KiB
JavaScript
// 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);
|