| // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/renderer/context_menu_params_builder.h" |
| |
| #include <stddef.h> |
| |
| #include "content/public/common/context_menu_params.h" |
| #include "content/public/renderer/content_renderer_client.h" |
| #include "content/renderer/history_serialization.h" |
| #include "content/renderer/menu_item_builder.h" |
| |
| namespace content { |
| |
| // static |
| ContextMenuParams ContextMenuParamsBuilder::Build( |
| const blink::WebContextMenuData& data) { |
| ContextMenuParams params; |
| params.media_type = data.media_type; |
| params.x = data.mouse_position.x; |
| params.y = data.mouse_position.y; |
| params.link_url = data.link_url; |
| params.unfiltered_link_url = data.link_url; |
| params.src_url = data.src_url; |
| params.has_image_contents = data.has_image_contents; |
| params.page_url = data.page_url; |
| params.frame_url = data.frame_url; |
| params.media_flags = data.media_flags; |
| params.selection_text = data.selected_text.Utf16(); |
| params.selection_start_offset = data.selection_start_offset; |
| params.title_text = data.title_text.Utf16(); |
| params.alt_text = data.alt_text.Utf16(); |
| params.misspelled_word = data.misspelled_word.Utf16(); |
| params.spellcheck_enabled = data.is_spell_checking_enabled; |
| params.is_editable = data.is_editable; |
| params.writing_direction_default = data.writing_direction_default; |
| params.writing_direction_left_to_right = data.writing_direction_left_to_right; |
| params.writing_direction_right_to_left = data.writing_direction_right_to_left; |
| params.edit_flags = data.edit_flags; |
| params.frame_charset = data.frame_encoding.Utf8(); |
| params.referrer_policy = data.referrer_policy; |
| params.suggested_filename = data.suggested_filename.Utf16(); |
| params.input_field_type = data.input_field_type; |
| |
| for (size_t i = 0; i < data.dictionary_suggestions.size(); ++i) |
| params.dictionary_suggestions.push_back( |
| data.dictionary_suggestions[i].Utf16()); |
| |
| params.custom_context.is_pepper_menu = false; |
| for (size_t i = 0; i < data.custom_items.size(); ++i) |
| params.custom_items.push_back(MenuItemBuilder::Build(data.custom_items[i])); |
| |
| params.link_text = data.link_text.Utf16(); |
| params.source_type = static_cast<ui::MenuSourceType>(data.source_type); |
| |
| return params; |
| } |
| |
| } // namespace content |