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_COMMON_VIEW_TYPE_H_ 6 #define EXTENSIONS_COMMON_VIEW_TYPE_H_ 7 8 namespace extensions { 9 10 // Icky RTTI used by a few systems to distinguish the host type of a given 11 // WebContents. 12 // 13 // TODO(aa): Remove this and teach those systems to keep track of their own 14 // data. 15 enum ViewType { 16 VIEW_TYPE_INVALID, 17 VIEW_TYPE_APP_SHELL, 18 VIEW_TYPE_BACKGROUND_CONTENTS, 19 VIEW_TYPE_EXTENSION_BACKGROUND_PAGE, 20 VIEW_TYPE_EXTENSION_DIALOG, 21 VIEW_TYPE_EXTENSION_INFOBAR, 22 VIEW_TYPE_EXTENSION_POPUP, 23 // TODO(jam): remove this once http://crbug.com/137297 is fixed and HTML5 24 // notifications don't use WebContents. 25 VIEW_TYPE_NOTIFICATION, 26 VIEW_TYPE_PANEL, 27 VIEW_TYPE_TAB_CONTENTS, 28 VIEW_TYPE_VIRTUAL_KEYBOARD, 29 }; 30 31 // Constant strings corresponding to the Type enumeration values. Used 32 // when converting JS arguments. 33 extern const char kViewTypeAll[]; 34 extern const char kViewTypeAppShell[]; 35 extern const char kViewTypeBackgroundPage[]; 36 extern const char kViewTypeExtensionDialog[]; 37 extern const char kViewTypeInfobar[]; 38 extern const char kViewTypeNotification[]; 39 extern const char kViewTypePanel[]; 40 extern const char kViewTypePopup[]; 41 extern const char kViewTypeTabContents[]; 42 43 } // namespace extensions 44 45 #endif // EXTENSIONS_COMMON_VIEW_TYPE_H_ 46