Changeset 147913 in webkit
- Timestamp:
- Apr 8, 2013 7:49:47 AM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r147909 r147913 1 2013-04-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> 2 3 [WK2][EFL] WebView: Add callbacks to the WKViewClient to remove direct access to page viewport controller 4 https://bugs.webkit.org/show_bug.cgi?id=110741 5 6 Reviewed by Anders Carlsson. 7 8 Provided WKViewClient with didRequestScroll, didRenderFrame and didCompletePageTransition 9 callbacks so that direct access from WebView to page viewport controller is avoided. 10 11 Implementation of callbacks is also added to keep the current EFL WK2 functionality. 12 13 * UIProcess/API/C/efl/WKView.h: 14 * UIProcess/efl/PageLoadClientEfl.cpp: 15 (WebKit::PageLoadClientEfl::didCommitLoadForFrame): 16 17 Moved here code from deleted WebView::didCommitLoad. 18 19 * UIProcess/efl/ViewClientEfl.cpp: 20 (WebKit::ViewClientEfl::didChangeContentsPosition): 21 (WebKit): 22 (WebKit::ViewClientEfl::didRenderFrame): 23 (WebKit::ViewClientEfl::didCompletePageTransition): 24 (WebKit::ViewClientEfl::ViewClientEfl): 25 * UIProcess/efl/ViewClientEfl.h: 26 (ViewClientEfl): 27 * UIProcess/efl/WebView.cpp: 28 (WebKit::WebView::pageDidRequestScroll): 29 (WebKit::WebView::didRenderFrame): 30 (WebKit::WebView::pageTransitionViewportReady): 31 * UIProcess/efl/WebViewClient.cpp: 32 (WebKit::WebViewClient::didChangeContentsPosition): 33 (WebKit): 34 (WebKit::WebViewClient::didRenderFrame): 35 (WebKit::WebViewClient::didCompletePageTransition): 36 * UIProcess/efl/WebViewClient.h: 37 (WebCore): 38 1 39 2013-04-08 Andras Becsi <andras.becsi@digia.com> 2 40 -
trunk/Source/WebKit2/UIProcess/API/C/efl/WKView.h
r147741 r147913 35 35 typedef void (*WKViewPageDidChangeContentsSizeCallback)(WKViewRef view, WKSize size, const void* clientInfo); 36 36 typedef void (*WKViewWebProcessCrashedCallback)(WKViewRef view, WKURLRef url, const void* clientInfo); 37 typedef void (*WKViewPageDidChangeContentsPositionCallback)(WKViewRef view, WKPoint position, const void* clientInfo); 38 typedef void (*WKViewPageDidRenderFrameCallback)(WKViewRef view, WKSize contentsSize, WKRect coveredRect, const void* clientInfo); 37 39 38 40 struct WKViewClient { … … 45 47 WKViewWebProcessCrashedCallback webProcessCrashed; 46 48 WKViewCallback webProcessDidRelaunch; 49 WKViewPageDidChangeContentsPositionCallback didChangeContentsPosition; 50 WKViewPageDidRenderFrameCallback didRenderFrame; 51 WKViewCallback didCompletePageTransition; 47 52 }; 48 53 typedef struct WKViewClient WKViewClient; -
trunk/Source/WebKit2/UIProcess/efl/PageLoadClientEfl.cpp
r143004 r147913 28 28 29 29 #include "EwkView.h" 30 #include "PageViewportController.h" 30 31 #include "WKAPICast.h" 31 32 #include "WKFrame.h" … … 117 118 118 119 EwkView* view = toPageLoadClientEfl(clientInfo)->view(); 119 view->webView()->didCommitLoad(); 120 if (WKPageUseFixedLayout(view->wkPage())) { 121 #if USE(ACCELERATED_COMPOSITING) 122 view->pageViewportController()->didCommitLoad(); 123 #endif 124 return; 125 } 126 127 view->scheduleUpdateDisplay(); 120 128 } 121 129 -
trunk/Source/WebKit2/UIProcess/efl/ViewClientEfl.cpp
r147792 r147913 33 33 34 34 using namespace EwkViewCallbacks; 35 using namespace WebCore; 35 36 36 37 namespace WebKit { … … 92 93 } 93 94 95 void ViewClientEfl::didChangeContentsPosition(WKViewRef, WKPoint position, const void* clientInfo) 96 { 97 EwkView* ewkView = toEwkView(clientInfo); 98 if (WKPageUseFixedLayout(ewkView->wkPage())) { 99 #if USE(ACCELERATED_COMPOSITING) 100 ewkView->pageViewportController()->pageDidRequestScroll(toIntPoint(position)); 101 #endif 102 return; 103 } 104 105 ewkView->scheduleUpdateDisplay(); 106 } 107 108 void ViewClientEfl::didRenderFrame(WKViewRef, WKSize contentsSize, WKRect coveredRect, const void* clientInfo) 109 { 110 EwkView* ewkView = toEwkView(clientInfo); 111 if (WKPageUseFixedLayout(ewkView->wkPage())) { 112 #if USE(ACCELERATED_COMPOSITING) 113 ewkView->pageViewportController()->didRenderFrame(toIntSize(contentsSize), toIntRect(coveredRect)); 114 #endif 115 return; 116 } 117 118 ewkView->scheduleUpdateDisplay(); 119 } 120 121 void ViewClientEfl::didCompletePageTransition(WKViewRef, const void* clientInfo) 122 { 123 EwkView* ewkView = toEwkView(clientInfo); 124 if (WKPageUseFixedLayout(ewkView->wkPage())) { 125 #if USE(ACCELERATED_COMPOSITING) 126 ewkView->pageViewportController()->pageTransitionViewportReady(); 127 #endif 128 return; 129 } 130 131 ewkView->scheduleUpdateDisplay(); 132 } 133 94 134 ViewClientEfl::ViewClientEfl(EwkView* view) 95 135 : m_view(view) … … 105 145 viewClient.webProcessCrashed = webProcessCrashed; 106 146 viewClient.webProcessDidRelaunch = webProcessDidRelaunch; 147 viewClient.didChangeContentsPosition = didChangeContentsPosition; 148 viewClient.didRenderFrame = didRenderFrame; 149 viewClient.didCompletePageTransition = didCompletePageTransition; 107 150 108 151 WKViewSetViewClient(m_view->wkView(), &viewClient); -
trunk/Source/WebKit2/UIProcess/efl/ViewClientEfl.h
r144664 r147913 52 52 static void webProcessCrashed(WKViewRef, WKURLRef, const void* clientInfo); 53 53 static void webProcessDidRelaunch(WKViewRef, const void* clientInfo); 54 static void didChangeContentsPosition(WKViewRef, WKPoint, const void* clientInfo); 55 static void didRenderFrame(WKViewRef, WKSize, WKRect, const void* clientInfo); 56 static void didCompletePageTransition(WKViewRef, const void* clientInfo); 54 57 55 58 EwkView* m_view; -
trunk/Source/WebKit2/UIProcess/efl/WebView.cpp
r147792 r147913 232 232 } 233 233 234 void WebView::didCommitLoad()235 {236 if (m_page->useFixedLayout()) {237 #if USE(ACCELERATED_COMPOSITING)238 m_ewkView->pageViewportController()->didCommitLoad();239 #endif240 return;241 }242 m_ewkView->scheduleUpdateDisplay();243 }244 245 234 void WebView::didChangeContentsSize(const WebCore::IntSize& size) 246 235 { … … 552 541 void WebView::pageDidRequestScroll(const IntPoint& position) 553 542 { 554 if (m_page->useFixedLayout()) {555 #if USE(ACCELERATED_COMPOSITING)556 m_ewkView->pageViewportController()->pageDidRequestScroll(position);557 #endif558 return;559 }560 543 FloatPoint uiPosition(position); 561 544 uiPosition.scale(contentScaleFactor(), contentScaleFactor()); 562 545 setContentPosition(uiPosition); 563 m_ewkView->scheduleUpdateDisplay(); 546 547 m_client.didChangeContentsPosition(this, position); 564 548 } 565 549 566 550 void WebView::didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect) 567 551 { 568 if (m_page->useFixedLayout()) { 569 #if USE(ACCELERATED_COMPOSITING) 570 m_ewkView->pageViewportController()->didRenderFrame(contentsSize, coveredRect); 571 #endif 572 return; 573 } 574 m_ewkView->scheduleUpdateDisplay(); 552 m_client.didRenderFrame(this, contentsSize, coveredRect); 575 553 } 576 554 577 555 void WebView::pageTransitionViewportReady() 578 556 { 579 if (m_page->useFixedLayout()) { 580 #if USE(ACCELERATED_COMPOSITING) 581 m_ewkView->pageViewportController()->pageTransitionViewportReady(); 582 #endif 583 return; 584 } 585 m_ewkView->scheduleUpdateDisplay(); 557 m_client.didCompletePageTransition(this); 586 558 } 587 559 -
trunk/Source/WebKit2/UIProcess/efl/WebView.h
r147741 r147913 105 105 WebPageProxy* page() { return m_page.get(); } 106 106 107 void didCommitLoad();108 107 void didChangeContentsSize(const WebCore::IntSize&); 109 108 -
trunk/Source/WebKit2/UIProcess/efl/WebViewClient.cpp
r144664 r147913 66 66 } 67 67 68 void WebViewClient::didChangeContentsPosition(WebView* view, const WebCore::IntPoint& point) 69 { 70 if (!m_client.didChangeContentsPosition) 71 return; 72 73 m_client.didChangeContentsPosition(toAPI(view), toAPI(point), m_client.clientInfo); 74 } 75 76 void WebViewClient::didRenderFrame(WebView* view, const WebCore::IntSize& size, const WebCore::IntRect& coveredRect) 77 { 78 if (!m_client.didRenderFrame) 79 return; 80 81 m_client.didRenderFrame(toAPI(view), toAPI(size), toAPI(coveredRect), m_client.clientInfo); 82 } 83 84 void WebViewClient::didCompletePageTransition(WebView* view) 85 { 86 if (!m_client.didCompletePageTransition) 87 return; 88 89 m_client.didCompletePageTransition(toAPI(view), m_client.clientInfo); 90 } 91 68 92 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/efl/WebViewClient.h
r144664 r147913 32 32 33 33 namespace WebCore { 34 class IntPoint; 34 35 class IntRect; 35 36 class IntSize; … … 46 47 void webProcessCrashed(WebView*, const String& url); 47 48 void webProcessDidRelaunch(WebView*); 49 void didChangeContentsPosition(WebView*, const WebCore::IntPoint&); 50 void didRenderFrame(WebView*, const WebCore::IntSize&, const WebCore::IntRect&); 51 void didCompletePageTransition(WebView*); 48 52 }; 49 53
Note: See TracChangeset
for help on using the changeset viewer.