#include "third_party/blink/renderer/core/html/forms/file_input_type.h"
#include "third_party/blink/public/platform/file_path_conversion.h"
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/events/keyboard_event.h"
#include "third_party/blink/renderer/core/fileapi/file.h"
#include "third_party/blink/renderer/core/fileapi/file_list.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/html/forms/form_controller.h"
#include "third_party/blink/renderer/core/html/forms/form_data.h"
#include "third_party/blink/renderer/core/html/forms/html_input_element.h"
#include "third_party/blink/renderer/core/html/shadow/shadow_element_names.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/input_type_names.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/core/keywords.h"
#include "third_party/blink/renderer/core/layout/layout_block_flow.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/drag_data.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/file_metadata.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/text/platform_locale.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
namespace blink {
FileChooserParams;
namespace {
Vector<String> CollectAcceptTypes(const HTMLInputElement& input) { … }
}
FileInputType::FileInputType(HTMLInputElement& element)
: … { … }
void FileInputType::Trace(Visitor* visitor) const { … }
InputTypeView* FileInputType::CreateView() { … }
template <typename ItemType, typename VectorType>
VectorType CreateFilesFrom(const FormControlState& state,
ItemType (*factory)(const FormControlState&,
wtf_size_t&)) { … }
template <typename ItemType, typename VectorType>
VectorType CreateFilesFrom(const FormControlState& state,
ExecutionContext* execution_context,
ItemType (*factory)(ExecutionContext*,
const FormControlState&,
wtf_size_t&)) { … }
Vector<String> FileInputType::FilesFromFormControlState(
const FormControlState& state) { … }
FormControlState FileInputType::SaveFormControlState() const { … }
void FileInputType::RestoreFormControlState(const FormControlState& state) { … }
void FileInputType::AppendToFormData(FormData& form_data) const { … }
bool FileInputType::ValueMissing(const String& value) const { … }
String FileInputType::ValueMissingText() const { … }
void FileInputType::HandleDOMActivateEvent(Event& event) { … }
void FileInputType::OpenPopupView() { … }
void FileInputType::AdjustStyle(ComputedStyleBuilder& builder) { … }
LayoutObject* FileInputType::CreateLayoutObject(const ComputedStyle&) const { … }
InputType::ValueMode FileInputType::GetValueMode() const { … }
bool FileInputType::CanSetStringValue() const { … }
FileList* FileInputType::Files() { … }
bool FileInputType::CanSetValue(const String& value) { … }
String FileInputType::ValueInFilenameValueMode() const { … }
void FileInputType::SetValue(const String&,
bool value_changed,
TextFieldEventBehavior,
TextControlSetValueSelection) { … }
FileList* FileInputType::CreateFileList(ExecutionContext& context,
const FileChooserFileInfoList& files,
const base::FilePath& base_dir) { … }
void FileInputType::CountUsage() { … }
void FileInputType::CreateShadowSubtree() { … }
HTMLInputElement* FileInputType::UploadButton() const { … }
Node* FileInputType::FileStatusElement() const { … }
void FileInputType::DisabledAttributeChanged() { … }
void FileInputType::MultipleAttributeChanged() { … }
bool FileInputType::SetFiles(FileList* files) { … }
void FileInputType::SetFilesAndDispatchEvents(FileList* files) { … }
void FileInputType::FilesChosen(FileChooserFileInfoList files,
const base::FilePath& base_dir) { … }
LocalFrame* FileInputType::FrameOrNull() const { … }
void FileInputType::SetFilesFromDirectory(const String& path) { … }
void FileInputType::SetFilesFromPaths(const Vector<String>& paths) { … }
bool FileInputType::ReceiveDroppedFiles(const DragData* drag_data) { … }
String FileInputType::DroppedFileSystemId() { … }
String FileInputType::DefaultToolTip(const InputTypeView&) const { … }
void FileInputType::CopyNonAttributeProperties(const HTMLInputElement& source) { … }
void FileInputType::HandleKeypressEvent(KeyboardEvent& event) { … }
void FileInputType::HandleKeyupEvent(KeyboardEvent& event) { … }
void FileInputType::WillOpenPopup() { … }
String FileInputType::FileStatusText() const { … }
void FileInputType::UpdateView() { … }
}