so guys have chrome extension captures image of selected desktop window using chrome.desktopcapture , navigator.webkitgetusermedia , canvas. when ask user select window share from, selected window gets focused front.
here's code -
manifest.json -
{ "name": "desktop capture example", "description": "show desktop media picker ui", "version": "1", "manifest_version": 2, "background": { "persistent": false, "scripts": ["background.js"] }, "browser_action": { "default_title": "take screen shot of desktop!" }, "permissions": [ "desktopcapture" ] } background.js -
var pending_request_id = null; chrome.browseraction.onclicked.addlistener(function() { pending_request_id = chrome.desktopcapture.choosedesktopmedia(["screen", "window"],onaccessapproved); }); function gotstream(stream) { console.log("received local stream"); var video = document.createelement('video'); video.addeventlistener('loadedmetadata',function(){ var canvas = document.createelement('canvas'); canvas.width = this.videowidth; canvas.height = this.videoheight; var ctx = canvas.getcontext("2d"); ctx.drawimage(this, 0, 0); var url = canvas.todataurl(); console.log(url); // open captured image in new tab //window.open(url); },false); video.src = url.createobjecturl(stream); video.play(); } function getusermediaerror() { console.log("getusermedia() failed."); } function onaccessapproved(id) { if (!id) { console.log("access rejected."); return; } navigator.webkitgetusermedia({ audio:false, video: { mandatory: { chromemediasource: "desktop", chromemediasourceid: id, maxwidth: 4000, maxheight: 4000} } }, gotstream, getusermediaerror); } however if use window.open(url), focus set opened window not shared window. instead of using window.open if use chrome.tabs.create({url: url,active : true},function(tab){}) open url, shared window gets focused on top of opened tab.i want opened tab focus not shared window.how this?
in addition brian's answer, want make window focused after you've created tab that's active in window.
this made similarly:
chrome.tabs.create({url: url, active: true}, function(tab) { chrome.windows.update(tab.windowid, {focused: true}); });
Comments
Post a Comment