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

Side by Side Diff: chrome/browser/profiles/profile_impl.cc

Issue 12039058: content: convert zoom notifications to observer usage (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/profiles/profile_impl.h ('k') | chrome/browser/ui/browser_browsertest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/profiles/profile_impl.h" 5 #include "chrome/browser/profiles/profile_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit, 315 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit,
316 false, 316 false,
317 PrefServiceSyncable::SYNCABLE_PREF); 317 PrefServiceSyncable::SYNCABLE_PREF);
318 } 318 }
319 319
320 ProfileImpl::ProfileImpl( 320 ProfileImpl::ProfileImpl(
321 const FilePath& path, 321 const FilePath& path,
322 Delegate* delegate, 322 Delegate* delegate,
323 CreateMode create_mode, 323 CreateMode create_mode,
324 base::SequencedTaskRunner* sequenced_task_runner) 324 base::SequencedTaskRunner* sequenced_task_runner)
325 : path_(path), 325 : zoom_callback_(base::Bind(&ProfileImpl::OnZoomLevelChanged,
326 base::Unretained(this))),
327 path_(path),
326 ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)), 328 ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)),
327 host_content_settings_map_(NULL), 329 host_content_settings_map_(NULL),
328 last_session_exit_type_(EXIT_NORMAL), 330 last_session_exit_type_(EXIT_NORMAL),
329 start_time_(Time::Now()), 331 start_time_(Time::Now()),
330 delegate_(delegate), 332 delegate_(delegate),
331 predictor_(NULL) { 333 predictor_(NULL) {
332 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << 334 DCHECK(!path.empty()) << "Using an empty path will attempt to write " <<
333 "profile files to the root directory!"; 335 "profile files to the root directory!";
334 336
335 #if defined(ENABLE_SESSION_SERVICE) 337 #if defined(ENABLE_SESSION_SERVICE)
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 const std::string& host(*i); 562 const std::string& host(*i);
561 double zoom_level = 0; 563 double zoom_level = 0;
562 564
563 bool success = host_zoom_dictionary->GetDoubleWithoutPathExpansion( 565 bool success = host_zoom_dictionary->GetDoubleWithoutPathExpansion(
564 host, &zoom_level); 566 host, &zoom_level);
565 DCHECK(success); 567 DCHECK(success);
566 host_zoom_map->SetZoomLevel(host, zoom_level); 568 host_zoom_map->SetZoomLevel(host, zoom_level);
567 } 569 }
568 } 570 }
569 571
570 registrar_.Add(this, content::NOTIFICATION_ZOOM_LEVEL_CHANGED, 572 host_zoom_map->AddZoomLevelChangedCallback(zoom_callback_);
571 content::Source<HostZoomMap>(host_zoom_map));
572 } 573 }
573 574
574 FilePath ProfileImpl::last_selected_directory() { 575 FilePath ProfileImpl::last_selected_directory() {
575 return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory); 576 return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory);
576 } 577 }
577 578
578 void ProfileImpl::set_last_selected_directory(const FilePath& path) { 579 void ProfileImpl::set_last_selected_directory(const FilePath& path) {
579 GetPrefs()->SetFilePath(prefs::kSelectFileLastDirectory, path); 580 GetPrefs()->SetFilePath(prefs::kSelectFileLastDirectory, path);
580 } 581 }
581 582
582 ProfileImpl::~ProfileImpl() { 583 ProfileImpl::~ProfileImpl() {
583 MaybeSendDestroyedNotification(); 584 MaybeSendDestroyedNotification();
584 585
586 HostZoomMap::GetForBrowserContext(this)->RemoveZoomLevelChangedCallback(
587 zoom_callback_);
588
585 bool prefs_loaded = prefs_->GetInitializationStatus() != 589 bool prefs_loaded = prefs_->GetInitializationStatus() !=
586 PrefService::INITIALIZATION_STATUS_WAITING; 590 PrefService::INITIALIZATION_STATUS_WAITING;
587 591
588 #if defined(ENABLE_SESSION_SERVICE) 592 #if defined(ENABLE_SESSION_SERVICE)
589 StopCreateSessionServiceTimer(); 593 StopCreateSessionServiceTimer();
590 #endif 594 #endif
591 595
592 // Remove pref observers 596 // Remove pref observers
593 pref_change_registrar_.RemoveAll(); 597 pref_change_registrar_.RemoveAll();
594 598
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 void ProfileImpl::Observe(int type, 927 void ProfileImpl::Observe(int type,
924 const content::NotificationSource& source, 928 const content::NotificationSource& source,
925 const content::NotificationDetails& details) { 929 const content::NotificationDetails& details) {
926 switch (type) { 930 switch (type) {
927 case chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED: 931 case chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED:
928 // Causes lazy-load if sync is enabled. 932 // Causes lazy-load if sync is enabled.
929 ProfileSyncServiceFactory::GetInstance()->GetForProfile(this); 933 ProfileSyncServiceFactory::GetInstance()->GetForProfile(this);
930 registrar_.Remove(this, chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED, 934 registrar_.Remove(this, chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED,
931 content::Source<Profile>(this)); 935 content::Source<Profile>(this));
932 break; 936 break;
933 case content::NOTIFICATION_ZOOM_LEVEL_CHANGED: {
934 const std::string& host =
935 *(content::Details<const std::string>(details).ptr());
936 if (!host.empty()) {
937 HostZoomMap* host_zoom_map = HostZoomMap::GetForBrowserContext(this);
938 double level = host_zoom_map->GetZoomLevel(host);
939 DictionaryPrefUpdate update(prefs_.get(), prefs::kPerHostZoomLevels);
940 DictionaryValue* host_zoom_dictionary = update.Get();
941 if (level == host_zoom_map->GetDefaultZoomLevel()) {
942 host_zoom_dictionary->RemoveWithoutPathExpansion(host, NULL);
943 } else {
944 host_zoom_dictionary->SetWithoutPathExpansion(
945 host, Value::CreateDoubleValue(level));
946 }
947 }
948 break;
949 }
950 default: 937 default:
951 NOTREACHED(); 938 NOTREACHED();
952 } 939 }
953 } 940 }
954 941
955 void ProfileImpl::OnDefaultZoomLevelChanged() { 942 void ProfileImpl::OnDefaultZoomLevelChanged() {
956 HostZoomMap::GetForBrowserContext(this)->SetDefaultZoomLevel( 943 HostZoomMap::GetForBrowserContext(this)->SetDefaultZoomLevel(
957 pref_change_registrar_.prefs()->GetDouble(prefs::kDefaultZoomLevel)); 944 pref_change_registrar_.prefs()->GetDouble(prefs::kDefaultZoomLevel));
958 } 945 }
959 946
947 void ProfileImpl::OnZoomLevelChanged(const std::string& host) {
948 if (host.empty())
949 return;
950 HostZoomMap* host_zoom_map = HostZoomMap::GetForBrowserContext(this);
951 double level = host_zoom_map->GetZoomLevel(host);
952 DictionaryPrefUpdate update(prefs_.get(), prefs::kPerHostZoomLevels);
953 DictionaryValue* host_zoom_dictionary = update.Get();
954 if (level == host_zoom_map->GetDefaultZoomLevel()) {
955 host_zoom_dictionary->RemoveWithoutPathExpansion(host, NULL);
956 } else {
957 host_zoom_dictionary->SetWithoutPathExpansion(
958 host, Value::CreateDoubleValue(level));
959 }
960 }
961
960 #if defined(ENABLE_SESSION_SERVICE) 962 #if defined(ENABLE_SESSION_SERVICE)
961 void ProfileImpl::StopCreateSessionServiceTimer() { 963 void ProfileImpl::StopCreateSessionServiceTimer() {
962 create_session_service_timer_.Stop(); 964 create_session_service_timer_.Stop();
963 } 965 }
964 966
965 void ProfileImpl::EnsureSessionServiceCreated() { 967 void ProfileImpl::EnsureSessionServiceCreated() {
966 SessionServiceFactory::GetForProfile(this); 968 SessionServiceFactory::GetForProfile(this);
967 } 969 }
968 #endif 970 #endif
969 971
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 FilePath* cache_path, 1149 FilePath* cache_path,
1148 int* max_size) { 1150 int* max_size) {
1149 DCHECK(cache_path); 1151 DCHECK(cache_path);
1150 DCHECK(max_size); 1152 DCHECK(max_size);
1151 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); 1153 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir));
1152 if (!path.empty()) 1154 if (!path.empty())
1153 *cache_path = path; 1155 *cache_path = path;
1154 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : 1156 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) :
1155 prefs_->GetInteger(prefs::kDiskCacheSize); 1157 prefs_->GetInteger(prefs::kDiskCacheSize);
1156 } 1158 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_impl.h ('k') | chrome/browser/ui/browser_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698