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

Side by Side Diff: chrome/browser/ui/webui/options/media_galleries_handler.cc

Issue 14556015: [Media Galleries] Lazily initialize the storage monitor. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix merge Created 7 years, 6 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
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/ui/webui/options/media_galleries_handler.h" 5 #include "chrome/browser/ui/webui/options/media_galleries_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/media_galleries/media_file_system_registry.h" 11 #include "chrome/browser/media_galleries/media_file_system_registry.h"
12 #include "chrome/browser/media_galleries/media_galleries_preferences.h" 12 #include "chrome/browser/media_galleries/media_galleries_preferences.h"
13 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/storage_monitor/storage_monitor.h"
14 #include "chrome/browser/ui/chrome_select_file_policy.h" 15 #include "chrome/browser/ui/chrome_select_file_policy.h"
15 #include "chrome/common/chrome_notification_types.h" 16 #include "chrome/common/chrome_notification_types.h"
16 #include "chrome/common/pref_names.h" 17 #include "chrome/common/pref_names.h"
17 #include "content/public/browser/notification_details.h" 18 #include "content/public/browser/notification_details.h"
18 #include "content/public/browser/web_contents.h" 19 #include "content/public/browser/web_contents.h"
19 #include "content/public/browser/web_contents_view.h" 20 #include "content/public/browser/web_contents_view.h"
20 #include "content/public/browser/web_ui.h" 21 #include "content/public/browser/web_ui.h"
21 #include "grit/generated_resources.h" 22 #include "grit/generated_resources.h"
22 23
23 namespace options { 24 namespace options {
24 25
25 using chrome::MediaGalleriesPreferences; 26 using chrome::MediaGalleriesPreferences;
26 using chrome::MediaGalleriesPrefInfoMap; 27 using chrome::MediaGalleriesPrefInfoMap;
27 using chrome::MediaGalleryPrefInfo; 28 using chrome::MediaGalleryPrefInfo;
28 29
29 MediaGalleriesHandler::MediaGalleriesHandler() { 30 MediaGalleriesHandler::MediaGalleriesHandler()
31 : weak_ptr_factory_(this) {
30 } 32 }
31 33
32 MediaGalleriesHandler::~MediaGalleriesHandler() { 34 MediaGalleriesHandler::~MediaGalleriesHandler() {
33 if (select_file_dialog_.get()) 35 if (select_file_dialog_.get())
34 select_file_dialog_->ListenerDestroyed(); 36 select_file_dialog_->ListenerDestroyed();
35 } 37 }
36 38
37 void MediaGalleriesHandler::GetLocalizedValues(DictionaryValue* values) { 39 void MediaGalleriesHandler::GetLocalizedValues(DictionaryValue* values) {
38 DCHECK(values); 40 DCHECK(values);
39 41
40 static OptionsStringResource resources[] = { 42 static OptionsStringResource resources[] = {
41 { "mediaGalleriesSectionLabel", IDS_MEDIA_GALLERY_SECTION_LABEL }, 43 { "mediaGalleriesSectionLabel", IDS_MEDIA_GALLERY_SECTION_LABEL },
42 { "manageGalleriesButton", IDS_MEDIA_GALLERY_MANAGE_BUTTON }, 44 { "manageGalleriesButton", IDS_MEDIA_GALLERY_MANAGE_BUTTON },
43 { "addNewGalleryButton", IDS_MEDIA_GALLERY_ADD_NEW_BUTTON }, 45 { "addNewGalleryButton", IDS_MEDIA_GALLERY_ADD_NEW_BUTTON },
44 }; 46 };
45 47
46 RegisterStrings(values, resources, arraysize(resources)); 48 RegisterStrings(values, resources, arraysize(resources));
47 RegisterTitle(values, "manageMediaGalleries", 49 RegisterTitle(values, "manageMediaGalleries",
48 IDS_MEDIA_GALLERY_MANAGE_TITLE); 50 IDS_MEDIA_GALLERY_MANAGE_TITLE);
49 } 51 }
50 52
51 void MediaGalleriesHandler::InitializePage() { 53 void MediaGalleriesHandler::InitializePage() {
54 chrome::StorageMonitor::GetInstance()->Initialize(
55 base::Bind(&MediaGalleriesHandler::InitializeOnStorageMonitorInit,
56 weak_ptr_factory_.GetWeakPtr()));
57 }
58
59 void MediaGalleriesHandler::InitializeOnStorageMonitorInit() {
52 Profile* profile = Profile::FromWebUI(web_ui()); 60 Profile* profile = Profile::FromWebUI(web_ui());
53 if (!chrome::MediaGalleriesPreferences::APIHasBeenUsed(profile)) 61 if (!chrome::MediaGalleriesPreferences::APIHasBeenUsed(profile))
54 return; 62 return;
55 63
56 if (pref_change_registrar_.IsEmpty()) { 64 if (pref_change_registrar_.IsEmpty()) {
57 pref_change_registrar_.Init(profile->GetPrefs()); 65 pref_change_registrar_.Init(profile->GetPrefs());
58 pref_change_registrar_.Add( 66 pref_change_registrar_.Add(
59 prefs::kMediaGalleriesRememberedGalleries, 67 prefs::kMediaGalleriesRememberedGalleries,
60 base::Bind(&MediaGalleriesHandler::OnGalleriesChanged, 68 base::Bind(&MediaGalleriesHandler::OnGalleriesChanged,
61 base::Unretained(this))); 69 base::Unretained(this)));
62 } 70 }
63 71
64 OnGalleriesChanged(); 72 OnGalleriesChanged();
65 } 73 }
66 74
67 void MediaGalleriesHandler::RegisterMessages() { 75 void MediaGalleriesHandler::RegisterMessages() {
76 chrome::StorageMonitor::GetInstance()->Initialize(
77 base::Bind(&MediaGalleriesHandler::RegisterOnStorageMonitorInit,
78 weak_ptr_factory_.GetWeakPtr()));
79 }
80
81 void MediaGalleriesHandler::RegisterOnStorageMonitorInit() {
68 web_ui()->RegisterMessageCallback( 82 web_ui()->RegisterMessageCallback(
69 "addNewGallery", 83 "addNewGallery",
70 base::Bind(&MediaGalleriesHandler::HandleAddNewGallery, 84 base::Bind(&MediaGalleriesHandler::HandleAddNewGallery,
71 base::Unretained(this))); 85 base::Unretained(this)));
72 web_ui()->RegisterMessageCallback( 86 web_ui()->RegisterMessageCallback(
73 "forgetGallery", 87 "forgetGallery",
74 base::Bind(&MediaGalleriesHandler::HandleForgetGallery, 88 base::Bind(&MediaGalleriesHandler::HandleForgetGallery,
75 base::Unretained(this))); 89 base::Unretained(this)));
76 } 90 }
77 91
78 void MediaGalleriesHandler::OnGalleriesChanged() { 92 void MediaGalleriesHandler::OnGalleriesChanged() {
93 DCHECK(chrome::StorageMonitor::GetInstance()->IsInitialized());
79 Profile* profile = Profile::FromWebUI(web_ui()); 94 Profile* profile = Profile::FromWebUI(web_ui());
80 chrome::MediaGalleriesPreferences* preferences = 95 chrome::MediaGalleriesPreferences* preferences =
81 g_browser_process->media_file_system_registry()->GetPreferences(profile); 96 g_browser_process->media_file_system_registry()->GetPreferences(profile);
82 97
83 ListValue list; 98 ListValue list;
84 const MediaGalleriesPrefInfoMap& galleries = preferences->known_galleries(); 99 const MediaGalleriesPrefInfoMap& galleries = preferences->known_galleries();
85 for (MediaGalleriesPrefInfoMap::const_iterator iter = galleries.begin(); 100 for (MediaGalleriesPrefInfoMap::const_iterator iter = galleries.begin();
86 iter != galleries.end(); ++iter) { 101 iter != galleries.end(); ++iter) {
87 const MediaGalleryPrefInfo& gallery = iter->second; 102 const MediaGalleryPrefInfo& gallery = iter->second;
88 if (gallery.type == MediaGalleryPrefInfo::kBlackListed) 103 if (gallery.type == MediaGalleryPrefInfo::kBlackListed)
(...skipping 27 matching lines...) Expand all
116 131
117 void MediaGalleriesHandler::HandleForgetGallery(const base::ListValue* args) { 132 void MediaGalleriesHandler::HandleForgetGallery(const base::ListValue* args) {
118 std::string string_id; 133 std::string string_id;
119 uint64 id = 0; 134 uint64 id = 0;
120 if (!args->GetString(0, &string_id) || 135 if (!args->GetString(0, &string_id) ||
121 !base::StringToUint64(string_id, &id)) { 136 !base::StringToUint64(string_id, &id)) {
122 NOTREACHED(); 137 NOTREACHED();
123 return; 138 return;
124 } 139 }
125 140
126 chrome::MediaGalleriesPreferences* prefs = 141 DCHECK(chrome::StorageMonitor::GetInstance()->IsInitialized());
142 chrome::MediaGalleriesPreferences* preferences =
127 g_browser_process->media_file_system_registry()->GetPreferences( 143 g_browser_process->media_file_system_registry()->GetPreferences(
128 Profile::FromWebUI(web_ui())); 144 Profile::FromWebUI(web_ui()));
129 prefs->ForgetGalleryById(id); 145 preferences->ForgetGalleryById(id);
130 } 146 }
131 147
132 void MediaGalleriesHandler::FileSelected(const base::FilePath& path, 148 void MediaGalleriesHandler::FileSelected(const base::FilePath& path,
133 int index, 149 int index,
134 void* params) { 150 void* params) {
135 chrome::MediaGalleriesPreferences* prefs = 151 DCHECK(chrome::StorageMonitor::GetInstance()->IsInitialized());
152 chrome::MediaGalleriesPreferences* preferences =
136 g_browser_process->media_file_system_registry()->GetPreferences( 153 g_browser_process->media_file_system_registry()->GetPreferences(
137 Profile::FromWebUI(web_ui())); 154 Profile::FromWebUI(web_ui()));
138 prefs->AddGalleryByPath(path); 155 preferences->AddGalleryByPath(path);
139 } 156 }
140 157
141 } // namespace options 158 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698