1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_APP_WINDOW_APP_WINDOW_API_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_APP_WINDOW_APP_WINDOW_API_H_ 7 8 #include "apps/app_window.h" 9 #include "extensions/browser/extension_function.h" 10 11 namespace extensions { 12 13 namespace api { 14 namespace app_window { 15 struct CreateWindowOptions; 16 } 17 } 18 19 class AppWindowCreateFunction : public AsyncExtensionFunction { 20 public: 21 AppWindowCreateFunction(); 22 DECLARE_EXTENSION_FUNCTION("app.window.create", APP_WINDOW_CREATE) 23 24 void SendDelayedResponse(); 25 26 protected: ~AppWindowCreateFunction()27 virtual ~AppWindowCreateFunction() {} 28 virtual bool RunAsync() OVERRIDE; 29 30 private: 31 bool GetBoundsSpec( 32 const extensions::api::app_window::CreateWindowOptions& options, 33 apps::AppWindow::CreateParams* params, 34 std::string* error); 35 36 apps::AppWindow::Frame GetFrameFromString(const std::string& frame_string); 37 bool GetFrameOptions( 38 const extensions::api::app_window::CreateWindowOptions& options, 39 apps::AppWindow::CreateParams* create_params); 40 void UpdateFrameOptionsForChannel( 41 apps::AppWindow::CreateParams* create_params); 42 43 bool inject_html_titlebar_; 44 }; 45 46 } // namespace extensions 47 48 #endif // CHROME_BROWSER_EXTENSIONS_API_APP_WINDOW_APP_WINDOW_API_H_ 49