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/downloads_internal/downloads_internal_api.h" 6 7#include "chrome/browser/extensions/api/downloads/downloads_api.h" 8#include "chrome/common/extensions/api/downloads.h" 9#include "chrome/common/extensions/api/downloads_internal.h" 10 11namespace extensions { 12 13DownloadsInternalDetermineFilenameFunction:: 14 DownloadsInternalDetermineFilenameFunction() {} 15 16DownloadsInternalDetermineFilenameFunction:: 17 ~DownloadsInternalDetermineFilenameFunction() {} 18 19typedef extensions::api::downloads_internal::DetermineFilename::Params 20 DetermineFilenameParams; 21 22bool DownloadsInternalDetermineFilenameFunction::RunAsync() { 23 scoped_ptr<DetermineFilenameParams> params( 24 DetermineFilenameParams::Create(*args_)); 25 EXTENSION_FUNCTION_VALIDATE(params.get()); 26 base::FilePath::StringType filename; 27 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &filename)); 28 return ExtensionDownloadsEventRouter::DetermineFilename( 29 GetProfile(), 30 include_incognito(), 31 extension()->id(), 32 params->download_id, 33 base::FilePath(filename), 34 extensions::api::downloads::ParseFilenameConflictAction( 35 params->conflict_action), 36 &error_); 37} 38 39} // namespace extensions 40