Home | History | Annotate | Download | only in extensions
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_UTILITY_EXTENSIONS_EXTENSIONS_HANDLER_H_
      6 #define CHROME_UTILITY_EXTENSIONS_EXTENSIONS_HANDLER_H_
      7 
      8 #include "base/base64.h"
      9 #include "base/compiler_specific.h"
     10 #include "base/json/json_reader.h"
     11 #include "base/macros.h"
     12 #include "chrome/common/media_galleries/picasa_types.h"
     13 #include "chrome/utility/utility_message_handler.h"
     14 
     15 #if !defined(ENABLE_EXTENSIONS)
     16 #error "Extensions must be enabled"
     17 #endif
     18 
     19 namespace metadata {
     20 class MediaMetadataParser;
     21 }
     22 
     23 namespace extensions {
     24 
     25 // Dispatches IPCs for Chrome extensions utility messages.
     26 class ExtensionsHandler : public UtilityMessageHandler {
     27  public:
     28   ExtensionsHandler();
     29   virtual ~ExtensionsHandler();
     30 
     31   static void PreSandboxStartup();
     32   static void UtilityThreadStarted();
     33 
     34   // IPC::Listener:
     35   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
     36 
     37  private:
     38   // IPC message handlers.
     39   void OnUnpackExtension(const base::FilePath& extension_path,
     40                          const std::string& extension_id,
     41                          int location, int creation_flags);
     42   void OnUnzipToDir(const base::FilePath& zip_path, const base::FilePath& dir);
     43   void OnParseUpdateManifest(const std::string& xml);
     44   void OnDecodeImageBase64(const std::string& encoded_data);
     45   void OnParseJSON(const std::string& json);
     46   void OnCheckMediaFile(int64 milliseconds_of_decoding,
     47                         const IPC::PlatformFileForTransit& media_file);
     48 
     49 #if defined(OS_WIN)
     50   void OnParseITunesPrefXml(const std::string& itunes_xml_data);
     51 #endif  // defined(OS_WIN)
     52 
     53 #if defined(OS_MACOSX)
     54   void OnParseIPhotoLibraryXmlFile(
     55       const IPC::PlatformFileForTransit& iphoto_library_file);
     56 #endif  // defined(OS_MACOSX)
     57 
     58 #if defined(OS_WIN) || defined(OS_MACOSX)
     59   void OnParseITunesLibraryXmlFile(
     60       const IPC::PlatformFileForTransit& itunes_library_file);
     61 
     62   void OnParsePicasaPMPDatabase(
     63       const picasa::AlbumTableFilesForTransit& album_table_files);
     64 
     65   void OnIndexPicasaAlbumsContents(
     66       const picasa::AlbumUIDSet& album_uids,
     67       const std::vector<picasa::FolderINIContents>& folders_inis);
     68 #endif  // defined(OS_WIN) || defined(OS_MACOSX)
     69 
     70 #if defined(OS_WIN)
     71   void OnGetWiFiCredentials(const std::string& network_guid);
     72 #endif  // defined(OS_WIN)
     73 
     74   DISALLOW_COPY_AND_ASSIGN(ExtensionsHandler);
     75 };
     76 
     77 }  // namespace extensions
     78 
     79 #endif  // CHROME_UTILITY_EXTENSIONS_EXTENSIONS_HANDLER_H_
     80