178901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
278901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
378901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch// found in the LICENSE file.
478901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch
578901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch#ifndef CHROME_BROWSER_GOOGLE_DID_RUN_UPDATER_WIN_H_
678901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch#define CHROME_BROWSER_GOOGLE_DID_RUN_UPDATER_WIN_H_
778901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch
878901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch#include "base/macros.h"
978901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch#include "content/public/browser/notification_observer.h"
1078901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch#include "content/public/browser/notification_registrar.h"
1178901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch
1278901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch// Updates Chrome's "did run" state periodically when the process is in use.
1378901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch// The creation of renderers is used as a proxy for "is the browser in use."
1478901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdochclass DidRunUpdater : public content::NotificationObserver {
1578901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch public:
1678901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  DidRunUpdater();
1778901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  ~DidRunUpdater() override;
1878901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch
1978901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch private:
2078901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  // content::NotificationObserver:
2178901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  void Observe(int type,
2278901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch               const content::NotificationSource& source,
2378901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch               const content::NotificationDetails& details) override;
2478901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch
2578901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  // True if the process is running from a system-level installation.
2678901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  bool system_level_;
2778901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  content::NotificationRegistrar registrar_;
2878901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch
2978901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(DidRunUpdater);
3078901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch};
3178901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch
3278901d17b47ef1f8d6d0a89eaf37f9523ba1de85Ben Murdoch#endif  // CHROME_BROWSER_GOOGLE_DID_RUN_UPDATER_WIN_H_
33