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

Unified Diff: chrome/browser/drive/drive_app_registry.h

Issue 1190203002: Move (most of) chrome/browser/drive into components/drive/service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing... Created 5 years, 5 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
« no previous file with comments | « chrome/browser/drive/drive_api_util_unittest.cc ('k') | chrome/browser/drive/drive_app_registry.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/drive/drive_app_registry.h
diff --git a/chrome/browser/drive/drive_app_registry.h b/chrome/browser/drive/drive_app_registry.h
deleted file mode 100644
index 1edad1f88b8859f4e50a341385deeb40a5ecbcdc..0000000000000000000000000000000000000000
--- a/chrome/browser/drive/drive_app_registry.h
+++ /dev/null
@@ -1,160 +0,0 @@
-// 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_DRIVE_DRIVE_APP_REGISTRY_H_
-#define CHROME_BROWSER_DRIVE_DRIVE_APP_REGISTRY_H_
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "base/callback_forward.h"
-#include "base/files/file_path.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/observer_list.h"
-#include "base/threading/thread_checker.h"
-#include "google_apis/drive/drive_api_error_codes.h"
-#include "url/gurl.h"
-
-namespace google_apis {
-class AppList;
-} // namespace google_apis
-
-namespace drive {
-
-class DriveAppRegistryObserver;
-class DriveServiceInterface;
-
-// Data structure that defines Drive app. See
-// https://chrome.google.com/webstore/category/collection/drive_apps for
-// Drive apps available on the webstore.
-struct DriveAppInfo {
- typedef std::vector<std::pair<int, GURL> > IconList;
-
- DriveAppInfo();
- DriveAppInfo(const std::string& app_id,
- const std::string& product_id,
- const IconList& app_icons,
- const IconList& document_icons,
- const std::string& app_name,
- const GURL& create_url,
- bool is_removable);
- ~DriveAppInfo();
-
- // Drive app id.
- std::string app_id;
- // Drive app's product id. This is different from app id that is used inside
- // Drive. Product id is an id for the app in webstore; hence, it can be used
- // for identifying the same app install as Chrome extension and as Drive app
- // at the same time.
- std::string product_id;
- // Drive application icon URLs for this app, paired with their size (length of
- // a side in pixels).
- IconList app_icons;
- // Drive document icon URLs for this app, paired with their size (length of
- // a side in pixels).
- IconList document_icons;
- // App name.
- std::string app_name;
- // URL for opening a new file in the app. Empty if the app does not support
- // new file creation.
- GURL create_url;
- // Returns if UninstallApp() is allowed for the app. Built-in apps have this
- // field set false.
- bool is_removable;
-};
-
-// Callback type for UninstallApp().
-typedef base::Callback<void(google_apis::DriveApiErrorCode)> UninstallCallback;
-
-// Keeps the track of installed drive applications in-memory.
-class DriveAppRegistry {
- public:
- explicit DriveAppRegistry(DriveServiceInterface* scheduler);
- ~DriveAppRegistry();
-
- // Returns a list of Drive app information for the |file_extension| with
- // |mime_type|.
- void GetAppsForFile(const base::FilePath::StringType& file_extension,
- const std::string& mime_type,
- std::vector<DriveAppInfo>* apps) const;
-
- // Returns the list of all Drive apps installed.
- void GetAppList(std::vector<DriveAppInfo>* apps) const;
-
- // Uninstalls the app specified by |app_id|. This method sends requests to the
- // remote server, and returns the result to |callback| asynchronously. When
- // succeeded, the callback receives HTTP_NO_CONTENT, and error code otherwise.
- // |callback| must not be null.
- void UninstallApp(const std::string& app_id,
- const UninstallCallback& callback);
-
- // Checks whether UinstallApp is supported. The feature is available only for
- // clients with whitelisted API keys (like Official Google Chrome build).
- static bool IsAppUninstallSupported();
-
- // Updates this registry by fetching the data from the server.
- void Update();
-
- // Updates this registry from the |app_list|.
- void UpdateFromAppList(const google_apis::AppList& app_list);
-
- void AddObserver(DriveAppRegistryObserver* observer);
- void RemoveObserver(DriveAppRegistryObserver* observer);
-
- private:
- // Part of Update(). Runs upon the completion of fetching the Drive apps
- // data from the server.
- void UpdateAfterGetAppList(google_apis::DriveApiErrorCode gdata_error,
- scoped_ptr<google_apis::AppList> app_list);
-
- // Part of UninstallApp(). Receives the response from the server.
- void OnAppUninstalled(const std::string& app_id,
- const UninstallCallback& callback,
- google_apis::DriveApiErrorCode error);
-
- // The class is expected to run on UI thread.
- base::ThreadChecker thread_checker_;
-
- // Map of application id to each app's info.
- std::map<std::string, DriveAppInfo> all_apps_;
-
- // Defines mapping between file content type selectors (extensions, MIME
- // types) and corresponding app.
- typedef std::multimap<std::string, std::string> DriveAppFileSelectorMap;
- DriveAppFileSelectorMap extension_map_;
- DriveAppFileSelectorMap mimetype_map_;
-
- DriveServiceInterface* drive_service_;
-
- bool is_updating_;
-
- base::ObserverList<DriveAppRegistryObserver> observers_;
-
- // Note: This should remain the last member so it'll be destroyed and
- // invalidate the weak pointers before any other members are destroyed.
- base::WeakPtrFactory<DriveAppRegistry> weak_ptr_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(DriveAppRegistry);
-};
-
-namespace util {
-
-// The preferred icon size, which should usually be used for FindPreferredIcon;
-const int kPreferredIconSize = 16;
-
-// Finds an icon in the list of icons. If unable to find an icon of the exact
-// size requested, returns one with the next larger size. If all icons are
-// smaller than the preferred size, we'll return the largest one available.
-// Icons do not have to be sorted by the icon size. If there are no icons in
-// the list, returns an empty URL.
-GURL FindPreferredIcon(const DriveAppInfo::IconList& icons,
- int preferred_size);
-
-} // namespace util
-
-} // namespace drive
-
-#endif // CHROME_BROWSER_DRIVE_DRIVE_APP_REGISTRY_H_
« no previous file with comments | « chrome/browser/drive/drive_api_util_unittest.cc ('k') | chrome/browser/drive/drive_app_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698