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/module/module.h" 6 7 #include <string> 8 9 #include "base/values.h" 10 #include "chrome/browser/extensions/extension_service.h" 11 #include "chrome/browser/extensions/extension_util.h" 12 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/common/extensions/manifest_url_handler.h" 14 #include "extensions/browser/extension_prefs.h" 15 #include "extensions/browser/extension_system.h" 16 17 namespace extensions { 18 19 namespace extension { 20 21 namespace { 22 23 // A preference for storing the extension's update URL data. If not empty, the 24 // the ExtensionUpdater will append a ap= parameter to the URL when checking if 25 // a new version of the extension is available. 26 const char kUpdateURLData[] = "update_url_data"; 27 28 } // namespace 29 GetUpdateURLData(const ExtensionPrefs * prefs,const std::string & extension_id)30 std::string GetUpdateURLData(const ExtensionPrefs* prefs, 31 const std::string& extension_id) { 32 std::string data; 33 prefs->ReadPrefAsString(extension_id, kUpdateURLData, &data); 34 return data; 35 } 36 37 } // namespace extension 38 RunSync()39 bool ExtensionSetUpdateUrlDataFunction::RunSync() { 40 std::string data; 41 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &data)); 42 43 if (ManifestURL::UpdatesFromGallery(extension())) { 44 return false; 45 } 46 47 ExtensionPrefs::Get(GetProfile())->UpdateExtensionPref( 48 extension_id(), extension::kUpdateURLData, new base::StringValue(data)); 49 return true; 50 } 51 RunSync()52 bool ExtensionIsAllowedIncognitoAccessFunction::RunSync() { 53 SetResult(new base::FundamentalValue( 54 util::IsIncognitoEnabled(extension_id(), GetProfile()))); 55 return true; 56 } 57 RunSync()58 bool ExtensionIsAllowedFileSchemeAccessFunction::RunSync() { 59 SetResult(new base::FundamentalValue( 60 util::AllowFileAccess(extension_id(), GetProfile()))); 61 return true; 62 } 63 64 } // namespace extensions 65