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