summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/chromeos/extensions/wallpaper_api.cc14
-rw-r--r--chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js6
-rw-r--r--chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js4
-rw-r--r--chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js10
-rw-r--r--chrome/browser/resources/chromeos/wallpaper_manager/main.html2
-rw-r--r--chrome/common/extensions/api/wallpaper_private.json7
6 files changed, 39 insertions, 4 deletions
diff --git a/chrome/browser/chromeos/extensions/wallpaper_api.cc b/chrome/browser/chromeos/extensions/wallpaper_api.cc
index d6a76d8..55e9ea0 100644
--- a/chrome/browser/chromeos/extensions/wallpaper_api.cc
+++ b/chrome/browser/chromeos/extensions/wallpaper_api.cc
@@ -14,6 +14,7 @@
#include "base/strings/stringprintf.h"
#include "base/threading/worker_pool.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/extensions/wallpaper_private_api.h"
#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_paths.h"
@@ -22,6 +23,7 @@
#include "components/user_manager/user.h"
#include "components/user_manager/user_manager.h"
#include "components/wallpaper/wallpaper_layout.h"
+#include "extensions/browser/event_router.h"
#include "net/base/load_flags.h"
#include "net/http/http_status_code.h"
#include "net/url_request/url_fetcher.h"
@@ -177,6 +179,18 @@ void WallpaperSetWallpaperFunction::OnWallpaperDecoded(
}
SendResponse(true);
}
+
+ // Inform the native Wallpaper Picker Application that the current wallpaper
+ // has been modified by a third party application.
+ Profile* profile = Profile::FromBrowserContext(browser_context());
+ extensions::EventRouter* event_router = extensions::EventRouter::Get(profile);
+ scoped_ptr<base::ListValue> event_args(new base::ListValue());
+ scoped_ptr<extensions::Event> event(
+ new extensions::Event(extensions::api::wallpaper_private::
+ OnWallpaperChangedBy3rdParty::kEventName,
+ event_args.Pass()));
+ event_router->DispatchEventToExtension(extension_misc::kWallpaperManagerId,
+ event.Pass());
}
void WallpaperSetWallpaperFunction::GenerateThumbnail(
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js
index dd3dde2..738f799 100644
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js
@@ -349,3 +349,9 @@ chrome.storage.onChanged.addListener(function(changes, namespace) {
chrome.alarms.onAlarm.addListener(function() {
SurpriseWallpaper.getInstance().next();
});
+
+chrome.wallpaperPrivate.onWallpaperChangedBy3rdParty.addListener(function() {
+ WallpaperUtil.saveToStorage(Constants.AccessSurpriseMeEnabledKey,
+ false, true);
+ SurpriseWallpaper.getInstance().disable();
+});
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js
index 80ad1133..db4bb4b 100644
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js
@@ -223,6 +223,10 @@ cr.define('wallpapers', function() {
}
},
+ get activeItem() {
+ return this.activeItem_;
+ },
+
/**
* A unique ID that assigned to each set dataModel operation. Note that this
* id wont increase if the new dataModel is null or empty.
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
index 57af6ad..5d638ec 100644
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
@@ -203,12 +203,16 @@ function WallpaperManager(dialogDom) {
if (chrome.runtime.lastError == null) {
if (shouldEnable) {
checkbox.classList.add('checked');
+ // Hides the wallpaper set by message if there is any.
+ $('wallpaper-set-by-message').textContent = '';
} else {
// Unchecking the "Surprise me" checkbox falls back to the previous
// wallpaper before "Surprise me" was turned on.
- self.setSelectedWallpaper_(self.wallpaperGrid_.activeItem_);
- self.onWallpaperChanged_(self.wallpaperGrid_.activeItem_,
- self.currentWallpaper_);
+ if (self.wallpaperGrid_.activeItem) {
+ self.setSelectedWallpaper_(self.wallpaperGrid_.activeItem);
+ self.onWallpaperChanged_(self.wallpaperGrid_.activeItem,
+ self.currentWallpaper_);
+ }
checkbox.classList.remove('checked');
}
$('categories-list').disabled = shouldEnable;
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/main.html b/chrome/browser/resources/chromeos/wallpaper_manager/main.html
index 94f95c6..84f3364 100644
--- a/chrome/browser/resources/chromeos/wallpaper_manager/main.html
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/main.html
@@ -9,7 +9,7 @@ found in the LICENSE file.
<head>
<meta charset="utf-8">
<title>Wallpaper Picker</title>
- <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
+ <link rel="stylesheet" href="../../../../../ui/webui/resources/css/text_defaults.css">
<link rel="stylesheet" href="../../../../../ui/webui/resources/css/widgets.css">
<link rel="stylesheet" href="../../../../../ui/webui/resources/css/menu.css"></link>
diff --git a/chrome/common/extensions/api/wallpaper_private.json b/chrome/common/extensions/api/wallpaper_private.json
index 14205f1..6a88280 100644
--- a/chrome/common/extensions/api/wallpaper_private.json
+++ b/chrome/common/extensions/api/wallpaper_private.json
@@ -256,6 +256,13 @@
}
]
}
+ ],
+ "events": [
+ {
+ "name": "onWallpaperChangedBy3rdParty",
+ "type": "function",
+ "description": "This event is sent when the current wallpaper was set by a third party application."
+ }
]
}
]