mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add unittests target to the binary distribution (issue #1632)
- Move all tests from the top-level directory to tests/. - Move files shared by cefclient and unittests to tests/shared/. - Add a fused (single header/source file) version of gtest in tests/gtest/ with associated CMake configuration. - Test-only headers are now exposed in include/test/. Unit test targets must define UNIT_TEST in order to access them. - Replace usage of USING_CEF_SHARED with WRAPPING_CEF_SHARED for clarity (only the libcef_dll_wrapper target should define it). - Remove the RENAME_DIRECTORY CMake macro which is no longer used. - Remove C++11 usage from unittests sources for compatibility with the binary distribution configuration. - Windows: Fix build errors due to chrome_elf.dll and imm32.lib missing from the CMake configuration.
This commit is contained in:
93
tests/shared/browser/client_app_browser.cc
Normal file
93
tests/shared/browser/client_app_browser.cc
Normal file
@ -0,0 +1,93 @@
|
||||
// Copyright (c) 2013 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 "tests/shared/browser/client_app_browser.h"
|
||||
|
||||
#include "include/base/cef_logging.h"
|
||||
#include "include/cef_cookie.h"
|
||||
#include "tests/shared/browser/main_message_loop_external_pump.h"
|
||||
#include "tests/shared/common/client_switches.h"
|
||||
|
||||
namespace client {
|
||||
|
||||
ClientAppBrowser::ClientAppBrowser() {
|
||||
CreateDelegates(delegates_);
|
||||
}
|
||||
|
||||
void ClientAppBrowser::OnBeforeCommandLineProcessing(
|
||||
const CefString& process_type,
|
||||
CefRefPtr<CefCommandLine> command_line) {
|
||||
// Pass additional command-line flags to the browser process.
|
||||
if (process_type.empty()) {
|
||||
// Pass additional command-line flags when off-screen rendering is enabled.
|
||||
if (command_line->HasSwitch(switches::kOffScreenRenderingEnabled)) {
|
||||
// If the PDF extension is enabled then cc Surfaces must be disabled for
|
||||
// PDFs to render correctly.
|
||||
// See https://bitbucket.org/chromiumembedded/cef/issues/1689 for details.
|
||||
if (!command_line->HasSwitch("disable-extensions") &&
|
||||
!command_line->HasSwitch("disable-pdf-extension")) {
|
||||
command_line->AppendSwitch("disable-surfaces");
|
||||
}
|
||||
|
||||
// Use software rendering and compositing (disable GPU) for increased FPS
|
||||
// and decreased CPU usage. This will also disable WebGL so remove these
|
||||
// switches if you need that capability.
|
||||
// See https://bitbucket.org/chromiumembedded/cef/issues/1257 for details.
|
||||
if (!command_line->HasSwitch(switches::kEnableGPU)) {
|
||||
command_line->AppendSwitch("disable-gpu");
|
||||
command_line->AppendSwitch("disable-gpu-compositing");
|
||||
}
|
||||
}
|
||||
|
||||
if (command_line->HasSwitch(switches::kUseViews) &&
|
||||
!command_line->HasSwitch("top-chrome-md")) {
|
||||
// Use non-material mode on all platforms by default. Among other things
|
||||
// this causes menu buttons to show hover state. See usage of
|
||||
// MaterialDesignController::IsModeMaterial() in Chromium code.
|
||||
command_line->AppendSwitchWithValue("top-chrome-md", "non-material");
|
||||
}
|
||||
|
||||
DelegateSet::iterator it = delegates_.begin();
|
||||
for (; it != delegates_.end(); ++it)
|
||||
(*it)->OnBeforeCommandLineProcessing(this, command_line);
|
||||
}
|
||||
}
|
||||
|
||||
void ClientAppBrowser::OnContextInitialized() {
|
||||
// Register cookieable schemes with the global cookie manager.
|
||||
CefRefPtr<CefCookieManager> manager =
|
||||
CefCookieManager::GetGlobalManager(NULL);
|
||||
DCHECK(manager.get());
|
||||
manager->SetSupportedSchemes(cookieable_schemes_, NULL);
|
||||
|
||||
print_handler_ = CreatePrintHandler();
|
||||
|
||||
DelegateSet::iterator it = delegates_.begin();
|
||||
for (; it != delegates_.end(); ++it)
|
||||
(*it)->OnContextInitialized(this);
|
||||
}
|
||||
|
||||
void ClientAppBrowser::OnBeforeChildProcessLaunch(
|
||||
CefRefPtr<CefCommandLine> command_line) {
|
||||
DelegateSet::iterator it = delegates_.begin();
|
||||
for (; it != delegates_.end(); ++it)
|
||||
(*it)->OnBeforeChildProcessLaunch(this, command_line);
|
||||
}
|
||||
|
||||
void ClientAppBrowser::OnRenderProcessThreadCreated(
|
||||
CefRefPtr<CefListValue> extra_info) {
|
||||
DelegateSet::iterator it = delegates_.begin();
|
||||
for (; it != delegates_.end(); ++it)
|
||||
(*it)->OnRenderProcessThreadCreated(this, extra_info);
|
||||
}
|
||||
|
||||
void ClientAppBrowser::OnScheduleMessagePumpWork(int64 delay) {
|
||||
// Only used when `--external-message-pump` is passed via the command-line.
|
||||
MainMessageLoopExternalPump* message_pump =
|
||||
MainMessageLoopExternalPump::Get();
|
||||
if (message_pump)
|
||||
message_pump->OnScheduleMessagePumpWork(delay);
|
||||
}
|
||||
|
||||
} // namespace client
|
Reference in New Issue
Block a user