Diff
Modified: trunk/Source/WebCore/ChangeLog (97809 => 97810)
--- trunk/Source/WebCore/ChangeLog 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebCore/ChangeLog 2011-10-18 23:20:08 UTC (rev 97810)
@@ -1,3 +1,17 @@
+2011-10-18 Alexey Proskuryakov <[email protected]>
+
+ Expose PDF information in hit test result
+ https://bugs.webkit.org/show_bug.cgi?id=70353
+
+ Reviewed by Sam Weinig.
+
+ * WebCore.exp.in:
+ * rendering/HitTestResult.cpp:
+ (WebCore::HitTestResult::absolutePDFURL):
+ * rendering/HitTestResult.h:
+ Added HitTestResult::absolutePDFURL(). It will contain a URL when over a PDF object or embed;
+ not sure if we want this for PDFImageDocuments.
+
2011-10-18 Adrienne Walker <[email protected]>
[chromium] Preserve offscreen tiles instead of immediately recycling them
Modified: trunk/Source/WebCore/WebCore.exp.in (97809 => 97810)
--- trunk/Source/WebCore/WebCore.exp.in 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebCore/WebCore.exp.in 2011-10-18 23:20:08 UTC (rev 97810)
@@ -1174,6 +1174,7 @@
__ZNK7WebCore13HitTestResult10isSelectedEv
__ZNK7WebCore13HitTestResult11targetFrameEv
__ZNK7WebCore13HitTestResult11textContentEv
+__ZNK7WebCore13HitTestResult14absolutePDFURLEv
__ZNK7WebCore13HitTestResult15absoluteLinkURLEv
__ZNK7WebCore13HitTestResult15spellingToolTipERNS_13TextDirectionE
__ZNK7WebCore13HitTestResult16absoluteImageURLEv
Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (97809 => 97810)
--- trunk/Source/WebCore/rendering/HitTestResult.cpp 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp 2011-10-18 23:20:08 UTC (rev 97810)
@@ -32,6 +32,7 @@
#include "HTMLMediaElement.h"
#include "HTMLNames.h"
#include "HTMLParserIdioms.h"
+#include "HTMLPlugInImageElement.h"
#include "RenderBlock.h"
#include "RenderImage.h"
#include "RenderInline.h"
@@ -342,6 +343,24 @@
return m_innerNonSharedNode->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(urlString));
}
+KURL HitTestResult::absolutePDFURL() const
+{
+ if (!(m_innerNonSharedNode && m_innerNonSharedNode->document()))
+ return KURL();
+
+ if (!m_innerNonSharedNode->hasTagName(embedTag) && !m_innerNonSharedNode->hasTagName(objectTag))
+ return KURL();
+
+ HTMLPlugInImageElement* element = static_cast<HTMLPlugInImageElement*>(m_innerNonSharedNode.get());
+ KURL url = ""
+ if (!url.isValid())
+ return KURL();
+
+ if (element->serviceType() == "application/pdf" || (element->serviceType().isEmpty() && url.path().lower().endsWith(".pdf")))
+ return url;
+ returrbr n KURL();
+}
+
KURL HitTestResult::absoluteMediaURL() const
{
#if ENABLE(VIDEO)
Modified: trunk/Source/WebCore/rendering/HitTestResult.h (97809 => 97810)
--- trunk/Source/WebCore/rendering/HitTestResult.h 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebCore/rendering/HitTestResult.h 2011-10-18 23:20:08 UTC (rev 97810)
@@ -85,6 +85,7 @@
Image* image() const;
IntRect imageRect() const;
KURL absoluteImageURL() const;
+ KURL absolutePDFURL() const;
KURL absoluteMediaURL() const;
KURL absoluteLinkURL() const;
String textContent() const;
Modified: trunk/Source/WebKit2/ChangeLog (97809 => 97810)
--- trunk/Source/WebKit2/ChangeLog 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/ChangeLog 2011-10-18 23:20:08 UTC (rev 97810)
@@ -1,3 +1,28 @@
+2011-10-18 Alexey Proskuryakov <[email protected]>
+
+ Expose PDF information in hit test result
+ https://bugs.webkit.org/show_bug.cgi?id=70353
+
+ Reviewed by Sam Weinig.
+
+ * Shared/WebHitTestResult.cpp:
+ (WebKit::WebHitTestResult::Data::encode):
+ (WebKit::WebHitTestResult::Data::decode):
+ * Shared/WebHitTestResult.h:
+ (WebKit::WebHitTestResult::absolutePDFURL):
+ * UIProcess/API/C/WKHitTestResult.cpp:
+ (WKHitTestResultCopyAbsolutePDFURL):
+ * UIProcess/API/C/WKHitTestResult.h:
+ * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
+ (WKBundleHitTestResultCopyAbsolutePDFURL):
+ * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
+ * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
+ (WebKit::InjectedBundleHitTestResult::absolutePDFURL):
+ * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::mouseDidMoveOverElement):
+ Pass through PDF URL from hit testing to injected bundle client.
+
2011-10-18 Enrica Casucci <[email protected]>
Crash in WebProcess at com.apple.AppKit: -[NSFilePromiseDragSource draggedImage:endedAt:operation:] + 101
Modified: trunk/Source/WebKit2/Shared/WebHitTestResult.cpp (97809 => 97810)
--- trunk/Source/WebKit2/Shared/WebHitTestResult.cpp 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/Shared/WebHitTestResult.cpp 2011-10-18 23:20:08 UTC (rev 97810)
@@ -37,6 +37,7 @@
void WebHitTestResult::Data::encode(CoreIPC::ArgumentEncoder* encoder) const
{
encoder->encode(absoluteImageURL);
+ encoder->encode(absolutePDFURL);
encoder->encode(absoluteLinkURL);
encoder->encode(absoluteMediaURL);
encoder->encode(linkLabel);
@@ -46,6 +47,7 @@
bool WebHitTestResult::Data::decode(CoreIPC::ArgumentDecoder* decoder, WebHitTestResult::Data& hitTestResultData)
{
if (!decoder->decode(hitTestResultData.absoluteImageURL)
+ || !decoder->decode(hitTestResultData.absolutePDFURL)
|| !decoder->decode(hitTestResultData.absoluteLinkURL)
|| !decoder->decode(hitTestResultData.absoluteMediaURL)
|| !decoder->decode(hitTestResultData.linkLabel)
Modified: trunk/Source/WebKit2/Shared/WebHitTestResult.h (97809 => 97810)
--- trunk/Source/WebKit2/Shared/WebHitTestResult.h 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/Shared/WebHitTestResult.h 2011-10-18 23:20:08 UTC (rev 97810)
@@ -43,6 +43,7 @@
struct Data {
String absoluteImageURL;
+ String absolutePDFURL;
String absoluteLinkURL;
String absoluteMediaURL;
String linkLabel;
@@ -55,6 +56,7 @@
static PassRefPtr<WebHitTestResult> create(const WebHitTestResult::Data&);
String absoluteImageURL() const { return m_data.absoluteImageURL; }
+ String absolutePDFURL() const { return m_data.absolutePDFURL; }
String absoluteLinkURL() const { return m_data.absoluteLinkURL; }
String absoluteMediaURL() const { return m_data.absoluteMediaURL; }
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKHitTestResult.cpp (97809 => 97810)
--- trunk/Source/WebKit2/UIProcess/API/C/WKHitTestResult.cpp 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKHitTestResult.cpp 2011-10-18 23:20:08 UTC (rev 97810)
@@ -42,6 +42,11 @@
return toCopiedURLAPI(toImpl(hitTestResultRef)->absoluteImageURL());
}
+WKURLRef WKHitTestResultCopyAbsolutePDFURL(WKHitTestResultRef hitTestResultRef)
+{
+ return toCopiedURLAPI(toImpl(hitTestResultRef)->absolutePDFURL());
+}
+
WKURLRef WKHitTestResultCopyAbsoluteLinkURL(WKHitTestResultRef hitTestResultRef)
{
return toCopiedURLAPI(toImpl(hitTestResultRef)->absoluteLinkURL());
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKHitTestResult.h (97809 => 97810)
--- trunk/Source/WebKit2/UIProcess/API/C/WKHitTestResult.h 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKHitTestResult.h 2011-10-18 23:20:08 UTC (rev 97810)
@@ -36,6 +36,7 @@
WK_EXPORT WKTypeID WKHitTestResultGetTypeID();
WK_EXPORT WKURLRef WKHitTestResultCopyAbsoluteImageURL(WKHitTestResultRef hitTestResult);
+WK_EXPORT WKURLRef WKHitTestResultCopyAbsolutePDFURL(WKHitTestResultRef hitTestResult);
WK_EXPORT WKURLRef WKHitTestResultCopyAbsoluteLinkURL(WKHitTestResultRef hitTestResult);
WK_EXPORT WKURLRef WKHitTestResultCopyAbsoluteMediaURL(WKHitTestResultRef hitTestResult);
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp (97809 => 97810)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp 2011-10-18 23:20:08 UTC (rev 97810)
@@ -59,6 +59,11 @@
return toCopiedURLAPI(toImpl(hitTestResultRef)->absoluteImageURL());
}
+WKURLRef WKBundleHitTestResultCopyAbsolutePDFURL(WKBundleHitTestResultRef hitTestResultRef)
+{
+ return toCopiedURLAPI(toImpl(hitTestResultRef)->absolutePDFURL());
+}
+
WKURLRef WKBundleHitTestResultCopyAbsoluteLinkURL(WKBundleHitTestResultRef hitTestResultRef)
{
return toCopiedURLAPI(toImpl(hitTestResultRef)->absoluteLinkURL());
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h (97809 => 97810)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h 2011-10-18 23:20:08 UTC (rev 97810)
@@ -41,6 +41,7 @@
WK_EXPORT WKBundleFrameRef WKBundleHitTestResultGetTargetFrame(WKBundleHitTestResultRef hitTestResult);
WK_EXPORT WKURLRef WKBundleHitTestResultCopyAbsoluteImageURL(WKBundleHitTestResultRef hitTestResult);
+WK_EXPORT WKURLRef WKBundleHitTestResultCopyAbsolutePDFURL(WKBundleHitTestResultRef hitTestResult);
WK_EXPORT WKURLRef WKBundleHitTestResultCopyAbsoluteLinkURL(WKBundleHitTestResultRef hitTestResult);
WK_EXPORT WKURLRef WKBundleHitTestResultCopyAbsoluteMediaURL(WKBundleHitTestResultRef hitTestResult);
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp (97809 => 97810)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp 2011-10-18 23:20:08 UTC (rev 97810)
@@ -81,6 +81,11 @@
return m_hitTestResult.absoluteImageURL().string();
}
+String InjectedBundleHitTestResult::absolutePDFURL() const
+{
+ return m_hitTestResult.absolutePDFURL().string();
+}
+
String InjectedBundleHitTestResult::absoluteLinkURL() const
{
return m_hitTestResult.absoluteLinkURL().string();
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h (97809 => 97810)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h 2011-10-18 23:20:08 UTC (rev 97810)
@@ -50,6 +50,7 @@
WebFrame* targetFrame() const;
String absoluteImageURL() const;
+ String absolutePDFURL() const;
String absoluteLinkURL() const;
String absoluteMediaURL() const;
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (97809 => 97810)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2011-10-18 23:19:15 UTC (rev 97809)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2011-10-18 23:20:08 UTC (rev 97810)
@@ -498,6 +498,7 @@
WebHitTestResult::Data webHitTestResultData;
webHitTestResultData.absoluteImageURL = hitTestResult.absoluteImageURL().string();
+ webHitTestResultData.absolutePDFURL = hitTestResult.absolutePDFURL().string();
webHitTestResultData.absoluteLinkURL = hitTestResult.absoluteLinkURL().string();
webHitTestResultData.absoluteMediaURL = hitTestResult.absoluteMediaURL().string();
webHitTestResultData.linkLabel = hitTestResult.textContent();