Diff
Modified: trunk/Source/WebCore/ChangeLog (151698 => 151699)
--- trunk/Source/WebCore/ChangeLog 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebCore/ChangeLog 2013-06-18 21:39:33 UTC (rev 151699)
@@ -1,3 +1,14 @@
+2013-06-18 Ruth Fong <[email protected]>
+
+ Expose a getMediaType method in WebKit
+ https://bugs.webkit.org/show_bug.cgi?id=117667
+
+ Reviewed by Brady Eidson.
+
+ * WebCore.exp.in: Updated to add a symbol for
+ HitTestResult::mediaIsVideo method
+ and alphabetize the list of exposed methods.
+
2013-06-18 Ryosuke Niwa <[email protected]>
Remove unused bool argument from ReplacementFragment's constructor
Modified: trunk/Source/WebCore/WebCore.exp.in (151698 => 151699)
--- trunk/Source/WebCore/WebCore.exp.in 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebCore/WebCore.exp.in 2013-06-18 21:39:33 UTC (rev 151699)
@@ -1370,16 +1370,17 @@
__ZNK7WebCore13HitTestResult11targetFrameEv
__ZNK7WebCore13HitTestResult11textContentEv
__ZNK7WebCore13HitTestResult12innerElementEv
+__ZNK7WebCore13HitTestResult12mediaIsVideoEv
__ZNK7WebCore13HitTestResult14absolutePDFURLEv
__ZNK7WebCore13HitTestResult14innerNodeFrameEv
__ZNK7WebCore13HitTestResult15absoluteLinkURLEv
__ZNK7WebCore13HitTestResult15spellingToolTipERNS_13TextDirectionE
__ZNK7WebCore13HitTestResult16absoluteImageURLEv
__ZNK7WebCore13HitTestResult16absoluteMediaURLEv
-__ZNK7WebCore13HitTestResult19mediaIsInFullscreenEv
__ZNK7WebCore13HitTestResult16altDisplayStringEv
__ZNK7WebCore13HitTestResult17isContentEditableEv
__ZNK7WebCore13HitTestResult18titleDisplayStringEv
+__ZNK7WebCore13HitTestResult19mediaIsInFullscreenEv
__ZNK7WebCore13HitTestResult19rectBasedTestResultEv
__ZNK7WebCore13HitTestResult5imageEv
__ZNK7WebCore13HitTestResult5titleERNS_13TextDirectionE
Modified: trunk/Source/WebKit2/ChangeLog (151698 => 151699)
--- trunk/Source/WebKit2/ChangeLog 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/ChangeLog 2013-06-18 21:39:33 UTC (rev 151699)
@@ -1,3 +1,38 @@
+2013-06-18 Ruth Fong <[email protected]>
+
+ Expose a getMediaType method in WebKit
+ https://bugs.webkit.org/show_bug.cgi?id=117667
+
+ Reviewed by Brady Eidson.
+
+ * GNUmakefile.list.am:
+ * Target.pri:
+ Updated to include the added header file InjectedBundleHitTestResultMediaType.h
+
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit::toBundleHitTestResultMediaType):
+ (WebKit::toAPI):
+ Added methods to convert between BundleHitTestResultMediaType
+ and WKBundleHitTestResultMediaType.
+
+ * WebKit2.xcodeproj/project.pbxproj: Updated to include
+ InjectedBundleHitTestResultMediaType.h in the WebKit2 project.
+
+ * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
+ (WKBundleHitTestResultGetMediaType): Exposes the method getMediaType and
+ hooks into InjectedBundleHitTestResult::getMediaType.
+
+ * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
+
+ * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
+ (WebKit::InjectedBundleHitTestResult::getMediaType): Added to return
+ what type, if any, a media element is.
+
+ * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
+
+ * WebProcess/InjectedBundle/InjectedBundleHitTestResultMediaType.h: Added
+ to contain new BundleHitTestResultMediaType enums.
+
2013-06-18 Roger Fong <[email protected]>
Re-implement WebFrameNetworkingContext.
Modified: trunk/Source/WebKit2/GNUmakefile.list.am (151698 => 151699)
--- trunk/Source/WebKit2/GNUmakefile.list.am 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/GNUmakefile.list.am 2013-06-18 21:39:33 UTC (rev 151699)
@@ -1073,6 +1073,7 @@
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.h \
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp \
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h \
+ Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResultMediaType.h \
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp \
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleNavigationAction.h \
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp \
Modified: trunk/Source/WebKit2/Target.pri (151698 => 151699)
--- trunk/Source/WebKit2/Target.pri 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/Target.pri 2013-06-18 21:39:33 UTC (rev 151699)
@@ -310,6 +310,7 @@
WebProcess/InjectedBundle/InjectedBundleClient.h \
WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.h \
WebProcess/InjectedBundle/InjectedBundleHitTestResult.h \
+ WebProcess/InjectedBundle/InjectedBundleHitTestResultMediaType.h \
WebProcess/InjectedBundle/InjectedBundleNavigationAction.h \
WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h \
WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h \
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h (151698 => 151699)
--- trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h 2013-06-18 21:39:33 UTC (rev 151699)
@@ -30,9 +30,11 @@
#include "CacheModel.h"
#include "FontSmoothingLevel.h"
#include "HTTPCookieAcceptPolicy.h"
+#include "InjectedBundleHitTestResultMediaType.h"
#include "PluginModuleInfo.h"
#include "ProcessModel.h"
#include "ResourceCachesToClear.h"
+#include "WKBundleHitTestResult.h"
#include "WKContext.h"
#include "WKCookieManager.h"
#include "WKCredentialTypes.h"
@@ -103,6 +105,7 @@
WK_ADD_API_MAPPING(WKBackForwardListRef, WebBackForwardList)
WK_ADD_API_MAPPING(WKBatteryManagerRef, WebBatteryManagerProxy)
WK_ADD_API_MAPPING(WKBatteryStatusRef, WebBatteryStatus)
+WK_ADD_API_MAPPING(WKBundleHitTestResultMediaType, BundleHitTestResultMediaType)
WK_ADD_API_MAPPING(WKResourceCacheManagerRef, WebResourceCacheManagerProxy)
WK_ADD_API_MAPPING(WKColorPickerResultListenerRef, WebColorPickerResultListenerProxy)
WK_ADD_API_MAPPING(WKContextRef, WebContext)
@@ -144,6 +147,36 @@
/* Enum conversions */
+inline BundleHitTestResultMediaType toBundleHitTestResultMediaType(WKBundleHitTestResultMediaType wkMediaType)
+{
+ switch (wkMediaType) {
+ case kWKBundleHitTestResultMediaTypeNone:
+ return BundleHitTestResultMediaTypeNone;
+ case kWKBundleHitTestResultMediaTypeAudio:
+ return BundleHitTestResultMediaTypeAudio;
+ case kWKBundleHitTestResultMediaTypeVideo:
+ return BundleHitTestResultMediaTypeVideo;
+ }
+
+ ASSERT_NOT_REACHED();
+ return BundleHitTestResultMediaTypeNone;
+}
+
+inline WKBundleHitTestResultMediaType toAPI(BundleHitTestResultMediaType mediaType)
+{
+ switch (mediaType) {
+ case BundleHitTestResultMediaTypeNone:
+ return kWKBundleHitTestResultMediaTypeNone;
+ case BundleHitTestResultMediaTypeAudio:
+ return kWKBundleHitTestResultMediaTypeAudio;
+ case BundleHitTestResultMediaTypeVideo:
+ return kWKBundleHitTestResultMediaTypeVideo;
+ }
+
+ ASSERT_NOT_REACHED();
+ return kWKBundleHitTestResultMediaTypeNone;
+}
+
inline CacheModel toCacheModel(WKCacheModel wkCacheModel)
{
switch (wkCacheModel) {
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (151698 => 151699)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2013-06-18 21:39:33 UTC (rev 151699)
@@ -598,6 +598,7 @@
7CF47FFB17275C57008ACB91 /* PageBanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CF47FF917275C57008ACB91 /* PageBanner.h */; };
7CF47FFE17276AE3008ACB91 /* WKBundlePageBannerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7CF47FFC17276AE3008ACB91 /* WKBundlePageBannerMac.mm */; };
7CF47FFF17276AE3008ACB91 /* WKBundlePageBannerMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CF47FFD17276AE3008ACB91 /* WKBundlePageBannerMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 84477853176FCC0800CDC7BB /* InjectedBundleHitTestResultMediaType.h in Headers */ = {isa = PBXBuildFile; fileRef = 84477851176FCAC100CDC7BB /* InjectedBundleHitTestResultMediaType.h */; };
8CFECE941490F140002AAA32 /* EditorState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CFECE931490F140002AAA32 /* EditorState.cpp */; };
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
909854EC12BC4E17000AD080 /* WebMemorySampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 905620E812BC248B000799B6 /* WebMemorySampler.cpp */; };
@@ -2085,6 +2086,7 @@
7CF47FF917275C57008ACB91 /* PageBanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageBanner.h; sourceTree = "<group>"; };
7CF47FFC17276AE3008ACB91 /* WKBundlePageBannerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKBundlePageBannerMac.mm; sourceTree = "<group>"; };
7CF47FFD17276AE3008ACB91 /* WKBundlePageBannerMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePageBannerMac.h; sourceTree = "<group>"; };
+ 84477851176FCAC100CDC7BB /* InjectedBundleHitTestResultMediaType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleHitTestResultMediaType.h; sourceTree = "<group>"; };
8CFECE931490F140002AAA32 /* EditorState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditorState.cpp; sourceTree = "<group>"; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8DC2EF5B0486A6940098B216 /* WebKit2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebKit2.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -4426,6 +4428,7 @@
BC14DF76120B5B7900826C0C /* InjectedBundleScriptWorld.cpp */,
BC14DF75120B5B7900826C0C /* InjectedBundleScriptWorld.h */,
BCB0B0DD12305A8C00B1341E /* InjectedBundleUserMessageCoders.h */,
+ 84477851176FCAC100CDC7BB /* InjectedBundleHitTestResultMediaType.h */,
);
path = InjectedBundle;
sourceTree = "<group>";
@@ -5840,6 +5843,7 @@
E14A954A16E016A40068DE82 /* NetworkProcessPlatformStrategies.h in Headers */,
E1798C7A16E6818800240139 /* NetworkBlobRegistry.h in Headers */,
E152551B17011819003D7ADB /* NetworkResourceLoaderMessages.h in Headers */,
+ 84477853176FCC0800CDC7BB /* InjectedBundleHitTestResultMediaType.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp (151698 => 151699)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp 2013-06-18 21:39:33 UTC (rev 151699)
@@ -79,6 +79,11 @@
return toImpl(hitTestResultRef)->mediaIsInFullscreen();
}
+WKBundleHitTestResultMediaType WKBundleHitTestResultGetMediaType(WKBundleHitTestResultRef hitTestResultRef)
+{
+ return toAPI(toImpl(hitTestResultRef)->getMediaType());
+}
+
WKRect WKBundleHitTestResultGetImageRect(WKBundleHitTestResultRef hitTestResultRef)
{
return toAPI(toImpl(hitTestResultRef)->imageRect());
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h (151698 => 151699)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h 2013-06-18 21:39:33 UTC (rev 151699)
@@ -33,6 +33,13 @@
extern "C" {
#endif
+enum {
+ kWKBundleHitTestResultMediaTypeNone,
+ kWKBundleHitTestResultMediaTypeAudio,
+ kWKBundleHitTestResultMediaTypeVideo
+};
+typedef uint32_t WKBundleHitTestResultMediaType;
+
WK_EXPORT WKTypeID WKBundleHitTestResultGetTypeID();
WK_EXPORT WKBundleNodeHandleRef WKBundleHitTestResultCopyNodeHandle(WKBundleHitTestResultRef hitTestResult);
@@ -45,6 +52,7 @@
WK_EXPORT WKURLRef WKBundleHitTestResultCopyAbsoluteLinkURL(WKBundleHitTestResultRef hitTestResult);
WK_EXPORT WKURLRef WKBundleHitTestResultCopyAbsoluteMediaURL(WKBundleHitTestResultRef hitTestResult);
WK_EXPORT bool WKBundleHitTestResultMediaIsInFullscreen(WKBundleHitTestResultRef hitTestResult);
+WK_EXPORT WKBundleHitTestResultMediaType WKBundleHitTestResultGetMediaType(WKBundleHitTestResultRef hitTestResult);
WK_EXPORT WKRect WKBundleHitTestResultGetImageRect(WKBundleHitTestResultRef hitTestResult);
WK_EXPORT bool WKBundleHitTestResultGetIsSelected(WKBundleHitTestResultRef hitTestResult);
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp (151698 => 151699)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp 2013-06-18 21:39:33 UTC (rev 151699)
@@ -30,6 +30,7 @@
#include "WebFrame.h"
#include "WebFrameLoaderClient.h"
#include <WebCore/Document.h>
+#include <WebCore/Element.h>
#include <WebCore/Frame.h>
#include <WebCore/FrameLoader.h>
#include <WebCore/FrameView.h>
@@ -103,6 +104,18 @@
return m_hitTestResult.mediaIsInFullscreen();
}
+BundleHitTestResultMediaType InjectedBundleHitTestResult::getMediaType() const
+{
+ WebCore::Node* node = m_hitTestResult.innerNonSharedNode();
+ if (!node->isElementNode())
+ return BundleHitTestResultMediaTypeNone;
+
+ if (!toElement(node)->isMediaElement())
+ return BundleHitTestResultMediaTypeNone;
+
+ return m_hitTestResult.mediaIsVideo() ? BundleHitTestResultMediaTypeVideo : BundleHitTestResultMediaTypeAudio;
+}
+
String InjectedBundleHitTestResult::linkLabel() const
{
return m_hitTestResult.textContent();
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h (151698 => 151699)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h 2013-06-18 21:34:52 UTC (rev 151698)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h 2013-06-18 21:39:33 UTC (rev 151699)
@@ -27,6 +27,7 @@
#define InjectedBundleHitTestResult_h
#include "APIObject.h"
+#include "InjectedBundleHitTestResultMediaType.h"
#include <WebCore/HitTestResult.h>
#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
@@ -52,6 +53,7 @@
String absoluteLinkURL() const;
String absoluteMediaURL() const;
bool mediaIsInFullscreen() const;
+ BundleHitTestResultMediaType getMediaType() const;
String linkLabel() const;
String linkTitle() const;
Added: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResultMediaType.h (0 => 151699)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResultMediaType.h (rev 0)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResultMediaType.h 2013-06-18 21:39:33 UTC (rev 151699)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef InjectedBundleHitTestResultMediaType_h
+#define InjectedBundleHitTestResultMediaType_h
+
+namespace WebKit {
+
+enum BundleHitTestResultMediaType {
+ BundleHitTestResultMediaTypeNone,
+ BundleHitTestResultMediaTypeAudio,
+ BundleHitTestResultMediaTypeVideo
+};
+
+} // namespace WebKit
+
+#endif // InjectedBundleHitTestResultMediaType_h