1. 22 Dec, 2013 5 commits
  2. 21 Dec, 2013 10 commits
    • ryuan.choi@samsung.com's avatar
      Unreviewed build fix attempt on EFL port after r160971 and r160969 · 0b6039c2
      ryuan.choi@samsung.com authored
      * CMakeLists.txt:
      * UIProcess/soup/WebSoupRequestManagerClient.cpp:
      (WebKit::WebSoupRequestManagerClient::didReceiveURIRequest):
      * UIProcess/soup/WebSoupRequestManagerProxy.cpp:
      (WebKit::WebSoupRequestManagerProxy::didReceiveURIRequest):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0b6039c2
    • weinig@apple.com's avatar
      [WK2] Rename WebError to API::Error · cf55375b
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126125
      
      Reviewed by Anders Carlsson.
      
      * Shared/API/c/WKError.cpp:
      (WKErrorGetTypeID):
      (WKErrorCopyWKErrorDomain):
      * Shared/API/c/WKSharedAPICast.h:
      (WebKit::toAPI):
      * Shared/API/c/cf/WKErrorCF.cpp:
      (WKErrorCreateWithCFError):
      * Shared/APIError.cpp: Copied from Source/WebKit2/Shared/WebError.cpp.
      (API::Error::webKitErrorDomain):
      (API::Error::encode):
      (API::Error::decode):
      * Shared/APIError.h: Copied from Source/WebKit2/Shared/WebError.h.
      (API::Error::create):
      (API::Error::domain):
      (API::Error::failingURL):
      (API::Error::localizedDescription):
      (API::Error::Error):
      * Shared/Cocoa/WKNSError.h:
      (WebKit::wrapper):
      * Shared/Cocoa/WKNSError.mm:
      (-[WKNSError _web_createTarget]):
      * Shared/UserData.cpp:
      (WebKit::UserData::encode):
      (WebKit::UserData::decode):
      * Shared/UserMessageCoders.h:
      (WebKit::UserMessageEncoder::baseEncode):
      (WebKit::UserMessageDecoder::baseDecode):
      * Shared/WebError.cpp: Removed.
      * Shared/WebError.h: Removed.
      * UIProcess/AutoCorrectionCallback.h:
      (WebKit::AutocorrectionDataCallback::invalidate):
      * UIProcess/GenericCallback.h:
      (WebKit::VoidCallback::invalidate):
      (WebKit::GenericCallback::invalidate):
      (WebKit::ComputedPagesCallback::invalidate):
      (WebKit::ImageCallback::invalidate):
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::printFinishedCallback):
      * UIProcess/WebPageProxy.h:
      (WebKit::ValidateCommandCallback::invalidate):
      (WebKit::GestureCallback::invalidate):
      (WebKit::TouchesCallback::invalidate):
      * WebKit2.xcodeproj/project.pbxproj:
      * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
      * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
      * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
      (WebKit::blockedError):
      (WebKit::cannotShowURLError):
      (WebKit::interruptedForPolicyChangeError):
      (WebKit::cannotShowMIMETypeError):
      (WebKit::pluginWillHandleLoadError):
      (WebKit::internalError):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf55375b
    • aestes@apple.com's avatar
      [Mac] Soft-link WebContentAnalysis.framework · e827a0ac
      aestes@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126102
      
      Reviewed by Dan Bernstein.
      
      * Configurations/WebCore.xcconfig: There's no need to modify LDFLAGS
      now that we don't hard link against WebContentAnalysis.framework.
      * WebCore.xcodeproj/project.pbxproj: Removed
      WebContentAnalysis.framework from the 'Link Binary with Libraries'
      build phase.
      * platform/mac/ContentFilterMac.mm: Soft-linked
      WebContentAnalysis.framework and the WebFilterEvaluator @class.
      (WebCore::ContentFilter::ContentFilter): Called getWebFilterEvaluatorClass().
      (WebCore::ContentFilter::isEnabled): Ditto.
      * platform/mac/SoftLinking.h: Added an implementation of
      SOFT_LINK_PRIVATE_FRAMEWORK().
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160970 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e827a0ac
    • weinig@apple.com's avatar
      [WK2] Rename WebURL to API::URL · 7c6c01b6
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126100
      
      Reviewed by Anders Carlsson.
      
      * Shared/API/c/WKSharedAPICast.h:
      (WebKit::toURLRef):
      (WebKit::toCopiedURLAPI):
      * Shared/API/c/WKURL.cpp:
      (WKURLGetTypeID):
      (WKURLCreateWithUTF8CString):
      (WKURLCreateWithBaseURL):
      * Shared/API/c/cf/WKURLCF.mm:
      (WKURLCreateWithCFURL):
      * Shared/APIURL.h: Copied from Source/WebKit2/Shared/WebURL.h.
      (API::URL::create):
      (API::URL::string):
      (API::URL::host):
      (API::URL::protocol):
      (API::URL::path):
      (API::URL::lastPathComponent):
      (API::URL::encode):
      (API::URL::decode):
      (API::URL::URL):
      * Shared/Cocoa/WKNSURL.h:
      (WebKit::wrapper):
      * Shared/Cocoa/WKNSURL.mm:
      (-[WKNSURL _web_createTarget]):
      * Shared/Plugins/Netscape/PluginInformation.cpp:
      (WebKit::createPluginInformationDictionary):
      * Shared/UserData.cpp:
      (WebKit::UserData::encode):
      (WebKit::UserData::decode):
      * Shared/UserMessageCoders.h:
      (WebKit::UserMessageEncoder::baseEncode):
      (WebKit::UserMessageDecoder::baseDecode):
      * Shared/WebArchiveResource.h:
      * Shared/WebURL.h: Removed.
      * UIProcess/WebFrameProxy.cpp:
      (WebKit::WebFrameProxy::getResourceData):
      * UIProcess/WebFrameProxy.h:
      * UIProcess/WebIconDatabase.cpp:
      (WebKit::WebIconDatabase::didChangeIconForPageURL):
      (WebKit::WebIconDatabase::notifyIconDataReadyForPageURL):
      * UIProcess/WebIconDatabaseClient.cpp:
      (WebKit::WebIconDatabaseClient::didChangeIconForPageURL):
      (WebKit::WebIconDatabaseClient::iconDataReadyForPageURL):
      * UIProcess/WebIconDatabaseClient.h:
      * UIProcess/WebOpenPanelResultListenerProxy.cpp:
      (WebKit::WebOpenPanelResultListenerProxy::chooseFiles):
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::getResourceDataFromFrame):
      * UIProcess/WebPageProxy.h:
      * WebKit2.xcodeproj/project.pbxproj:
      * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7c6c01b6
    • antti@apple.com's avatar
      Unreviewed, rolling out r160916. · 717d4456
      antti@apple.com authored
      http://trac.webkit.org/changeset/160916
      https://bugs.webkit.org/show_bug.cgi?id=126073
      
      Roll out a temporary fix. The underlying issue was fixed.
      
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
      (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
      (WebCore::AccessibilityRenderObject::detach):
      (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
      * accessibility/AccessibilityRenderObject.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      717d4456
    • antti@apple.com's avatar
      Figure out if node is focusable without requiring renderer · f02be1e8
      antti@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126118
      
      Reviewed by Andreas Kling.
      
      * dom/Element.cpp:
      (WebCore::Element::computedStyle):
              
          Use inDocument() test instead of the attached() test. We can compute style for anything that
          is in document.
      
      * dom/Node.cpp:
      (WebCore::Node::isContentEditable):
      (WebCore::Node::isContentRichlyEditable):
      (WebCore::Node::hasEditableStyle):
              
          Use computedStyle instead of getting the style from renderer. Computed style gets constructed
          on demand if renderer does not exist. If it does then the existing style is used.
      
      (WebCore::Node::isEditableToAccessibility):
      (WebCore::Node::canStartSelection):
      (WebCore::Node::isRootEditableElement):
      (WebCore::Node::rootEditableElement):
      * dom/Node.h:
      (WebCore::Node::hasEditableStyle):
      (WebCore::Node::hasRichlyEditableStyle):
              
          Renamed from rendererIsEditable since these no longer require renderer.
      
      (WebCore::HTMLElement::supportsFocus):
              
          Stop calling updateStyleIfNeeded() and forcing render tree construction.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f02be1e8
    • carlosgc@webkit.org's avatar
      [GTK] Test /webkit2/WebKitWebResource/mime-type fails when run after... · b37ca71d
      carlosgc@webkit.org authored
      [GTK] Test /webkit2/WebKitWebResource/mime-type fails when run after /webkit2/WebKitWebView/resources
      https://bugs.webkit.org/show_bug.cgi?id=126119
      
      Reviewed by Martin Robinson.
      
      The problem is that when the blank.ico resource is loaded from the
      disk cache, the mime type is null, because the soup cache doesn't
      cache sniffed mime types. This doesn't happen when a resource is
      loaded form the memory cache, because the ResourceResponse is
      cached, not only the headers. I think the disk cache should also
      cache the sniffed content type, but that needs to be done in
      soup. For now we can workaround the issue in the unit test by
      making sure that resources that can be cached, also include the
      Content-Type header, this way the mime type won't be sniffed and
      it will be cached as a HTTP header in the disk cache.
      
      * UIProcess/API/gtk/tests/TestResources.cpp:
      (serverCallback): Add Content-Type header for resources that can
      be cached.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160965 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b37ca71d
    • carlosgc@webkit.org's avatar
      REGRESSION(r160909): [GTK] Tests /webkit2/WebKitWebView/default-menu and... · 506c4f2a
      carlosgc@webkit.org authored
      REGRESSION(r160909): [GTK] Tests /webkit2/WebKitWebView/default-menu and /webkit2/WebKitSettings/webkit-settings fail
      https://bugs.webkit.org/show_bug.cgi?id=126117
      
      Reviewed by Martin Robinson.
      
      In r160909 the fullscreen setting default value was changed, but
      the unit tests relaying on the default value were not updated
      accordingly.
      
      * UIProcess/API/gtk/tests/TestContextMenu.cpp:
      * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
      (testWebKitSettings):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160964 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      506c4f2a
    • carlosgc@webkit.org's avatar
      Unreviewed. Add myself to some more watch lists. · 72ab41bd
      carlosgc@webkit.org authored
      * Scripts/webkitpy/common/config/watchlist: Watch also soup, gst
      and binding scripts patches.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160962 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72ab41bd
    • carlosgc@webkit.org's avatar
      [SOUP] ResourceHandleSoup should use async client callbacks when client uses async callbacks · 6e4813a0
      carlosgc@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=126006
      
      Reviewed by Martin Robinson.
      
      This fixes WebKit2 loader client unit tests when using the network
      process.
      
      * platform/network/ResourceHandle.cpp:
      * platform/network/soup/ResourceHandleSoup.cpp:
      (WebCore::doRedirect): Call willSendRequestAsync on the client
      when usesAsyncCallbacks returns true.
      (WebCore::nextMultipartResponsePartCallback): Call
      didReceiveResponseAsync on the client when usesAsyncCallbacks
      returns true.
      (WebCore::sendRequestCallback): Ditto.
      (WebCore::ResourceHandle::continueWillSendRequest): Empty
      implementation for now because the default one asserts.
      (WebCore::ResourceHandle::continueDidReceiveResponse): Ditto.
      (WebCore::ResourceHandle::continueShouldUseCredentialStorage): Ditto.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160961 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6e4813a0
  3. 20 Dec, 2013 25 commits
    • andersca@apple.com's avatar
      Replace yield() and pauseBriefly() with std::this_thread::yield() · 6bdbc727
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126105
      
      Reviewed by Sam Weinig.
      
      Source/WebCore:
      
      * platform/sql/SQLiteDatabase.cpp:
      (WebCore::SQLiteDatabase::interrupt):
      
      Source/WTF:
      
      * wtf/ByteSpinLock.h:
      (WTF::ByteSpinLock::lock):
      * wtf/Threading.h:
      * wtf/ThreadingPrimitives.h:
      * wtf/ThreadingPthreads.cpp:
      * wtf/ThreadingWin.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6bdbc727
    • rniwa@webkit.org's avatar
      Assert that RootInlineBox::setLineBreakInfo should is never called on a... · 231a3430
      rniwa@webkit.org authored
      Assert that RootInlineBox::setLineBreakInfo should is never called on a RenderInline without line boxes
      https://bugs.webkit.org/show_bug.cgi?id=126101
      
      Reviewed by Simon Fraser.
      
      Merge assertions added in https://chromium.googlesource.com/chromium/blink/+/716ac74fd475b581d69c0aa8ec2d806201c3a420
      
      The code change was not merged since we never hit the added assertion on the attached test case in WebKit.
      
      * rendering/RootInlineBox.cpp:
      (WebCore::RootInlineBox::setLineBreakInfo):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      231a3430
    • commit-queue@webkit.org's avatar
      Web Inspector: Remove the references to Node in InjectedScript · c15383f2
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=126091
      
      Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-12-20
      Reviewed by Timothy Hatcher.
      
      Remove the last DOM references from InjectedScript so that
      InjectedScript can move down into JavaScriptCore. The only
      remaining references were to Nodes, which are all just thin
      wrappers around existing functions. Move Node / JSNode (JSValue)
      conversion into InspectorDOMAgent, where it was used.
      
      No new tests, no observable change in functionality.
      
      * bindings/js/JSInjectedScriptHostCustom.cpp:
      * inspector/InjectedScript.cpp:
      (WebCore::InjectedScript::inspectObject):
      (WebCore::InjectedScript::releaseObject):
      * inspector/InjectedScript.h:
      * inspector/InjectedScriptHost.h:
      * inspector/InjectedScriptSource.js:
      * inspector/InspectorDOMAgent.cpp:
      (WebCore::InspectorDOMAgent::focusNode):
      (WebCore::InspectorDOMAgent::highlightNode):
      (WebCore::InspectorDOMAgent::requestNode):
      (WebCore::InspectorDOMAgent::nodeForObjectId):
      (WebCore::InspectorDOMAgent::resolveNode):
      (WebCore::InspectorDOMAgent::scriptValueAsNode):
      (WebCore::InspectorDOMAgent::nodeAsScriptValue):
      * inspector/InspectorDOMAgent.h:
      * inspector/PageConsoleAgent.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c15383f2
    • andersca@apple.com's avatar
      Speed up case folding for 8-bit strings · 649f80eb
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126098
      
      Reviewed by Geoffrey Garen.
      
      Add a case folding lookup table for 8-bit strings and use it instead of calling down to u_foldCase.
      On a simple microbenchmark using a lookup table is about 15x faster.
      
      * wtf/text/StringHash.h:
      (WTF::CaseFoldingHash::foldCase):
      * wtf/text/StringImpl.cpp:
      (WTF::equalIgnoringCase):
      * wtf/text/StringImpl.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      649f80eb
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r160941. · 46696507
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/160941
      https://bugs.webkit.org/show_bug.cgi?id=126095
      
      Doesn't handle subpixel layout being disabled (Requested by
      smfr on #webkit).
      
      * gdb/webkit.py:
      (JSCJSStringPrinter.to_string):
      (add_pretty_printers):
      * lldb/lldb_webkit.py:
      (WTFMediaTime_SummaryProvider):
      (WTFStringProvider.to_string):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160953 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      46696507
    • ljaehun.lim@samsung.com's avatar
      Unreviewed build fix after r160939 · d5ff8382
      ljaehun.lim@samsung.com authored
      Add ENABLE(CUSTOM_PROTOCOLS) guard.
      
      * UIProcess/WebContext.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d5ff8382
    • mmaxfield@apple.com's avatar
      Faster implementation of text-decoration-skip: ink · 72be4bbc
      mmaxfield@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=125718
      
      Reviewed by Simon Fraser.
      
      Source/WebCore:
      
      This new implementation of text-decoration-skip: ink extracts
      each glyph into a path, then decomposes each path into a series
      of contours. It then intersects each contour with the top and
      bottom of the underline (by approximating the contour with a line).
      It then draws underlines in between these intersection regions.
      
      Tests for text-decoration-skip: ink already exist in
      fast/css3-text/css3-text-decoration/text-decoration-skip
      
      * platform/graphics/Font.h: Signature of new function
      * platform/graphics/mac/FontMac.mm:
      (WebCore::GlyphIterationState::GlyphIterationState): Persistent
      between calls to findPathIntersections
      (WebCore::findIntersectionPoint): Calculates an intersection point
      between two lines
      (WebCore::findPathIntersections): Called by CGPathApply to find
      intersections of each contour
      (WebCore::Font::intersectionPoints): Function to get the places
      where an underline would intersect a TextRun.
      * rendering/InlineTextBox.cpp:
      (WebCore::compareTuples): Used for sorting intersection ranges
      (WebCore::translateIntersectionPointsToSkipInkBoundaries): Converts
      a sequence of intersection points to the locations where
      text-decoration-skip: ink should draw underlines
      (WebCore::drawSkipInkUnderline): Draws a sequence of short underlines
      (WebCore::InlineTextBox::paintDecoration):
      * rendering/TextPainter.cpp:
      (WebCore::TextPainter::intersectionPoints): Calls Font::intersectionPoints
      * rendering/TextPainter.h:
      
      Source/WTF:
      
      This creates a new preprocessor define, CSS3_TEXT_DECORATION_SKIP_INK,
      which enables the use of the text-decoration-skip: ink CSS value.
      Creating this new value simplifies the logic about when to enable the
      codepath for this CSS value.
      
      * wtf/Platform.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72be4bbc
    • simon.fraser@apple.com's avatar
      Try to fix the Windows build. · f7167502
      simon.fraser@apple.com authored
      * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f7167502
    • joepeck@webkit.org's avatar
      Web Inspector: Give the CommandLineAPIModule its own Host object, making... · b7b8b6b6
      joepeck@webkit.org authored
      Web Inspector: Give the CommandLineAPIModule its own Host object, making InjectedScriptHost viable for a JS Context
      https://bugs.webkit.org/show_bug.cgi?id=126082
      
      Reviewed by Timothy Hatcher.
      
      Extract CommandLineAPIHost from InjectedScriptHost. The command line API contained
      a bunch of DOM specific JavaScript that would not be suitable for a pure JavaScript
      environment. Now that the DOM related code is in this WebCore only module, give this
      module a host object that WebCore will provide.
      
      No new tests, no observable change in functionality.
      
      * CMakeLists.txt:
      * DerivedSources.cpp:
      * DerivedSources.make:
      * GNUmakefile.list.am:
      * UseJSC.cmake:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/JSBindingsAllInOne.cpp:
      Add new files.
      
      * bindings/js/JSCommandLineAPIHostCustom.cpp: Added.
      (WebCore::JSCommandLineAPIHost::inspectedObject):
      (WebCore::getJSListenerFunctions):
      (WebCore::JSCommandLineAPIHost::getEventListeners):
      (WebCore::JSCommandLineAPIHost::inspect):
      (WebCore::JSCommandLineAPIHost::databaseId):
      (WebCore::JSCommandLineAPIHost::storageId):
      * bindings/js/JSInjectedScriptHostCustom.cpp:
      * inspector/CommandLineAPIHost.cpp: Copied from Source/WebCore/inspector/InjectedScriptHost.cpp.
      (WebCore::CommandLineAPIHost::create):
      (WebCore::CommandLineAPIHost::CommandLineAPIHost):
      (WebCore::CommandLineAPIHost::~CommandLineAPIHost):
      (WebCore::CommandLineAPIHost::disconnect):
      (WebCore::CommandLineAPIHost::inspectImpl):
      (WebCore::CommandLineAPIHost::getEventListenersImpl):
      (WebCore::CommandLineAPIHost::clearConsoleMessages):
      (WebCore::CommandLineAPIHost::copyText):
      (WebCore::CommandLineAPIHost::InspectableObject::get):
      (WebCore::CommandLineAPIHost::addInspectedObject):
      (WebCore::CommandLineAPIHost::clearInspectedObjects):
      (WebCore::CommandLineAPIHost::inspectedObject):
      (WebCore::CommandLineAPIHost::databaseIdImpl):
      (WebCore::CommandLineAPIHost::storageIdImpl):
      * inspector/CommandLineAPIHost.h: Copied from Source/WebCore/inspector/InjectedScriptHost.h.
      (WebCore::CommandLineAPIHost::init):
      * inspector/CommandLineAPIHost.idl: Copied from Source/WebCore/inspector/InjectedScriptHost.idl.
      * inspector/CommandLineAPIModule.cpp:
      These are almost all pure copies from InjectedScriptHost files. Cleaned up a bit.
      
      * inspector/InjectedScriptModule.h:
      * inspector/InjectedScriptModule.cpp:
      (WebCore::InjectedScriptModule::ensureInjected):
      Modules can now define a host object when they are getting injected.
      
      (WebCore::CommandLineAPIModule::host):
      * inspector/CommandLineAPIModule.h:
      Provide a CommandLineAPIHost, host object.
      
      * inspector/InjectedScriptCanvasModule.h:
      * inspector/InjectedScriptCanvasModule.cpp:
      (WebCore::InjectedScriptCanvasModule::host):
      No host object is needed for the CanvasModule.
      
      * inspector/InjectedScriptSource.js:
      * inspector/CommandLineAPIModuleSource.js:
      When injecting a module, pass on an optional host object to
      the module's source. Move a little more code between the
      two files. The two files are very tightly coupled right now.
      
      * inspector/InjectedScriptHost.cpp:
      (WebCore::InjectedScriptHost::create):
      * inspector/InjectedScriptHost.h:
      (WebCore::InjectedScriptHost::~InjectedScriptHost):
      (WebCore::InjectedScriptHost::InjectedScriptHost):
      * inspector/InjectedScriptHost.idl:
      Move any command line specific logic to CommandLineAPIHost classes.
      
      * inspector/InjectedScriptManager.cpp:
      (WebCore::InjectedScriptManager::disconnect):
      * inspector/InjectedScriptManager.h:
      (WebCore::InjectedScriptManager::commandLineAPIHost):
      * inspector/InspectorConsoleAgent.cpp:
      (WebCore::InspectorConsoleAgent::addInspectedHeapObject):
      * inspector/InspectorController.cpp:
      (WebCore::InspectorController::InspectorController):
      * inspector/InspectorHeapProfilerAgent.cpp:
      (WebCore::InspectorHeapProfilerAgent::resetState):
      * inspector/InspectorProfilerAgent.cpp:
      (WebCore::InspectorProfilerAgent::resetState):
      * inspector/PageConsoleAgent.cpp:
      (WebCore::PageConsoleAgent::addInspectedNode):
      * inspector/PageInjectedScriptManager.cpp:
      (WebCore::PageInjectedScriptManager::PageInjectedScriptManager):
      (WebCore::PageInjectedScriptManager::disconnect):
      * inspector/PageInjectedScriptManager.h:
      * inspector/WorkerInspectorController.cpp:
      (WebCore::WorkerInspectorController::WorkerInspectorController):
      An InjectedScriptManager may optionally have a commandLineAPIHost object.
      If it does, initialize it, and send it messages.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b7b8b6b6
    • mmaxfield@apple.com's avatar
      Allow ImageBuffer to re-use IOSurfaces · 056ce856
      mmaxfield@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=125477
      
      Reviewed by Geoff Garen.
      
      PerformanceTests:
      
      This test times creating a variety of different sizes of canvases
      once some have already been created. The second creation of the
      canvases should re-use the existing IOSurfaces.
      
      * Canvas/reuse.html: Added.
      
      Source/WebCore:
      
      This test adds a static class, ImageBufferBackingStoreCache, that vends
      IOSurfaces. It remembers IOSurfaces that have been returned to it until
      a configurable timeout.
      
      The storage used by this class is in the form of a HashMap from a
      bucketed size to the IOSurface. There are many other data structures
      that could be used, but this implementation gives a 80% hit rate on
      normal browsing of some example sites with Canvas and
      text-decoration-skip: ink. Because the buckets are fairly
      small (rounding the width and height up to multiples of 8), traversing the
      bucket contents takes on average 2 steps.
      
      Test: fast/canvas/canvas-backing-store-reuse.html
      
      * WebCore.xcodeproj/project.pbxproj: Added new caching class
      * platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added.
      (WebCore::createIOSurface): Moved from ImageBufferCG.cpp
      (WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache
      contents
      (WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
      (WebCore::ImageBufferBackingStoreCache::get): Static getter
      (WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
      (WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management
      creation function
      (WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management
      deletion function
      (WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached
      IOSurface fit the bill?
      (WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup
      a bucket and walk through its contents
      (WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function
      for clients who want a IOSurface from the cache
      (WebCore::ImageBufferBackingStoreCache::deallocate): Public
      function for clients to return an IOSurface to the pool
      * platform/graphics/cg/ImageBufferBackingStoreCache.h: Added.
      * platform/graphics/cg/ImageBufferCG.cpp: Update to use new cache
      (WebCore::ImageBuffer::ImageBuffer):
      (WebCore::ImageBuffer::~ImageBuffer):
      
      LayoutTests:
      
      Now that we're re-using the backing store of canvases, this
      test makes sure that if we draw to a canvas, then destroy it,
      then create a new canvas (which should share the same backing
      store) that it doesn't have the stale data in it
      
      * fast/canvas/canvas-backing-store-reuse-expected.txt: Added.
      * fast/canvas/canvas-backing-store-reuse.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      056ce856
    • simon.fraser@apple.com's avatar
      Change "threaded scrolling" terminology to "asynchronous scrolling" · 608cf850
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126094
      
      Source/WebCore:
      
      Reviewed by Tim Horton.
      
      Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING, and change
      references to "main thread scrolling" to "synchronous scrolling".
      
      In a few places, functions with names like shouldUpdateScrollLayerPositionOnMainThread()
      were actually returning SynchronousScrollingReasons, so rename them appropriately.
      
      * WebCore.exp.in:
      * page/FrameView.cpp:
      (WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):
      (WebCore::FrameView::isRubberBandInProgress):
      (WebCore::FrameView::requestScrollPositionUpdate):
      (WebCore::FrameView::updatesScrollLayerPositionOnMainThread):
      (WebCore::FrameView::wheelEvent):
      * page/Page.cpp:
      (WebCore::Page::synchronousScrollingReasonsAsText):
      * page/Page.h:
      * page/scrolling/ScrollingCoordinator.cpp:
      (WebCore::ScrollingCoordinator::create):
      (WebCore::ScrollingCoordinator::ScrollingCoordinator):
      (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
      (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
      (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
      (WebCore::ScrollingCoordinator::synchronousScrollingReasons):
      (WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
      (WebCore::ScrollingCoordinator::setForceSynchronousScrollLayerPositionUpdates):
      (WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
      * page/scrolling/ScrollingCoordinator.h:
      (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously):
      (WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):
      * page/scrolling/ScrollingStateFixedNode.cpp:
      * page/scrolling/ScrollingStateFixedNode.h:
      * page/scrolling/ScrollingStateNode.cpp:
      * page/scrolling/ScrollingStateNode.h:
      * page/scrolling/ScrollingStateScrollingNode.cpp:
      (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
      (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
      (WebCore::ScrollingStateScrollingNode::dumpProperties):
      * page/scrolling/ScrollingStateScrollingNode.h: Awkward "ReasonsForSynchronousScrolling" to avoid
      conflict with the enum called SynchronousScrollingReasons.
      * page/scrolling/ScrollingStateStickyNode.cpp:
      * page/scrolling/ScrollingStateStickyNode.h:
      * page/scrolling/ScrollingStateTree.cpp:
      * page/scrolling/ScrollingStateTree.h:
      * page/scrolling/ScrollingThread.cpp:
      * page/scrolling/ScrollingThread.h:
      * page/scrolling/ScrollingTree.cpp:
      * page/scrolling/ScrollingTree.h:
      * page/scrolling/ScrollingTreeNode.cpp:
      * page/scrolling/ScrollingTreeNode.h:
      * page/scrolling/ScrollingTreeScrollingNode.cpp:
      (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
      (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
      * page/scrolling/ScrollingTreeScrollingNode.h:
      (WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons):
      (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
      * page/scrolling/mac/ScrollingCoordinatorMac.h:
      * page/scrolling/mac/ScrollingCoordinatorMac.mm:
      (WebCore::ScrollingCoordinatorMac::setSynchronousScrollingReasons):
      (WebCore::ScrollingCoordinatorMac::commitTreeState):
      * page/scrolling/mac/ScrollingStateNodeMac.mm:
      * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
      * page/scrolling/mac/ScrollingThreadMac.mm:
      * page/scrolling/mac/ScrollingTreeFixedNode.h:
      * page/scrolling/mac/ScrollingTreeFixedNode.mm:
      * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
      * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
      (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
      (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
      (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
      (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
      (WebCore::logThreadedScrollingMode):
      * page/scrolling/mac/ScrollingTreeStickyNode.h:
      * page/scrolling/mac/ScrollingTreeStickyNode.mm:
      * platform/Scrollbar.cpp:
      (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
      * platform/graphics/TiledBacking.h:
      * platform/graphics/ca/mac/TileController.mm:
      (WebCore::TileController::TileController):
      (WebCore::TileController::updateTileCoverageMap):
      * platform/mac/MemoryPressureHandlerMac.mm:
      (WebCore::MemoryPressureHandler::releaseMemory):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::setupFontSubpixelQuantization):
      * rendering/RenderLayerBacking.cpp:
      (WebCore::computeTileCoverage):
      * testing/Internals.cpp:
      (WebCore::Internals::mainThreadScrollingReasons):
      * testing/Internals.idl:
      
      Source/WebKit2:
      
      Reviewed by Tim Horton.
      
      Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING, and change
      references to "main thread scrolling" to "synchronous scrolling".
      
      * WebProcess/WebPage/EventDispatcher.cpp:
      (WebKit::EventDispatcher::wheelEvent):
      * WebProcess/WebPage/EventDispatcher.h:
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::WebPage):
      (WebKit::WebPage::~WebPage):
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
      (WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
      (WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
      (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
      (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
      
      Source/WTF:
      
      Reviewed by Tim Horton.
      
      Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING.
      
      * wtf/FeatureDefines.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      608cf850
    • timothy_horton@apple.com's avatar
      Revert r160327, r160273, and r160260. · d7abbbc6
      timothy_horton@apple.com authored
      We'll come up with something less aggressive, as this doesn't quite work.
      
      * loader/cache/CachedImage.h:
      * loader/cache/CachedResource.h:
      * loader/cache/MemoryCache.cpp:
      (WebCore::MemoryCache::pruneLiveResourcesToSize):
      * platform/graphics/BitmapImage.cpp:
      (WebCore::BitmapImage::destroyDecodedDataIfNecessary):
      * platform/graphics/BitmapImage.h:
      * platform/graphics/Image.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d7abbbc6
    • andersca@apple.com's avatar
      PostAttachCallbackDisabler should take a Document · 5ac81e77
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126090
      
      Reviewed by Andreas Kling.
      
      suspendPostAttachCallbacks and resumePostAttachCallbacks always only get the document from the
      container node, so make them static member functions that take a Document&. Also, move PostAttachCallbackDisabler
      to Element.h in preparation for moving post attach callback handling to Element.
      
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::suspendPostAttachCallbacks):
      (WebCore::ContainerNode::resumePostAttachCallbacks):
      * dom/ContainerNode.h:
      * dom/Element.h:
      (WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
      (WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
      * style/StyleResolveTree.cpp:
      (WebCore::Style::attachRenderTree):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ac81e77
    • bjonesbe@adobe.com's avatar
      Pretty print LayoutUnit, LayoutPoint, and LayoutSize in gdb and lldb · 20e6862e
      bjonesbe@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126080
      
      Reviewed by Anders Carlsson.
      
      This changes the output of printing LayoutUnits to be in px, removing
      the need to divide by 64 manually.
      
      This will lead to gdb output like:
      
      m_frameRect = {
          m_location = LayoutPoint(0px, 0px),
          m_size = LayoutSize(800px, 585px)
      }
      
      And lldb output like:
      
      (const WebCore::LayoutRect) $0 = {
        m_location = { x = 744px, y = 1px }
        m_size = { width = 236px, height = 40px }
      }
      
      This patch is based on patch for Blink by cbiesinger@chromium.org.
      
      * gdb/webkit.py:
      (WebCoreLayoutUnitPrinter):
      (WebCoreLayoutUnitPrinter.__init__):
      (WebCoreLayoutUnitPrinter.to_string):
      (WebCoreLayoutSizePrinter):
      (WebCoreLayoutSizePrinter.__init__):
      (WebCoreLayoutSizePrinter.to_string):
      (WebCoreLayoutPointPrinter):
      (WebCoreLayoutPointPrinter.__init__):
      (WebCoreLayoutPointPrinter.to_string):
      (add_pretty_printers):
      * lldb/lldb_webkit.py:
      (__lldb_init_module):
      (WebCoreLayoutUnit_SummaryProvider):
      (WebCoreLayoutSize_SummaryProvider):
      (WebCoreLayoutPoint_SummaryProvider):
      (WebCoreLayoutUnitProvider):
      (WebCoreLayoutUnitProvider.__init__):
      (WebCoreLayoutUnitProvider.to_string):
      (WebCoreLayoutSizeProvider):
      (WebCoreLayoutSizeProvider.__init__):
      (WebCoreLayoutSizeProvider.get_width):
      (WebCoreLayoutSizeProvider.get_height):
      (WebCoreLayoutPointProvider):
      (WebCoreLayoutPointProvider.__init__):
      (WebCoreLayoutPointProvider.get_x):
      (WebCoreLayoutPointProvider.get_y):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      20e6862e
    • commit-queue@webkit.org's avatar
      Rename PlugInAutoStartProvider's ...EntriesAddedBeforeTime facility to ...EntriesAddedAfterTime · c6340b4f
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=126078
      
      Patch by Ricky Mondello <rmondello@apple.com> on 2013-12-20
      Reviewed by Anders Carlsson.
      
      r160922 accidentally named a facility for filtering out data added after a certain time,
      "...FilteringOutEntriesAddedBeforeTime", which was incorrect. This patch renames those instances
      to "...FilteringOutEntriesAddedAfterTime".
      
      * UIProcess/API/C/WKContext.cpp:
      (WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
      * UIProcess/API/C/WKContext.h:
      * UIProcess/Plugins/PlugInAutoStartProvider.cpp:
      (WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime):
      * UIProcess/Plugins/PlugInAutoStartProvider.h:
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
      * UIProcess/WebContext.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c6340b4f
    • weinig@apple.com's avatar
      [WK2] Add SPI for using a custom protocol handler · f5d03283
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126089
      
      Reviewed by Anders Carlsson.
      
      * UIProcess/API/C/mac/WKContextPrivateMac.h:
      * UIProcess/API/C/mac/WKContextPrivateMac.mm:
      (WKContextRegisterSchemeForCustomProtocol):
      (WKContextUnregisterSchemeForCustomProtocol):
      * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
      (+[WKBrowsingContextController registerSchemeForCustomProtocol:]):
      (+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::globalURLSchemesWithCustomProtocolHandlers):
      (WebKit::WebContext::registerGlobalURLSchemeAsHavingCustomProtocolHandlers):
      (WebKit::WebContext::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers):
      * UIProcess/WebContext.h:
      * UIProcess/mac/WebContextMac.mm:
      (WebKit::WebContext::platformInitializeWebProcess):
      (WebKit::WebContext::platformInitializeNetworkProcess):
      (WebKit::WebContext::registerNotificationObservers):
      (WebKit::WebContext::unregisterNotificationObservers):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f5d03283
    • mrobinson@webkit.org's avatar
      [GTK] [CMake] Add support for building ImageDiff · d691cc03
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=125960
      
      Reviewed by Gustavo Noronha Silva.
      
      * CMakeLists.txt: Build ImageDiff for GTK+.
      * ImageDiff/PlatformGTK.cmake: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160938 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d691cc03
    • mrobinson@webkit.org's avatar
      [GTK] [CMake] Add support for building DumpRenderTree · cf3e3bf7
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=125767
      
      Reviewed by Gustavo Noronha Silva.
      
      * CMakeLists.txt: Load the DumpRenderTree cmake file for GTK+ when WebKit1 is enabled.
      * DumpRenderTree/PlatformGTK.cmake: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160937 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf3e3bf7
    • mrobinson@webkit.org's avatar
      [GTK] [CMake] Add support for building WebKitTestRunner · a9bd4bff
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=125768
      
      Reviewed by Gustavo Noronha Silva.
      
      * CMakeLists.txt: Compile WebKitTestRunner for GTK+ when WebKit2 is enabled.
      * WebKitTestRunner/CMakeLists.txt: Remove some EFL specific flags from the common
      build file.
      * WebKitTestRunner/PlatformEfl.cmake: Move the flags here.
      * WebKitTestRunner/PlatformGTK.cmake: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160934 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9bd4bff
    • andersca@apple.com's avatar
      Move scheduleSetNeedsStyleRecalc to HTMLFrameOwnerElement · 20bdec47
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126083
      
      Reviewed by Antti Koivisto.
      
      scheduleSetNeedsStyleRecalc is only ever called on HTMLFrameOwnerElement, so
      move it there, remove the Node implementation and make it non-virtual.
      
      * dom/ContainerNode.cpp:
      * dom/ContainerNode.h:
      * dom/Node.h:
      * html/HTMLFrameOwnerElement.cpp:
      (WebCore::needsStyleRecalcCallback):
      (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc):
      * html/HTMLFrameOwnerElement.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160928 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      20bdec47
    • aestes@apple.com's avatar
      Remove an unneeded include of WebCoreSystemInterface.h. · 6dd87848
      aestes@apple.com authored
      Rubber-stamped by Dan Bernstein.
      
      * platform/mac/ContentFilterMac.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160927 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6dd87848
    • andersca@apple.com's avatar
      Node post attach callbacks should use references · 3b4895dd
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126081
      
      Reviewed by Antti Koivisto.
      
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::queuePostAttachCallback):
      (WebCore::ContainerNode::dispatchPostAttachCallbacks):
      (WebCore::needsStyleRecalcCallback):
      (WebCore::ContainerNode::scheduleSetNeedsStyleRecalc):
      * dom/ContainerNode.h:
      * html/HTMLFormControlElement.cpp:
      (WebCore::focusPostAttach):
      (WebCore::HTMLFormControlElement::didAttachRenderers):
      (WebCore::updateFromElementCallback):
      (WebCore::HTMLFormControlElement::didRecalcStyle):
      * html/HTMLPlugInImageElement.cpp:
      (WebCore::HTMLPlugInImageElement::didAttachRenderers):
      (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
      (WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
      * html/HTMLPlugInImageElement.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160926 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3b4895dd
    • joepeck@webkit.org's avatar
      Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule · 333c3bfc
      joepeck@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=126038
      
      Reviewed by Timothy Hatcher.
      
      Only inject the CommandLineAPIModule once, when the InjectedScript
      is first created. This avoids running a small snippet of JavaScript
      to check if the module is loaded every time we fetch the InjectedScript.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * inspector/InspectorAllInOne.cpp:
      Add new files to the build.
      
      * inspector/InjectedScriptManager.h:
      * inspector/InjectedScriptManager.cpp:
      (WebCore::InjectedScriptManager::createForPage):
      (WebCore::InjectedScriptManager::injectedScriptFor):
      (WebCore::InjectedScriptManager::didCreateInjectedScript):
      Add didCreateInjectedScript hook for a subclass to inject more scripts.
      
      * inspector/PageInjectedScriptManager.h: Added.
      * inspector/PageInjectedScriptManager.cpp: Added.
      (WebCore::PageInjectedScriptManager::didCreateInjectedScript):
      For pages, inject the CommandLineAPIModule.
      
      * inspector/PageRuntimeAgent.cpp:
      (WebCore::PageRuntimeAgent::injectedScriptForEval):
      This is replaced by PageInjectedScriptManager, we no longer need
      to do extra work every time we fetch the injectedScriptForEval.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160925 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      333c3bfc
    • joepeck@webkit.org's avatar
      Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule · 4d65fae4
      joepeck@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=126038
      
      Reviewed by Timothy Hatcher.
      
      No tests, no observable change in behavior.
      
      Move the CommandLineAPI source into its own module. Load the module
      in InjectedScripts for WebCore::Pages. Not for workers.
      
      Moving CommandLineAPI into it's own module moves it from being inside
      the same anonymous function to being evaluated outside the anonymous
      function. To connect the two InjectedScript passes itself to the
      injected module, and the CommandLineAPI module places its class on the
      injectedScript as injectedScript.CommandLineAPI.
      
      This essentially makes the CommandLineAPI module an InjectedScript
      extension. InjectedScriptSource checks for the existence of
      this.CommandLineAPI to see if the fuller version is available. Otherwise
      it falls back to a BasicCommandLineAPI which only exposes "$_",
      which is the "last evaluated result". That will be useful for JS Contexts
      and Workers.
      
      At the same time, this patch makes InjectedScriptModule more generic,
      to support being used in a pure JavaScript environment, meaning one
      without "window" as the global object.
      
      * CMakeLists.txt:
      * DerivedSources.make:
      * GNUmakefile.am:
      * GNUmakefile.list.am:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * inspector/InspectorAllInOne.cpp:
      Add files. Minify the CommandLineAPIModuleSource in generation.
      
      * inspector/CommandLineAPIModule.h: Added.
      * inspector/CommandLineAPIModule.cpp: Added.
      (WebCore::CommandLineAPIModule::CommandLineAPIModule):
      (WebCore::CommandLineAPIModule::injectIfNeeded):
      (WebCore::CommandLineAPIModule::source):
      Inject the module that doesn't return an object, its just evaluated code
      extending the original InjectedScript.
      
      * inspector/InjectedScriptModule.h:
      * inspector/InjectedScriptModule.cpp:
      (WebCore::InjectedScriptModule::ensureInjected):
      Only ASSERT the result was an object if the Module claims it returns an object.
      
      * inspector/InjectedScriptCanvasModule.h:
      (WebCore::InjectedScriptCanvasModule::returnsObject):
      Return an object used later to call into the CanvasModule.
      
      * inspector/PageRuntimeAgent.cpp:
      (WebCore::PageRuntimeAgent::injectedScriptForEval):
      Ensure the CommandLineAPIModule is loaded in the Page's InjectedScript.
      
      * inspector/CommandLineAPIModuleSource.js: Added.
      Create the CommandLineAPI class and place it on injectedScript.
      
      * inspector/InjectedScriptSource.js:
      (InjectedScript.prototype._evaluateOn):
      Inject either the BasicCommandLineAPI or extended CommandLineAPI.
      Derive the globalObject dynamically instead of assuming window.
      Inject the commandLineAPI on window.console or the globalObject based on context.
      Audit and rename uses of "window" to something like globalObject.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160924 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4d65fae4
    • timothy_horton@apple.com's avatar
      WebKit2 View Gestures: Implement smartMagnifyWithEvent: and make it work · 80b9b130
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=125752
      <rdar://problem/15664245>
      
      Reviewed by Anders Carlsson.
      
      Implement "smart magnify", which is the double-tap-to-zoom gesture on OS X.
      
      * UIProcess/API/mac/WKView.mm:
      (-[WKView smartMagnifyWithEvent:]):
      Forward smartMagnifyWithEvent to ViewGestureController.
      
      * UIProcess/mac/ViewGestureController.cpp:
      (WebKit::ViewGestureController::handleMagnificationGesture):
      Drive-by repair a comment.
      
      (WebKit::ViewGestureController::handleSmartMagnificationGesture):
      Added. Immediately dispatch a message to the web process to retrieve
      the rendered rect of the element under the gesture.
      
      (WebKit::maximumRectangleComponentDelta):
      Return the absolute maximum delta between corresponding components of two rects.
      
      (WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
      Once the WebProcess has replied with the relevant geometry, use it to
      determine our target rectangle (the element's rect, with some padding)
      and target magnification (attempting to keep replaced elements
      fully in-view, and otherwise zooming in as far as possible to fit the
      element's width).
      
      If this gesture occurs after the page is already magnified, and targets
      a similar region to the previous smart magnification gesture, zoom out
      instead of panning across the page.
      
      Begin a transient zoom with the current magnification, and immediately
      commit it at our target magnification and offset, so that the drawing
      area will animate to the new parameters.
      
      (WebKit::ViewGestureController::endActiveGesture):
      * UIProcess/mac/ViewGestureController.h:
      * UIProcess/mac/ViewGestureController.messages.in:
      * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
      (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
      Hit-test the document to determine the node under the smart magnification
      gesture, and return it to the UI process along with various other bits of data.
      
      * WebProcess/WebPage/ViewGestureGeometryCollector.h:
      * WebProcess/WebPage/ViewGestureGeometryCollector.messages.in:
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
      (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
      (WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
      (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
      (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
      Instead of short-circuiting the animation if we didn't have to constrain
      the origin, short-circuit if we're already *at* the right origin,
      like the comment said. This prevents jarring jumps when double-tap-panning
      between elements when zoomed all the way in.
      
      * WebCore.exp.in:
      Add some exports.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160923 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      80b9b130