mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
cefclient: Organize source files into directories by target process (browser, renderer, common) (issue #1500).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@2014 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
111
tests/cefclient/browser/main_context_impl.cc
Normal file
111
tests/cefclient/browser/main_context_impl.cc
Normal file
@@ -0,0 +1,111 @@
|
||||
// Copyright (c) 2015 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
|
||||
#include "cefclient/browser/main_context_impl.h"
|
||||
|
||||
#include "cefclient/common/client_switches.h"
|
||||
|
||||
namespace client {
|
||||
|
||||
namespace {
|
||||
|
||||
// The default URL to load in a browser window.
|
||||
const char kDefaultUrl[] = "http://www.google.com";
|
||||
|
||||
} // namespace
|
||||
|
||||
MainContextImpl::MainContextImpl(int argc,
|
||||
const char* const* argv,
|
||||
bool terminate_when_all_windows_closed)
|
||||
: terminate_when_all_windows_closed_(terminate_when_all_windows_closed),
|
||||
initialized_(false),
|
||||
shutdown_(false) {
|
||||
// Parse the command line.
|
||||
command_line_ = CefCommandLine::CreateCommandLine();
|
||||
#if defined(OS_WIN)
|
||||
command_line_->InitFromString(::GetCommandLineW());
|
||||
#else
|
||||
command_line_->InitFromArgv(argc, argv);
|
||||
#endif
|
||||
|
||||
// Set the main URL.
|
||||
if (command_line_->HasSwitch(switches::kUrl))
|
||||
main_url_ = command_line_->GetSwitchValue(switches::kUrl);
|
||||
if (main_url_.empty())
|
||||
main_url_ = kDefaultUrl;
|
||||
}
|
||||
|
||||
MainContextImpl::~MainContextImpl() {
|
||||
// The context must either not have been initialized, or it must have also
|
||||
// been shut down.
|
||||
DCHECK(!initialized_ || shutdown_);
|
||||
}
|
||||
|
||||
std::string MainContextImpl::GetConsoleLogPath() {
|
||||
return GetAppWorkingDirectory() + "console.log";
|
||||
}
|
||||
|
||||
std::string MainContextImpl::GetMainURL() {
|
||||
return main_url_;
|
||||
}
|
||||
|
||||
void MainContextImpl::PopulateSettings(CefSettings* settings) {
|
||||
#if defined(OS_WIN)
|
||||
settings->multi_threaded_message_loop =
|
||||
command_line_->HasSwitch(switches::kMultiThreadedMessageLoop);
|
||||
#endif
|
||||
|
||||
CefString(&settings->cache_path) =
|
||||
command_line_->GetSwitchValue(switches::kCachePath);
|
||||
|
||||
if (command_line_->HasSwitch(switches::kOffScreenRenderingEnabled))
|
||||
settings->windowless_rendering_enabled = true;
|
||||
}
|
||||
|
||||
void MainContextImpl::PopulateBrowserSettings(CefBrowserSettings* settings) {
|
||||
if (command_line_->HasSwitch(switches::kOffScreenFrameRate)) {
|
||||
settings->windowless_frame_rate = atoi(command_line_->
|
||||
GetSwitchValue(switches::kOffScreenFrameRate).ToString().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
RootWindowManager* MainContextImpl::GetRootWindowManager() {
|
||||
DCHECK(InValidState());
|
||||
return root_window_manager_.get();
|
||||
}
|
||||
|
||||
bool MainContextImpl::Initialize(const CefMainArgs& args,
|
||||
const CefSettings& settings,
|
||||
CefRefPtr<CefApp> application,
|
||||
void* windows_sandbox_info) {
|
||||
DCHECK(thread_checker_.CalledOnValidThread());
|
||||
DCHECK(!initialized_);
|
||||
DCHECK(!shutdown_);
|
||||
|
||||
if (!CefInitialize(args, settings, application, windows_sandbox_info))
|
||||
return false;
|
||||
|
||||
// Need to create the RootWindowManager after calling CefInitialize because
|
||||
// TempWindowX11 uses cef_get_xdisplay().
|
||||
root_window_manager_.reset(
|
||||
new RootWindowManager(terminate_when_all_windows_closed_));
|
||||
|
||||
initialized_ = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void MainContextImpl::Shutdown() {
|
||||
DCHECK(thread_checker_.CalledOnValidThread());
|
||||
DCHECK(initialized_);
|
||||
DCHECK(!shutdown_);
|
||||
|
||||
root_window_manager_.reset();
|
||||
|
||||
CefShutdown();
|
||||
|
||||
shutdown_ = true;
|
||||
}
|
||||
|
||||
} // namespace client
|
Reference in New Issue
Block a user