Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7593)

Unified Diff: chrome/browser/spellchecker/spellcheck_profile.cc

Issue 7583003: [Refactoring] Extracted SpellCheckProfile from ProfileImpl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: To commit Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/spellchecker/spellcheck_profile.cc
diff --git a/chrome/browser/spellchecker/spellcheck_profile.cc b/chrome/browser/spellchecker/spellcheck_profile.cc
new file mode 100644
index 0000000000000000000000000000000000000000..e29f14afb9fe1ef71ee8dcfa5c86225d922f63ab
--- /dev/null
+++ b/chrome/browser/spellchecker/spellcheck_profile.cc
@@ -0,0 +1,75 @@
+// 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.
+
+#include "chrome/browser/spellchecker/spellcheck_profile.h"
+
+#include "chrome/browser/prefs/pref_service.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/spellchecker/spellcheck_host.h"
+#include "chrome/browser/spellchecker/spellcheck_host_metrics.h"
+#include "chrome/common/pref_names.h"
+
+SpellCheckProfile::SpellCheckProfile()
+ : host_ready_(false) {
+}
+
+SpellCheckProfile::~SpellCheckProfile() {
+ if (host_.get())
+ host_->UnsetObserver();
+}
+
+SpellCheckHost* SpellCheckProfile::GetHost() {
+ return host_ready_ ? host_.get() : NULL;
+}
+
+SpellCheckProfile::ReinitializeResult SpellCheckProfile::ReinitializeHost(
+ bool force,
+ bool enable,
+ const std::string& language,
+ net::URLRequestContextGetter* request_context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || IsTesting());
+ // If we are already loading the spellchecker, and this is just a hint to
+ // load the spellchecker, do nothing.
+ if (!force && host_.get())
+ return REINITIALIZE_DID_NOTHING;
+
+ host_ready_ = false;
+
+ bool host_deleted = false;
+ if (host_.get()) {
+ host_->UnsetObserver();
+ host_ = NULL;
+ host_deleted = true;
+ }
+
+ if (enable) {
+ // Retrieve the (perhaps updated recently) dictionary name from preferences.
+ host_ = CreateHost(this, language, request_context, metrics_.get());
+ return REINITIALIZE_CREATED_HOST;
+ }
+
+ return host_deleted ? REINITIALIZE_REMOVED_HOST : REINITIALIZE_DID_NOTHING;
+}
+
+SpellCheckHost* SpellCheckProfile::CreateHost(
+ SpellCheckHostObserver* observer,
+ const std::string& language,
+ net::URLRequestContextGetter* request_context,
+ SpellCheckHostMetrics* metrics) {
+ return SpellCheckHost::Create(
+ observer, language, request_context, metrics);
+}
+
+bool SpellCheckProfile::IsTesting() const {
+ return false;
+}
+
+void SpellCheckProfile::StartRecordingMetrics(bool spellcheck_enabled) {
+ metrics_.reset(new SpellCheckHostMetrics());
+ metrics_->RecordEnabledStats(spellcheck_enabled);
+}
+
+void SpellCheckProfile::SpellCheckHostInitialized() {
+ host_ready_ = !!host_.get() && host_->IsReady();
+}
« no previous file with comments | « chrome/browser/spellchecker/spellcheck_profile.h ('k') | chrome/browser/spellchecker/spellcheck_profile_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698