// Copyright 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_BASE_WINDOW_OPEN_DISPOSITION_H_ #define UI_BASE_WINDOW_OPEN_DISPOSITION_H_ #include "base/component_export.h" enum class WindowOpenDisposition { UNKNOWN, CURRENT_TAB, // Indicates that only one tab with the url should exist in the same window. SINGLETON_TAB, NEW_FOREGROUND_TAB, NEW_BACKGROUND_TAB, NEW_POPUP, NEW_WINDOW, SAVE_TO_DISK, OFF_THE_RECORD, IGNORE_ACTION, // Activates an existing tab containing the url, rather than navigating. // This is similar to SINGLETON_TAB, but searches across all windows from // the current profile and anonymity (instead of just the current one); // closes the current tab on switching if the current tab was the NTP with // no session history; and behaves like CURRENT_TAB instead of // NEW_FOREGROUND_TAB when no existing tab is found. SWITCH_TO_TAB, // Creates a new document picture-in-picture window showing a child WebView. NEW_PICTURE_IN_PICTURE, // Update when adding a new disposition. MAX_VALUE = NEW_PICTURE_IN_PICTURE, }; namespace ui { // Translates event flags from a click on a link into the user's desired window // disposition. For example, a middle click would mean to open a background // tab. |disposition_for_current_tab| is the disposition to return if the flags // suggest opening in the current tab; for example, a caller could set this to // NEW_FOREGROUND_TAB to prevent a click from overwriting the current tab by // default. COMPONENT_EXPORT(UI_BASE) WindowOpenDisposition DispositionFromClick( bool middle_button, bool alt_key, bool ctrl_key, bool meta_key, bool shift_key, WindowOpenDisposition disposition_for_current_tab = WindowOpenDisposition::CURRENT_TAB); // As with DispositionFromClick(), but using |event_flags| as in ui::MouseEvent. COMPONENT_EXPORT(UI_BASE) WindowOpenDisposition DispositionFromEventFlags( int event_flags, WindowOpenDisposition disposition_for_current_tab = WindowOpenDisposition::CURRENT_TAB); } // namespace ui #endif // UI_BASE_WINDOW_OPEN_DISPOSITION_H_