| Index: chrome/browser/spellchecker/spellcheck_profile.h
|
| diff --git a/chrome/browser/spellchecker/spellcheck_profile.h b/chrome/browser/spellchecker/spellcheck_profile.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..99ac9fe0131ac7ac206ce6152c3d3f9e5032d2e9
|
| --- /dev/null
|
| +++ b/chrome/browser/spellchecker/spellcheck_profile.h
|
| @@ -0,0 +1,105 @@
|
| +// Copyright (c) 2011 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_BROWSER_SPELLCHECKER_SPELLCHECK_PROFILE_H_
|
| +#define CHROME_BROWSER_SPELLCHECKER_SPELLCHECK_PROFILE_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/ref_counted.h"
|
| +#include "chrome/browser/spellchecker/spellcheck_host_observer.h"
|
| +
|
| +class Profile;
|
| +class SpellCheckHost;
|
| +class SpellCheckHostMetrics;
|
| +
|
| +namespace net {
|
| +class URLRequestContextGetter;
|
| +}
|
| +
|
| +// A facade of spell-check related objects in the browser process.
|
| +// This class is responsible for managing a life-cycle of:
|
| +// * SpellCheckHost object (instantiation, deletion, reset)
|
| +// * SpellCheckHostMetrics object (only initiate when metrics is enabled)
|
| +//
|
| +// The following snippet describes how to use this class:
|
| +//
|
| +// PrefService* pref = ....;
|
| +// net::URLRequestContextGetter* context = ...;
|
| +// SpellCheckProfile* profile = new SpellCheckProfile();
|
| +// profile->StartRecordingMetrics(true); // to enable recording
|
| +// profile->ReinitializeResult(true, true, pref->GetLanguage(), context);
|
| +// ...
|
| +// SpellCheckHost* host = profile->GetHost();
|
| +//
|
| +// The class is intended to be owned and managed by ProfileImpl internally.
|
| +// Any usable APIs are provided by SpellCheckHost interface,
|
| +// which can be retrieved from Profile::GetSpellCheckHost().
|
| +class SpellCheckProfile : public SpellCheckHostObserver {
|
| + public:
|
| + // Return value of ReinitializeHost()
|
| + enum ReinitializeResult {
|
| + // SpellCheckProfile created new SpellCheckHost object. We can
|
| + // retrieve it once the asynchronous initialization task is
|
| + // finished.
|
| + REINITIALIZE_CREATED_HOST,
|
| + // An existing SpellCheckHost insntace is deleted, that means
|
| + // the spell-check feature just tunred from enabled to disabled.
|
| + // The state should be synced to renderer processes
|
| + REINITIALIZE_REMOVED_HOST,
|
| + // The API did nothing. SpellCheckHost instance isn't created nor
|
| + // deleted.
|
| + REINITIALIZE_DID_NOTHING
|
| + };
|
| +
|
| + SpellCheckProfile();
|
| + virtual ~SpellCheckProfile();
|
| +
|
| + // Retrieves SpellCheckHost object.
|
| + // This can return NULL when the spell-checking is disabled
|
| + // or the host object is not ready yet.
|
| + SpellCheckHost* GetHost();
|
| +
|
| + // Initializes or deletes SpellCheckHost object if necessary.
|
| + // The caller should provide URLRequestContextGetter for
|
| + // possible dictionary download.
|
| + //
|
| + // If |force| is true, the host instance is newly created
|
| + // regardless there is existing instance.
|
| + ReinitializeResult ReinitializeHost(
|
| + bool force,
|
| + bool enable,
|
| + const std::string& language,
|
| + net::URLRequestContextGetter* request_context);
|
| +
|
| + // Instantiates SpellCheckHostMetrics object and
|
| + // makes it ready for recording metrics.
|
| + // This should be called only if the metrics recording is active.
|
| + void StartRecordingMetrics(bool spellcheck_enabled);
|
| +
|
| + // SpellCheckHostObserver implementation.
|
| + virtual void SpellCheckHostInitialized();
|
| +
|
| + protected:
|
| + // Only tests should override this.
|
| + virtual SpellCheckHost* CreateHost(
|
| + SpellCheckHostObserver* observer,
|
| + const std::string& language,
|
| + net::URLRequestContextGetter* request_context,
|
| + SpellCheckHostMetrics* metrics);
|
| +
|
| + virtual bool IsTesting() const;
|
| +
|
| + private:
|
| + scoped_refptr<SpellCheckHost> host_;
|
| + scoped_ptr<SpellCheckHostMetrics> metrics_;
|
| +
|
| + // Indicates whether |host_| has told us initialization is
|
| + // finished.
|
| + bool host_ready_;
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_SPELLCHECKER_SPELLCHECK_PROFILE_H_
|
|
|