#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "chrome/browser/ui/browser_window_state.h"
#include <stddef.h>
#include <string_view>
#include <utility>
#include "base/command_line.h"
#include "base/strings/string_number_conversions.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/buildflags.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/sessions/session_service_base.h"
#include "chrome/browser/sessions/session_service_lookup.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/web_applications/app_browser_controller.h"
#include "chrome/browser/ui/window_sizer/window_sizer.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/scoped_user_pref_update.h"
namespace chrome {
namespace {
bool ParseCommaSeparatedIntegers(const std::string& str,
int* ret_num1,
int* ret_num2) { … }
}
std::string GetWindowName(const Browser* browser) { … }
base::Value::Dict& GetWindowPlacementDictionaryReadWrite(
const std::string& window_name,
PrefService* prefs,
std::unique_ptr<ScopedDictPrefUpdate>& scoped_update) { … }
const base::Value::Dict* GetWindowPlacementDictionaryReadOnly(
const std::string& window_name,
PrefService* prefs) { … }
bool ShouldSaveWindowPlacement(const Browser* browser) { … }
bool SavedBoundsAreContentBounds(const Browser* browser) { … }
void SaveWindowPlacement(const Browser* browser,
const gfx::Rect& bounds,
ui::WindowShowState show_state) { … }
void SaveWindowWorkspace(const Browser* browser, const std::string& workspace) { … }
void SaveWindowVisibleOnAllWorkspaces(const Browser* browser,
bool visible_on_all_workspaces) { … }
void GetSavedWindowBoundsAndShowState(const Browser* browser,
gfx::Rect* bounds,
ui::WindowShowState* show_state) { … }
namespace internal {
void UpdateWindowBoundsAndShowStateFromCommandLine(
const base::CommandLine& command_line,
gfx::Rect* bounds,
ui::WindowShowState* show_state) { … }
}
}