| 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_
|
|
|