Home | History | Annotate | Download | only in terminal
      1 // Copyright (c) 2012 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 #include "chrome/browser/extensions/api/terminal/terminal_extension_helper.h"
      6 
      7 #include "chrome/browser/extensions/extension_service.h"
      8 #include "chrome/browser/profiles/profile.h"
      9 #include "chrome/common/extensions/extension_constants.h"
     10 #include "extensions/common/extension.h"
     11 
     12 namespace {
     13 
     14 const char kCroshExtensionEntryPoint[] = "/html/crosh.html";
     15 
     16 const extensions::Extension* GetTerminalExtension(Profile* profile) {
     17   // Search order for terminal extensions.
     18   // We prefer hterm-dev, then hterm, then the builtin crosh extension.
     19   static const char* kPossibleAppIds[] = {
     20     extension_misc::kHTermDevAppId,
     21     extension_misc::kHTermAppId,
     22     extension_misc::kCroshBuiltinAppId,
     23   };
     24 
     25   // The hterm-dev should be first in the list.
     26   DCHECK_EQ(kPossibleAppIds[0], extension_misc::kHTermDevAppId);
     27 
     28   ExtensionService* service = profile->GetExtensionService();
     29   for (size_t x = 0; x < arraysize(kPossibleAppIds); ++x) {
     30     const extensions::Extension* extension = service->GetExtensionById(
     31         kPossibleAppIds[x], false);
     32     if (extension)
     33       return extension;
     34   }
     35 
     36   return NULL;
     37 }
     38 
     39 }  // namespace
     40 
     41 namespace extensions {
     42 
     43 GURL TerminalExtensionHelper::GetCroshExtensionURL(Profile* profile) {
     44   const extensions::Extension* extension = GetTerminalExtension(profile);
     45   if (!extension)
     46     return GURL();
     47 
     48   return extension->GetResourceURL(kCroshExtensionEntryPoint);
     49 }
     50 
     51 }  // namespace extensions
     52