Changeset 95303 in webkit
- Timestamp:
- Sep 16, 2011 10:31:31 AM (13 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/CMakeLists.txt
r95005 r95303 162 162 Shared/WebGeolocationPosition.cpp 163 163 Shared/WebGraphicsContext.cpp 164 Shared/WebHitTestResult.cpp 164 165 Shared/WebImage.cpp 165 166 Shared/WebKeyboardEvent.cpp -
trunk/Source/WebKit2/ChangeLog
r95300 r95303 1 2011-09-16 Igor Oliveira <igor.oliveira@openbossa.org> 2 3 [WK2] mouseDidMoveOverElement needs to send more information about hovered element to UiProcess. 4 https://bugs.webkit.org/show_bug.cgi?id=68125 5 6 This patch implements support for the UiProcess to know what is the link url of a hovered element. 7 8 Reviewed by Anders Carlsson. 9 10 * CMakeLists.txt: 11 * GNUmakefile.am: 12 * Shared/API/c/WKBase.h: 13 * Shared/APIObject.h: 14 * Shared/WebHitTestResult.cpp: Added. 15 16 WebHitTestResult has hovered element information. 17 18 (WebKit::WebHitTestResult::create): 19 (WebKit::WebHitTestResult::Data::encode): 20 (WebKit::WebHitTestResult::Data::decode): 21 * Shared/WebHitTestResult.h: Added. 22 (WebKit::WebHitTestResult::absoluteImageURL): 23 (WebKit::WebHitTestResult::absoluteLinkURL): 24 (WebKit::WebHitTestResult::absoluteMediaURL): 25 (WebKit::WebHitTestResult::linkLabel): 26 (WebKit::WebHitTestResult::linkTitle): 27 (WebKit::WebHitTestResult::WebHitTestResult): 28 (WebKit::WebHitTestResult::type): 29 * UIProcess/API/C/WKAPICast.h: 30 * UIProcess/API/C/WKPage.h: 31 * UIProcess/WebPageProxy.cpp: 32 (WebKit::WebPageProxy::mouseDidMoveOverElement): 33 * UIProcess/WebPageProxy.h: 34 * UIProcess/WebPageProxy.messages.in: 35 * UIProcess/WebUIClient.cpp: 36 (WebKit::WebUIClient::mouseDidMoveOverElement): 37 * UIProcess/WebUIClient.h: 38 * WebKit2.pro: 39 * WebKit2.xcodeproj/project.pbxproj: 40 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 41 (WebKit::WebChromeClient::mouseDidMoveOverElement): 42 * win/WebKit2.vcproj: 43 1 44 2011-09-15 Adam Roben <aroben@apple.com> 2 45 -
trunk/Source/WebKit2/GNUmakefile.am
r95298 r95303 349 349 Source/WebKit2/Shared/WebGraphicsContext.cpp \ 350 350 Source/WebKit2/Shared/WebGraphicsContext.h \ 351 Source/WebKit2/Shared/WebHitTestResult.cpp \ 352 Source/WebKit2/Shared/WebHitTestResult.h \ 351 353 Source/WebKit2/Shared/WebImage.cpp \ 352 354 Source/WebKit2/Shared/WebImage.h \ -
trunk/Source/WebKit2/Shared/API/c/WKBase.h
r81928 r95303 85 85 typedef const struct OpaqueWKGeolocationPermissionRequest* WKGeolocationPermissionRequestRef; 86 86 typedef const struct OpaqueWKGeolocationPosition* WKGeolocationPositionRef; 87 typedef const struct OpaqueWKHitTestResult* WKHitTestResultRef; 87 88 typedef const struct OpaqueWKIconDatabase* WKIconDatabaseRef; 88 89 typedef const struct OpaqueWKInspector* WKInspectorRef; -
trunk/Source/WebKit2/Shared/APIObject.h
r83232 r95303 76 76 TypeGeolocationManager, 77 77 TypeGeolocationPermissionRequest, 78 TypeHitTestResult, 78 79 TypeGeolocationPosition, 79 80 TypeIconDatabase, -
trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h
r83778 r95303 65 65 class WebGeolocationManagerProxy; 66 66 class WebGeolocationPosition; 67 class WebHitTestResult; 67 68 class WebIconDatabase; 68 69 class WebInspectorProxy; … … 95 96 WK_ADD_API_MAPPING(WKGeolocationPermissionRequestRef, GeolocationPermissionRequestProxy) 96 97 WK_ADD_API_MAPPING(WKGeolocationPositionRef, WebGeolocationPosition) 98 WK_ADD_API_MAPPING(WKHitTestResultRef, WebHitTestResult) 97 99 WK_ADD_API_MAPPING(WKIconDatabaseRef, WebIconDatabase) 98 100 WK_ADD_API_MAPPING(WKKeyValueStorageManagerRef, WebKeyValueStorageManagerProxy) -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.h
r94247 r95303 169 169 typedef void (*WKPageUnfocusCallback)(WKPageRef page, const void *clientInfo); 170 170 typedef void (*WKPageSetStatusTextCallback)(WKPageRef page, WKStringRef text, const void *clientInfo); 171 typedef void (*WKPageMouseDidMoveOverElementCallback)(WKPageRef page, WK EventModifiers modifiers, WKTypeRef userData, const void *clientInfo);171 typedef void (*WKPageMouseDidMoveOverElementCallback)(WKPageRef page, WKHitTestResultRef hitTestResult, WKEventModifiers modifiers, WKTypeRef userData, const void *clientInfo); 172 172 typedef void (*WKPageMissingPluginButtonClickedCallback)(WKPageRef page, WKStringRef mimeType, WKStringRef url, WKStringRef pluginsPageURL, const void* clientInfo); 173 173 typedef void (*WKPageDidNotHandleKeyEventCallback)(WKPageRef page, WKNativeEventPtr event, const void *clientInfo); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r95039 r95303 1998 1998 } 1999 1999 2000 void WebPageProxy::mouseDidMoveOverElement( uint32_t opaqueModifiers, CoreIPC::ArgumentDecoder* arguments)2000 void WebPageProxy::mouseDidMoveOverElement(const WebHitTestResult::Data& hitTestResultData, uint32_t opaqueModifiers, CoreIPC::ArgumentDecoder* arguments) 2001 2001 { 2002 2002 RefPtr<APIObject> userData; … … 2007 2007 WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers); 2008 2008 2009 m_uiClient.mouseDidMoveOverElement(this, modifiers, userData.get());2009 m_uiClient.mouseDidMoveOverElement(this, hitTestResultData, modifiers, userData.get()); 2010 2010 } 2011 2011 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r95039 r95303 47 47 #include "WebFrameProxy.h" 48 48 #include "WebHistoryClient.h" 49 #include "WebHitTestResult.h" 49 50 #include "WebLoaderClient.h" 50 51 #include "WebPageContextMenuClient.h" … … 54 55 #include "WebUIClient.h" 55 56 #include <WebCore/DragActions.h> 57 #include <WebCore/HitTestResult.h> 56 58 #include <WebCore/ScrollTypes.h> 57 59 #include <WebCore/TextChecking.h> … … 626 628 void shouldInterruptJavaScript(bool& result); 627 629 void setStatusText(const String&); 628 void mouseDidMoveOverElement( uint32_t modifiers, CoreIPC::ArgumentDecoder*);630 void mouseDidMoveOverElement(const WebHitTestResult::Data& hitTestResultData, uint32_t modifiers, CoreIPC::ArgumentDecoder*); 629 631 void missingPluginButtonClicked(const String& mimeType, const String& url, const String& pluginsPageURL); 630 632 void setToolbarsAreVisible(bool toolbarsAreVisible); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r93902 r95303 30 30 RunJavaScriptPrompt(uint64_t frameID, WTF::String message, WTF::String defaultValue) -> (WTF::String result) 31 31 ShouldInterruptJavaScript() -> (bool shouldInterupt) 32 MouseDidMoveOverElement( uint32_t modifiers, WebKit::InjectedBundleUserMessageEncoder userData);32 MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::InjectedBundleUserMessageEncoder userData); 33 33 MissingPluginButtonClicked(WTF::String mimeType, WTF::String url, WTF::String pluginsPageURL) 34 34 DidChangeViewportData(WebCore::ViewportArguments arguments) -
trunk/Source/WebKit2/UIProcess/WebUIClient.cpp
r93902 r95303 156 156 } 157 157 158 void WebUIClient::mouseDidMoveOverElement(WebPageProxy* page, WebEvent::Modifiers modifiers, APIObject* userData)158 void WebUIClient::mouseDidMoveOverElement(WebPageProxy* page, const WebHitTestResult::Data& data, WebEvent::Modifiers modifiers, APIObject* userData) 159 159 { 160 160 if (!m_client.mouseDidMoveOverElement) 161 161 return; 162 162 163 m_client.mouseDidMoveOverElement(toAPI(page), toAPI(modifiers), toAPI(userData), m_client.clientInfo); 163 RefPtr<WebHitTestResult> webHitTestResult = WebHitTestResult::create(data); 164 m_client.mouseDidMoveOverElement(toAPI(page), toAPI(webHitTestResult.get()), toAPI(modifiers), toAPI(userData), m_client.clientInfo); 164 165 } 165 166 -
trunk/Source/WebKit2/UIProcess/WebUIClient.h
r93902 r95303 30 30 #include "WKPage.h" 31 31 #include "WebEvent.h" 32 #include "WebHitTestResult.h" 32 33 #include "WebOpenPanelParameters.h" 33 34 #include <wtf/Forward.h> … … 68 69 69 70 void setStatusText(WebPageProxy*, const String&); 70 void mouseDidMoveOverElement(WebPageProxy*, WebEvent::Modifiers, APIObject*);71 void mouseDidMoveOverElement(WebPageProxy*, const WebHitTestResult::Data&, WebEvent::Modifiers, APIObject*); 71 72 void missingPluginButtonClicked(WebPageProxy*, const String& mimeType, const String& url, const String& pluginsPageURL); 72 73 -
trunk/Source/WebKit2/WebKit2.pro
r94672 r95303 154 154 Shared/WebGeolocationPosition.h \ 155 155 Shared/WebGraphicsContext.h \ 156 Shared/WebHitTestResult.h \ 156 157 Shared/WebImage.h \ 157 158 Shared/WebNavigationDataStore.h \ … … 384 385 Shared/WebGeolocationPosition.cpp \ 385 386 Shared/WebGraphicsContext.cpp \ 387 Shared/WebHitTestResult.cpp \ 386 388 Shared/WebKeyboardEvent.cpp \ 387 389 Shared/WebImage.cpp \ -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r95299 r95303 398 398 6EE849C81368D9390038D481 /* WKInspectorMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE849C61368D92D0038D481 /* WKInspectorMac.h */; settings = {ATTRIBUTES = (Public, ); }; }; 399 399 762B748D120BC75C00819339 /* WKPreferencesPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 762B7484120BBA2D00819339 /* WKPreferencesPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 400 7801C097142290C400FAF9AF /* WebHitTestResult.cpp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7801C095142290C400FAF9AF /* WebHitTestResult.cpp */; }; 401 7801C098142290C400FAF9AF /* WebHitTestResult.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7801C096142290C400FAF9AF /* WebHitTestResult.h */; }; 402 7801C099142290C400FAF9AF /* WebHitTestResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7801C095142290C400FAF9AF /* WebHitTestResult.cpp */; }; 403 7801C09A142290C400FAF9AF /* WebHitTestResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 7801C096142290C400FAF9AF /* WebHitTestResult.h */; }; 400 404 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; 401 405 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; }; … … 912 916 1A50DB66110A3D57000D3FE5 /* WebProcess.app in CopyFiles */, 913 917 BCDE0ABF13272708001259FB /* PluginProcess.app in CopyFiles */, 918 7801C097142290C400FAF9AF /* WebHitTestResult.cpp in CopyFiles */, 919 7801C098142290C400FAF9AF /* WebHitTestResult.h in CopyFiles */, 914 920 ); 915 921 runOnlyForDeploymentPostprocessing = 0; … … 1340 1346 762B7481120BBA0100819339 /* FontSmoothingLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontSmoothingLevel.h; sourceTree = "<group>"; }; 1341 1347 762B7484120BBA2D00819339 /* WKPreferencesPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreferencesPrivate.h; sourceTree = "<group>"; }; 1348 7801C095142290C400FAF9AF /* WebHitTestResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebHitTestResult.cpp; path = Shared/WebHitTestResult.cpp; sourceTree = "<group>"; }; 1349 7801C096142290C400FAF9AF /* WebHitTestResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebHitTestResult.h; path = Shared/WebHitTestResult.h; sourceTree = "<group>"; }; 1342 1350 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 1343 1351 8DC2EF5B0486A6940098B216 /* WebKit2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebKit2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; … … 1879 1887 isa = PBXGroup; 1880 1888 children = ( 1889 7801C095142290C400FAF9AF /* WebHitTestResult.cpp */, 1890 7801C096142290C400FAF9AF /* WebHitTestResult.h */, 1881 1891 B396EA5512E0ED2D00F4FEB7 /* config.h */, 1882 1892 C0CE72DB1247E8F700BC0EC4 /* DerivedSources.make */, … … 3847 3857 5272B28B1406985D0096A5D0 /* StatisticsData.h in Headers */, 3848 3858 1A2BB6D114117B4D000F35D4 /* PluginProcessConnectionMessages.h in Headers */, 3859 7801C09A142290C400FAF9AF /* WebHitTestResult.h in Headers */, 3849 3860 ); 3850 3861 runOnlyForDeploymentPostprocessing = 0; … … 4516 4527 5272B28A1406985D0096A5D0 /* StatisticsData.cpp in Sources */, 4517 4528 1A2BB6D014117B4D000F35D4 /* PluginProcessConnectionMessageReceiver.cpp in Sources */, 4529 7801C099142290C400FAF9AF /* WebHitTestResult.cpp in Sources */, 4518 4530 ); 4519 4531 runOnlyForDeploymentPostprocessing = 0; -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
r95271 r95303 497 497 m_page->injectedBundleUIClient().mouseDidMoveOverElement(m_page, hitTestResult, static_cast<WebEvent::Modifiers>(modifierFlags), userData); 498 498 499 WebHitTestResult::Data webHitTestResultData; 500 webHitTestResultData.absoluteImageURL = hitTestResult.absoluteImageURL().string(); 501 webHitTestResultData.absoluteLinkURL = hitTestResult.absoluteLinkURL().string(); 502 webHitTestResultData.absoluteMediaURL = hitTestResult.absoluteMediaURL().string(); 503 webHitTestResultData.linkLabel = hitTestResult.textContent(); 504 webHitTestResultData.linkTitle = hitTestResult.titleDisplayString(); 505 499 506 // Notify the UIProcess. 500 m_page->send(Messages::WebPageProxy::MouseDidMoveOverElement( modifierFlags, InjectedBundleUserMessageEncoder(userData.get())));507 m_page->send(Messages::WebPageProxy::MouseDidMoveOverElement(webHitTestResultData, modifierFlags, InjectedBundleUserMessageEncoder(userData.get()))); 501 508 } 502 509 -
trunk/Source/WebKit2/win/WebKit2.vcproj
r95298 r95303 688 688 </File> 689 689 <File 690 RelativePath="..\Shared\WebHitTestResult.cpp" 691 > 692 </File> 693 <File 694 RelativePath="..\Shared\WebHitTestResult.h" 695 > 696 </File> 697 <File 690 698 RelativePath="..\Shared\WebKeyboardEvent.cpp" 691 699 >
Note: See TracChangeset
for help on using the changeset viewer.