Changeset 69862 in webkit


Ignore:
Timestamp:
Oct 15, 2010 10:27:12 AM (14 years ago)
Author:
andersca@apple.com
Message:

Add a FindIndicator class
https://bugs.webkit.org/show_bug.cgi?id=47635

Reviewed by Sam Weinig.

WebCore:

Make Gradient.h and Generator.h private headers; they're used by WebKit2.

  • WebCore.xcodeproj/project.pbxproj:

WebKit2:

  • Shared/BackingStore.h:

(WebKit::BackingStore::bounds):
New function that returns the bounds of the backing store.

  • UIProcess/API/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setFindIndicator):
Add stub.

  • UIProcess/API/qt/qwkpage.cpp:

(QWKPagePrivate::setFindIndicator):
Add stub.

  • UIProcess/FindIndicator.cpp: Added.
  • UIProcess/FindIndicator.h:
  • UIProcess/PageClient.h:

Add setFindIndicator client member function.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setFindIndicator):
Call PageClient::setFindIndicator.

  • UIProcess/WebPageProxy.messages.in:

Add a fadeOut boolean to the message.

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::setFindIndicator):
Add stub.

  • UIProcess/win/WebView.h:
  • WebKit2.pro:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::findString):
(WebKit::FindController::updateFindIndicator):
(WebKit::FindController::resetFindIndicator):

  • WebProcess/WebPage/FindController.h:
  • win/WebKit2.vcproj:
Location:
trunk
Files:
1 added
19 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r69861 r69862  
     12010-10-13  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Add a FindIndicator class
     6        https://bugs.webkit.org/show_bug.cgi?id=47635
     7
     8        Make Gradient.h and Generator.h private headers; they're used by WebKit2.
     9
     10        * WebCore.xcodeproj/project.pbxproj:
     11
    1122010-10-15  Sergio Villar Senin  <svillar@igalia.com>
    213
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r69844 r69862  
    47524752                BC5157DD0C03BC22008BB0EE /* DOMHTMLFrameElementPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5156F30C03B7DC008BB0EE /* DOMHTMLFrameElementPrivate.h */; };
    47534753                BC51580B0C03D404008BB0EE /* JSHTMLDocumentCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC51580A0C03D404008BB0EE /* JSHTMLDocumentCustom.cpp */; };
    4754                 BC53C5F50DA56B920021EB5D /* Gradient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC53C5F40DA56B920021EB5D /* Gradient.h */; };
     4754                BC53C5F50DA56B920021EB5D /* Gradient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC53C5F40DA56B920021EB5D /* Gradient.h */; settings = {ATTRIBUTES = (Private, ); }; };
    47554755                BC53C6080DA56C570021EB5D /* Gradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC53C6070DA56C570021EB5D /* Gradient.cpp */; };
    47564756                BC53C60B0DA56CF10021EB5D /* GradientCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC53C60A0DA56CF10021EB5D /* GradientCG.cpp */; };
     
    50615061                BCE0139A0C0BEF180043860A /* JSStyleSheet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE013980C0BEF180043860A /* JSStyleSheet.cpp */; };
    50625062                BCE0139B0C0BEF180043860A /* JSStyleSheet.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE013990C0BEF180043860A /* JSStyleSheet.h */; };
    5063                 BCE04C8A0DAFF7A0007A0F41 /* Generator.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE04C890DAFF7A0007A0F41 /* Generator.h */; };
     5063                BCE04C8A0DAFF7A0007A0F41 /* Generator.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE04C890DAFF7A0007A0F41 /* Generator.h */; settings = {ATTRIBUTES = (Private, ); }; };
    50645064                BCE04C940DAFF902007A0F41 /* GeneratedImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE04C930DAFF902007A0F41 /* GeneratedImage.cpp */; };
    50655065                BCE1C41B0D982980003B02F2 /* Location.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE1C4190D982980003B02F2 /* Location.h */; };
  • trunk/WebKit2/ChangeLog

    r69826 r69862  
     12010-10-13  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Add a FindIndicator class
     6        https://bugs.webkit.org/show_bug.cgi?id=47635
     7
     8        * Shared/BackingStore.h:
     9        (WebKit::BackingStore::bounds):
     10        New function that returns the bounds of the backing store.
     11
     12        * UIProcess/API/mac/PageClientImpl.mm:
     13        (WebKit::PageClientImpl::setFindIndicator):
     14        Add stub.
     15
     16        * UIProcess/API/qt/qwkpage.cpp:
     17        (QWKPagePrivate::setFindIndicator):
     18        Add stub.
     19
     20        * UIProcess/FindIndicator.cpp: Added.
     21        * UIProcess/FindIndicator.h:
     22
     23        * UIProcess/PageClient.h:
     24        Add setFindIndicator client member function.
     25
     26        * UIProcess/WebPageProxy.cpp:
     27        (WebKit::WebPageProxy::setFindIndicator):
     28        Call PageClient::setFindIndicator.
     29
     30        * UIProcess/WebPageProxy.messages.in:
     31        Add a fadeOut boolean to the message.
     32
     33        * UIProcess/win/WebView.cpp:
     34        (WebKit::WebView::setFindIndicator):
     35        Add stub.
     36
     37        * UIProcess/win/WebView.h:
     38        * WebKit2.pro:
     39        * WebKit2.xcodeproj/project.pbxproj:
     40        * WebProcess/WebPage/FindController.cpp:
     41        (WebKit::FindController::findString):
     42        (WebKit::FindController::updateFindIndicator):
     43        (WebKit::FindController::resetFindIndicator):
     44        * WebProcess/WebPage/FindController.h:
     45        * win/WebKit2.vcproj:
     46
    1472010-10-14  Simon Fraser  <simon.fraser@apple.com>
    248
  • trunk/WebKit2/Shared/BackingStore.h

    r69687 r69862  
    2828
    2929#include "SharedMemory.h"
    30 #include <WebCore/IntSize.h>
     30#include <WebCore/IntRect.h>
    3131#include <wtf/PassOwnPtr.h>
    3232#include <wtf/PassRefPtr.h>
     
    3636namespace WebCore {
    3737    class GraphicsContext;
    38     class IntRect;
    3938}
    4039
     
    5857
    5958    const WebCore::IntSize& size() const { return m_size; }
     59    WebCore::IntRect bounds() const { return WebCore::IntRect(WebCore::IntPoint(), size()); }
     60
    6061    bool resize(const WebCore::IntSize& size);
    6162
  • trunk/WebKit2/UIProcess/API/mac/PageClientImpl.h

    r69788 r69862  
    6363    virtual void didNotHandleKeyEvent(const NativeWebKeyboardEvent&);
    6464
     65    void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut);
     66
    6567#if USE(ACCELERATED_COMPOSITING)
    6668    void pageDidEnterAcceleratedCompositing();
  • trunk/WebKit2/UIProcess/API/mac/PageClientImpl.mm

    r69788 r69862  
    226226}
    227227
     228void PageClientImpl::setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut)
     229{
     230    // FIXME: Implement.
     231}
     232
    228233#if USE(ACCELERATED_COMPOSITING)
    229234void PageClientImpl::pageDidEnterAcceleratedCompositing()
  • trunk/WebKit2/UIProcess/API/qt/qwkpage.cpp

    r69788 r69862  
    110110
    111111void QWKPagePrivate::didNotHandleKeyEvent(const NativeWebKeyboardEvent&)
     112{
     113}
     114
     115void QWKPagePrivate::setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut)
    112116{
    113117}
  • trunk/WebKit2/UIProcess/API/qt/qwkpage_p.h

    r69788 r69862  
    6161    virtual void didNotHandleKeyEvent(const WebKit::NativeWebKeyboardEvent&);
    6262
     63    virtual void setFindIndicator(PassRefPtr<WebKit::FindIndicator>, bool fadeOut);
     64
    6365    void paint(QPainter* painter, QRect);
    6466
  • trunk/WebKit2/UIProcess/FindIndicator.h

    r69861 r69862  
    2424 */
    2525
    26 #ifndef FindController_h
    27 #define FindController_h
     26#ifndef FindIndicator_h
     27#define FindIndicator_h
    2828
    29 #include "FindOptions.h"
    30 #include <wtf/Forward.h>
    31 #include <wtf/Noncopyable.h>
     29#include "SharedMemory.h"
     30#include <WebCore/FloatRect.h>
     31#include <wtf/PassRefPtr.h>
     32#include <wtf/RefCounted.h>
     33#include <wtf/Vector.h>
    3234
    3335namespace WebCore {
    34     class Frame;
     36    class GraphicsContext;
    3537}
    3638
    3739namespace WebKit {
    3840
    39 class FindPageOverlay;
    40 class WebPage;
     41class BackingStore;
    4142
    42 class FindController {
    43     WTF_MAKE_NONCOPYABLE(FindController);
     43class FindIndicator : public RefCounted<FindIndicator> {
     44public:
     45    static PassRefPtr<FindIndicator> create(const WebCore::FloatRect& selectionRect, const Vector<WebCore::FloatRect>& textRects, const SharedMemory::Handle& contentImageHandle);
     46    ~FindIndicator();
    4447
    45 public:
    46     explicit FindController(WebPage*);
     48    WebCore::FloatRect frameRect() const;
    4749
    48     void findString(const String&, FindDirection, FindOptions, unsigned maxNumMatches);
    49     void hideFindUI();
     50    const Vector<WebCore::FloatRect>& textRects() const { return m_textRects; }
    5051
    51     void findPageOverlayDestroyed();
     52    BackingStore* contentImage() const { return m_contentImage.get(); }
     53
     54    void draw(WebCore::GraphicsContext&, const WebCore::IntRect& dirtyRect);
    5255
    5356private:
    54     bool updateFindIndicator(WebCore::Frame* selectedFrame);
    55     void resetFindIndicator();
    56    
    57     WebPage* m_webPage;
    58     FindPageOverlay* m_findPageOverlay;
     57    FindIndicator(const WebCore::FloatRect& selectionRect, const Vector<WebCore::FloatRect>& textRects, PassRefPtr<BackingStore> contentImage);
    5958
    60     // Whether the UI process is showing the find indicator. Note that this can be true even if
    61     // the find indicator isn't showing, but it will never be false when it is showing.
    62     bool m_isShowingFindIndicator;
     59    WebCore::FloatRect m_selectionRect;
     60    Vector<WebCore::FloatRect> m_textRects;
     61    RefPtr<BackingStore> m_contentImage;
    6362};
    6463
    6564} // namespace WebKit
    6665
    67 #endif // FindController_h
     66#endif // FindIndicator_h
  • trunk/WebKit2/UIProcess/PageClient.h

    r69788 r69862  
    3737namespace WebKit {
    3838
     39class FindIndicator;
    3940class NativeWebKeyboardEvent;
    4041class WebEditCommandProxy;
     
    6263    virtual void didNotHandleKeyEvent(const NativeWebKeyboardEvent&) = 0;
    6364
     65    virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut) = 0;
     66
    6467#if USE(ACCELERATED_COMPOSITING)
    6568    virtual void pageDidEnterAcceleratedCompositing() = 0;
  • trunk/WebKit2/UIProcess/WebPageProxy.cpp

    r69788 r69862  
    2727
    2828#include "DrawingAreaProxy.h"
     29#include "FindIndicator.h"
    2930#include "MessageID.h"
    3031#include "NativeWebKeyboardEvent.h"
     
    957958}
    958959
    959 void WebPageProxy::setFindIndicator(const FloatRect& selectionRect, const Vector<FloatRect>& textRects, const SharedMemory::Handle& contentImageHandle)
    960 {
    961     // FIXME: Implement.
     960void WebPageProxy::setFindIndicator(const FloatRect& selectionRect, const Vector<FloatRect>& textRects, const SharedMemory::Handle& contentImageHandle, bool fadeOut)
     961{
     962    RefPtr<FindIndicator> findIndicator = FindIndicator::create(selectionRect, textRects, contentImageHandle);
     963    m_pageClient->setFindIndicator(findIndicator.release(), fadeOut);
    962964}
    963965
  • trunk/WebKit2/UIProcess/WebPageProxy.h

    r69689 r69862  
    283283    // Find.
    284284    void didCountStringMatches(const String&, uint32_t numMatches);
    285     void setFindIndicator(const WebCore::FloatRect& selectionRect, const Vector<WebCore::FloatRect>& textRects, const SharedMemory::Handle& contentImageHandle);
     285    void setFindIndicator(const WebCore::FloatRect& selectionRect, const Vector<WebCore::FloatRect>& textRects, const SharedMemory::Handle& contentImageHandle, bool fadeOut);
    286286
    287287    void takeFocus(bool direction);
  • trunk/WebKit2/UIProcess/WebPageProxy.messages.in

    r69689 r69862  
    9494    # Find.
    9595    DidCountStringMatches(WTF::String string, uint32_t numMatches)
    96     SetFindIndicator(WebCore::FloatRect selectionRect, Vector<WebCore::FloatRect> textRects, WebKit::SharedMemory::Handle contentImageHandle)
     96    SetFindIndicator(WebCore::FloatRect selectionRect, Vector<WebCore::FloatRect> textRects, WebKit::SharedMemory::Handle contentImageHandle, bool fadeOut)
    9797
    9898#if USE(ACCELERATED_COMPOSITING)
  • trunk/WebKit2/UIProcess/win/WebView.cpp

    r69788 r69862  
    609609}
    610610
     611void WebView::setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut)
     612{
     613    // FIXME: Implement.
     614}
     615
    611616#if USE(ACCELERATED_COMPOSITING)
    612617void WebView::pageDidEnterAcceleratedCompositing()
  • trunk/WebKit2/UIProcess/win/WebView.h

    r69788 r69862  
    103103    virtual WebCore::FloatRect convertToUserSpace(const WebCore::FloatRect&);
    104104    virtual void didNotHandleKeyEvent(const NativeWebKeyboardEvent&);
     105    virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut);
    105106
    106107#if USE(ACCELERATED_COMPOSITING)
  • trunk/WebKit2/WebKit2.pro

    r69687 r69862  
    241241    UIProcess/ChunkedUpdateDrawingAreaProxy.h \
    242242    UIProcess/DrawingAreaProxy.h \
     243    UIProcess/FindIndicator.h \
    243244    UIProcess/GenericCallback.h \
    244245    UIProcess/Launcher/ProcessLauncher.h \
     
    377378    UIProcess/ChunkedUpdateDrawingAreaProxy.cpp \
    378379    UIProcess/DrawingAreaProxy.cpp \
     380    UIProcess/FindIndicator.cpp \
    379381    UIProcess/Plugins/PluginInfoStore.cpp \
    380382    UIProcess/Plugins/qt/PluginInfoStoreQt.cpp \
  • trunk/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r69677 r69862  
    127127                1A90C2A312650C60003E44D4 /* FindPageOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A90C2A112650C60003E44D4 /* FindPageOverlay.h */; };
    128128                1A90C2A412650C60003E44D4 /* FindPageOverlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A90C2A212650C60003E44D4 /* FindPageOverlay.cpp */; };
     129                1A910071126675C4001842F5 /* FindIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A91006F126675C3001842F5 /* FindIndicator.h */; };
     130                1A910072126675C4001842F5 /* FindIndicator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A910070126675C4001842F5 /* FindIndicator.cpp */; };
    129131                1AA1CC5D100FA1A10078DEBC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA1CC5C100FA1A10078DEBC /* QuartzCore.framework */; };
    130132                1AA1CD07100FA1BA0078DEBC /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA1CD06100FA1BA0078DEBC /* Carbon.framework */; };
     
    592594                1A90C2A112650C60003E44D4 /* FindPageOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FindPageOverlay.h; sourceTree = "<group>"; };
    593595                1A90C2A212650C60003E44D4 /* FindPageOverlay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FindPageOverlay.cpp; sourceTree = "<group>"; };
     596                1A91006F126675C3001842F5 /* FindIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FindIndicator.h; sourceTree = "<group>"; };
     597                1A910070126675C4001842F5 /* FindIndicator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FindIndicator.cpp; sourceTree = "<group>"; };
    594598                1AA1C79A100E7FC50078DEBC /* WebCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WebCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
    595599                1AA1C7DE100E846E0078DEBC /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
     
    13541358                                BC2652121182608100243E12 /* DrawingAreaProxy.cpp */,
    13551359                                BC2652131182608100243E12 /* DrawingAreaProxy.h */,
     1360                                1A910070126675C4001842F5 /* FindIndicator.cpp */,
     1361                                1A91006F126675C3001842F5 /* FindIndicator.h */,
    13561362                                BC17753E118BABF0007D9E9A /* GenericCallback.h */,
    13571363                                0F5265B711DD377F0006D33C /* LayerBackedDrawingAreaProxy.cpp */,
     
    20282034                                1A90C23712650717003E44D4 /* PageOverlay.h in Headers */,
    20292035                                1A90C2A312650C60003E44D4 /* FindPageOverlay.h in Headers */,
     2036                                1A910071126675C4001842F5 /* FindIndicator.h in Headers */,
    20302037                        );
    20312038                        runOnlyForDeploymentPostprocessing = 0;
     
    23342341                                1A90C2A412650C60003E44D4 /* FindPageOverlay.cpp in Sources */,
    23352342                                C01A260112662F2100C9ED55 /* BackingStoreCG.cpp in Sources */,
     2343                                1A910072126675C4001842F5 /* FindIndicator.cpp in Sources */,
    23362344                        );
    23372345                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/WebKit2/WebProcess/WebPage/FindController.cpp

    r69689 r69862  
    8888        }
    8989
    90         if (!(findOptions & FindOptionsShowFindIndicator) || !updateFindIndicator(selectedFrame)) {
     90        if (!(findOptions & FindOptionsShowFindIndicator) || !updateFindIndicator(selectedFrame, shouldShowOverlay)) {
    9191            // Either we shouldn't show the find indicator, or we couldn't update it.
    9292            resetFindIndicator();
     
    125125}
    126126
    127 bool FindController::updateFindIndicator(Frame* selectedFrame)
     127bool FindController::updateFindIndicator(Frame* selectedFrame, bool isShowingOverlay)
    128128{
    129129    if (!selectedFrame)
     
    163163    }           
    164164   
    165     WebProcess::shared().connection()->send(Messages::WebPageProxy::SetFindIndicator(selectionRectInWindowCoordinates, textRectsInSelectionRectCoordinates, handle), m_webPage->pageID());
     165    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetFindIndicator(selectionRectInWindowCoordinates, textRectsInSelectionRectCoordinates, handle, !isShowingOverlay), m_webPage->pageID());
    166166    m_isShowingFindIndicator = true;
    167167
     
    175175
    176176    SharedMemory::Handle handle;
    177     WebProcess::shared().connection()->send(Messages::WebPageProxy::SetFindIndicator(FloatRect(), Vector<FloatRect>(), handle), m_webPage->pageID());
     177    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetFindIndicator(FloatRect(), Vector<FloatRect>(), handle, false), m_webPage->pageID());
    178178    m_isShowingFindIndicator = false;
    179179}
  • trunk/WebKit2/WebProcess/WebPage/FindController.h

    r69689 r69862  
    5252
    5353private:
    54     bool updateFindIndicator(WebCore::Frame* selectedFrame);
     54    bool updateFindIndicator(WebCore::Frame* selectedFrame, bool isShowingOverlay);
    5555    void resetFindIndicator();
    5656   
  • trunk/WebKit2/win/WebKit2.vcproj

    r69692 r69862  
    15021502                        </File>
    15031503                        <File
     1504                                RelativePath="..\UIProcess\FindIndicator.cpp"
     1505                                >
     1506                        </File>
     1507                        <File
     1508                                RelativePath="..\UIProcess\FindIndicator.h"
     1509                                >
     1510                        </File>
     1511                        <File
    15041512                                RelativePath="..\UIProcess\GenericCallback.h"
    15051513                                >
Note: See TracChangeset for help on using the changeset viewer.