if (app_window->window_key().empty())
return app_window->web_contents()->GetURL().possibly_invalid_spec();
- std::string key = app_window->extension()->id();
+ std::string key = app_window->extension_id();
key += ':';
key += app_window->window_key();
return key;
namespace apps {
-#if defined(OS_CHROMEOS)
+void AppWindowRegistry::Observer::OnAppWindowAdded(AppWindow* app_window) {
+}
+
+void AppWindowRegistry::Observer::OnAppWindowIconChanged(
+ AppWindow* app_window) {
+}
+
+void AppWindowRegistry::Observer::OnAppWindowRemoved(AppWindow* app_window) {
+}
+
void AppWindowRegistry::Observer::OnAppWindowHidden(AppWindow* app_window) {
}
void AppWindowRegistry::Observer::OnAppWindowShown(AppWindow* app_window) {
}
-#endif
AppWindowRegistry::Observer::~Observer() {
}
BringToFront(app_window);
}
-#if defined(OS_CHROMEOS)
void AppWindowRegistry::AppWindowHidden(AppWindow* app_window) {
FOR_EACH_OBSERVER(Observer, observers_, OnAppWindowHidden(app_window));
}
void AppWindowRegistry::AppWindowShown(AppWindow* app_window) {
FOR_EACH_OBSERVER(Observer, observers_, OnAppWindowShown(app_window));
}
-#endif
void AppWindowRegistry::RemoveAppWindow(AppWindow* app_window) {
const AppWindowList::iterator it =
}
void AppWindowRegistry::CloseAllAppWindowsForApp(const std::string& app_id) {
- for (AppWindowList::const_iterator i = app_windows_.begin();
- i != app_windows_.end();) {
- AppWindow* app_window = *(i++);
- if (app_window->extension_id() == app_id)
- app_window->GetBaseWindow()->Close();
+ const AppWindowList windows = GetAppWindowsForApp(app_id);
+ for (AppWindowRegistry::const_iterator it = windows.begin();
+ it != windows.end();
+ ++it) {
+ (*it)->GetBaseWindow()->Close();
}
}
for (AppWindowList::const_iterator i = app_windows_.begin();
i != app_windows_.end();
++i) {
- if ((*i)->extension()->id() == app_id) {
+ if ((*i)->extension_id() == app_id) {
result = *i;
if (result->GetBaseWindow()->IsActive())
return result;
for (AppWindowList::const_iterator i = app_windows_.begin();
i != app_windows_.end();
++i) {
- if ((*i)->extension()->id() == app_id && (*i)->window_key() == window_key) {
+ if ((*i)->extension_id() == app_id && (*i)->window_key() == window_key) {
result = *i;
if (result->GetBaseWindow()->IsActive())
return result;
return false;
}
+// static
+void AppWindowRegistry::CloseAllAppWindows() {
+ std::vector<content::BrowserContext*> contexts =
+ AppsClient::Get()->GetLoadedBrowserContexts();
+ for (std::vector<content::BrowserContext*>::const_iterator i =
+ contexts.begin();
+ i != contexts.end();
+ ++i) {
+ AppWindowRegistry* registry =
+ Factory::GetForBrowserContext(*i, false /* create */);
+ if (!registry)
+ continue;
+
+ while (!registry->app_windows().empty())
+ registry->app_windows().front()->GetBaseWindow()->Close();
+ }
+}
+
void AppWindowRegistry::OnDevToolsStateChanged(
content::DevToolsAgentHost* agent_host,
bool attached) {
context);
}
-} // namespace extensions
+} // namespace apps