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

Unified Diff: chrome/browser/web_applications/update_shortcut_worker_win.h

Issue 213113005: Remove web_app_ui.[cc|h]. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/web_applications/update_shortcut_worker_win.h
diff --git a/chrome/browser/web_applications/update_shortcut_worker_win.h b/chrome/browser/web_applications/update_shortcut_worker_win.h
new file mode 100644
index 0000000000000000000000000000000000000000..fcfa000ad356acea3724fd0b1b7fd2f6d224dc06
--- /dev/null
+++ b/chrome/browser/web_applications/update_shortcut_worker_win.h
@@ -0,0 +1,89 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_WEB_APPLICATIONS_UPDATE_SHORTCUT_WORKER_WIN_H_
+#define CHROME_BROWSER_WEB_APPLICATIONS_UPDATE_SHORTCUT_WORKER_WIN_H_
+
+#include "chrome/browser/shell_integration.h"
+#include "chrome/browser/web_applications/web_app.h"
+#include "content/public/browser/notification_observer.h"
+#include "content/public/browser/notification_registrar.h"
+
+namespace content {
+class NotificationDetails;
+class NotificationSource;
+class WebContents;
+}
+
+namespace web_app {
+
+// UpdateShortcutWorker holds all context data needed for update shortcut.
+// It schedules a pre-update check to find all shortcuts that needs to be
+// updated. If there are such shortcuts, it schedules icon download and
+// update them when icons are downloaded. It observes TAB_CLOSING notification
+// and cancels all the work when the underlying tab is closing.
+class UpdateShortcutWorker : public content::NotificationObserver {
+ public:
+ explicit UpdateShortcutWorker(content::WebContents* web_contents);
+
+ void Run();
+
+ private:
+ // Overridden from content::NotificationObserver:
+ virtual void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details);
+
+ // Downloads icon via the FaviconTabHelper.
+ void DownloadIcon();
+
+ // Favicon download callback.
+ void DidDownloadFavicon(
+ int requested_size,
+ int id,
+ int http_status_code,
+ const GURL& image_url,
+ const std::vector<SkBitmap>& bitmaps,
+ const std::vector<gfx::Size>& original_bitmap_sizes);
+
+ // Checks if shortcuts exists on desktop, start menu and quick launch.
+ void CheckExistingShortcuts();
+
+ // Update shortcut files and icons.
+ void UpdateShortcuts();
+ void UpdateShortcutsOnFileThread();
+
+ // Callback after shortcuts are updated.
+ void OnShortcutsUpdated(bool);
+
+ // Deletes the worker on UI thread where it gets created.
+ void DeleteMe();
+ void DeleteMeOnUIThread();
+
+ content::NotificationRegistrar registrar_;
+
+ // Underlying WebContents whose shortcuts will be updated.
+ content::WebContents* web_contents_;
+
+ // Icons info from web_contents_'s web app data.
+ web_app::IconInfoList unprocessed_icons_;
+
+ // Cached shortcut data from the web_contents_.
+ ShellIntegration::ShortcutInfo shortcut_info_;
+
+ // Our copy of profile path.
+ base::FilePath profile_path_;
+
+ // File name of shortcut/ico file based on app title.
+ base::FilePath file_name_;
+
+ // Existing shortcuts.
+ std::vector<base::FilePath> shortcut_files_;
+
+ DISALLOW_COPY_AND_ASSIGN(UpdateShortcutWorker);
+};
+
+} // namespace web_app
+
+#endif // CHROME_BROWSER_WEB_APPLICATIONS_UPDATE_SHORTCUT_WORKER_WIN_H_
« no previous file with comments | « chrome/browser/ui/web_applications/web_app_ui.cc ('k') | chrome/browser/web_applications/update_shortcut_worker_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698