electron/shell/app/electron_main_delegate.h

67 lines
2.2 KiB
C
Raw Normal View History

// Copyright (c) 2013 GitHub, Inc.
2014-04-25 09:49:37 +00:00
// Use of this source code is governed by the MIT license that can be
2013-04-12 01:46:58 +00:00
// found in the LICENSE file.
#ifndef SHELL_APP_ELECTRON_MAIN_DELEGATE_H_
#define SHELL_APP_ELECTRON_MAIN_DELEGATE_H_
2013-04-12 01:46:58 +00:00
#include <memory>
2016-06-01 09:22:14 +00:00
#include <string>
#include "content/public/app/content_main_delegate.h"
#include "content/public/common/content_client.h"
2013-04-12 01:46:58 +00:00
namespace tracing {
class TracingSamplerProfiler;
}
namespace electron {
2013-04-12 01:46:58 +00:00
void LoadResourceBundle(const std::string& locale);
class ElectronMainDelegate : public content::ContentMainDelegate {
2013-04-12 15:16:16 +00:00
public:
static const char* const kNonWildcardDomainNonPortSchemes[];
static const size_t kNonWildcardDomainNonPortSchemesSize;
ElectronMainDelegate();
~ElectronMainDelegate() override;
2013-04-12 01:46:58 +00:00
2013-04-20 06:03:55 +00:00
protected:
2014-07-16 07:05:02 +00:00
// content::ContentMainDelegate:
bool BasicStartupComplete(int* exit_code) override;
void PreSandboxStartup() override;
void PreCreateMainMessageLoop() override;
void PostEarlyInitialization(bool is_running_tests) override;
content::ContentBrowserClient* CreateContentBrowserClient() override;
content::ContentGpuClient* CreateContentGpuClient() override;
content::ContentRendererClient* CreateContentRendererClient() override;
2015-04-30 03:31:17 +00:00
content::ContentUtilityClient* CreateContentUtilityClient() override;
2016-06-01 09:22:14 +00:00
int RunProcess(
const std::string& process_type,
const content::MainFunctionParams& main_function_params) override;
2016-06-02 07:54:21 +00:00
#if defined(OS_MACOSX)
2016-06-01 09:22:14 +00:00
bool DelaySandboxInitialization(const std::string& process_type) override;
2016-06-02 07:54:21 +00:00
#endif
bool ShouldCreateFeatureList() override;
2013-04-12 15:16:16 +00:00
private:
2016-05-18 07:42:26 +00:00
#if defined(OS_MACOSX)
void OverrideChildProcessPath();
void OverrideFrameworkBundlePath();
2016-05-18 07:42:26 +00:00
void SetUpBundleOverrides();
#endif
2016-05-23 01:59:39 +00:00
std::unique_ptr<content::ContentBrowserClient> browser_client_;
std::unique_ptr<content::ContentClient> content_client_;
std::unique_ptr<content::ContentGpuClient> gpu_client_;
2016-05-23 01:59:39 +00:00
std::unique_ptr<content::ContentRendererClient> renderer_client_;
std::unique_ptr<content::ContentUtilityClient> utility_client_;
std::unique_ptr<tracing::TracingSamplerProfiler> tracing_sampler_profiler_;
2013-04-12 01:46:58 +00:00
DISALLOW_COPY_AND_ASSIGN(ElectronMainDelegate);
2013-04-12 01:46:58 +00:00
};
} // namespace electron
2013-04-12 01:46:58 +00:00
#endif // SHELL_APP_ELECTRON_MAIN_DELEGATE_H_