#include "base/path_service.h"
#include "brightray/browser/brightray_paths.h"
#include "content/public/browser/client_certificate_delegate.h"
+#include "content/public/browser/gpu_data_manager.h"
#include "native_mate/callback.h"
#include "native_mate/dictionary.h"
#include "native_mate/object_template_builder.h"
App::App() {
Browser::Get()->AddObserver(this);
+ content::GpuDataManager::GetInstance()->AddObserver(this);
}
App::~App() {
Browser::Get()->RemoveObserver(this);
+ content::GpuDataManager::GetInstance()->RemoveObserver(this);
}
void App::OnBeforeQuit(bool* prevent_default) {
cert_request_info->client_certs[0].get());
}
+void App::OnGpuProcessCrashed(base::TerminationStatus exit_code) {
+ Emit("gpu-crashed");
+}
+
base::FilePath App::GetPath(mate::Arguments* args, const std::string& name) {
bool succeed = false;
base::FilePath path;
#include "atom/browser/api/event_emitter.h"
#include "atom/browser/browser_observer.h"
+#include "content/public/browser/gpu_data_manager_observer.h"
#include "native_mate/handle.h"
namespace base {
namespace api {
class App : public mate::EventEmitter,
- public BrowserObserver {
+ public BrowserObserver,
+ public content::GpuDataManagerObserver {
public:
static mate::Handle<App> Create(v8::Isolate* isolate);
net::SSLCertRequestInfo* cert_request_info,
scoped_ptr<content::ClientCertificateDelegate> delegate) override;
+ // content::GpuDataManagerObserver:
+ void OnGpuProcessCrashed(base::TerminationStatus exit_code) override;
+
// mate::Wrappable:
mate::ObjectTemplateBuilder GetObjectTemplateBuilder(
v8::Isolate* isolate) override;
Emit("plugin-crashed", info.name, info.version);
}
-void WebContents::OnGpuProcessCrashed(base::TerminationStatus exit_code) {
- if (exit_code == base::TERMINATION_STATUS_PROCESS_CRASHED)
- Emit("gpu-crashed");
-}
-
void WebContents::DocumentLoadedInFrame(
content::RenderFrameHost* render_frame_host) {
if (!render_frame_host->GetParent())
#include "atom/browser/common_web_contents_delegate.h"
#include "content/public/common/favicon_url.h"
#include "content/public/browser/web_contents_observer.h"
-#include "content/public/browser/gpu_data_manager_observer.h"
#include "native_mate/handle.h"
#include "ui/gfx/image/image.h"
class WebContents : public mate::TrackableObject<WebContents>,
public CommonWebContentsDelegate,
- public content::WebContentsObserver,
- public content::GpuDataManagerObserver {
+ public content::WebContentsObserver {
public:
// For node.js callback function type: function(error, buffer)
typedef base::Callback<void(v8::Local<v8::Value>, v8::Local<v8::Value>)>
void PluginCrashed(const base::FilePath& plugin_path,
base::ProcessId plugin_pid) override;
- // content::GpuDataManagerObserver:
- void OnGpuProcessCrashed(base::TerminationStatus exit_code) override;
-
private:
enum Type {
BROWSER_WINDOW, // Used by BrowserWindow.