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

Side by Side Diff: chrome/browser/chromeos/extensions/wallpaper_api.cc

Issue 1004263002: Disable surprise me automatically if the current wallpaper was set by a third party application. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address the code review comments. Created 5 years, 9 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/chromeos/extensions/wallpaper_api.h" 5 #include "chrome/browser/chromeos/extensions/wallpaper_api.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/desktop_background/desktop_background_controller.h" 10 #include "ash/desktop_background/desktop_background_controller.h"
11 #include "base/files/file_util.h" 11 #include "base/files/file_util.h"
12 #include "base/lazy_instance.h" 12 #include "base/lazy_instance.h"
13 #include "base/prefs/pref_service.h" 13 #include "base/prefs/pref_service.h"
14 #include "base/strings/stringprintf.h" 14 #include "base/strings/stringprintf.h"
15 #include "base/threading/worker_pool.h" 15 #include "base/threading/worker_pool.h"
16 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
17 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" 17 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
18 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/common/chrome_paths.h" 19 #include "chrome/common/chrome_paths.h"
20 #include "chrome/common/extensions/extension_constants.h" 20 #include "chrome/common/extensions/extension_constants.h"
21 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
22 #include "components/user_manager/user.h" 22 #include "components/user_manager/user.h"
23 #include "components/user_manager/user_manager.h" 23 #include "components/user_manager/user_manager.h"
24 #include "components/wallpaper/wallpaper_layout.h" 24 #include "components/wallpaper/wallpaper_layout.h"
25 #include "extensions/browser/event_router.h"
25 #include "net/base/load_flags.h" 26 #include "net/base/load_flags.h"
26 #include "net/http/http_status_code.h" 27 #include "net/http/http_status_code.h"
27 #include "net/url_request/url_fetcher.h" 28 #include "net/url_request/url_fetcher.h"
28 #include "net/url_request/url_fetcher_delegate.h" 29 #include "net/url_request/url_fetcher_delegate.h"
29 #include "url/gurl.h" 30 #include "url/gurl.h"
30 31
31 using base::BinaryValue; 32 using base::BinaryValue;
32 using content::BrowserThread; 33 using content::BrowserThread;
33 34
34 typedef base::Callback<void(bool success, const std::string&)> FetchCallback; 35 typedef base::Callback<void(bool success, const std::string&)> FetchCallback;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 GURL wallpaper_url(*params_->details.url); 114 GURL wallpaper_url(*params_->details.url);
114 if (wallpaper_url.is_valid()) { 115 if (wallpaper_url.is_valid()) {
115 g_wallpaper_fetcher.Get().FetchWallpaper( 116 g_wallpaper_fetcher.Get().FetchWallpaper(
116 wallpaper_url, 117 wallpaper_url,
117 base::Bind(&WallpaperSetWallpaperFunction::OnWallpaperFetched, this)); 118 base::Bind(&WallpaperSetWallpaperFunction::OnWallpaperFetched, this));
118 } else { 119 } else {
119 SetError("URL is invalid."); 120 SetError("URL is invalid.");
120 SendResponse(false); 121 SendResponse(false);
121 } 122 }
122 } 123 }
124
125 Profile* profile = Profile::FromBrowserContext(browser_context());
126 extensions::EventRouter* event_router = extensions::EventRouter::Get(profile);
127 scoped_ptr<base::ListValue> event_args(new base::ListValue());
128 scoped_ptr<extensions::Event> event(new extensions::Event(
129 extensions::api::wallpaper::OnWallpaperChangedBy3rdParty::kEventName,
130 event_args.Pass()));
131 event_router->DispatchEventToExtension(extension_misc::kWallpaperManagerId,
132 event.Pass());
bshe 2015/03/16 14:02:40 We should send the event only after we know for su
123 return true; 133 return true;
124 } 134 }
125 135
126 void WallpaperSetWallpaperFunction::OnWallpaperDecoded( 136 void WallpaperSetWallpaperFunction::OnWallpaperDecoded(
127 const gfx::ImageSkia& image) { 137 const gfx::ImageSkia& image) {
128 chromeos::WallpaperManager* wallpaper_manager = 138 chromeos::WallpaperManager* wallpaper_manager =
129 chromeos::WallpaperManager::Get(); 139 chromeos::WallpaperManager::Get();
130 base::FilePath thumbnail_path = wallpaper_manager->GetCustomWallpaperPath( 140 base::FilePath thumbnail_path = wallpaper_manager->GetCustomWallpaperPath(
131 wallpaper::kThumbnailWallpaperSubDir, user_id_hash_, 141 wallpaper::kThumbnailWallpaperSubDir, user_id_hash_,
132 params_->details.filename); 142 params_->details.filename);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 const std::string& response) { 219 const std::string& response) {
210 if (success) { 220 if (success) {
211 params_->details.data.reset( 221 params_->details.data.reset(
212 new std::vector<char>(response.begin(), response.end())); 222 new std::vector<char>(response.begin(), response.end()));
213 StartDecode(*params_->details.data); 223 StartDecode(*params_->details.data);
214 } else { 224 } else {
215 SetError(response); 225 SetError(response);
216 SendResponse(false); 226 SendResponse(false);
217 } 227 }
218 } 228 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698