Changeset 74275 in webkit


Ignore:
Timestamp:
Dec 17, 2010 9:57:44 AM (13 years ago)
Author:
Darin Adler
Message:

2010-12-16 Darin Adler <Darin Adler>

Reviewed by Maciej Stachowiak.

Add text encoding menu API for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=51226

  • UIProcess/API/C/WKPage.cpp: (WKPageSupportsTextEncoding): Added. (WKPageCopyCustomTextEncodingName): Added. (WKPageSetCustomTextEncodingName): Added.
  • UIProcess/API/C/WKPage.h: Added the functions above.
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Initialize m_mainFrameHasCustomRepresentation to false. (WebKit::WebPageProxy::supportsTextEncoding): Added. (WebKit::WebPageProxy::setCustomTextEncodingName): Added. (WebKit::WebPageProxy::didCommitLoadForFrame): Set m_mainFrameHasCustomRepresentation.
  • UIProcess/WebPageProxy.h: Added supportsTextEncoding, setCustomTextEncodingName, customTextEncodingName, and m_mainFrameHasCustomRepresentation.
  • UIProcess/WebPageProxy.messages.in: Tweaked formatting (added a blank line).
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setCustomTextEncodingName): Added.
  • WebProcess/WebPage/WebPage.h: Added setCustomTextEncodingName.
  • WebProcess/WebPage/WebPage.messages.in: Added the SetCustomTextEncodingName message. Tweaked formatting of the dummy message.
Location:
trunk/WebKit2
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r74268 r74275  
     12010-12-16  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Add text encoding menu API for WebKit2
     6        https://bugs.webkit.org/show_bug.cgi?id=51226
     7
     8        * UIProcess/API/C/WKPage.cpp:
     9        (WKPageSupportsTextEncoding): Added.
     10        (WKPageCopyCustomTextEncodingName): Added.
     11        (WKPageSetCustomTextEncodingName): Added.
     12        * UIProcess/API/C/WKPage.h: Added the functions above.
     13
     14        * UIProcess/WebPageProxy.cpp:
     15        (WebKit::WebPageProxy::WebPageProxy): Initialize
     16        m_mainFrameHasCustomRepresentation to false.
     17        (WebKit::WebPageProxy::supportsTextEncoding): Added.
     18        (WebKit::WebPageProxy::setCustomTextEncodingName): Added.
     19        (WebKit::WebPageProxy::didCommitLoadForFrame): Set
     20        m_mainFrameHasCustomRepresentation.
     21
     22        * UIProcess/WebPageProxy.h: Added supportsTextEncoding,
     23        setCustomTextEncodingName, customTextEncodingName, and
     24        m_mainFrameHasCustomRepresentation.
     25
     26        * UIProcess/WebPageProxy.messages.in: Tweaked formatting
     27        (added a blank line).
     28
     29        * WebProcess/WebPage/WebPage.cpp:
     30        (WebKit::WebPage::setCustomTextEncodingName): Added.
     31        * WebProcess/WebPage/WebPage.h: Added setCustomTextEncodingName.
     32
     33        * WebProcess/WebPage/WebPage.messages.in: Added the
     34        SetCustomTextEncodingName message. Tweaked formatting of the
     35        dummy message.
     36
    1372010-12-17  Sheriff Bot  <webkit.review.bot@gmail.com>
    238
  • trunk/WebKit2/UIProcess/API/C/WKPage.cpp

    r74000 r74275  
    190190}
    191191
     192bool WKPageSupportsTextEncoding(WKPageRef pageRef)
     193{
     194    return toImpl(pageRef)->supportsTextEncoding();
     195}
     196
     197WKStringRef WKPageCopyCustomTextEncodingName(WKPageRef pageRef)
     198{
     199    return toCopiedAPI(toImpl(pageRef)->customTextEncodingName());
     200}
     201
     202void WKPageSetCustomTextEncodingName(WKPageRef pageRef, WKStringRef encodingNameRef)
     203{
     204    toImpl(pageRef)->setCustomTextEncodingName(toWTFString(encodingNameRef));
     205}
     206
    192207void WKPageTerminate(WKPageRef pageRef)
    193208{
  • trunk/WebKit2/UIProcess/API/C/WKPage.h

    r74139 r74275  
    261261WK_EXPORT void WKPageSetCustomUserAgent(WKPageRef page, WKStringRef userAgent);
    262262
     263WK_EXPORT bool WKPageSupportsTextEncoding(WKPageRef page);
     264WK_EXPORT WKStringRef WKPageCopyCustomTextEncodingName(WKPageRef page);
     265WK_EXPORT void WKPageSetCustomTextEncodingName(WKPageRef page, WKStringRef encodingName);
     266
    263267WK_EXPORT void WKPageTerminate(WKPageRef page);
    264268
  • trunk/WebKit2/UIProcess/WebPageProxy.cpp

    r74164 r74275  
    109109    , m_processingWheelEvent(false)
    110110    , m_pageID(pageID)
     111    , m_mainFrameHasCustomRepresentation(false)
    111112{
    112113#ifndef NDEBUG
     
    661662}
    662663
     664bool WebPageProxy::supportsTextEncoding() const
     665{
     666    return !m_mainFrameHasCustomRepresentation && m_mainFrame && !m_mainFrame->isDisplayingStandaloneImageDocument();
     667}
     668
     669void WebPageProxy::setCustomTextEncodingName(const String& encodingName)
     670{
     671    if (m_customTextEncodingName == encodingName)
     672        return;
     673    m_customTextEncodingName = encodingName;
     674
     675    if (!isValid())
     676        return;
     677    process()->send(Messages::WebPage::SetCustomTextEncodingName(encodingName), m_pageID);
     678}
     679
    663680void WebPageProxy::terminateProcess()
    664681{
     
    931948    frame->didCommitLoad();
    932949
    933     if (frame->isMainFrame())
     950    if (frame->isMainFrame()) {
     951        m_mainFrameHasCustomRepresentation = frameHasCustomRepresentation;
    934952        m_pageClient->didCommitLoadForMainFrame(frameHasCustomRepresentation);
     953    }
    935954
    936955    m_loaderClient.didCommitLoadForFrame(this, frame, userData.get());
  • trunk/WebKit2/UIProcess/WebPageProxy.h

    r74164 r74275  
    180180    WebCore::IntRect firstRectForCharacterRange(uint64_t, uint64_t);
    181181    void didSelectionChange(bool, bool, bool, bool, uint64_t, uint64_t);
    182 
    183182    void sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput);
    184 
    185183#else
    186184    void didChangeSelection(bool, bool, bool, bool);
     
    213211    void setCustomUserAgent(const String&);
    214212    const String& customUserAgent() const { return m_customUserAgent; }
     213
     214    bool supportsTextEncoding() const;
     215    void setCustomTextEncodingName(const String&);
     216    String customTextEncodingName() const { return m_customTextEncodingName; }
    215217
    216218    double estimatedProgress() const { return m_estimatedProgress; }
     
    439441    String m_applicationNameForUserAgent;
    440442    String m_customUserAgent;
     443    String m_customTextEncodingName;
    441444
    442445#if ENABLE(INSPECTOR)
     
    492495
    493496    uint64_t m_pageID;
     497
     498    bool m_mainFrameHasCustomRepresentation;
    494499};
    495500
  • trunk/WebKit2/UIProcess/WebPageProxy.messages.in

    r74224 r74275  
    132132    DidChangeCompositionSelection(bool hasChanged)
    133133#endif
     134
    134135    # Find.
    135136    DidCountStringMatches(WTF::String string, uint32_t matchCount)
  • trunk/WebKit2/WebProcess/WebPage/WebPage.cpp

    r74209 r74275  
    13021302}
    13031303
     1304void WebPage::setCustomTextEncodingName(const String& encoding)
     1305{
     1306    m_page->mainFrame()->loader()->reloadWithOverrideEncoding(encoding);
     1307}
     1308
    13041309} // namespace WebKit
  • trunk/WebKit2/WebProcess/WebPage/WebPage.h

    r74164 r74275  
    318318    void didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction, uint64_t downloadID);
    319319    void setUserAgent(const String&);
     320    void setCustomTextEncodingName(const String&);
    320321
    321322#if PLATFORM(MAC)
  • trunk/WebKit2/WebProcess/WebPage/WebPage.messages.in

    r74224 r74275  
    5858
    5959    SetUserAgent(WTF::String userAgent)
     60    SetCustomTextEncodingName(WTF::String encodingName)
    6061
    6162#if ENABLE(TILED_BACKING_STORE)
     
    9798    SetWindowResizerSize(WebCore::IntSize intersectsView)
    9899
    99         // This is a dummy message to avoid breaking the build for platforms that don't require
    100         // synchronous messages.
    101     // FIXME: should be removed when <rdar://problem/8775115> is fixed.
    102         Dummy() -> (bool dummyReturn)
    103        
     100    // FIXME: This a dummy message, to avoid breaking the build for platforms that don't require
     101    // any synchronous messages, and should be removed when <rdar://problem/8775115> is fixed.
     102    Dummy() -> (bool dummyReturn)
     103
    104104#if PLATFORM(MAC)
    105105    # Complex text input support for plug-ins.
Note: See TracChangeset for help on using the changeset viewer.