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 EXTENSIONS_BROWSER_API_APP_WINDOW_APP_WINDOW_API_H_ 6 #define EXTENSIONS_BROWSER_API_APP_WINDOW_APP_WINDOW_API_H_ 7 8 #include "extensions/browser/app_window/app_window.h" 9 #include "extensions/browser/extension_function.h" 10 11 namespace extensions { 12 13 namespace core_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 protected: 25 virtual ~AppWindowCreateFunction() {} 26 virtual bool RunAsync() OVERRIDE; 27 28 private: 29 bool GetBoundsSpec( 30 const extensions::core_api::app_window::CreateWindowOptions& options, 31 AppWindow::CreateParams* params, 32 std::string* error); 33 34 AppWindow::Frame GetFrameFromString(const std::string& frame_string); 35 bool GetFrameOptions( 36 const extensions::core_api::app_window::CreateWindowOptions& options, 37 AppWindow::CreateParams* create_params); 38 void UpdateFrameOptionsForChannel(AppWindow::CreateParams* create_params); 39 40 bool inject_html_titlebar_; 41 }; 42 43 } // namespace extensions 44 45 #endif // EXTENSIONS_BROWSER_API_APP_WINDOW_APP_WINDOW_API_H_ 46