Changeset 102683 in webkit


Ignore:
Timestamp:
Dec 13, 2011, 9:13:47 AM (13 years ago)
Author:
Nate Chapin
Message:

Revert 96912 - Always call setActive() in WebViewImpl::setFocus(),
not just when enabling focus.
https://bugs.webkit.org/show_bug.cgi?id=65220

Reviewed by Darin Fisher.

  • WebKit.gyp:
  • WebKit.gypi:
  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::setFocus):

  • tests/FrameTestHelpers.cpp: Added, refactored out of WebFrameTest.cpp.

(WebKit::FrameTestHelpers::registerMockedURLLoad):
(WebKit::FrameTestHelpers::loadFrame):
(WebKit::FrameTestHelpers::defaultWebFrameClient):
(WebKit::FrameTestHelpers::defaultWebViewClient):
(WebKit::FrameTestHelpers::createWebViewAndLoad):

  • tests/FrameTestHelpers.h: Added, refactored out of WebFrameTest.cpp.
  • tests/WebFrameTest.cpp:
  • tests/WebViewTest.cpp: Added.

TBR=Nate Chapin
Review URL: http://codereview.chromium.org/8895026

Location:
branches/chromium/963/Source/WebKit/chromium
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/chromium/963/Source/WebKit/chromium/WebKit.gyp

    r101846 r102683  
    730730                                'tests/WebPageNewSerializerTest.cpp',
    731731                                'tests/WebPageSerializerTest.cpp',
    732                                 'tests/WebViewTest.cpp',
    733732                            ],
    734733                            'conditions': [
  • branches/chromium/963/Source/WebKit/chromium/WebKit.gypi

    r101844 r102683  
    7171            'tests/CCThreadTaskTest.cpp',
    7272            'tests/FloatQuadTest.cpp',
    73             'tests/FrameTestHelpers.cpp',
    74             'tests/FrameTestHelpers.h',
    7573            'tests/IDBBindingUtilitiesTest.cpp',
    7674            'tests/IDBKeyPathTest.cpp',
     
    9795            'tests/WebPageSerializerTest.cpp',
    9896            'tests/WebURLRequestTest.cpp',
    99             'tests/WebViewTest.cpp',
    10097        ],
    10198
  • branches/chromium/963/Source/WebKit/chromium/src/WebViewImpl.cpp

    r101852 r102683  
    14241424{
    14251425    m_page->focusController()->setFocused(enable);
    1426     m_page->focusController()->setActive(enable);
    14271426    if (enable) {
     1427        // Note that we don't call setActive() when disabled as this cause extra
     1428        // focus/blur events to be dispatched.
     1429        m_page->focusController()->setActive(true);
    14281430        RefPtr<Frame> focusedFrame = m_page->focusController()->focusedFrame();
    14291431        if (focusedFrame) {
  • branches/chromium/963/Source/WebKit/chromium/tests/WebFrameTest.cpp

    r99940 r102683  
    3131#include "config.h"
    3232
    33 #include "FrameTestHelpers.h"
    3433#include "ResourceError.h"
    3534#include "WebDocument.h"
     
    4140#include "WebSecurityPolicy.h"
    4241#include "WebSettings.h"
     42#include "WebString.h"
     43#include "WebURL.h"
     44#include "WebURLRequest.h"
     45#include "WebURLResponse.h"
     46#include "WebViewClient.h"
    4347#include "WebViewImpl.h"
    4448#include "v8.h"
     49#include <googleurl/src/gurl.h>
    4550#include <gtest/gtest.h>
    4651#include <webkit/support/webkit_support.h>
     
    5358public:
    5459    WebFrameTest()
    55         : m_baseURL("http://www.test.com/"),
    56           m_chromeURL("chrome://")
     60        : baseURL("http://www.test.com/"),
     61          chromeURL("chrome://")
    5762    {
    5863    }
     
    6570    void registerMockedHttpURLLoad(const std::string& fileName)
    6671    {
    67         FrameTestHelpers::registerMockedURLLoad(m_baseURL, fileName);
     72        registerMockedURLLoad(baseURL, fileName);
    6873    }
    6974
    7075    void registerMockedChromeURLLoad(const std::string& fileName)
    7176    {
    72         FrameTestHelpers::registerMockedURLLoad(m_chromeURL, fileName);
     77        registerMockedURLLoad(chromeURL, fileName);
     78    }
     79
     80    void serveRequests()
     81    {
     82        webkit_support::ServeAsynchronousMockedRequests();
     83    }
     84
     85    void loadHttpFrame(WebFrame* frame, const std::string& fileName)
     86    {
     87        loadFrame(frame, baseURL, fileName);
     88    }
     89
     90    void loadChromeFrame(WebFrame* frame, const std::string& fileName)
     91    {
     92        loadFrame(frame, chromeURL, fileName);
     93    }
     94
     95    void registerMockedURLLoad(const std::string& base, const std::string& fileName)
     96    {
     97        WebURLResponse response;
     98        response.initialize();
     99        response.setMIMEType("text/html");
     100
     101        std::string filePath = webkit_support::GetWebKitRootDir().utf8();
     102        filePath += "/Source/WebKit/chromium/tests/data/";
     103        filePath += fileName;
     104
     105        webkit_support::RegisterMockedURL(WebURL(GURL(base + fileName)), response, WebString::fromUTF8(filePath));
     106    }
     107
     108    void loadFrame(WebFrame* frame, const std::string& base, const std::string& fileName)
     109    {
     110        WebURLRequest urlRequest;
     111        urlRequest.initialize();
     112        urlRequest.setURL(WebURL(GURL(base + fileName)));
     113        frame->loadRequest(urlRequest);
    73114    }
    74115
    75116protected:
    76     std::string m_baseURL;
    77     std::string m_chromeURL;
     117    std::string baseURL;
     118    std::string chromeURL;
     119};
     120
     121class TestWebFrameClient : public WebFrameClient {
     122};
     123
     124class TestWebViewClient : public WebViewClient {
    78125};
    79126
     
    85132    registerMockedHttpURLLoad("zero_sized_iframe.html");
    86133
    87     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "iframes_test.html");
     134    // Create and initialize the WebView.
     135    TestWebFrameClient webFrameClient;
     136    WebView* webView = WebView::create(0);
     137    webView->initializeMainFrame(&webFrameClient);
     138
     139    loadHttpFrame(webView->mainFrame(), "iframes_test.html");
     140    serveRequests();
    88141
    89142    // Now retrieve the frames text and test it only includes visible elements.
     
    105158    registerMockedHttpURLLoad("zero_sized_iframe.html");
    106159
    107     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "iframes_test.html", true);
     160    // Create and initialize the WebView.
     161    TestWebFrameClient webFrameClient;
     162    WebView* webView = WebView::create(0);
     163    webView->settings()->setJavaScriptEnabled(true);
     164    webView->initializeMainFrame(&webFrameClient);
     165
     166    loadHttpFrame(webView->mainFrame(), "iframes_test.html");
     167    serveRequests();
    108168
    109169    v8::HandleScope scope;
     
    122182    registerMockedHttpURLLoad("form.html");
    123183
    124     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "form.html");
     184    TestWebFrameClient webFrameClient;
     185    WebView* webView = WebView::create(0);
     186    webView->initializeMainFrame(&webFrameClient);
     187
     188    loadHttpFrame(webView->mainFrame(), "form.html");
     189    serveRequests();
    125190
    126191    WebVector<WebFormElement> forms;
     
    138203    registerMockedChromeURLLoad("history.html");
    139204
    140     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_chromeURL + "history.html", true);
     205    // Create and initialize the WebView.
     206    TestWebFrameClient webFrameClient;
     207    WebView* webView = WebView::create(0);
     208    webView->settings()->setJavaScriptEnabled(true);
     209    webView->initializeMainFrame(&webFrameClient);
     210
     211    loadChromeFrame(webView->mainFrame(), "history.html");
     212    serveRequests();
    141213
    142214    // Try to run JS against the chrome-style URL.
    143215    WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs("chrome");
    144     FrameTestHelpers::loadFrame(webView->mainFrame(), "javascript:document.body.appendChild(document.createTextNode('Clobbered'))");
     216    loadFrame(webView->mainFrame(), "javascript:", "document.body.appendChild(document.createTextNode('Clobbered'))");
    145217
    146218    // Now retrieve the frames text and see if it was clobbered.
     
    176248
    177249    TestReloadDoesntRedirectWebFrameClient webFrameClient;
    178     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "form.html", false, &webFrameClient);
     250    WebView* webView = WebView::create(0);
     251    webView->initializeMainFrame(&webFrameClient);
     252
     253    loadHttpFrame(webView->mainFrame(), "form.html");
     254    serveRequests();
     255    // Frame is loaded.
    179256
    180257    webView->mainFrame()->reload(true);
    181258    // start reload before request is delivered.
    182259    webView->mainFrame()->reload(true);
    183     webkit_support::ServeAsynchronousMockedRequests();
     260    serveRequests();
    184261}
    185262
     
    189266    registerMockedHttpURLLoad("autofocus_input_field_iframe.html");
    190267
    191     WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(FrameTestHelpers::createWebViewAndLoad(m_baseURL + "iframe_clear_focused_node_test.html", true));
     268    // Create and initialize the WebView.
     269    TestWebFrameClient webFrameClient;
     270    TestWebViewClient webviewClient;
     271    WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(WebView::create(&webviewClient));
     272    webViewImpl->settings()->setJavaScriptEnabled(true);
     273    webViewImpl->initializeMainFrame(&webFrameClient);
     274
     275    loadHttpFrame(webViewImpl->mainFrame(), "iframe_clear_focused_node_test.html");
     276    serveRequests();
    192277
    193278    // Clear the focused node.
     
    269354    // Load a frame with an iframe, make sure we get the right create notifications.
    270355    ContextLifetimeTestWebFrameClient webFrameClient;
    271     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "context_notifications_test.html", true, &webFrameClient);
     356    WebView* webView = WebView::create(0);
     357    webView->settings()->setJavaScriptEnabled(true);
     358    webView->initializeMainFrame(&webFrameClient);
     359    loadHttpFrame(webView->mainFrame(), "context_notifications_test.html");
     360    serveRequests();
    272361
    273362    WebFrame* mainFrame = webView->mainFrame();
     
    307396
    308397    ContextLifetimeTestWebFrameClient webFrameClient;
    309     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "context_notifications_test.html", true, &webFrameClient);
     398    WebView* webView = WebView::create(0);
     399    webView->settings()->setJavaScriptEnabled(true);
     400    webView->initializeMainFrame(&webFrameClient);
     401    loadHttpFrame(webView->mainFrame(), "context_notifications_test.html");
     402    serveRequests();
    310403
    311404    // Refresh, we should get two release notifications and two more create notifications.
    312405    webView->mainFrame()->reload(false);
    313     webkit_support::ServeAsynchronousMockedRequests();
     406    serveRequests();
    314407    ASSERT_EQ(4u, webFrameClient.createNotifications.size());
    315408    ASSERT_EQ(2u, webFrameClient.releaseNotifications.size());
     
    346439
    347440    ContextLifetimeTestWebFrameClient webFrameClient;
    348     WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "context_notifications_test.html", true, &webFrameClient);
     441    WebView* webView = WebView::create(0);
     442    webView->settings()->setJavaScriptEnabled(true);
     443    webView->initializeMainFrame(&webFrameClient);
     444    loadHttpFrame(webView->mainFrame(), "context_notifications_test.html");
     445    serveRequests();
    349446
    350447    // Add an isolated world.
Note: See TracChangeset for help on using the changeset viewer.