Changeset 75054 in webkit
- Timestamp:
- Jan 5, 2011 1:32:57 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r75052 r75054 1 2011-01-05 Alexey Proskuryakov <ap@apple.com> 2 3 Reviewed by Sam Weinig. 4 5 https://bugs.webkit.org/show_bug.cgi?id=51903 6 Tell UI process which subframe is largest 7 8 * WebCore.exp.in: Exported FrameView::contentsSize(). 9 1 10 2011-01-04 Chris Fleizach <cfleizach@apple.com> 2 11 -
trunk/WebCore/WebCore.exp.in
r75031 r75054 943 943 __ZNK7WebCore10RenderText9firstRunXEv 944 944 __ZNK7WebCore10RenderText9firstRunYEv 945 __ZNK7WebCore10ScrollView12contentsSizeEv 945 946 __ZNK7WebCore10ScrollView12documentViewEv 946 947 __ZNK7WebCore10ScrollView14scrollbarModesERNS_13ScrollbarModeES2_ -
trunk/WebKit2/ChangeLog
r75047 r75054 1 2011-01-05 Alexey Proskuryakov <ap@apple.com> 2 3 Reviewed by Sam Weinig. 4 5 https://bugs.webkit.org/show_bug.cgi?id=51903 6 Tell UI process which subframe is largest 7 8 * UIProcess/WebPageProxy.h: 9 (WebKit::WebPageProxy::frameSetLargestFrame): 10 Remember largest frame in frameset pages. 11 12 * UIProcess/WebPageProxy.cpp: 13 (WebKit::WebPageProxy::frameDidBecomeFrameSet): Reset stored largest frame if main frame 14 changes to a frameset or back. 15 (WebKit::WebPageProxy::frameSetLargestFrameChanged): Store a new largest frame when notified 16 of a change. 17 18 * UIProcess/WebPageProxy.messages.in: Added FrameSetLargestFrameChanged. 19 20 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 21 (WebKit::area): Calculate area of a frame. 22 (WebKit::findLargestFrameInFrameSet): Find largest first-level subframe in a frameset page. 23 (WebKit::WebChromeClient::contentsSizeChanged): Recalculate largest frame, and notify UI 24 process if it changed. 25 26 * WebProcess/WebCoreSupport/WebChromeClient.h: Store the latest largest frame. 27 28 * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::size): 29 * WebProcess/WebPage/WebFrame.h: 30 Expose frame size. 31 1 32 2011-01-04 Benjamin Poulain <benjamin.poulain@nokia.com> 2 33 -
trunk/WebKit2/UIProcess/WebPageProxy.cpp
r75037 r75054 1217 1217 1218 1218 frame->setIsFrameSet(value); 1219 if (frame->isMainFrame()) 1220 m_frameSetLargestFrame = value ? m_mainFrame : 0; 1219 1221 } 1220 1222 … … 1917 1919 } 1918 1920 1921 void WebPageProxy::frameSetLargestFrameChanged(uint64_t frameID) 1922 { 1923 if (!frameID) { 1924 m_frameSetLargestFrame = 0; 1925 return; 1926 } 1927 1928 WebFrameProxy* frame = process()->webFrame(frameID); 1929 MESSAGE_CHECK(frame); 1930 1931 m_frameSetLargestFrame = frame; 1932 } 1933 1919 1934 #if USE(ACCELERATED_COMPOSITING) 1920 1935 void WebPageProxy::didChangeAcceleratedCompositing(bool compositing, DrawingAreaInfo& drawingAreaInfo) -
trunk/WebKit2/UIProcess/WebPageProxy.h
r75037 r75054 113 113 WebFrameProxy* mainFrame() const { return m_mainFrame.get(); } 114 114 WebFrameProxy* focusedFrame() const { return m_focusedFrame.get(); } 115 WebFrameProxy* frameSetLargestFrame() const { return m_frameSetLargestFrame.get(); } 115 116 116 117 DrawingAreaProxy* drawingArea() { return m_drawingArea.get(); } … … 447 448 448 449 void focusedFrameChanged(uint64_t frameID); 450 void frameSetLargestFrameChanged(uint64_t frameID); 449 451 450 452 #if USE(ACCELERATED_COMPOSITING) … … 477 479 RefPtr<WebFrameProxy> m_mainFrame; 478 480 RefPtr<WebFrameProxy> m_focusedFrame; 481 RefPtr<WebFrameProxy> m_frameSetLargestFrame; 479 482 480 483 String m_userAgent; -
trunk/WebKit2/UIProcess/WebPageProxy.messages.in
r75037 r75054 39 39 TakeFocus(bool direction) 40 40 FocusedFrameChanged(uint64_t frameID) 41 FrameSetLargestFrameChanged(uint64_t frameID) 41 42 SetToolbarsAreVisible(bool toolbarsAreVisible) 42 43 GetToolbarsAreVisible() -> (bool toolbarsAreVisible) -
trunk/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
r74668 r75054 60 60 namespace WebKit { 61 61 62 static double area(WebFrame* frame) 63 { 64 IntSize size = frame->size(); 65 return static_cast<double>(size.height()) * size.width(); 66 } 67 68 69 static WebFrame* findLargestFrameInFrameSet(WebPage* page) 70 { 71 WebFrame* mainFrame = page->mainFrame(); 72 if (!mainFrame->isFrameSet()) 73 return 0; 74 75 WebFrame* largestSoFar = 0; 76 77 RefPtr<ImmutableArray> frameChildren = mainFrame->childFrames(); 78 size_t count = frameChildren->size(); 79 for (size_t i = 0; i < count; ++i) { 80 WebFrame* childFrame = frameChildren->at<WebFrame>(i); 81 if (!largestSoFar || area(childFrame) > area(largestSoFar)) 82 largestSoFar = childFrame; 83 } 84 85 return largestSoFar; 86 } 87 62 88 void WebChromeClient::chromeDestroyed() 63 89 { … … 385 411 m_page->send(Messages::WebPageProxy::DidChangeContentsSize(size)); 386 412 #endif 413 414 WebFrame* largestFrame = findLargestFrameInFrameSet(m_page); 415 if (largestFrame != m_cachedFrameSetLargestFrame.get()) { 416 m_cachedFrameSetLargestFrame = largestFrame; 417 WebProcess::shared().connection()->send(Messages::WebPageProxy::FrameSetLargestFrameChanged(largestFrame ? largestFrame->frameID() : 0), m_page->pageID()); 418 } 387 419 } 388 420 -
trunk/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
r74418 r75054 34 34 namespace WebKit { 35 35 36 class WebFrame; 36 37 class WebPage; 37 38 … … 203 204 204 205 String m_cachedToolTip; 206 mutable RefPtr<WebFrame> m_cachedFrameSetLargestFrame; 205 207 WebPage* m_page; 206 208 }; -
trunk/WebKit2/WebProcess/WebPage/WebFrame.cpp
r74571 r75054 42 42 #include <WebCore/DocumentLoader.h> 43 43 #include <WebCore/Frame.h> 44 #include <WebCore/FrameView.h> 44 45 #include <WebCore/HTMLFrameOwnerElement.h> 45 46 #include <WebCore/JSCSSStyleDeclaration.h> … … 288 289 } 289 290 291 IntSize WebFrame::size() const 292 { 293 if (!m_coreFrame) 294 return IntSize(); 295 296 FrameView* frameView = m_coreFrame->view(); 297 if (!frameView) 298 return IntSize(); 299 300 return frameView->contentsSize(); 301 } 302 290 303 bool WebFrame::isFrameSet() const 291 304 { -
trunk/WebKit2/WebProcess/WebPage/WebFrame.h
r74521 r75054 78 78 String selectionAsString() const; 79 79 80 WebCore::IntSize size() const; 81 80 82 // WKBundleFrame API and SPI functions 81 83 bool isMainFrame() const; … … 83 85 String url() const; 84 86 String innerText() const; 87 bool isFrameSet() const; 85 88 PassRefPtr<ImmutableArray> childFrames(); 86 89 JSValueRef computedStyleIncludingVisitedInfo(JSObjectRef element); … … 123 126 virtual Type type() const { return APIType; } 124 127 125 bool isFrameSet() const;126 127 128 WebCore::Frame* m_coreFrame; 128 129
Note: See TracChangeset
for help on using the changeset viewer.