OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 using namespace WebCore; | 80 using namespace WebCore; |
81 | 81 |
82 namespace WebKit { | 82 namespace WebKit { |
83 | 83 |
84 // Figure out the URL of a page or subframe. Returns |page_type| as the type, | 84 // Figure out the URL of a page or subframe. Returns |page_type| as the type, |
85 // which indicates page or subframe, or ContextNodeType::NONE if the URL could n
ot | 85 // which indicates page or subframe, or ContextNodeType::NONE if the URL could n
ot |
86 // be determined for some reason. | 86 // be determined for some reason. |
87 static WebURL urlFromFrame(Frame* frame) | 87 static WebURL urlFromFrame(Frame* frame) |
88 { | 88 { |
89 if (frame) { | 89 if (frame) { |
90 DocumentLoader* dl = frame->loader()->documentLoader(); | 90 DocumentLoader* dl = frame->loader().documentLoader(); |
91 if (dl) { | 91 if (dl) { |
92 WebDataSource* ds = WebDataSourceImpl::fromDocumentLoader(dl); | 92 WebDataSource* ds = WebDataSourceImpl::fromDocumentLoader(dl); |
93 if (ds) | 93 if (ds) |
94 return ds->hasUnreachableURL() ? ds->unreachableURL() : ds->requ
est().url(); | 94 return ds->hasUnreachableURL() ? ds->unreachableURL() : ds->requ
est().url(); |
95 } | 95 } |
96 } | 96 } |
97 return WebURL(); | 97 return WebURL(); |
98 } | 98 } |
99 | 99 |
100 // Helper function to determine whether text is a single word. | 100 // Helper function to determine whether text is a single word. |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 | 281 |
282 // If it's not a link, an image, a media element, or an image/media link, | 282 // If it's not a link, an image, a media element, or an image/media link, |
283 // show a selection menu or a more generic page menu. | 283 // show a selection menu or a more generic page menu. |
284 if (selectedFrame->document()->loader()) | 284 if (selectedFrame->document()->loader()) |
285 data.frameEncoding = selectedFrame->document()->encodingName(); | 285 data.frameEncoding = selectedFrame->document()->encodingName(); |
286 | 286 |
287 // Send the frame and page URLs in any case. | 287 // Send the frame and page URLs in any case. |
288 data.pageURL = urlFromFrame(m_webView->mainFrameImpl()->frame()); | 288 data.pageURL = urlFromFrame(m_webView->mainFrameImpl()->frame()); |
289 if (selectedFrame != m_webView->mainFrameImpl()->frame()) { | 289 if (selectedFrame != m_webView->mainFrameImpl()->frame()) { |
290 data.frameURL = urlFromFrame(selectedFrame); | 290 data.frameURL = urlFromFrame(selectedFrame); |
291 RefPtr<HistoryItem> historyItem = selectedFrame->loader()->history()->cu
rrentItem(); | 291 RefPtr<HistoryItem> historyItem = selectedFrame->loader().history()->cur
rentItem(); |
292 if (historyItem) | 292 if (historyItem) |
293 data.frameHistoryItem = WebHistoryItem(historyItem); | 293 data.frameHistoryItem = WebHistoryItem(historyItem); |
294 } | 294 } |
295 | 295 |
296 if (r.isSelected()) { | 296 if (r.isSelected()) { |
297 if (!r.innerNonSharedNode()->hasTagName(HTMLNames::inputTag) || !toHTMLI
nputElement(r.innerNonSharedNode())->isPasswordField()) | 297 if (!r.innerNonSharedNode()->hasTagName(HTMLNames::inputTag) || !toHTMLI
nputElement(r.innerNonSharedNode())->isPasswordField()) |
298 data.selectedText = selectedFrame->selectedText().stripWhiteSpace(); | 298 data.selectedText = selectedFrame->selectedText().stripWhiteSpace(); |
299 } | 299 } |
300 | 300 |
301 if (r.isContentEditable()) { | 301 if (r.isContentEditable()) { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 } | 347 } |
348 | 348 |
349 #if OS(MACOSX) | 349 #if OS(MACOSX) |
350 if (selectedFrame->editor().selectionHasStyle(CSSPropertyDirection, "ltr") !
= FalseTriState) | 350 if (selectedFrame->editor().selectionHasStyle(CSSPropertyDirection, "ltr") !
= FalseTriState) |
351 data.writingDirectionLeftToRight |= WebContextMenuData::CheckableMenuIte
mChecked; | 351 data.writingDirectionLeftToRight |= WebContextMenuData::CheckableMenuIte
mChecked; |
352 if (selectedFrame->editor().selectionHasStyle(CSSPropertyDirection, "rtl") !
= FalseTriState) | 352 if (selectedFrame->editor().selectionHasStyle(CSSPropertyDirection, "rtl") !
= FalseTriState) |
353 data.writingDirectionRightToLeft |= WebContextMenuData::CheckableMenuIte
mChecked; | 353 data.writingDirectionRightToLeft |= WebContextMenuData::CheckableMenuIte
mChecked; |
354 #endif // OS(MACOSX) | 354 #endif // OS(MACOSX) |
355 | 355 |
356 // Now retrieve the security info. | 356 // Now retrieve the security info. |
357 DocumentLoader* dl = selectedFrame->loader()->documentLoader(); | 357 DocumentLoader* dl = selectedFrame->loader().documentLoader(); |
358 WebDataSource* ds = WebDataSourceImpl::fromDocumentLoader(dl); | 358 WebDataSource* ds = WebDataSourceImpl::fromDocumentLoader(dl); |
359 if (ds) | 359 if (ds) |
360 data.securityInfo = ds->response().securityInfo(); | 360 data.securityInfo = ds->response().securityInfo(); |
361 | 361 |
362 data.referrerPolicy = static_cast<WebReferrerPolicy>(selectedFrame->document
()->referrerPolicy()); | 362 data.referrerPolicy = static_cast<WebReferrerPolicy>(selectedFrame->document
()->referrerPolicy()); |
363 | 363 |
364 // Filter out custom menu elements and add them into the data. | 364 // Filter out custom menu elements and add them into the data. |
365 populateCustomMenuItems(defaultMenu, &data); | 365 populateCustomMenuItems(defaultMenu, &data); |
366 | 366 |
367 data.node = r.innerNonSharedNode(); | 367 data.node = r.innerNonSharedNode(); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 outputItems[i] = subItems[i]; | 413 outputItems[i] = subItems[i]; |
414 subMenuItems.swap(outputItems); | 414 subMenuItems.swap(outputItems); |
415 } | 415 } |
416 | 416 |
417 void ContextMenuClientImpl::populateCustomMenuItems(const WebCore::ContextMenu*
defaultMenu, WebContextMenuData* data) | 417 void ContextMenuClientImpl::populateCustomMenuItems(const WebCore::ContextMenu*
defaultMenu, WebContextMenuData* data) |
418 { | 418 { |
419 populateSubMenuItems(defaultMenu->items(), data->customItems); | 419 populateSubMenuItems(defaultMenu->items(), data->customItems); |
420 } | 420 } |
421 | 421 |
422 } // namespace WebKit | 422 } // namespace WebKit |
OLD | NEW |