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

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

Issue 24269007: Media Galleries API: Fix MediaGalleriesPreferences finders race. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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/ui/webui/options/media_galleries_handler.h ('k') | no next file » | 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/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"
(...skipping 30 matching lines...) Expand all
41 { "manageGalleriesButton", IDS_MEDIA_GALLERY_MANAGE_BUTTON }, 41 { "manageGalleriesButton", IDS_MEDIA_GALLERY_MANAGE_BUTTON },
42 { "addNewGalleryButton", IDS_MEDIA_GALLERY_ADD_NEW_BUTTON }, 42 { "addNewGalleryButton", IDS_MEDIA_GALLERY_ADD_NEW_BUTTON },
43 }; 43 };
44 44
45 RegisterStrings(values, resources, arraysize(resources)); 45 RegisterStrings(values, resources, arraysize(resources));
46 RegisterTitle(values, "manageMediaGalleries", 46 RegisterTitle(values, "manageMediaGalleries",
47 IDS_MEDIA_GALLERY_MANAGE_TITLE); 47 IDS_MEDIA_GALLERY_MANAGE_TITLE);
48 } 48 }
49 49
50 void MediaGalleriesHandler::InitializePage() { 50 void MediaGalleriesHandler::InitializePage() {
51 StorageMonitor::GetInstance()->EnsureInitialized( 51 Profile* profile = Profile::FromWebUI(web_ui());
52 base::Bind(&MediaGalleriesHandler::InitializeOnStorageMonitorInit, 52 MediaGalleriesPreferences* preferences =
53 weak_ptr_factory_.GetWeakPtr())); 53 g_browser_process->media_file_system_registry()->GetPreferences(profile);
54 preferences->EnsureInitialized(base::Bind(
55 &MediaGalleriesHandler::InitializeOnMediaGalleriesPreferencesInit,
56 weak_ptr_factory_.GetWeakPtr()));
54 } 57 }
55 58
56 void MediaGalleriesHandler::InitializeOnStorageMonitorInit() { 59 void MediaGalleriesHandler::InitializeOnMediaGalleriesPreferencesInit() {
57 Profile* profile = Profile::FromWebUI(web_ui()); 60 Profile* profile = Profile::FromWebUI(web_ui());
58 if (!MediaGalleriesPreferences::APIHasBeenUsed(profile)) 61 if (!MediaGalleriesPreferences::APIHasBeenUsed(profile))
59 return; 62 return;
60 63
61 if (pref_change_registrar_.IsEmpty()) { 64 if (pref_change_registrar_.IsEmpty()) {
62 pref_change_registrar_.Init(profile->GetPrefs()); 65 pref_change_registrar_.Init(profile->GetPrefs());
63 pref_change_registrar_.Add( 66 pref_change_registrar_.Add(
64 prefs::kMediaGalleriesRememberedGalleries, 67 prefs::kMediaGalleriesRememberedGalleries,
65 base::Bind(&MediaGalleriesHandler::OnGalleriesChanged, 68 base::Bind(&MediaGalleriesHandler::OnGalleriesChanged,
66 base::Unretained(this))); 69 base::Unretained(this)));
67 } 70 }
68 71
69 OnGalleriesChanged(); 72 OnGalleriesChanged();
70 } 73 }
71 74
72 void MediaGalleriesHandler::RegisterMessages() { 75 void MediaGalleriesHandler::RegisterMessages() {
73 StorageMonitor::GetInstance()->EnsureInitialized( 76 Profile* profile = Profile::FromWebUI(web_ui());
74 base::Bind(&MediaGalleriesHandler::RegisterOnStorageMonitorInit, 77 MediaGalleriesPreferences* preferences =
75 weak_ptr_factory_.GetWeakPtr())); 78 g_browser_process->media_file_system_registry()->GetPreferences(profile);
79 preferences->EnsureInitialized(base::Bind(
80 &MediaGalleriesHandler::RegisterOnPreferencesInit,
81 weak_ptr_factory_.GetWeakPtr()));
76 } 82 }
77 83
78 void MediaGalleriesHandler::RegisterOnStorageMonitorInit() { 84 void MediaGalleriesHandler::RegisterOnPreferencesInit() {
79 web_ui()->RegisterMessageCallback( 85 web_ui()->RegisterMessageCallback(
80 "addNewGallery", 86 "addNewGallery",
81 base::Bind(&MediaGalleriesHandler::HandleAddNewGallery, 87 base::Bind(&MediaGalleriesHandler::HandleAddNewGallery,
82 base::Unretained(this))); 88 base::Unretained(this)));
83 web_ui()->RegisterMessageCallback( 89 web_ui()->RegisterMessageCallback(
84 "forgetGallery", 90 "forgetGallery",
85 base::Bind(&MediaGalleriesHandler::HandleForgetGallery, 91 base::Bind(&MediaGalleriesHandler::HandleForgetGallery,
86 base::Unretained(this))); 92 base::Unretained(this)));
87 } 93 }
88 94
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 void* params) { 154 void* params) {
149 media_galleries::UsageCount(media_galleries::WEBUI_ADD_GALLERY); 155 media_galleries::UsageCount(media_galleries::WEBUI_ADD_GALLERY);
150 DCHECK(StorageMonitor::GetInstance()->IsInitialized()); 156 DCHECK(StorageMonitor::GetInstance()->IsInitialized());
151 MediaGalleriesPreferences* preferences = 157 MediaGalleriesPreferences* preferences =
152 g_browser_process->media_file_system_registry()->GetPreferences( 158 g_browser_process->media_file_system_registry()->GetPreferences(
153 Profile::FromWebUI(web_ui())); 159 Profile::FromWebUI(web_ui()));
154 preferences->AddGalleryByPath(path); 160 preferences->AddGalleryByPath(path);
155 } 161 }
156 162
157 } // namespace options 163 } // namespace options
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/media_galleries_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698