| Index: chrome_frame/ready_mode/internal/registry_ready_mode_state.h
|
| ===================================================================
|
| --- chrome_frame/ready_mode/internal/registry_ready_mode_state.h (revision 0)
|
| +++ chrome_frame/ready_mode/internal/registry_ready_mode_state.h (revision 0)
|
| @@ -0,0 +1,73 @@
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_FRAME_READY_MODE_INTERNAL_REGISTRY_READY_MODE_STATE_H_
|
| +#define CHROME_FRAME_READY_MODE_INTERNAL_REGISTRY_READY_MODE_STATE_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/scoped_ptr.h"
|
| +#include "base/time.h"
|
| +#include "chrome_frame/ready_mode/internal/ready_mode_state.h"
|
| +
|
| +enum ReadyModeStatus;
|
| +
|
| +class InstallationState;
|
| +class Task;
|
| +
|
| +// Implements ReadyModeState, storing state in the Registry and delegating to an
|
| +// instance of InstallationState to interact with the installer. Notifies a
|
| +// single Observer when the state changes.
|
| +class RegistryReadyModeState : public ReadyModeState {
|
| + public:
|
| + // Receives notification when the Ready Mode state changes in response to a
|
| + // user interaction. Does not receive notification when a temporary decline of
|
| + // Ready Mode expires.
|
| + class Observer {
|
| + public:
|
| + virtual ~Observer() {}
|
| + // Indicates that a state change has occurred.
|
| + virtual void OnStateChange() = 0;
|
| + }; // class Observer
|
| +
|
| + // Construct an instance backed by the specified key
|
| + // (pre-existing under HKCU). The provided duration indicates how long, after
|
| + // a temporary decline, Ready Mode re-activates.
|
| + //
|
| + // Takes ownership of the Observer and InstallationState instances.
|
| + RegistryReadyModeState(const std::wstring& key_name,
|
| + base::TimeDelta temporary_decline_duration,
|
| + InstallationState* installation_state,
|
| + Observer* observer);
|
| + virtual ~RegistryReadyModeState();
|
| +
|
| + // Returns the current Ready Mode status, as determined using our registry
|
| + // state and InstallationState instance.
|
| + ReadyModeStatus GetStatus();
|
| +
|
| + // ReadyModeState implementation
|
| + virtual void TemporarilyDeclineChromeFrame();
|
| + virtual void PermanentlyDeclineChromeFrame();
|
| + virtual void AcceptChromeFrame();
|
| +
|
| + protected:
|
| + // allow dependency replacement via derivation for tests
|
| + virtual base::Time GetNow();
|
| +
|
| + private:
|
| + // Retrieves state from the registry. Returns true upon success.
|
| + bool GetValue(int64* value, bool* exists);
|
| + // Stores value in the registry. Returns true upon success.
|
| + bool StoreValue(int64 value);
|
| +
|
| + base::TimeDelta temporary_decline_duration_;
|
| + int temporary_decline_length_seconds_;
|
| + std::wstring key_name_;
|
| + scoped_ptr<InstallationState> installation_state_;
|
| + scoped_ptr<Observer> observer_;
|
| +}; // class RegistryReadyModeState
|
| +
|
| +#endif // CHROME_FRAME_READY_MODE_INTERNAL_REGISTRY_READY_MODE_STATE_H_
|
|
|
| Property changes on: chrome_frame\ready_mode\internal\registry_ready_mode_state.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|