cs_brandt
cs_brandt

Reputation: 1167

Open a Chrome app within a tab

This issue started with version 23 of Google Chrome. My Chrome app opens a tab to display its UI when the launched event fires.

chrome.app.runtime.onLaunched.addListener(function() 
{
   chrome.tabs.create(
   {
      url: "../../index.html"
   });
});

This scheme was working previous to version 23 of Google Chrome. Now receiving the following exception when running my app.

Error in event handler for 'app.runtime.onLaunched': Cannot call method 'create' of undefined TypeError: Cannot call method 'create' of undefined

After checking the chrome object in developer tools I notice that chrome.tabs is undefined.

I know that I dont have to explicitly set a "tabs" permission in my manifest.json because according to http://developer.chrome.com/extensions/tabs.html the create, update, and remove methods dont require the "tabs" permission.

After trying to explicitly add the "tabs" permission to the manifest.json file I then receive this message on chrome://chrome/extensions/ for the app.

There were warnings when trying to install this extension: 'tabs' is only allowed for extensions and legacy packaged apps, and this is a packaged app.

If I am going by the chart given by https://developers.google.com/chrome/web-store/docs/choosing and have chosen a packaged app because my app's UI is not small and I dont intend on extending Chrome's UI and I cannot make use of chrome.tabs then how can I open my app's UI inside of a new or existing tab without having to create a popup window (which is very annoying and not user friendly)?

Upvotes: 5

Views: 3753

Answers (1)

Sudarshan
Sudarshan

Reputation: 18554

Have you tried window.open() in chrome.app.runtime.onLaunched

Upvotes: 8

Related Questions