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 17namespace extensions { 18 19namespace extension { 20 21namespace { 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. 26const char kUpdateURLData[] = "update_url_data"; 27 28} // namespace 29 30std::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 39bool 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 52bool ExtensionIsAllowedIncognitoAccessFunction::RunSync() { 53 SetResult(new base::FundamentalValue( 54 util::IsIncognitoEnabled(extension_id(), GetProfile()))); 55 return true; 56} 57 58bool ExtensionIsAllowedFileSchemeAccessFunction::RunSync() { 59 SetResult(new base::FundamentalValue( 60 util::AllowFileAccess(extension_id(), GetProfile()))); 61 return true; 62} 63 64} // namespace extensions 65