146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef ATHENA_ACTIVITY_PUBLIC_ACTIVITY_FACTORY_H_ 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define ATHENA_ACTIVITY_PUBLIC_ACTIVITY_FACTORY_H_ 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "athena/athena_export.h" 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "url/gurl.h" 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace content { 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class BrowserContext; 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace extensions { 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass AppWindow; 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace views { 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass WebView; 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace athena { 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class Activity; 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class ATHENA_EXPORT ActivityFactory { 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Registers the singleton factory. 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static void RegisterActivityFactory(ActivityFactory* factory); 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Gets the registered singleton factory. 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static ActivityFactory* Get(); 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Shutdowns the factory. 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static void Shutdown(); 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual ~ActivityFactory() {} 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Create an activity of a web page. If |title| is empty, the title will be 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // obtained from the web contents. 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual Activity* CreateWebActivity(content::BrowserContext* browser_context, 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const base::string16& title, 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const GURL& url) = 0; 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Create an activity of an app with |app_window| for chrome environment and 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // |web_view| that will host the content. 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual Activity* CreateAppActivity(extensions::AppWindow* app_window, 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci views::WebView* web_view) = 0; 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace athena 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif // ATHENA_ACTIVITY_PUBLIC_ACTIVITY_FACTORY_H_ 54