--- /dev/null
+// 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/common/client_app.h"
+
+#include "include/cef_command_line.h"
+
+namespace client {
+
+namespace {
+
+// These flags must match the Chromium values.
+const char kProcessType[] = "type";
+const char kRendererProcess[] = "renderer";
+#if defined(OS_LINUX)
+const char kZygoteProcess[] = "zygote";
+#endif
+
+} // namespace
+
+
+ClientApp::ClientApp() {
+}
+
+// static
+ClientApp::ProcessType ClientApp::GetProcessType(
+ CefRefPtr<CefCommandLine> command_line) {
+ // The command-line flag won't be specified for the browser process.
+ if (!command_line->HasSwitch(kProcessType))
+ return BrowserProcess;
+
+ const std::string& process_type = command_line->GetSwitchValue(kProcessType);
+ if (process_type == kRendererProcess)
+ return RendererProcess;
+#if defined(OS_LINUX)
+ else if (process_type == kZygoteProcess)
+ return ZygoteProcess;
+#endif
+
+ return OtherProcess;
+}
+
+void ClientApp::OnRegisterCustomSchemes(
+ CefRawPtr<CefSchemeRegistrar> registrar) {
+ RegisterCustomSchemes(registrar, cookieable_schemes_);
+}
+
+} // namespace client