WebKit-https.git
8 years agoSince MidpointState is a class, it should behave like a class
zoltan@webkit.org [Tue, 21 Jan 2014 21:33:22 +0000 (21:33 +0000)]
Since MidpointState is a class, it should behave like a class
https://bugs.webkit.org/show_bug.cgi?id=127154

Reviewed by David Hyatt.

I modified MidpointState to behave like a class, updated the call sites also.

No new tests, no behavior change.

* platform/text/BidiResolver.h:
(WebCore::MidpointState::reset):
(WebCore::MidpointState::startIgnoringSpaces):
(WebCore::MidpointState::stopIgnoringSpaces):
(WebCore::MidpointState::midpoints):
(WebCore::MidpointState::numMidpoints):
(WebCore::MidpointState::currentMidpoint):
(WebCore::MidpointState::incrementCurrentMidpoint):
(WebCore::MidpointState::decreaseNumMidpoints):
(WebCore::MidpointState::betweenMidpoints):
(WebCore::MidpointState::setBetweenMidpoints):
(WebCore::MidpointState::addMidpoint): Renamed from deprecatedAddMidpoint, since now
its private, we no longer need to discourage callers from using it.
* rendering/InlineIterator.h:
(WebCore::IsolateTracker::addFakeRunIfNecessary):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::appendRunsForObject):
(WebCore::constructBidiRunsForLine):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::checkMidpoints):
* rendering/line/TrailingObjects.cpp:
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162472 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[iOS] Don't build DumpRenderTree, gtest, or TestWebKitAPI
dbates@webkit.org [Tue, 21 Jan 2014 21:29:48 +0000 (21:29 +0000)]
[iOS] Don't build DumpRenderTree, gtest, or TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=127364

Reviewed by Simon Fraser.

For now, don't build DumpRenderTree and TestWebKitAPI for iOS as these
projects fail to build because we need to upstream the relevant iOS changes.
Also, don't build gtest, which is a dependency of TestWebKitAPI since we
aren't building TestWebKitAPI.

* Scripts/build-webkit:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162471 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, remove myself from some watchlist entries.
rakuco@webkit.org [Tue, 21 Jan 2014 21:23:00 +0000 (21:23 +0000)]
Unreviewed, remove myself from some watchlist entries.

* Scripts/webkitpy/common/config/watchlist:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162470 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, rolling out r162452.
commit-queue@webkit.org [Tue, 21 Jan 2014 21:05:49 +0000 (21:05 +0000)]
Unreviewed, rolling out r162452.
http://trac.webkit.org/changeset/162452
https://bugs.webkit.org/show_bug.cgi?id=127366

broke a few tests on all Mac WebKit1 bots (Requested by
thorton on #webkit).

Source/WebCore:

* WebCore.exp.in:
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActive):
(WebCore::FocusController::setContentIsVisible):
* page/FocusController.h:
(WebCore::FocusController::isActive):
(WebCore::FocusController::isFocused):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::setIsInWindow):
(WebCore::Page::setIsVisuallyIdle):
(WebCore::Page::setIsVisible):
(WebCore::Page::visibilityState):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
* page/Page.h:
(WebCore::Page::isVisible):
(WebCore::Page::isInWindow):

Source/WebKit/mac:

* WebView/WebView.mm:
(-[WebView _windowWillOrderOnScreen:]):
(-[WebView _windowWillOrderOffScreen:]):

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setActive):
(WebKit::WebPage::setViewIsVisible):
(WebKit::WebPage::setFocused):
(WebKit::WebPage::setIsInWindow):
(WebKit::WebPage::setViewStateInternal):
(WebKit::WebPage::setIsVisuallyIdle):
* WebProcess/WebPage/WebPage.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162467 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAX: Mac: Expose the visible text of a password field to AX
cfleizach@apple.com [Tue, 21 Jan 2014 20:56:44 +0000 (20:56 +0000)]
AX: Mac: Expose the visible text of a password field to AX
https://bugs.webkit.org/show_bug.cgi?id=127353

Reviewed by Brent Fulgham.

Source/WebCore:

The Mac platform should now expose the rendered value of password fields through AX.

Test: accessibility/password-field-value.html

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textLength):
(WebCore::AccessibilityRenderObject::passwordFieldValue):

LayoutTests:

* accessibility/password-field-value-expected.txt: Added.
* accessibility/password-field-value.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162466 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoTrivial Session API cleanup.
commit-queue@webkit.org [Tue, 21 Jan 2014 20:32:14 +0000 (20:32 +0000)]
Trivial Session API cleanup.
https://bugs.webkit.org/show_bug.cgi?id=127356

Patch by Martin Hock <mhock@apple.com> on 2014-01-21
Reviewed by Alexey Proskuryakov.

* UIProcess/API/C/WKSessionRef.cpp:
(WKSessionIsEphemeral):
* UIProcess/API/C/WKSessionRef.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162465 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSupport SSL error handling in case of synchronous job.
commit-queue@webkit.org [Tue, 21 Jan 2014 20:26:37 +0000 (20:26 +0000)]
Support SSL error handling in case of synchronous job.
https://bugs.webkit.org/show_bug.cgi?id=125301

Patch by Robert Sipka <sipka@inf.u-szeged.hu> on 2014-01-21
Reviewed by Brent Fulgham.

Set ssl error informations for the users.

* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::dispatchSynchronousJob):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162464 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoExport systemTotalMemory() and systemMemoryLevel() for MobileSafari
simon.fraser@apple.com [Tue, 21 Jan 2014 20:25:50 +0000 (20:25 +0000)]
Export systemTotalMemory() and systemMemoryLevel() for MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=127360

Reviewed by Andy Estes.

MobileSafari inappropriately calls these WebCore functions directly,
so export them.

* WebCore.exp.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162463 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoClean up PLATFORM(IOS) code related to the custom fixed position layout rect
simon.fraser@apple.com [Tue, 21 Jan 2014 20:25:48 +0000 (20:25 +0000)]
Clean up PLATFORM(IOS) code related to the custom fixed position layout rect
https://bugs.webkit.org/show_bug.cgi?id=127362

Reviewed by Dave Hyatt.

Various platforms customize the rect used to layout position:fixed elements,
and each modified RenderBox::availableLogicalHeight/WidthUsing() in different
ways.

Clean this up by adding RenderView::clientLogicalWidth/HeightForFixedPosition(),
and moving the platform hacks into it.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
* rendering/RenderView.cpp:
(WebCore::RenderView::clientLogicalWidthForFixedPosition):
(WebCore::RenderView::clientLogicalHeightForFixedPosition):
* rendering/RenderView.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoLog an error for a common cause of WebProcess early launch crashing in misconfigured...
simon.fraser@apple.com [Tue, 21 Jan 2014 20:25:46 +0000 (20:25 +0000)]
Log an error for a common cause of WebProcess early launch crashing in misconfigured development builds
https://bugs.webkit.org/show_bug.cgi?id=127121

Reviewed by Anders Carlsson.

A common cause of early WebProcess crashes during development is a null return
from CFBundleGetValueForInfoDictionaryKey(), so log and return an error in
this case rather than passing a null C string to dlsym().

* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm:
(WebKit::BootstrapMain):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162461 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRegisters used in writeBarrierOnOperand can cause clobbering on some platforms
mhahnenberg@apple.com [Tue, 21 Jan 2014 20:19:59 +0000 (20:19 +0000)]
Registers used in writeBarrierOnOperand can cause clobbering on some platforms
https://bugs.webkit.org/show_bug.cgi?id=127357

Reviewed by Filip Pizlo.

Some platforms use t0 and t1 for their first two arguments, so using those to load the
cell for the write barrier is a bad idea because it will get clobbered.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162460 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoASSERT(time.isFinite()) in SVGSMILElement::createInstanceTimesFromSyncbase
commit-queue@webkit.org [Tue, 21 Jan 2014 20:17:15 +0000 (20:17 +0000)]
ASSERT(time.isFinite()) in SVGSMILElement::createInstanceTimesFromSyncbase
<https://webkit.org/b/108184>

Patch by Tamas Gergely <tgergely.u-szeged@partner.samsung.com> on 2014-01-21
Reviewed by Philip Rogers.

Source/WebCore:

In the case a SMILElement timing had a syncbase dependency on an indefinite value
the assert were raised. The assert has been removed and a check has been added
instead that prevents the addition of indefinite times to the time list.

Test: svg/animations/smil-syncbase-self-dependency.svg

* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
  ASSERT removed.

LayoutTests:

Test checks whether valid self-dependency is accidentally broken.

* svg/animations/smil-syncbase-self-dependency-expected.txt: Added.
* svg/animations/smil-syncbase-self-dependency.svg: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162459 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSort headers after the rename that happened in r162454.
timothy_horton@apple.com [Tue, 21 Jan 2014 19:58:49 +0000 (19:58 +0000)]
Sort headers after the rename that happened in r162454.

* UIProcess/mac/RemoteLayerTreeHost.mm:
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162458 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[WinCairo][Curl] Download request has incorrect user agent string.
commit-queue@webkit.org [Tue, 21 Jan 2014 19:54:05 +0000 (19:54 +0000)]
[WinCairo][Curl] Download request has incorrect user agent string.
https://bugs.webkit.org/show_bug.cgi?id=127110

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-01-21
Reviewed by Brent Fulgham.

* WebDownloadCurl.cpp:
(WebDownload::init): Set user agent string in download request.
* WebView.cpp:
(WebView::downloadURL): Avoid early return if no ResourceHandle is provided.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162457 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUse 64 as the default value for the subpixel denominator.
zalan@apple.com [Tue, 21 Jan 2014 19:40:54 +0000 (19:40 +0000)]
Use 64 as the default value for the subpixel denominator.

Reviewed by Simon Fraser.

* lldb/lldb_webkit.py:
(WebCoreLayoutUnitProvider.to_string):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162456 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoTest that text-decoration-skip: ink inherits as expected
mmaxfield@apple.com [Tue, 21 Jan 2014 19:37:22 +0000 (19:37 +0000)]
Test that text-decoration-skip: ink inherits as expected
https://bugs.webkit.org/show_bug.cgi?id=127329

Reviewed by Dean Jackson.

Adding a test for text-decoration-skip: ink inheriting

* fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-inherit-expected.html: Added.
* fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-inherit.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162455 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAddress late review naming comments after r162453.
timothy_horton@apple.com [Tue, 21 Jan 2014 19:36:19 +0000 (19:36 +0000)]
Address late review naming comments after r162453.

* UIProcess/API/mac/WKView.mm:
And, fix the build by adding an include I accidentally missed.

* UIProcess/mac/RemoteLayerTreeHost.mm:
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
* platform/graphics/mac/CALayerWebAdditions.h: Removed.
* platform/graphics/mac/CALayerWebAdditions.mm: Removed.
* platform/graphics/mac/WebCoreCALayerExtras.h: Added.
* platform/graphics/mac/WebCoreCALayerExtras.mm: Added.
Rename.

(-[CALayer web_disableAllActions]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162454 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoKeep CALayer implicit animation disabling code in a single place
timothy_horton@apple.com [Tue, 21 Jan 2014 19:19:19 +0000 (19:19 +0000)]
Keep CALayer implicit animation disabling code in a single place
https://bugs.webkit.org/show_bug.cgi?id=127355

Reviewed by Simon Fraser.

* WebCore.xcodeproj/project.pbxproj:
Add CALayerWebAdditions.{h,mm}.

* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::commonInit):
Remove nullActionsDictionary() and use [CALayer(WebAdditions) web_disableAllActions] instead.

* platform/graphics/mac/CALayerWebAdditions.h: Added.
* platform/graphics/mac/CALayerWebAdditions.mm: Added.
(-[CALayer web_disableAllActions]):
Added. Disable all implicit actions on the layer.

* Shared/mac/RemoteLayerTreePropertyApplier.h:
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
Remove disableActionsForLayer.

* UIProcess/API/mac/WKView.mm:
(-[WKView _rootLayer]):
Disable actions on the root layer. It doesn't need them, and currently
isn't affected by implicit animations, but future patches which animate
the root layer will benefit from this.

* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
Use web_disableAllActions instead of disableActionsForLayer.

* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm: Renamed from Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.cpp.
(PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
(PlatformCALayerRemoteCustom::~PlatformCALayerRemoteCustom):
(PlatformCALayerRemoteCustom::hostingContextID):
Use web_disableAllActions instead of disableActionsForLayer.
This requires making this file Obj-C++ but that's OK since it's Mac/iOS only.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162453 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoChange Page, FocusController to use ViewState
barraclough@apple.com [Tue, 21 Jan 2014 19:02:08 +0000 (19:02 +0000)]
Change Page, FocusController to use ViewState
https://bugs.webkit.org/show_bug.cgi?id=126533

Reviewed by Tim Horton.

These classes currently maintain a set of separate fields to represent the view state;
combine these into a single field, and allow WebPage to send the combined update rather
than individual changes.

Maintain existing interface for WebKit1 clients.

Source/WebCore:

* WebCore.exp.in:
    - Added WebCore::setViewState, removed WebCore::setIsVisuallyIdle.
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
    - Initialize combined m_viewState.
(WebCore::FocusController::setFocused):
    - Calls setViewState.
(WebCore::FocusController::setFocusedInternal):
    - setFocused -> setFocusedInternal.
(WebCore::FocusController::setViewState):
    - Added, update all ViewState flags.
(WebCore::FocusController::setActive):
    - Calls setViewState.
(WebCore::FocusController::setActiveInternal):
    - setActive -> setActiveInternal.
(WebCore::FocusController::setContentIsVisible):
    - Calls setViewState.
(WebCore::FocusController::setContentIsVisibleInternal):
    - setContentIsVisible -> setContentIsVisibleInternal.
* page/FocusController.h:
(WebCore::FocusController::isActive):
(WebCore::FocusController::isFocused):
(WebCore::FocusController::contentIsVisible):
    - Implemented in terms of ViewState.
* page/Page.cpp:
(WebCore::Page::Page):
    - Initialize using PageInitialViewState.
(WebCore::Page::setIsInWindow):
    - Calls setViewState.
(WebCore::Page::setIsInWindowInternal):
    - setIsInWindow -> setIsInWindowInternal.
(WebCore::Page::setIsVisuallyIdleInternal):
    - setIsVisuallyIdle -> setIsVisuallyIdleInternal.
(WebCore::Page::setViewState):
    - Added, update all ViewState flags, including FocusController.
(WebCore::Page::setIsVisible):
    - Calls setViewState.
(WebCore::Page::setIsVisibleInternal):
    - setIsVisible -> setIsVisibleInternal.
(WebCore::Page::visibilityState):
    - m_isVisible -> isVisible()
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
    - m_isVisible -> isVisible()
* page/Page.h:
(WebCore::Page::isVisible):
(WebCore::Page::isInWindow):
    - Implemented in terms of ViewState.
(WebCore::Page::scriptedAnimationsSuspended):
    - Combined member fields into ViewState::Flags.

Source/WebKit/mac:

* WebView/WebView.mm:
(-[WebView _windowWillOrderOnScreen:]):
(-[WebView _windowWillOrderOffScreen:]):
    - remove calls to FocusController::setContentIsVisible, these are redundant
      (this is handled when page visibility is set).

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
    - Combined separate calls to Page::setViewState.
(WebKit::WebPage::updateIsInWindow):
    - Simplied from setIsInWindow.
(WebKit::WebPage::setViewState):
    - Combined separate calls to Page::setViewState.
* WebProcess/WebPage/WebPage.h:
    - Declare updateIsInWindow.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162452 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove PLATFORM(NIX) from WebCore
lauro.neto@openbossa.org [Tue, 21 Jan 2014 18:46:51 +0000 (18:46 +0000)]
Remove PLATFORM(NIX) from WebCore
https://bugs.webkit.org/show_bug.cgi?id=127299

Reviewed by Anders Carlsson.

* editing/Editor.cpp:
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::copyImage):
* editing/Editor.h:
* html/HTMLCanvasElement.h:
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::defaultObjectContentType):
* page/ChromeClient.h:
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* platform/Cursor.h:
* platform/DragData.h:
* platform/DragImage.h:
* platform/FileSystem.h:
* platform/LocalizedStrings.h:
* platform/Widget.h:
* platform/audio/FFTFrame.h:
* platform/audio/HRTFElevation.cpp:
* platform/cairo/WidgetBackingStore.h:
* platform/graphics/ANGLEWebKitBridge.h:
* platform/graphics/FontPlatformData.h:
* platform/graphics/GLContext.cpp:
(WebCore::GLContext::createContextForWindow):
* platform/graphics/GLContext.h:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
* platform/graphics/OpenGLESShims.h:
* platform/graphics/OpenGLShims.cpp:
(WebCore::getProcAddress):
* platform/graphics/OpenGLShims.h:
* platform/graphics/PlatformLayer.h:
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::createVertexArrayOES):
(WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
(WebCore::Extensions3DOpenGL::isVertexArrayOES):
(WebCore::Extensions3DOpenGL::bindVertexArrayOES):
(WebCore::Extensions3DOpenGL::supportsExtension):
* platform/graphics/opengl/Extensions3DOpenGL.h:
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
* platform/graphics/opengl/Extensions3DOpenGLES.h:
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::reshape):
* platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
* platform/graphics/texmap/TextureMapper.h:
* platform/network/ResourceHandle.h:
* plugins/PluginPackage.cpp:
* plugins/PluginView.cpp:
(WebCore::PluginView::PluginView):
* plugins/PluginView.h:
* plugins/PluginViewNone.cpp:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162451 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd &lrm; &rlm; and &nbsp; to WebVTT parser
eric.carlson@apple.com [Tue, 21 Jan 2014 18:44:03 +0000 (18:44 +0000)]
Add &lrm; &rlm; and &nbsp; to WebVTT parser
https://bugs.webkit.org/show_bug.cgi?id=85112

Reviewed by Jer Noble.

Source/WebCore:

No new tests, track-webvtt-tc022-entities.html was updated to test this.

* html/track/WebVTTTokenizer.cpp:
(WebCore::WebVTTTokenizer::nextToken): Support RLM, LRM, and NBSP entities.

LayoutTests:

* media/track/captions-webvtt/tc022-entities.vtt:
* media/track/track-webvtt-tc022-entities-expected.txt:
* media/track/track-webvtt-tc022-entities.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162450 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[SOUP] Implement CUSTOM PROTOCOLS
carlosgc@webkit.org [Tue, 21 Jan 2014 18:30:18 +0000 (18:30 +0000)]
[SOUP] Implement CUSTOM PROTOCOLS
https://bugs.webkit.org/show_bug.cgi?id=125583

Reviewed by Anders Carlsson.

Add new classes to implement CustomProtocols for soup. The
implementation is the same, but using the CustomProtocol API and
messages. The current implementation can be removed once all ports
using soup switch to using CustomProtocols.

* GNUmakefile.am: Add new include paths.
* GNUmakefile.list.am: Add new files to compilation.
* PlatformGTK.cmake: Add new files to compilation.
* Shared/API/c/soup/WKBaseSoup.h:
* Shared/APIObject.h:
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
* Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: Added.
(WebKit::generateCustomProtocolID):
(WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData):
(WebKit::WebSoupRequestAsyncData::~WebSoupRequestAsyncData):
(WebKit::WebSoupRequestAsyncData::requestFailed):
(WebKit::WebSoupRequestAsyncData::releaseTask):
(WebKit::CustomProtocolManagerImpl::CustomProtocolManagerImpl):
(WebKit::CustomProtocolManagerImpl::~CustomProtocolManagerImpl):
(WebKit::CustomProtocolManagerImpl::registerScheme):
(WebKit::CustomProtocolManagerImpl::supportsScheme):
(WebKit::CustomProtocolManagerImpl::didFailWithError):
(WebKit::CustomProtocolManagerImpl::didLoadData):
(WebKit::CustomProtocolManagerImpl::didReceiveResponse):
(WebKit::CustomProtocolManagerImpl::didFinishLoading):
(WebKit::CustomProtocolManagerImpl::send):
(WebKit::CustomProtocolManagerImpl::finish):
* Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h: Added.
* Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:
(WebKit::CustomProtocolManager::CustomProtocolManager):
(WebKit::CustomProtocolManager::initialize):
(WebKit::CustomProtocolManager::registerScheme):
(WebKit::CustomProtocolManager::supportsScheme):
(WebKit::CustomProtocolManager::didFailWithError):
(WebKit::CustomProtocolManager::didLoadData):
(WebKit::CustomProtocolManager::didReceiveResponse):
(WebKit::CustomProtocolManager::didFinishLoading):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/soup/WKAPICastSoup.h:
* UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp: Copied from Source/WebKit2/UIProcess/soup/WebContextSoup.cpp.
(WKSoupCustomProtocolRequestManagerGetTypeID):
(WKSoupCustomProtocolRequestManagerSetClient):
* UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.h: Added.
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
* UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
(WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
(WebKit::CustomProtocolManagerProxy::startLoading):
(WebKit::CustomProtocolManagerProxy::stopLoading):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp: Added.
(WebKit::WebSoupCustomProtocolRequestManager::supplementName):
(WebKit::WebSoupCustomProtocolRequestManager::create):
(WebKit::WebSoupCustomProtocolRequestManager::WebSoupCustomProtocolRequestManager):
(WebKit::WebSoupCustomProtocolRequestManager::~WebSoupCustomProtocolRequestManager):
(WebKit::WebSoupCustomProtocolRequestManager::initializeClient):
(WebKit::WebSoupCustomProtocolRequestManager::contextDestroyed):
(WebKit::WebSoupCustomProtocolRequestManager::processDidClose):
(WebKit::WebSoupCustomProtocolRequestManager::refWebContextSupplement):
(WebKit::WebSoupCustomProtocolRequestManager::derefWebContextSupplement):
(WebKit::WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol):
(WebKit::WebSoupCustomProtocolRequestManager::unregisterSchemeForCustomProtocol):
(WebKit::WebSoupCustomProtocolRequestManager::startLoading):
(WebKit::WebSoupCustomProtocolRequestManager::stopLoading):
(WebKit::WebSoupCustomProtocolRequestManager::didReceiveResponse):
(WebKit::WebSoupCustomProtocolRequestManager::didLoadData):
(WebKit::WebSoupCustomProtocolRequestManager::didFailWithError):
(WebKit::WebSoupCustomProtocolRequestManager::didFinishLoading):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h: Added.
(WebKit::WebSoupCustomProtocolRequestManager::registeredSchemesForCustomProtocols):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp: Added.
(WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading):
(WebKit::WebSoupCustomProtocolRequestManagerClient::stopLoading):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h: Added.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::NetworkProcessProxy):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
* UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
* UIProcess/soup/WebContextSoup.cpp:
(WebKit::WebContext::platformInitializeNetworkProcess):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
* WebProcess/soup/WebKitSoupRequestGeneric.cpp:
(webkitSoupRequestGenericSendAsync):
(webkitSoupRequestGenericSendFinish):
* WebProcess/soup/WebKitSoupRequestGeneric.h:
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162449 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[GTK] Fix a c++11 compliance issue for fontconfig
changseok.oh@collabora.com [Tue, 21 Jan 2014 18:22:54 +0000 (18:22 +0000)]
[GTK] Fix a c++11 compliance issue for fontconfig
https://bugs.webkit.org/show_bug.cgi?id=127283

Reviewed by Martin Robinson.

fontconfig-2.8.0 is not compliant with C++11. So I propose to apply a
hotfix until bumping fontconfig up.

* gtk/jhbuild.modules:
* gtk/patches/fontconfig-C-11-requires-a-space-between-literal-and-identifier.patch: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162448 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, rolling out r162354.
commit-queue@webkit.org [Tue, 21 Jan 2014 18:06:06 +0000 (18:06 +0000)]
Unreviewed, rolling out r162354.
http://trac.webkit.org/changeset/162354
https://bugs.webkit.org/show_bug.cgi?id=127354

Appears to have broken accessibility in a non-trivial way
(Requested by ap on #webkit).

* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162447 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, rolling out r162445.
commit-queue@webkit.org [Tue, 21 Jan 2014 17:23:54 +0000 (17:23 +0000)]
Unreviewed, rolling out r162445.
http://trac.webkit.org/changeset/162445
https://bugs.webkit.org/show_bug.cgi?id=127351

It broke the 32 bit GTK build (Requested by Ossy on #webkit).

* rendering/style/StyleRareInheritedData.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162446 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoWrong struct size when CSS_IMAGE_ORIENTATION and CSS3_TEXT_DECORATION are enabled.
commit-queue@webkit.org [Tue, 21 Jan 2014 17:06:01 +0000 (17:06 +0000)]
Wrong struct size when CSS_IMAGE_ORIENTATION and CSS3_TEXT_DECORATION are enabled.
https://bugs.webkit.org/show_bug.cgi?id=127346

Efl build fix.

Patch by László Langó <llango.u-szeged@partner.samsung.com> on 2014-01-21
Reviewed by Csaba Osztrogonác.

* rendering/style/StyleRareInheritedData.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162445 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agorun-jsc-stress-tests should accept --child-processes option and WEBKIT_TEST_CHILD_PRO...
commit-queue@webkit.org [Tue, 21 Jan 2014 16:54:05 +0000 (16:54 +0000)]
run-jsc-stress-tests should accept --child-processes option and WEBKIT_TEST_CHILD_PROCESSES env.var
like run_webkit_test does
https://bugs.webkit.org/show_bug.cgi?id=127349

Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2014-01-21
Reviewed by Csaba Osztrogonác.

* Scripts/run-jsc-stress-tests:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162444 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDelay initial layer flush during loading on all platforms
antti@apple.com [Tue, 21 Jan 2014 16:40:38 +0000 (16:40 +0000)]
Delay initial layer flush during loading on all platforms
https://bugs.webkit.org/show_bug.cgi?id=127347

Reviewed by Andreas Kling.

To reduce unnecessary repaints enable the same behaviour as iOS already has.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):

    Set the initial state of m_layerFlushThrottlingEnabled correctly.

(WebCore::RenderLayerCompositor::scheduleLayerFlush):
(WebCore::RenderLayerCompositor::startInitialLayerFlushTimerIfNeeded):
* rendering/RenderLayerCompositor.h:

    Enable initial layer flush delay on all platforms.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162443 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSource/WebCore: If you set a tiled cross-faded-image or a tiled gradient as
commit-queue@webkit.org [Tue, 21 Jan 2014 16:36:50 +0000 (16:36 +0000)]
Source/WebCore: If you set a tiled cross-faded-image or a tiled gradient as
a background layer, -webkit-background-blend-mode doesn't work.
The problem consists in the blendMode parameter not being set
for these specific drawing paths.

https://bugs.webkit.org/show_bug.cgi?id=126888
Patch by Mihai Tica <mitica@adobe.com> on 2014-01-21
Reviewed by Dirk Schulze.

Test: css3/compositing/background-blend-mode-tiled-layers.html

* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
* platform/graphics/ImageBuffer.h: Add a BlendMode parameter to the drawPattern method.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::drawPattern): Add the default BlendMode parameter to the method declaration.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::drawPattern): Add and use the blendMode parameter for all the code paths.
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::BufferedImage::drawPattern): Add the default BlendMode parameter to the method declaration.

LayoutTests: If you set a tiled cross-faded-image or a tiled gradient as
a background layer, -webkit-background-blend-mode doesn't work.
https://bugs.webkit.org/show_bug.cgi?id=126888

Patch by Mihai Tica <mitica@adobe.com> on 2014-01-21
Reviewed by Dirk Schulze.

* css3/compositing/background-blend-mode-tiled-layers-expected.html: Added.
* css3/compositing/background-blend-mode-tiled-layers.html: Added.
* platform/efl/TestExpectations: Skip test for efl, blendModes are not implemented.
* platform/mac/TestExpectations: Mark added test as ImageOnlyFailure due to slight differences between the actual result and the blending formula.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162442 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[GTK] Allow passing extra data to web extensions
commit-queue@webkit.org [Tue, 21 Jan 2014 14:57:45 +0000 (14:57 +0000)]
[GTK] Allow passing extra data to web extensions
https://bugs.webkit.org/show_bug.cgi?id=125990

Patch by Adrian Perez de Castro <aperez@igalia.com> on 2014-01-21
Reviewed by Carlos Garcia Campos.

Allow passing additional information to the injected bundle. On top
of the string containing the path to the web extensions directory,
a GVariant can be set with additional data using
webkit_web_context_set_web_extensions_initialization_user_data().
Also, a new initialize-web-extensions signal is emitted before
launching a new WebProcess to allow setting different user data
for each process. The GVariant is serialized as a string, passed
to the injected bundle, and the injected bundle deserializes back
the data, which is passed to web extensions which define the
webkit_web_extension_initialize_with_user_data() function (for
backwards compatibility, webkit_web_extension_initialize() is
used as a fallback.)

Source/WebKit2:

* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
(getInjectedBundleInitializationUserData): Define new callback
function which causes emission of the initialize-web-extensions
signal, and serializes the data to be passed to the web process.
(attachInjectedBundleClientToContext): Set the
getInjectedBundleInitializationUserData() callback.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_class_init): Define the
initialize-web-extensions signal.
(webkit_web_context_set_web_extensions_directory):
Web extensions directory as now member of WebKitWebContextPrivate,
to be able to retrieve it later.
(webkit_web_context_set_web_extensions_initialization_user_data):
New API method to set the user data passed to the web extensions
when initialized.
(webkitWebContextInitializeWebExtensions): Private function used
to trigger emission of the initialize-web-extensions signal.
* UIProcess/API/gtk/WebKitWebContext.h:
Added prototype for new API method
webkit_web_context_set_web_extensions_initialization_user_data().
* UIProcess/API/gtk/WebKitWebContextPrivate.h:
Prototype of the new private function.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
Add new public API bits to the documentation.
* WebProcess/gtk/WebGtkExtensionManager.cpp:
(WebKit::WebGtkExtensionManager::initialize):
Deserialize the data received from the UI process and pass it to
webkit_web_extension_initialize_with_user_data() if available,
keeping webkit_web_extension_initialize() as fallback.

Tools:

* TestWebKitAPI/Tests/WebKit2Gtk/TestWebExtensions.cpp:
(initializeWebExtensions): Handles the initialize-web-extensions
signal, and sets the web extensions directory and the initialization
user data.
(testWebExtensionInitializationUserData): New test case for checking
the user data passed on initialization to web extensions.
* TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:
(methodCallCallback): Added implementation for the
GetInitializationUserData D-Bus method, used by
testWebExtensionInitializationUserData().
(webkit_web_extension_initialize_with_user_data): Define the
initialization function with the additional user data parameter.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162441 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoThe WebCore.vcxproj.filters doesnot apply
commit-queue@webkit.org [Tue, 21 Jan 2014 14:53:52 +0000 (14:53 +0000)]
The WebCore.vcxproj.filters doesnot apply
https://bugs.webkit.org/show_bug.cgi?id=127338

Patch by Gurpreet Kaur <k.gurpreet@samsung.com> on 2014-01-21
Reviewed by Csaba Osztrogonác.

* WebCore.vcxproj/WebCore.vcxproj.filters:
Modified the WebCore.vcxproj.filters so that it is applied when loading
WebCore.vcxproj file.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162440 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix SVG animations which set rx or ry attributes
commit-queue@webkit.org [Tue, 21 Jan 2014 13:29:08 +0000 (13:29 +0000)]
Fix SVG animations which set rx or ry attributes
https://bugs.webkit.org/show_bug.cgi?id=127337

Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2014-01-21
Reviewed by Dirk Schulze.

Source/WebCore:

Test: svg/stroke/animated-non-scaling-rxry.html

Blink: https://src.chromium.org/viewvc/blink?revision=152376&view=revision
* rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement):
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromRectElement):

LayoutTests:

Blink: https://src.chromium.org/viewvc/blink?revision=152376&view=revision
* svg/stroke/animated-non-scaling-rxry-expected.html: Added.
* svg/stroke/animated-non-scaling-rxry.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162438 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoChange email address for Siddharth Mathur in contributors.json.
s.mathur@ieee.org [Tue, 21 Jan 2014 12:09:25 +0000 (12:09 +0000)]
Change email address for Siddharth Mathur in contributors.json.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162435 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMac production build fix.
mrowe@apple.com [Tue, 21 Jan 2014 11:47:42 +0000 (11:47 +0000)]
Mac production build fix.

Move the shell script build phase to copy jsc into JavaScriptCore.framework
out of the jsc target and in to the All target so that it's not run during
production builds. Xcode appears to the parent directories of paths referenced
in the Output Files of the build phase, which leads to problems when the
SYMROOT for the JavaScriptCore framework and the jsc executables are later merged.

I've also fixed the path to the Resources folder in the script while I'm here.
On iOS the framework bundle is shallow so the correct destination is Resources/
rather than Versions/A/Resources. This is handled by tweaking the
JAVASCRIPTCORE_RESOURCES_DIR configuration setting to be relative rather than
a complete path so we can reuse it in the script. The references in JSC.xcconfig
and ToolExecutable.xcconfig are updated to prepend JAVASCRIPTCORE_FRAMEWORKS_DIR
to preserve their former values.

* Configurations/Base.xcconfig:
* Configurations/JSC.xcconfig:
* Configurations/ToolExecutable.xcconfig:
* JavaScriptCore.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162434 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[ATK] Expose aria-flowto through ATK_RELATION_FLOWS_TO
k.czech@samsung.com [Tue, 21 Jan 2014 09:10:25 +0000 (09:10 +0000)]
[ATK] Expose aria-flowto through ATK_RELATION_FLOWS_TO
https://bugs.webkit.org/show_bug.cgi?id=127291

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Test: accessibility/aria-flowto.html

Expose aria-flowto through ATK_RELATION_FLOWS_TO according to
http://www.w3.org/TR/wai-aria-implementation/#mapping_state-property

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkRelationSetFromCoreObject):

Tools:

Implemented AccessibilityUIElement::ariaFlowToElementAtIndex method.

* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::ariaFlowToElementAtIndex):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):

LayoutTests:

Share aria-flowto.html with other ports. It passes on GTK and EFL.

* accessibility/aria-flowto-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/aria-flowto-expected.txt.
* accessibility/aria-flowto.html: Renamed from LayoutTests/platform/mac/accessibility/aria-flowto.html.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162429 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[CMAKE] Remove Nix from CMake scripts
ryuan.choi@samsung.com [Tue, 21 Jan 2014 06:25:49 +0000 (06:25 +0000)]
[CMAKE] Remove Nix from CMake scripts
https://bugs.webkit.org/show_bug.cgi?id=127264

Reviewed by Anders Carlsson.

.:

* CMakeLists.txt:
* Source/CMakeLists.txt:
* Source/cmake/FindEGL.cmake:
* Source/cmake/OptionsCommon.cmake:

Source/Platform:

* CMakeLists.txt: Removed.

Source/WebCore:

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162427 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[EFL][WK2] Move isEwkViewEvasObject back to ewk_view.cpp
ryuan.choi@samsung.com [Tue, 21 Jan 2014 05:26:40 +0000 (05:26 +0000)]
[EFL][WK2] Move isEwkViewEvasObject back to ewk_view.cpp
https://bugs.webkit.org/show_bug.cgi?id=127261

Reviewed by Gyuyoung Kim.

isEwkViewEvasObject is general check routine of EFL and mainly used in
ewk_view.cpp but it was in EwkView.cpp since separated EwkView.cpp from ewk_view.cpp

This patch moves it to EwkView.h as inline function with small refactoring.
In addition, this patch added EINA_UNLIKELY keyword in cold paths.

* UIProcess/API/efl/EwkView.cpp:
(defaultSmartClassInstance):
(toSmartData):
(toEwkView): Moved it from bottom not to expose it to header file.
* UIProcess/API/efl/EwkView.h:
* UIProcess/API/efl/ewk_view.cpp:
(isEwkViewEvasObject):
(toEwkViewChecked):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162426 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoChange image failures from [ Failure ] to [ ImageOnlyFailure ] where needed.
zalan@apple.com [Tue, 21 Jan 2014 04:21:04 +0000 (04:21 +0000)]
Change image failures from [ Failure ] to [ ImageOnlyFailure ] where needed.

* platform/mac/TestExpectations:
* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162425 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd missing expectations to subpixel failures.
zalan@apple.com [Tue, 21 Jan 2014 03:26:22 +0000 (03:26 +0000)]
Add missing expectations to subpixel failures.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162423 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd the recording button back to the Timelines sidebar.
timothy@apple.com [Tue, 21 Jan 2014 02:56:52 +0000 (02:56 +0000)]
Add the recording button back to the Timelines sidebar.

https://bugs.webkit.org/show_bug.cgi?id=127314

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js: Updated.

* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.get navigationItems):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._updateTimes):
(WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
(WebInspector.TimelineContentView.prototype._recordingTimesUpdated):
(WebInspector.TimelineContentView.prototype._clearTimeline):
(WebInspector.TimelineContentView.prototype._recordingReset):
Add a clear button and reset the time ruler and views when the recording resets.

* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .status-bar):
(.sidebar > .panel.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.recording):
(.sidebar > .panel.timeline > .status-bar > .record-glyph:hover):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.recording:hover):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.forced):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.recording.forced):
(.sidebar > .panel.timeline > .status-bar > .record-status):
Add styles for the recording button and status message.

* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
(WebInspector.TimelineSidebarPanel.prototype._recordingStarted):
(WebInspector.TimelineSidebarPanel.prototype._recordingStopped):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
Add support for the recording button and status message.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162422 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMake the TimelineRecordTreeElement location subtitle live.
timothy@apple.com [Tue, 21 Jan 2014 02:56:45 +0000 (02:56 +0000)]
Make the TimelineRecordTreeElement location subtitle live.

https://bugs.webkit.org/show_bug.cgi?id=127270

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js: Updated.

* UserInterface/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.originalLocationString):
(WebInspector.SourceCodeLocation.prototype.formattedLocationString):
(WebInspector.SourceCodeLocation.prototype.displayLocationString):
(WebInspector.SourceCodeLocation.prototype.updateDisplayString):
(WebInspector.SourceCodeLocation.prototype._locationString):
Support for a new nameStyle enum and a prefix for the location string.
Passing the prefix here lets it be italicized with the line number.
Support column number for SourceCode's without a URL too.

* UserInterface/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
(WebInspector.TimelineRecordTreeElement.prototype.onattach):
Create a subtitle span to update the location inside. Update the tooltip on attach.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162421 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoGenerate better display names for timer and event Timeline records.
timothy@apple.com [Tue, 21 Jan 2014 02:56:36 +0000 (02:56 +0000)]
Generate better display names for timer and event Timeline records.

Also support AnimationFrameRequested and AnimationFrameCanceled.

https://bugs.webkit.org/show_bug.cgi?id=127258

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js: Updated.

* UserInterface/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord.EventType.displayName):
Generate past tense names that better match other names.

* UserInterface/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
Pass the details to displayName.

* UserInterface/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.EventType.displayName):
Generate better names for timer and event records. Also add missing animation frame types.

* UserInterface/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._processPendingRecords):
Pass true to WebInspector.TimelineRecordTreeElement to include timer identifiers in the title.

* UserInterface/SourceCodeTimelineTreeElement.js:
(WebInspector.SourceCodeTimelineTreeElement):
Pass includeTimerIdentifierInMainTitle through to TimelineRecordTreeElement.

* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
Include AnimationFrameRequested and AnimationFrameCanceled.

* UserInterface/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Use displayName functions instead and support includeTimerIdentifierInMainTitle.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162420 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement basic versions of the TimelineOverview graphs.
timothy@apple.com [Tue, 21 Jan 2014 02:56:29 +0000 (02:56 +0000)]
Implement basic versions of the TimelineOverview graphs.

https://bugs.webkit.org/show_bug.cgi?id=127184

Reviewed by Joseph Pecoraro.

* UserInterface/LayoutTimelineOverviewGraph.css: Added.
(.timeline-overview-graph.layout > .timeline-record-bar):
(.timeline-overview-graph.layout > .timeline-record-bar > .segment):

* UserInterface/LayoutTimelineOverviewGraph.js: Added.
(WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):

* UserInterface/Main.html: Added new files.

* UserInterface/NetworkTimelineOverviewGraph.css: Added.
(.timeline-overview-graph.network):
(.timeline-overview-graph.network > .graph-row):
(.timeline-overview-graph.network > .graph-row > .bar):
(.timeline-overview-graph.network > .graph-row > .bar.inactive):
(.timeline-overview-graph.network > .graph-row > .bar.unfinished):
(.timeline-overview-graph.network > .graph-row > .bar:not(.inactive)):
(.timeline-overview-graph.network:nth-child(even) > .graph-row > .bar:not(.inactive)):

* UserInterface/NetworkTimelineOverviewGraph.js: Added.
(WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.updateElementPosition):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.compareByStartTime):
(WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.insertObjectIntoSortedArray):
(WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded):

* UserInterface/ScriptTimelineOverviewGraph.css: Added.
(.timeline-overview-graph.script > .timeline-record-bar):
(.timeline-overview-graph.script > .timeline-record-bar > .segment):

* UserInterface/ScriptTimelineOverviewGraph.js: Added.
(WebInspector.ScriptTimelineOverviewGraph.prototype.reset):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.ScriptTimelineOverviewGraph.prototype._scriptTimelineRecordAdded):

* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingReset):
Create and keep the graphs informed.

* UserInterface/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode):
(WebInspector.TimelineDataGridNode.prototype.refreshGraph):
Combine records that might overlap.

* UserInterface/TimelineOverview.css:
(.timeline-overview > .graphs-container):
(.timeline-overview > .graphs-container > .timeline-overview-graph):
(.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)):
Add the graph rows with alternating stripe.

* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.get currentTime):
(WebInspector.TimelineOverview.prototype.set currentTime):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
Track currentTime in a member variable and let TimelineOverview manage the current time marker.

* UserInterface/TimelineOverviewGraph.js: Added.
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get zeroTime):
(WebInspector.TimelineOverviewGraph.prototype.set zeroTime):
(WebInspector.TimelineOverviewGraph.prototype.get startTime):
(WebInspector.TimelineOverviewGraph.prototype.set startTime):
(WebInspector.TimelineOverviewGraph.prototype.get endTime):
(WebInspector.TimelineOverviewGraph.prototype.set endTime):
(WebInspector.TimelineOverviewGraph.prototype.get currentTime):
(WebInspector.TimelineOverviewGraph.prototype.set currentTime):
(WebInspector.TimelineOverviewGraph.prototype.reset):
(WebInspector.TimelineOverviewGraph.prototype.updateLayout):
(WebInspector.TimelineOverviewGraph.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):

* UserInterface/TimelineRecordBar.css:
(.timeline-record-bar > .segment):
(.timeline-record-bar.unfinished > .segment):
(.timeline-record-bar > .segment.inactive + .segment):
(.timeline-record-bar.timeline-record-type-network > .segment.inactive):

* UserInterface/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar):
(WebInspector.TimelineRecordBar.recordsCannotBeCombined):
(WebInspector.TimelineRecordBar.prototype.get records):
(WebInspector.TimelineRecordBar.prototype.set records):
(WebInspector.TimelineRecordBar.prototype.refresh):
Make TimelineRecordBar support multiple records.

* UserInterface/TimelineRuler.css:
(.timeline-ruler > .markers):
(.timeline-ruler > .selection-handle):
(.timeline-ruler > .shaded-area):
Add some z-index values to stay above graph elements.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162419 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoClean up Timelines code by using ES6 features and less global access of TimelineRecor...
timothy@apple.com [Tue, 21 Jan 2014 02:56:17 +0000 (02:56 +0000)]
Clean up Timelines code by using ES6 features and less global access of TimelineRecording.
Also don't recreate Timeline objects when TimelineRecording is reset, reset them instead.

https://bugs.webkit.org/show_bug.cgi?id=127157

Reviewed by Joseph Pecoraro.

* UserInterface/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.reset):
* UserInterface/NetworkTimeline.js:
(WebInspector.NetworkTimeline):
(WebInspector.NetworkTimeline.prototype.reset):
* UserInterface/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.reset):
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
* UserInterface/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.reset):
* UserInterface/Timeline.js:
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.reset):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.set createPathComponent):
(WebInspector.TimelineContentView.set var):
(WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
(WebInspector.TimelineContentView.prototype.showTimelineView):
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingReset):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.reset):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162418 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImprove WebInspector.TimelineOverview by not putting WebInspector.TimelineRuler in...
timothy@apple.com [Tue, 21 Jan 2014 02:56:10 +0000 (02:56 +0000)]
Improve WebInspector.TimelineOverview by not putting WebInspector.TimelineRuler in a scroll area.

https://bugs.webkit.org/show_bug.cgi?id=127145

Reviewed by Joseph Pecoraro.

* UserInterface/TimelineOverview.css:
(.timeline-overview > .scroll-container):
(.timeline-overview > .timeline-ruler):
(.timeline-overview > .scroll-container > .scroll-width-sizer):
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get startTime):
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get scrollStartTime):
(WebInspector.TimelineOverview.prototype.set scrollStartTime):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.revealMarker):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler.MinimumSelectionTimeRange): Reduce to 10ms now that super zoom has no performance impact.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162417 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement the discrete Script and Layout timeline views.
timothy@apple.com [Tue, 21 Jan 2014 02:56:04 +0000 (02:56 +0000)]
Implement the discrete Script and Layout timeline views.

https://bugs.webkit.org/show_bug.cgi?id=127063

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js: Updated.

* UserInterface/DataGrid.js:
(WebInspector.DataGrid): Support hidden columns by default.
(WebInspector.DataGrid.prototype.updateLayout): Set the column width to zero for hidden columns.

* UserInterface/LayoutTimelineDataGrid.js:
(WebInspector.LayoutTimelineDataGrid): Pass the right parameters to the superclass.

* UserInterface/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord.prototype.saveIdentityToCookie): Added.

* UserInterface/LayoutTimelineView.css: Copied from Source/WebInspectorUI/UserInterface/ScriptTimelineDataGrid.js.
(.timeline-view.layout > .data-grid):
(.timeline-view.layout > .data-grid .eventType-column):
(.sidebar > .panel.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):

* UserInterface/LayoutTimelineView.js: Added.
(WebInspector.LayoutTimelineView):
(WebInspector.LayoutTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.LayoutTimelineView.prototype.shown):
(WebInspector.LayoutTimelineView.prototype.hidden):
(WebInspector.LayoutTimelineView.prototype.updateLayout):
(WebInspector.LayoutTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
(WebInspector.LayoutTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):

* UserInterface/Main.html: Added new files.

* UserInterface/ScriptTimelineDataGrid.js:
(WebInspector.ScriptTimelineDataGrid): Pass the right parameters to the superclass.

* UserInterface/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent): Fix up how we create the link.

* UserInterface/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype.saveIdentityToCookie): Added.

* UserInterface/ScriptTimelineView.css: Copied from Source/WebInspectorUI/UserInterface/ScriptTimelineDataGrid.js.
(.timeline-view.script > .data-grid):
(.timeline-view.script > .data-grid .eventType-column):
(.sidebar > .panel.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):

* UserInterface/ScriptTimelineView.js: Added.
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.ScriptTimelineView.prototype.shown):
(WebInspector.ScriptTimelineView.prototype.hidden):
(WebInspector.ScriptTimelineView.prototype.updateLayout):
(WebInspector.ScriptTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.ScriptTimelineView.prototype._scriptTimelineRecordAdded):
(WebInspector.ScriptTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):

* UserInterface/SourceCodeTimelineTreeElement.js:
(WebInspector.SourceCodeTimelineTreeElement):
Moved code to TimelineRecordTreeElement. Subclass from it.

* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters): Support TimelineRecordTreeElement.
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged): Update zeroTime for all views.

* UserInterface/TimelineDataGrid.css:
(.data-grid.timeline td .icon):
(.data-grid.timeline td .go-to-arrow):
(.data-grid.timeline tr:hover .go-to-arrow):
(.data-grid.timeline td .subtitle):
(.data-grid.timeline td .subtitle::before):
(.data-grid.timeline:focus tr.selected td .subtitle):

* UserInterface/TimelineRecord.js:
(WebInspector.TimelineRecord.prototype.saveIdentityToCookie): Added.

* UserInterface/TimelineRecordTreeElement.js: Added.
(WebInspector.TimelineRecordTreeElement):
(WebInspector.TimelineRecordTreeElement.prototype.get record):
(WebInspector.TimelineRecordTreeElement.prototype.get filterableData):
Factored out from SourceCodeTimelineTreeElement.

* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looslyCompareRepresentedObjects):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
Find TreeElements via a loose lookup based on represented objects that might contain the represented object we are
really looking for.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162416 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement the discrete Network timeline view.
timothy@apple.com [Tue, 21 Jan 2014 02:55:52 +0000 (02:55 +0000)]
Implement the discrete Network timeline view.

https://bugs.webkit.org/show_bug.cgi?id=127022

Reviewed by Joseph Pecoraro.

* UserInterface/DataGrid.js:
(WebInspector.DataGrid): Align the labels of the column headers to match the data.
(WebInspector.DataGridNode.prototype.get selectable): Prevent selection when hidden.

* UserInterface/DetailsSection.css:
(.details-section > .header): Bump the font size to match data grid header sizes.

* UserInterface/Main.html: Add new files.

* UserInterface/NetworkTimelineView.css: Added.
(.timeline-view.network > .data-grid):
(.sidebar > .panel.timeline.timeline-content-view-showing > .content .item.resource .subtitle):
Hide the domain subtitle when the content view is showing which also has the domain.

* UserInterface/NetworkTimelineView.js: Added.
(WebInspector.NetworkTimelineView):
(WebInspector.NetworkTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.NetworkTimelineView.prototype.shown):
(WebInspector.NetworkTimelineView.prototype.hidden):
(WebInspector.NetworkTimelineView.prototype.updateLayout):
(WebInspector.NetworkTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NetworkTimelineView.prototype._networkTimelineRecordAdded):
(WebInspector.NetworkTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.NetworkTimelineView.prototype._treeElementSelected):

* UserInterface/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._needsRefresh):
Call dataGridNodeNeedsRefresh on the TimelineDataGrid so things can be batched with
one request animation frame.

* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView): Create a NetworkTimelineView.
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):

* UserInterface/TimelineDataGrid.css:
(.data-grid.timeline table):
(.data-grid.timeline th):
(.data-grid.timeline th:not(:last-child)):
(.data-grid.timeline th.sortable:active):
(.data-grid.timeline th.sort-descending):
(.data-grid.timeline .data-container):
(.data-grid.timeline td):
(.data-grid.timeline td:last-child):
(.data-grid.timeline td:not(:last-child)):
(.data-grid.timeline:focus tr.selected td:not(:last-child)):
(.data-grid.timeline th.sort-descending > div:first-child):
(.data-grid.timeline th.sort-descending > div:first-child::after):
(.data-grid.timeline td.error):
(.data-grid.timeline tr.selected td.error):
(.data-grid.timeline > .navigation-bar-container):
(.data-grid.timeline:hover > .navigation-bar-container):
(.data-grid.timeline > .navigation-bar-container > .navigation-bar):

* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid):
(WebInspector.TimelineDataGrid.createColumnScopeBar):
(WebInspector.TimelineDataGrid.prototype.reset):
(WebInspector.TimelineDataGrid.prototype.shown):
(WebInspector.TimelineDataGrid.prototype.hidden):
(WebInspector.TimelineDataGrid.prototype.callFramePopoverAnchorElement):
(WebInspector.TimelineDataGrid.prototype.updateLayout):
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
(WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
(WebInspector.TimelineDataGrid.prototype.shouldIgnoreSelectionEvent):
(WebInspector.TimelineDataGrid.prototype.dataGridNodeNeedsRefresh):
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
(WebInspector.TimelineDataGrid.prototype._sort):
(WebInspector.TimelineDataGrid.prototype._sortComparator):
Add support for sorting, batch refresh and managing of a TreeOutlineDataGridSynchronizer.

* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .title-bar): Bump the font size to match data grid header sizes.

* UserInterface/TimelineView.js:
(WebInspector.TimelineView.prototype.matchTreeElementAgainstCustomFilters): Added stub.

* UserInterface/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.get treeOutline):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.get dataGrid):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.get enabled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.set enabled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.treeElementForDataGridNode):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.dataGridNodeForTreeElement):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged):
Added support for disabling the synchronizer when the client can do a better job.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162415 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFilter the Timeline overview graph and sidebar based on the current time selection.
timothy@apple.com [Tue, 21 Jan 2014 02:55:44 +0000 (02:55 +0000)]
Filter the Timeline overview graph and sidebar based on the current time selection.

https://bugs.webkit.org/show_bug.cgi?id=126955

Reviewed by Joseph Pecoraro.

* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.updateFilter):
(WebInspector.NavigationSidebarPanel.prototype.hasCustomFilters):
(WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
Add support for custom filters implemented by subclasses.

* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters.checkTimeBounds):
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
Filter known tree element types by time.

* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .empty-content-placeholder):
Position the empty placeholder with the content.

* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.hasCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
Defer filtering to the TimelineContentView.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162414 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement state cookie support for WebInspector.TimelineSidebarPanel.
timothy@apple.com [Tue, 21 Jan 2014 02:55:38 +0000 (02:55 +0000)]
Implement state cookie support for WebInspector.TimelineSidebarPanel.

https://bugs.webkit.org/show_bug.cgi?id=126921

Reviewed by Joseph Pecoraro.

* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
Drive-by fix to pass along relaxedMatchDelay to the superclass.

* UserInterface/Main.js:
(WebInspector.loaded):
(WebInspector._provisionalLoadStarted):
Listen for ProvisionalLoadStarted instead of ProvisionalLoadCommitted to save the cookie
before the TimelineRecording is reset and clears the UI.

* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.get restoringState): Added.
(WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie.finalAttemptToRestoreViewStateFromCookie):
Delete _pendingViewStateCookie since this was the final attempt.
(WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject): Block string represented objects.
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):

* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):

* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
Drive-by fix to null check parentFrame since it can be null. Was causing an exception while working on this.

* UserInterface/SourceCodeTimeline.js:
(WebInspector.SourceCodeTimeline):
(WebInspector.SourceCodeTimeline.prototype.saveIdentityToCookie):

* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):

* UserInterface/TreeOutline.js:
(TreeOutline.prototype._forgetTreeElement):
Drive-by fix to clear selectedTreeElement if it is removed from the tree. Was causing removed TreeElements to be
saved as a cookie since it was still the selected item.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162413 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement bar graph rendering for WebInspector.OverviewTimelineView.
timothy@apple.com [Tue, 21 Jan 2014 02:55:30 +0000 (02:55 +0000)]
Implement bar graph rendering for WebInspector.OverviewTimelineView.

https://bugs.webkit.org/show_bug.cgi?id=126831

Reviewed by Joseph Pecoraro.

* UserInterface/Main.html: Added new files.

* UserInterface/OverviewTimelineView.css:
(.timeline-view.overview > .data-grid td.graph-column):
(.timeline-view.overview > .data-grid td.graph-column > div):
(.timeline-view.overview > .data-grid td.graph-column .timeline-record-bar):
Position the bars in the DataGrid cells.

* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.updateLayout):
(WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
(WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
Create the proper DataGridNodes for resources and source code timelines.

* UserInterface/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode):
(WebInspector.ResourceTimelineDataGridNode.prototype.get records):
(WebInspector.ResourceTimelineDataGridNode.prototype.get resource):
(WebInspector.ResourceTimelineDataGridNode.prototype.get data):
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ResourceTimelineDataGridNode.prototype.refresh):
(WebInspector.ResourceTimelineDataGridNode.prototype._needsRefresh):
(WebInspector.ResourceTimelineDataGridNode.prototype._goToResource):
Simplify by deferring the graph logic to the new TimelineDataGridNode base class.

* UserInterface/SourceCodeTimelineTimelineDataGridNode.js: Added.
(WebInspector.SourceCodeTimelineTimelineDataGridNode):
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get records):
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get sourceCodeTimeline):
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get data):

* UserInterface/TimelineDataGridNode.js: Added.
(WebInspector.TimelineDataGridNode):
(WebInspector.TimelineDataGridNode.prototype.get records):
(WebInspector.TimelineDataGridNode.prototype.get data):
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
(WebInspector.TimelineDataGridNode.prototype.refresh):
(WebInspector.TimelineDataGridNode.prototype.refreshGraph):
(WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
Handles the graph column and manages the records and their bars.

* UserInterface/TimelineRecordBar.css: Added.
(.timeline-record-bar):
(.timeline-record-bar > .segment):
(.timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-record-bar.unfinished > .segment):
(.timeline-record-bar > .segment.inactive + .segment):
(:focus .selected .timeline-record-bar > .segment):
(.timeline-record-bar > .segment.inactive):
(.timeline-record-bar.timeline-record-type-network > .segment):
(.timeline-record-bar.timeline-record-type-layout > .segment):
(.timeline-record-bar.timeline-record-type-script > .segment):

* UserInterface/TimelineRecordBar.js: Added.
(WebInspector.TimelineRecordBar):
(WebInspector.TimelineRecordBar.prototype.get element):
(WebInspector.TimelineRecordBar.prototype.refresh):
(WebInspector.TimelineRecordBar.prototype._updateElementPosition):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162412 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUpdate the current WebInspector.TimelineView when time range changes.
timothy@apple.com [Tue, 21 Jan 2014 02:55:21 +0000 (02:55 +0000)]
Update the current WebInspector.TimelineView when time range changes.

https://bugs.webkit.org/show_bug.cgi?id=126667

Reviewed by Joseph Pecoraro.

* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
(WebInspector.TimelineContentView.prototype._stopUpdatingCurrentTime):
(WebInspector.TimelineContentView.prototype._recordingStarted):
(WebInspector.TimelineContentView.prototype._recordingStopped):
(WebInspector.TimelineContentView.prototype._recordingReset):
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype._updateElementWidth):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.updateLayoutIfNeeded):
* UserInterface/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get zeroTime):
(WebInspector.TimelineView.prototype.set zeroTime):
(WebInspector.TimelineView.prototype.get startTime):
(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.get endTime):
(WebInspector.TimelineView.prototype.set endTime):
(WebInspector.TimelineView.prototype.get currentTime):
(WebInspector.TimelineView.prototype.set currentTime.checkIfLayoutIsNeeded):
(WebInspector.TimelineView.prototype.set currentTime):
(WebInspector.TimelineView.prototype.updateLayout):
(WebInspector.TimelineView.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineView.prototype.needsLayout):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162411 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement time range selection for TimelineOverview and TimelineRuler.
timothy@apple.com [Tue, 21 Jan 2014 02:55:14 +0000 (02:55 +0000)]
Implement time range selection for TimelineOverview and TimelineRuler.

https://bugs.webkit.org/show_bug.cgi?id=126035

Reviewed by Joseph Pecoraro.

* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingReset):
Properly update start time and the selection start time on reset.

* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get selectionStartTime):
(WebInspector.TimelineOverview.prototype.set selectionStartTime):
(WebInspector.TimelineOverview.prototype.get selectionDuration):
(WebInspector.TimelineOverview.prototype.set selectionDuration):
Added selection getters and setters.

* UserInterface/TimelineRuler.css:
(.timeline-ruler.allows-time-range-selection):
(.timeline-ruler > *):
(.timeline-ruler > .header):
(.timeline-ruler > .selection-drag):
(.timeline-ruler > .selection-drag:active):
(.timeline-ruler > .selection-handle):
(.timeline-ruler > .selection-handle.left):
(.timeline-ruler > .selection-handle.right):
(.timeline-ruler > .shaded-area):
(.timeline-ruler > .shaded-area.left):
(.timeline-ruler > .shaded-area.right):
Added styles for the selection elements and tweaked pointer-events to allow
events on elements we expect.

* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get allowsTimeRangeSelection): Added.
(WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection): Added.
(WebInspector.TimelineRuler.prototype.get selectionStartTime): Added.
(WebInspector.TimelineRuler.prototype.set selectionStartTime): Added.
(WebInspector.TimelineRuler.prototype.get selectionEndTime): Added.
(WebInspector.TimelineRuler.prototype.set selectionEndTime): Added.
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout.update):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout):
(WebInspector.TimelineRuler.prototype._needsSelectionLayout.update):
(WebInspector.TimelineRuler.prototype._needsSelectionLayout):
(WebInspector.TimelineRuler.prototype._recalculate):
(WebInspector.TimelineRuler.prototype._updatePositionOfElement):
(WebInspector.TimelineRuler.prototype._updateMarkers):
(WebInspector.TimelineRuler.prototype._updateSelection): Added.
(WebInspector.TimelineRuler.prototype._dispatchTimeRangeSelectionChangedEvent):
(WebInspector.TimelineRuler.prototype._timelineMarkerTimeChanged):
(WebInspector.TimelineRuler.prototype._handleMouseDown): Added.
(WebInspector.TimelineRuler.prototype._handleMouseMove): Added.
(WebInspector.TimelineRuler.prototype._handleMouseUp): Added.
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown): Added.
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove): Added.
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp): Added.
Create selection elements and handle mouse events for drag and move.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162410 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSupport scroll to zoom in TimelineOverview.
timothy@apple.com [Tue, 21 Jan 2014 02:55:08 +0000 (02:55 +0000)]
Support scroll to zoom in TimelineOverview.

https://bugs.webkit.org/show_bug.cgi?id=125909

Reviewed by Joseph Pecoraro.

* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162409 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd the start of the TimelineOverview class.
timothy@apple.com [Tue, 21 Jan 2014 02:55:03 +0000 (02:55 +0000)]
Add the start of the TimelineOverview class.

TimelineOverview currently has a time ruler and tracks the current recording time.

https://bugs.webkit.org/show_bug.cgi?id=125878

Reviewed by Joseph Pecoraro.

* UserInterface/Main.html:
* UserInterface/TimelineContentView.css:
(.content-view.timeline > .timeline-overview):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView):
(WebInspector.TimelineContentView.prototype.updateLayout):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingStarted):
(WebInspector.TimelineContentView.prototype._recordingStopped):
(WebInspector.TimelineContentView.prototype._recordingReset):
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/TimelineMarker.js: Renamed from Source/WebInspectorUI/UserInterface/TimelineEventMarker.js.
(WebInspector.TimelineMarker):
(WebInspector.TimelineMarker.prototype.get time):
(WebInspector.TimelineMarker.prototype.set time):
(WebInspector.TimelineMarker.prototype.get type):
* UserInterface/TimelineOverview.css: Added.
(.timeline-overview > .scroll-container):
(.timeline-overview > .scroll-container > .timeline-ruler):
* UserInterface/TimelineOverview.js: Added.
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get element):
(WebInspector.TimelineOverview.prototype.get startTime):
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get endTime):
(WebInspector.TimelineOverview.prototype.set endTime):
(WebInspector.TimelineOverview.prototype.addMarker):
(WebInspector.TimelineOverview.prototype.revealMarker):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype._updateElementWidth):
(WebInspector.TimelineOverview.prototype._needsLayout):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.get startTime):
(WebInspector.TimelineRecording.prototype.get endTime):
(WebInspector.TimelineRecording.prototype.reset):
* UserInterface/TimelineRuler.css:
(.timeline-ruler > .markers):
(.timeline-ruler > .markers > .marker):
(.timeline-ruler > .markers > .marker.current-time):
(.timeline-ruler > .markers > .marker.current-time::before):
(.timeline-ruler > .markers > .marker.load-event):
(.timeline-ruler > .markers > .marker.dom-content-event):
(.timeline-ruler > .markers > .marker.timestamp):
* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._needsLayout):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout.update):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout):
(WebInspector.TimelineRuler.prototype._recalculate):
(WebInspector.TimelineRuler.prototype._updateLeftPositionOfElement):
(WebInspector.TimelineRuler.prototype._updateMarkers):
(WebInspector.TimelineRuler.prototype._timelineMarkerTimeChanged):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162408 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoClean up and refactor TimelineDecorations into TimelineRuler.
timothy@apple.com [Tue, 21 Jan 2014 02:54:54 +0000 (02:54 +0000)]
Clean up and refactor TimelineDecorations into TimelineRuler.

https://bugs.webkit.org/show_bug.cgi?id=125709

Reviewed by Joseph Pecoraro.

* UserInterface/Main.html:
* UserInterface/OverviewTimelineView.css:
(.timeline-view.overview > .timeline-ruler):
(.timeline-view.overview > .timeline-ruler > .header):
(.timeline-view.overview > .timeline-ruler > .event-markers):
Updated class names and border sides.

* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.updateLayout):
Call updateLayout on the TimelineRuler.

* UserInterface/TimelineRuler.css: Renamed from Source/WebInspectorUI/UserInterface/TimelineDecorations.css.
(.timeline-ruler):
(.timeline-ruler > .header):
(.timeline-ruler > .header > .divider):
(.timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .event-markers):
(.timeline-ruler > .event-markers > .event-marker-tooltip):
(.timeline-ruler > .event-markers > .event-marker):
(.timeline-ruler > .event-markers > .event-marker.load-event):
(.timeline-ruler > .event-markers > .event-marker.dom-content-event):
(.timeline-ruler > .event-markers > .event-marker.timestamp):
Updated class names and border sides.

* UserInterface/TimelineRuler.js: Renamed from Source/WebInspectorUI/UserInterface/TimelineDecorations.js.
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get element):
(WebInspector.TimelineRuler.prototype.get headerElement):
(WebInspector.TimelineRuler.prototype.get allowsClippedLabels):
(WebInspector.TimelineRuler.prototype.set allowsClippedLabels):
(WebInspector.TimelineRuler.prototype.get zeroTime):
(WebInspector.TimelineRuler.prototype.set zeroTime):
(WebInspector.TimelineRuler.prototype.get startTime):
(WebInspector.TimelineRuler.prototype.set startTime):
(WebInspector.TimelineRuler.prototype.get duration):
(WebInspector.TimelineRuler.prototype.set duration):
(WebInspector.TimelineRuler.prototype.get endTime):
(WebInspector.TimelineRuler.prototype.set endTime):
(WebInspector.TimelineRuler.prototype.get secondsPerPixel):
(WebInspector.TimelineRuler.prototype.set secondsPerPixel):
(WebInspector.TimelineRuler.prototype.updateLayout.removeDividerAndSelectNext):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._needsLayout):
(WebInspector.TimelineRuler.prototype._recalculate):
Refactor so the times are stored on TimelineRuler and not passed in each time an update is needed.
Support dividers that don't always start at the zero position, allowing a sliding time ruler.
Support for a non-pinned ruler where the end time is not fixed and the scale is specified in
seconds-per-pixel.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162407 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImprove scroll performance of WebInspector.TreeOutlineDataGridSynchronizer.
timothy@apple.com [Tue, 21 Jan 2014 02:54:47 +0000 (02:54 +0000)]
Improve scroll performance of WebInspector.TreeOutlineDataGridSynchronizer.

https://bugs.webkit.org/show_bug.cgi?id=126660

Reviewed by Joseph Pecoraro.

* UserInterface/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
Ignore scroll events triggered by our internal use of setting scrollTop.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162406 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd a synchronized DataGrid to the OverviewTimelineView.
timothy@apple.com [Tue, 21 Jan 2014 02:54:42 +0000 (02:54 +0000)]
Add a synchronized DataGrid to the OverviewTimelineView.

The DataGrid is synchronized with the sidebar TreeOutline to appear as one when the view
and sidebar are both showing. The two scroll, expand and collapse in sync when the view
is showing. When the view is not showing the sidebar can scroll independently.

https://bugs.webkit.org/show_bug.cgi?id=124429

Reviewed by Joseph Pecoraro.

* UserInterface/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.createSortableDataGrid):
(WebInspector.DataGrid.prototype._copyTextForDataGridNode):
(WebInspector.DataGridNode.prototype.createCellContent):
Handle undefined/null cells better by substituting empty strings.

(WebInspector.DataGridNode.prototype.collapse):
(WebInspector.DataGridNode.prototype.expand):
Fire events on the DataGrid for expand and collapse.

* UserInterface/Main.html: Include TreeOutlineDataGridSynchronizer.js.

* UserInterface/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .content): Shorten by 1px to match the content view height.
Needed to keep scrolling in sync. The clipping looks better too.

* UserInterface/OverviewTimelineView.css:
(.timeline-view.overview > .data-grid):
(.timeline-view.overview > .data-grid table.header):
(.timeline-view.overview > .data-grid .data-container):
Style the DataGrid to to not have a header.

* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.shown):
(WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
(WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
Create the DataGrid and some placeholder nodes. Hook up TreeOutlineDataGridSynchronizer.

* UserInterface/TimelineContentView.css:
(.content-view.timeline > .view-container > .timeline-view > .data-grid td):
(.content-view.timeline > .view-container > .timeline-view > .data-grid table.data):
Style the DataGrid to match the height of TreeElements in the sidebar.

* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline.timeline-content-view-showing > .content):
Hide the scrollbar off the right when the view is showing. The view will show the scrollbar.

* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected):
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):

* UserInterface/TreeOutline.js:
(TreeOutline.prototype.removeChildAtIndex):
(TreeOutline.prototype.removeChildren):
(TreeOutline.prototype.removeChildrenRecursive):
(TreeElement.prototype.set hidden):
Add event callbacks for onhidden and onremove.

* UserInterface/TreeOutlineDataGridSynchronizer.js: Added.
(WebInspector.TreeOutlineDataGridSynchronizer):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.associate):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.synchronize):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162405 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoStart fleshing out the Overview Timeline view.
timothy@apple.com [Tue, 21 Jan 2014 02:54:34 +0000 (02:54 +0000)]
Start fleshing out the Overview Timeline view.

This gets the overview populating in the Timeline sidebar. The graph side is still empty.

https://bugs.webkit.org/show_bug.cgi?id=124005

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Frame.js:
(WebInspector.Frame.prototype.addResource):
* UserInterface/Images/TimelineRecordAnimation.svg: Added.
* UserInterface/Images/TimelineRecordEvent.svg: Added.
* UserInterface/Images/TimelineRecordLayout.svg: Added.
* UserInterface/Images/TimelineRecordPaint.svg: Added.
* UserInterface/Images/TimelineRecordScriptEvaluated.svg: Added.
* UserInterface/Images/TimelineRecordStyle.svg: Added.
* UserInterface/Images/TimelineRecordTimer.svg: Added.
* UserInterface/Main.html:
* UserInterface/OverviewTimelineView.js: Added.
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.OverviewTimelineView.prototype._childFrameWasAdded):
(WebInspector.OverviewTimelineView.prototype._mainResourceDidChange):
(WebInspector.OverviewTimelineView.prototype._provisionalResourceWasAdded):
(WebInspector.OverviewTimelineView.prototype._resourceWasAdded):
(WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails):
(WebInspector.OverviewTimelineView.prototype._compareTreeElementsByStartTime):
(WebInspector.OverviewTimelineView.prototype._insertTreeElement):
(WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
(WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
* UserInterface/SourceCodeTimelineTreeElement.js: Added.
(WebInspector.SourceCodeTimelineTreeElement):
(WebInspector.SourceCodeTimelineTreeElement.prototype.get sourceCodeTimeline):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.createPathComponent):
(WebInspector.TimelineContentView):
(WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
(WebInspector.TimelineContentView.prototype.showTimelineView):
(WebInspector.TimelineContentView.prototype.get supportsSplitContentBrowser):
(WebInspector.TimelineContentView.prototype.get selectionPathComponents):
(WebInspector.TimelineContentView.prototype._pathComponentSelected):
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._recordingReset):
* UserInterface/TimelineIcons.css:
(.style-record .icon): Added.
(.layout-record .icon): Added.
(.paint-record .icon): Added.
(.evaluated-record .icon): Added.
(.event-record .icon): Added.
(.timer-record .icon): Added.
(.animation-record .icon): Added.
* UserInterface/TimelineView.css: Added.
(.timeline-view):
* UserInterface/TimelineView.js: Added.
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutline):
(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.TimelineView.prototype.reset):
(WebInspector.TimelineView.prototype.shown):
(WebInspector.TimelineView.prototype.hidden):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162404 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoStart fleshing out the new TimelineSidebarPanel and TimelineContentView.
timothy@apple.com [Tue, 21 Jan 2014 02:54:21 +0000 (02:54 +0000)]
Start fleshing out the new TimelineSidebarPanel and TimelineContentView.

https://bugs.webkit.org/show_bug.cgi?id=124003

Reviewed by Joseph Pecoraro.

* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/FrameContentView.js:
* UserInterface/Images/CloseTimeline.png: Added.
* UserInterface/Images/CloseTimeline@2x.png: Added.
* UserInterface/Images/ColorsLarge.png: Added.
* UserInterface/Images/ColorsLarge@2x.png: Added.
* UserInterface/Images/NetworkLarge.png: Added.
* UserInterface/Images/NetworkLarge@2x.png: Added.
* UserInterface/Images/ScriptLarge.png: Added.
* UserInterface/Images/ScriptLarge@2x.png: Added.
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.sidebarPanelForRepresentedObject):
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentView):
* UserInterface/ResourceClusterContentView.js:
* UserInterface/TimelineContentView.css: Added.
(.content-view.timeline > .view-container):
* UserInterface/TimelineContentView.js: Added.
(WebInspector.TimelineContentView):
* UserInterface/TimelineIcons.css: Renamed from Source/WebInspectorUI/UserInterface/InstrumentIcons.css.
(.network-icon.large .icon): Added.
(.colors-icon.large .icon): Added.
(.script-icon.large .icon): Added.
* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .navigation-bar):
(.sidebar > .panel.timeline > .title-bar):
(.sidebar > .panel.timeline > .title-bar.timelines):
(.sidebar > .panel.timeline > .title-bar.timeline-events):
(.sidebar > .panel.timeline > .timelines-content):
(.sidebar > .panel.timeline > .timelines-content .close-button):
(.sidebar > .panel.timeline > .timelines-content li.item.selected .close-button):
(.sidebar > .panel.timeline > .timelines-content .close-button:active):
(.sidebar > .panel.timeline > .content):
* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.prototype.get contentTreeOutlineLabel):
(WebInspector.TimelineSidebarPanel.prototype.set contentTreeOutlineLabel):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineView):
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162403 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoCorrectly track time bounds of WebInspector.Timeline and WebInspector.TimelineRecording.
timothy@apple.com [Tue, 21 Jan 2014 02:54:04 +0000 (02:54 +0000)]
Correctly track time bounds of WebInspector.Timeline and WebInspector.TimelineRecording.

The startTime and endTime were not correct when Network timeline needed to be taken into
account (due to its dynamic loading nature.) This creates a network Timeline for the purposes
of tracking the ResourceTimelineRecords and getting accurate start and end times.

Also changes the way TimelineRecord tracks the inactive portion of time, needed for later
work on the timeline graphs.

https://bugs.webkit.org/show_bug.cgi?id=126676

Reviewed by Joseph Pecoraro.

* UserInterface/ResourceTimelineRecord.js:
(WebInspector.ResourceTimelineRecord.prototype.get updatesDynamically):
(WebInspector.ResourceTimelineRecord.prototype.get usesActiveStartTime):
(WebInspector.ResourceTimelineRecord.prototype.get startTime):
(WebInspector.ResourceTimelineRecord.prototype.get activeStartTime):
(WebInspector.ResourceTimelineRecord.prototype.get endTime):
* UserInterface/Timeline.js:
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.get startTime):
(WebInspector.Timeline.prototype.get endTime):
(WebInspector.Timeline.prototype.addRecord):
(WebInspector.Timeline.prototype._updateTimesIfNeeded):
(WebInspector.Timeline.prototype._recordUpdated):
* UserInterface/TimelineRecord.js:
(WebInspector.TimelineRecord.prototype.get startTime):
(WebInspector.TimelineRecord.prototype.get activeStartTime):
(WebInspector.TimelineRecord.prototype.get endTime):
(WebInspector.TimelineRecord.prototype.get inactiveDuration):
(WebInspector.TimelineRecord.prototype.get activeDuration):
(WebInspector.TimelineRecord.prototype.get updatesDynamically):
(WebInspector.TimelineRecord.prototype.get usesActiveStartTime):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype._timelineTimesUpdated):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162402 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement TimelineRecording and per-call-site timelines.
timothy@apple.com [Tue, 21 Jan 2014 02:53:58 +0000 (02:53 +0000)]
Implement TimelineRecording and per-call-site timelines.

Keep track of timeline records per global timeline and per source code location.
This will be used to display them in the UI in later patches.

https://bugs.webkit.org/show_bug.cgi?id=123367

Reviewed by Joseph Pecoraro.

* UserInterface/Main.html:
* UserInterface/SourceCodeTimeline.js: Added.
(WebInspector.SourceCodeTimeline):
(WebInspector.SourceCodeTimeline.prototype.get sourceCode):
(WebInspector.SourceCodeTimeline.prototype.get sourceCodeLocation):
(WebInspector.SourceCodeTimeline.prototype.get recordType):
(WebInspector.SourceCodeTimeline.prototype.get recordEventType):
* UserInterface/Timeline.js: Added.
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.get records):
(WebInspector.Timeline.prototype.addRecord):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording):
(WebInspector.TimelineRecording.prototype.get timelines): Added.
(WebInspector.TimelineRecording.prototype.sourceCodeTimelinesForSourceCode): Added.
(WebInspector.TimelineRecording.prototype.addEventMarker): Implemented.
(WebInspector.TimelineRecording.prototype.addRecord): Implemented.
(WebInspector.TimelineRecording.prototype._keyForRecord): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162401 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd support for multiple Timeline recordings.
timothy@apple.com [Tue, 21 Jan 2014 02:53:51 +0000 (02:53 +0000)]
Add support for multiple Timeline recordings.

We also don't explicitly add ResourceTimelineRecords anymore. These will be tracked automatically in a later patch.

https://bugs.webkit.org/show_bug.cgi?id=123366

Reviewed by Joseph Pecoraro.

* UserInterface/DashboardManager.js:
(WebInspector.DashboardManager.prototype._mainResourceDidChange): Check for currentRecording.
* UserInterface/InspectorFrontendAPI.js:
(InspectorFrontendAPI.isTimelineProfilingEnabled): Check for currentRecording.
* UserInterface/Main.html:
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.get currentRecording): Added.
(WebInspector.TimelineManager.prototype.startRecording): Make a new recording and push it onto the recording array.
Add the current recording to the event.
(WebInspector.TimelineManager.prototype.stopRecording): Add the current recording to the event.
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Check for currentRecording. Add the markers
to the current recording.
(WebInspector.TimelineManager.prototype._addRecord): Add the record to the current recording.
(WebInspector.TimelineManager.prototype._startAutoRecording): Clean up. Don't add ResourceTimelineRecord. Clear recordings.
(WebInspector.TimelineManager.prototype._stopAutoRecordingSoon): Check for _currentRecording.
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout): Ditto.
(WebInspector.TimelineManager.prototype._mainResourceDidChange): Don't add ResourceTimelineRecord anymore.
(WebInspector.TimelineManager.prototype._resourceWasAdded): Removed.
* UserInterface/TimelineRecording.js: Added.
(WebInspector.TimelineRecording): Added.
(WebInspector.TimelineRecording.prototype.addEventMarker): Added.
(WebInspector.TimelineRecording.prototype.addRecord): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162400 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoTrack callFrames and sourceCodeLocation per TimelineRecord.
timothy@apple.com [Tue, 21 Jan 2014 02:53:44 +0000 (02:53 +0000)]
Track callFrames and sourceCodeLocation per TimelineRecord.

https://bugs.webkit.org/show_bug.cgi?id=123359

Reviewed by Joseph Pecoraro.

* UserInterface/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
* UserInterface/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Add "Payload" suffix to better track what is a protocol object.
Pass the callFrames and sourceCodeLocation to all the new TimelineRecords.
(WebInspector.TimelineManager.prototype.eventRecorded): Add "Payload" suffix.
* UserInterface/TimelineRecord.js:
(WebInspector.TimelineRecord):
(WebInspector.TimelineRecord.prototype.get callFrames): Added.
(WebInspector.TimelineRecord.prototype.get initiatorCallFrame): Added.
(WebInspector.TimelineRecord.prototype.get sourceCodeLocation): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162399 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoChange how the load and content ready event timestamps are tracked.
timothy@apple.com [Tue, 21 Jan 2014 02:53:38 +0000 (02:53 +0000)]
Change how the load and content ready event timestamps are tracked.

https://bugs.webkit.org/show_bug.cgi?id=123356

Reviewed by Joseph Pecoraro.

* UserInterface/DashboardManager.js:
(WebInspector.DashboardManager.prototype._updateTime): Use the timestamps on the main frame.
* UserInterface/Frame.js:
(WebInspector.Frame):
(WebInspector.Frame.prototype.get domContentReadyEventTimestamp): Added.
(WebInspector.Frame.prototype.get loadEventTimestamp): Added.
(WebInspector.Frame.prototype.markDOMContentReadyEvent): Added.
(WebInspector.Frame.prototype.markLoadEvent): Added.
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Use markLoadEvent and markDOMContentReadyEvent.
Do it for all frames, not just the main frame.
(WebInspector.TimelineManager.prototype.pageDidLoad): Call markLoadEvent on the Frame.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162398 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove a lot of the current Timelines code to make room for a new implementation.
timothy@apple.com [Tue, 21 Jan 2014 02:53:33 +0000 (02:53 +0000)]
Remove a lot of the current Timelines code to make room for a new implementation.

https://bugs.webkit.org/show_bug.cgi?id=123368

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/DashboardView.js:
(WebInspector.DashboardView.prototype._networkItemWasClicked):
* UserInterface/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.stopProfilingJavaScript):
* UserInterface/InstrumentSidebarPanel.js: Removed.
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.contentLoaded):
(WebInspector.sidebarPanelForRepresentedObject):
(WebInspector.openURL):
* UserInterface/Object.js:
(WebInspector.Object.addEventListener):
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.startRecording):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype.objectForCookie):
(WebInspector.TimelineManager.prototype._addRecord):
* UserInterface/TimelinesObject.js: Removed.
* UserInterface/TimelineOverview.css: Removed.
* UserInterface/TimelineOverview.js: Removed.
* UserInterface/TimelineSidebarPanel.css: Added.
* UserInterface/TimelineSidebarPanel.js: Added.
(WebInspector.TimelineSidebarPanel):
* UserInterface/TimelinesContentView.css: Removed.
* UserInterface/TimelinesContentView.js: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162397 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove an unused PageGroup function
andersca@apple.com [Tue, 21 Jan 2014 02:25:23 +0000 (02:25 +0000)]
Remove an unused PageGroup function
https://bugs.webkit.org/show_bug.cgi?id=127327

Reviewed by Andreas Kling.

* WebCore.exp.in:
* page/PageGroup.cpp:
* page/PageGroup.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162396 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMove user style sheet handling to UserContentController
andersca@apple.com [Tue, 21 Jan 2014 01:51:03 +0000 (01:51 +0000)]
Move user style sheet handling to UserContentController
https://bugs.webkit.org/show_bug.cgi?id=127322
<rdar://problem/15861296>

Reviewed by Andreas Kling.

* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserStyleSheetToWorld):
(WebCore::PageGroup::removeUserStyleSheetFromWorld):
(WebCore::PageGroup::removeUserStyleSheetsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
* page/PageGroup.h:
* page/UserContentController.cpp:
(WebCore::UserContentController::addUserStyleSheet):
(WebCore::UserContentController::removeUserStyleSheet):
(WebCore::UserContentController::removeUserStyleSheets):
(WebCore::UserContentController::removeAllUserContent):
(WebCore::UserContentController::invalidateInjectedStyleSheetCacheInAllFrames):
* page/UserContentController.h:
(WebCore::UserContentController::userStyleSheets):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162395 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd a nicer way to iterate over all the attributes of an element
benjamin@webkit.org [Tue, 21 Jan 2014 01:31:37 +0000 (01:31 +0000)]
Add a nicer way to iterate over all the attributes of an element
https://bugs.webkit.org/show_bug.cgi?id=127266

Reviewed by Geoffrey Garen.

When using Element::attributeAt() in a loop, the compiler had to generate two kinds of
accessor:
-If the element data is unique, the length and data comes from the attribute Vector.
-If the element data is shared, the data comes from the tail of elementData itself.

The choice was done for every access, which caused the assembly to be a little
hard to follow.
This patch unify the data access by doing everything as a array pointer with offset (getting
that data from Vector when necessary).

To make it easier to do the right thing, a new iterator was added so that range-based loops
can replace all the faulty cases.

* css/SelectorChecker.cpp:
(WebCore::anyAttributeMatches):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::checkExactAttribute):
* dom/DatasetDOMStringMap.cpp:
(WebCore::DatasetDOMStringMap::getNames):
(WebCore::DatasetDOMStringMap::item):
(WebCore::DatasetDOMStringMap::contains):
* dom/Element.cpp:
(WebCore::Element::normalizeAttributes):
(WebCore::Element::detachAllAttrNodesFromElement):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
(WebCore::Element::attributesIterator):
* dom/ElementData.cpp:
(WebCore::ElementData::isEquivalent):
(WebCore::ElementData::findAttributeIndexByNameSlowCase):
* dom/ElementData.h:
(WebCore::AttributeConstIterator::AttributeConstIterator):
(WebCore::AttributeConstIterator::operator*):
(WebCore::AttributeConstIterator::operator->):
(WebCore::AttributeConstIterator::operator++):
(WebCore::AttributeConstIterator::operator==):
(WebCore::AttributeConstIterator::operator!=):
(WebCore::AttributeIteratorAccessor::AttributeIteratorAccessor):
(WebCore::AttributeIteratorAccessor::begin):
(WebCore::AttributeIteratorAccessor::end):
(WebCore::ElementData::attributesIterator):
* dom/Node.cpp:
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupNamespaceURI):
(WebCore::Node::lookupNamespacePrefix):
(WebCore::Node::compareDocumentPosition):
* dom/StyledElement.cpp:
(WebCore::StyledElement::makePresentationAttributeCacheKey):
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendElement):
* editing/markup.cpp:
(WebCore::completeURLs):
(WebCore::StyledMarkupAccumulator::appendElement):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parametersForPlugin):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parametersForPlugin):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::innerPatchNode):
(WebCore::DOMPatchSupport::createDigest):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setAttributesAsText):
(WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::matchesElement):
* page/PageSerializer.cpp:
(WebCore::isCharsetSpecifyingNode):
* xml/XPathNodeSet.cpp:
(WebCore::XPath::NodeSet::traversalSort):
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162394 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoJSC Parser: Shrink BindingNode.
akling@apple.com [Tue, 21 Jan 2014 01:10:29 +0000 (01:10 +0000)]
JSC Parser: Shrink BindingNode.
<https://webkit.org/b/127253>

The "divot" and "end" source locations are always identical for
BindingNodes, so store only "start" and "end" instead.

1.19 MB progression on Membuster3.

Reviewed by Geoff Garen.

* bytecompiler/NodesCodegen.cpp:
(JSC::BindingNode::bindValue):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createBindingLocation):
* parser/NodeConstructors.h:
(JSC::BindingNode::create):
(JSC::BindingNode::BindingNode):
* parser/Nodes.h:
(JSC::BindingNode::divotStart):
(JSC::BindingNode::divotEnd):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::createBindingPattern):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::operatorStackPop):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162393 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoplatform/mac/accessibility/iframe-aria-hidden.html is flaky
ap@apple.com [Tue, 21 Jan 2014 01:04:43 +0000 (01:04 +0000)]
platform/mac/accessibility/iframe-aria-hidden.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=127323

* platform/mac-wk2/TestExpectations: Marked as such.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162392 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoForce float division when calculating CSS px value.
zalan@apple.com [Tue, 21 Jan 2014 00:51:08 +0000 (00:51 +0000)]
Force float division when calculating CSS px value.

Reviewed by Simon Fraser.

Note that in Python 3, this is the default behavior.

* lldb/lldb_webkit.py:
(WebCoreLayoutUnitProvider.to_string):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162391 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoop_captured_mov and op_new_captured_func in UnlinkedCodeBlocks should use the Identif...
fpizlo@apple.com [Tue, 21 Jan 2014 00:46:17 +0000 (00:46 +0000)]
op_captured_mov and op_new_captured_func in UnlinkedCodeBlocks should use the IdentifierMap instead of the strings directly
https://bugs.webkit.org/show_bug.cgi?id=127311
<rdar://problem/15853958>

Reviewed by Andreas Kling.

This makes UnlinkedCodeBlocks use 32-bit instruction streams again.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedInstruction::UnlinkedInstruction):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::addVar):
(JSC::BytecodeGenerator::emitInitLazyRegister):
(JSC::BytecodeGenerator::createArgumentsIfNecessary):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::watchableVariable):
(JSC::BytecodeGenerator::hasWatchableVariable):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162390 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemoving CodeBlock::opDebugBytecodeOffsetForLineAndColumn() and friends.
mark.lam@apple.com [Tue, 21 Jan 2014 00:45:05 +0000 (00:45 +0000)]
Removing CodeBlock::opDebugBytecodeOffsetForLineAndColumn() and friends.
<https://webkit.org/b/127321>

Reviewed by Geoffrey Garen.

We're changing plans and will be going with CodeBlock level breakpoints
instead of bytecode level breakpoints. As a result, we no longer need
the services of CodeBlock::opDebugBytecodeOffsetForLineAndColumn() (and
friends). This patch will remove that unused code.

* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.cpp:
* bytecode/CodeBlock.h:
* bytecode/LineColumnInfo.h: Removed.
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::dumpExpressionRangeInfo):
* bytecode/UnlinkedCodeBlock.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162389 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix an erroneous paste in TestExpectations.
ap@apple.com [Tue, 21 Jan 2014 00:37:35 +0000 (00:37 +0000)]
Fix an erroneous paste in TestExpectations.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162387 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[EFL][WK2] Amount of scrolling is different from movement of touch when device pixel...
eunmi15.lee@samsung.com [Tue, 21 Jan 2014 00:27:22 +0000 (00:27 +0000)]
[EFL][WK2] Amount of scrolling is different from movement of touch when device pixel ratio is not 1.
https://bugs.webkit.org/show_bug.cgi?id=127268

Reviewed by Gyuyoung Kim.

Amount of scrolling should be same with movement of touch even though
device pixel ratio is not 1, so apply device pixel ratio to the new
position of scrollBy().

* UIProcess/API/efl/EwkView.cpp:
(EwkView::scrollBy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162386 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDo refactor in collectGradientAttributes() and renderStyleForLengthResolve()
gyuyoung.kim@samsung.com [Tue, 21 Jan 2014 00:11:07 +0000 (00:11 +0000)]
Do refactor in collectGradientAttributes() and renderStyleForLengthResolve()
https://bugs.webkit.org/show_bug.cgi?id=126869

Reviewed by Dirk Schulze.

Some SVG functions have done a first iteration by using a boolean flag. This is
one of poor implementations. This patch fix it by extracting a logic into a new method.
Additionally it would be good to use do-while() loop instead of using while() in
renderStyleForLengthResolving() because a first condition is always true.

Merge r165358 from blink.

* svg/SVGLengthContext.cpp:
(WebCore::renderStyleForLengthResolving):
* svg/SVGLinearGradientElement.cpp:
(WebCore::setGradientAttributes):
(WebCore::SVGLinearGradientElement::collectGradientAttributes):
* svg/SVGRadialGradientElement.cpp:
(WebCore::setGradientAttributes):
(WebCore::SVGRadialGradientElement::collectGradientAttributes):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162385 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUserContentController should keep track of user scripts
andersca@apple.com [Tue, 21 Jan 2014 00:08:55 +0000 (00:08 +0000)]
UserContentController should keep track of user scripts
https://bugs.webkit.org/show_bug.cgi?id=127317
<rdar://problem/15861296>

Reviewed by Andreas Kling.

Move handling of user scripts from PageGroup to UserContentController.

* page/Frame.cpp:
(WebCore::Frame::injectUserScripts):
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserScriptToWorld):
(WebCore::PageGroup::removeUserScriptFromWorld):
(WebCore::PageGroup::removeUserScriptsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
* page/PageGroup.h:
* page/UserContentController.cpp:
(WebCore::UserContentController::addUserScript):
(WebCore::UserContentController::removeUserScript):
(WebCore::UserContentController::removeUserScripts):
(WebCore::UserContentController::removeAllUserContent):
* page/UserContentController.h:
(WebCore::UserContentController::userScripts):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162384 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agosvg/dom/SVGPolygonElement-baseVal-list-removal-crash.html is flaky
ap@apple.com [Mon, 20 Jan 2014 23:42:23 +0000 (23:42 +0000)]
svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=127316

* platform/mac-wk2/TestExpectations: Marked as such.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162383 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[WK2] Setting m_pageScaleFactor directly in WebPageProxy::scalePage
thiago.lacerda@openbossa.org [Mon, 20 Jan 2014 23:39:14 +0000 (23:39 +0000)]
[WK2] Setting m_pageScaleFactor directly in WebPageProxy::scalePage
https://bugs.webkit.org/show_bug.cgi?id=127090

Reviewed by Simon Fraser.

When the client side sets the scale factor, the UIProcess will send the message to WebProcess and only after
WebPageProxy::pageScaleFactorDidChange is called the desired scale factor is returned correctly by
WebPageProxy::pageScaleFactor.
This will avoid the client side retrieve a wrong scale factor while UIProcess and WebProcess gets synchronized.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::scalePage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162382 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSubpixel layout: 100000px overflows while calculating layout positions.
zalan@apple.com [Mon, 20 Jan 2014 23:38:09 +0000 (23:38 +0000)]
Subpixel layout: 100000px overflows while calculating layout positions.
https://bugs.webkit.org/show_bug.cgi?id=126896

Reviewed by Simon Fraser.

Test case is adjusted to subpixel layout.

* fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction.html:
* platform/efl/TestExpectations:
* platform/gtk/fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction-expected.txt: Removed.
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162381 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoGive each page a UserContentController
andersca@apple.com [Mon, 20 Jan 2014 23:21:44 +0000 (23:21 +0000)]
Give each page a UserContentController
https://bugs.webkit.org/show_bug.cgi?id=127315

Reviewed by Andreas Kling.

Add a UserContentController object to PageGroup and have the page group set it on any
pages that are added to the page group.

This is another step towards moving handling of user content away from PageGroup and make it
possible for each page to have different user content.

* page/Page.cpp:
(WebCore::Page::~Page):
(WebCore::Page::setUserContentController):
* page/Page.h:
(WebCore::Page::userContentController):
* page/PageGroup.cpp:
(WebCore::PageGroup::PageGroup):
(WebCore::PageGroup::addPage):
(WebCore::PageGroup::removePage):
* page/PageGroup.h:
* page/UserContentController.cpp:
(WebCore::UserContentController::addPage):
(WebCore::UserContentController::removePage):
* page/UserContentController.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162380 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd AVKit fullscreen video interface.
commit-queue@webkit.org [Mon, 20 Jan 2014 22:41:25 +0000 (22:41 +0000)]
Add AVKit fullscreen video interface.
https://bugs.webkit.org/show_bug.cgi?id=126818

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-01-20
Reviewed by Eric Carlson.

Source/WebCore:

No new tests, no observable change in functionality.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
Add ability for fullscreen to borrow the AVPlayerLayer.
* page/Settings.cpp:
* page/Settings.h:
(WebCore::Settings::setMediaPlaybackFullscreenAVKit):
(WebCore::Settings::mediaPlaybackFullscreenAVKit):
Add a disabled setting.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen):
Enabled fullscreen for iOS.
* platform/ios/WebVideoFullscreenControllerAVKit.h: Added.
* platform/ios/WebVideoFullscreenControllerAVKit.mm: Added.
(-[WebAVPlayerController init]):
(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController forwardingTargetForSelector:]):
(-[WebAVPlayerController shouldDismissForDone]):
(-[WebAVPlayerController play:]):
(-[WebAVPlayerController pause:]):
(-[WebAVPlayerController togglePlayback:]):
(-[WebAVPlayerController isPlaying]):
(-[WebAVPlayerController setPlaying:]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController updateTimingWithCurrentTime:]):
(-[WebAVPlayerController effectiveRate]):
(-[WebAVPlayerController setMediaElement:]):
(-[WebAVPlayerController handleEvent:]):
(-[WebVideoFullscreenController init]):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController setMediaElement:]):
(-[WebVideoFullscreenController mediaElement]):
(-[WebVideoFullscreenController enterFullscreen:]):
(-[WebVideoFullscreenController exitFullscreen]):
Add WebAVPlayerController for HTMLMediaElememt to interface with AVPlayerViewController.

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::supportsFullscreenForNode):
Enable *FullscreenForNode for HTMLMediaElement for iOS

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences mediaPlaybackFullscreenAVKit]):
(-[WebPreferences setMediaPlaybackFullscreenAVKit:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
(-[WebView _enterFullscreenForNode:WebCore::]):
* WebView/WebViewInternal.h:
Add a disabled pref mediaPlaybackFullscreenAVKit.
Use WebVideoFullscreenControllerAVKit on iOS

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162379 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agosvg/filters/feComponentTransfer-style-crash.xhtml is flaky
ap@apple.com [Mon, 20 Jan 2014 22:33:23 +0000 (22:33 +0000)]
svg/filters/feComponentTransfer-style-crash.xhtml is flaky
https://bugs.webkit.org/show_bug.cgi?id=127310

* platform/mac/TestExpectations: Marked it as such.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162378 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoCodeBlockSet::traceMarked doesn't need to visit the ownerExecutable
mhahnenberg@apple.com [Mon, 20 Jan 2014 22:17:22 +0000 (22:17 +0000)]
CodeBlockSet::traceMarked doesn't need to visit the ownerExecutable
https://bugs.webkit.org/show_bug.cgi?id=127301

Reviewed by Oliver Hunt.

We used to just call CodeBlock::visitAggregate, but now we call visitChildren
on the ownerExecutable, which is unnecessary.

* heap/CodeBlockSet.cpp:
(JSC::CodeBlockSet::traceMarked):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162377 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoReplace uses of std::forward<T>(), std::unique_ptr<T>::clear() that landed in r162368
zandobersek@gmail.com [Mon, 20 Jan 2014 22:05:08 +0000 (22:05 +0000)]
Replace uses of std::forward<T>(), std::unique_ptr<T>::clear() that landed in r162368
https://bugs.webkit.org/show_bug.cgi?id=127306

Reviewed by Darin Adler.

Address the post-landing reviews of the r162368 commit that moved WebAudio source code to using std::unique_ptr.
std::move() should be used instead of std::forward<T>() in HRTFKernel::create().
Instead of calling std::unique_ptr<T>::reset(), nullptr should be assigned to that smart pointer to reset it.

* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::uninitialize):
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::uninitialize):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::uninitialize):
* platform/audio/AudioChannel.h:
(WebCore::AudioChannel::set):
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
* platform/audio/HRTFKernel.h:
(WebCore::HRTFKernel::create):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162376 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoModernize WebCore/inspector with nullptr
joepeck@webkit.org [Mon, 20 Jan 2014 21:36:28 +0000 (21:36 +0000)]
Modernize WebCore/inspector with nullptr
https://bugs.webkit.org/show_bug.cgi?id=127303

Reviewed by Anders Carlsson.

Ran clang-modernize -use-nullptr over WebCore/inspector.

* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::findMagicComment):
* inspector/DOMEditor.cpp:
(WebCore::DOMEditor::SetOuterHTMLAction::SetOuterHTMLAction):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::diff):
(WebCore::DOMPatchSupport::innerPatchChildren):
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::disable):
(WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
(WebCore::InspectorCanvasAgent::frameNavigated):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::clearMessages):
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
(WebCore::InspectorConsoleAgent::didReceiveResponse):
(WebCore::InspectorConsoleAgent::didFailLoading):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::inspectedPageDestroyed):
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::disable):
(WebCore::InspectorDOMDebuggerAgent::discardAgent):
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::~InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::findStorageArea):
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent):
(WebCore::InspectorDatabaseAgent::findByFileName):
(WebCore::InspectorDatabaseAgent::databaseForId):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::addMessageToConsole):
(WebCore::InspectorDebuggerAgent::resolveBreakpoint):
(WebCore::InspectorDebuggerAgent::didParseSource):
(WebCore::InspectorDebuggerAgent::didContinue):
(WebCore::InspectorDebuggerAgent::clearBreakDetails):
* inspector/InspectorFrontendHost.cpp:
(WebCore::FrontendMenuProvider::disconnect):
(WebCore::InspectorFrontendHost::InspectorFrontendHost):
(WebCore::InspectorFrontendHost::disconnectClient):
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::~InspectorHeapProfilerAgent):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::assertDocument):
(WebCore::assertIDBFactory):
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/InspectorInstrumentation.cpp:
(WebCore::frameForScriptExecutionContext):
(WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
(WebCore::InspectorInstrumentation::consoleAgentEnabled):
(WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
(WebCore::InspectorInstrumentation::retrieveTimelineAgent):
(WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
(WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope):
(WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
(WebCore::InspectorInstrumentation::instrumentingAgentsForFrame):
(WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::disable):
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::searchUsingXPath):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResourceContent):
(WebCore::InspectorPageAgent::sharedBufferContent):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::frameForId):
(WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::~InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::buildObjectForResourceResponse):
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::didReceiveResponse):
(WebCore::InspectorResourceAgent::didFinishLoading):
(WebCore::InspectorResourceAgent::didFailLoading):
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
(WebCore::InspectorResourceAgent::disable):
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
* inspector/InspectorStyleSheet.cpp:
(ParsedStyleSheet::ruleSourceDataAt):
(WebCore::buildSourceRangeObject):
(WebCore::asCSSRuleList):
(WebCore::fillMediaListChain):
(WebCore::InspectorStyle::setPropertyText):
(WebCore::InspectorStyle::populateAllProperties):
(WebCore::InspectorStyle::extractSourceData):
(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
(WebCore::InspectorStyleSheet::addRule):
(WebCore::InspectorStyleSheet::ruleForId):
(WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
(WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::styleForId):
(WebCore::InspectorStyleSheet::inspectorStyleForId):
(WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
* inspector/InspectorStyleSheet.h:
(WebCore::InspectorCSSId::asProtocolValue):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::willComposite):
(WebCore::InspectorTimelineAgent::page):
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::~InspectorWorkerAgent):
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::ResourceData::ResourceData):
(WebCore::NetworkResourcesData::xhrReplayData):
(WebCore::NetworkResourcesData::removeCachedResource):
(WebCore::NetworkResourcesData::resourceDataForRequestId):
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::~PageConsoleAgent):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::disable):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::~PageRuntimeAgent):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):
* inspector/ScriptArguments.cpp:
(WebCore::ScriptArguments::globalState):
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162374 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agobuild.webkit.org/dashboard should display information about patches in EWS
ap@apple.com [Mon, 20 Jan 2014 21:33:51 +0000 (21:33 +0000)]
build.webkit.org/dashboard should display information about patches in EWS
https://bugs.webkit.org/show_bug.cgi?id=127006

Reviewed by Ryosuke Niwa.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Bugzilla.js: Added.
(Bugzilla.prototype.detailsURLForAttachment):
Added a class for Bugzilla. So far, the only thing it can do is build patch URLs,
which is needed when one wants to do something with a patch EWS is stuck on.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js:
Create a Bugzilla instance.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js:
(EWS.prototype.jsonQueueLengthURL):
(EWS.prototype.jsonQueueStatusURL):
Build JSON ULRs here, not in EWSQueue, as this is how other classes are structured.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueue.js:
(EWSQueue.prototype.get statusPageURL): Changed to use a URL provided by EWS instead
of second guessing.
(EWSQueue.prototype.get chartsPageURL): Added.
(EWSQueue.prototype.get loadedDetailedStatus): Tells whether we currently have
additional data already loaded (it's reset with every update).
(EWSQueue.prototype.get patches): Get patch queue.
(EWSQueue.prototype.get bots): Get bots.
(EWSQueue.prototype.update): Changed to use a specialized cheaper URL.
(EWSQueue.prototype.loadDetailedStatus): Load and transform detailed status JSON.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueueView.js:
(EWSQueueView.prototype.update.appendQueue): Add a popover is there are any patches
in the queue.
(EWSQueueView.prototype.addLinkToRow): A helper to build the popover.
(EWSQueueView.prototype.addTextToRow): Ditto.
(EWSQueueView.prototype._addQueueHeadingToPopover): Ditto.
(EWSQueueView.prototype._addBotsHeadingToPopover): Ditto.
(EWSQueueView.prototype._addDividerToPopover): Ditto.
(EWSQueueView.prototype._timeIntervalString): A helper to format a timestamp into a
relative string.
(EWSQueueView.prototype._popoverContentForEWSQueue): Build the popover.
(EWSQueueView.prototype._presentPopoverForEWSQueue): Start loading data, and present
it when done.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:
Added rules for EWS popover. Removed a duplicate rule for build-logs-popover.
Changed a few difficult to read padding styles to padding-left.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162373 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd empty UserContentController class
andersca@apple.com [Mon, 20 Jan 2014 21:29:59 +0000 (21:29 +0000)]
Add empty UserContentController class
https://bugs.webkit.org/show_bug.cgi?id=127300
<rdar://problem/15861296>

Reviewed by Dan Bernstein.

This is the first step towards moving handling of user scripts and style sheets from
the page group to a separate objects and ultimately make them be settable per page instead of per page group.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* page/UserContentController.cpp: Added.
(WebCore::UserContentController::create):
(WebCore::UserContentController::UserContentController):
(WebCore::UserContentController::~UserContentController):
* page/UserContentController.h: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162372 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix webkitpy tests.
ap@apple.com [Mon, 20 Jan 2014 21:18:28 +0000 (21:18 +0000)]
Fix webkitpy tests.

* Scripts/webkitpy/common/net/web_mock.py: (MockBrowser.set_handle_robots):
Added a mock implementation, as we now call this function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162371 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[GTK][WK2] Move the rest of GTK's WorkQueue implementation to std::function
zandobersek@gmail.com [Mon, 20 Jan 2014 21:17:24 +0000 (21:17 +0000)]
[GTK][WK2] Move the rest of GTK's WorkQueue implementation to std::function
https://bugs.webkit.org/show_bug.cgi?id=127273

Reviewed by Anders Carlsson.

Move to using std::function and move semantics in WorkQueue::registerSocketEventHandler
and WorkQueue::SocketEventSource.

* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::open):
* Platform/WorkQueue.h:
* Platform/gtk/WorkQueueGtk.cpp:
(WorkQueue::SocketEventSource::SocketEventSource):
(WorkQueue::registerSocketEventHandler):
(WorkQueue::dispatchOnSource): Use std::move instead of std::forward<T>.
(WorkQueue::dispatch): Ditto.
(WorkQueue::dispatchAfter): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162370 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRun clang-modernize and let it add a bunch of missing overrides in WebCore/inspector
joepeck@webkit.org [Mon, 20 Jan 2014 21:15:39 +0000 (21:15 +0000)]
Run clang-modernize and let it add a bunch of missing overrides in WebCore/inspector
https://bugs.webkit.org/show_bug.cgi?id=127206

Reviewed by Anders Carlsson.

Let clang-modernize add overrides.

* inspector/DOMEditor.cpp:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
(WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorHistory.cpp:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorStyleSheet.h:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
* inspector/InspectorWorkerAgent.h:
* inspector/PageConsoleAgent.h:
* inspector/PageDebuggerAgent.h:
* inspector/PageRuntimeAgent.h:
* inspector/WorkerConsoleAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerRuntimeAgent.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162369 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMove WebAudio source code to std::unique_ptr
zandobersek@gmail.com [Mon, 20 Jan 2014 20:36:11 +0000 (20:36 +0000)]
Move WebAudio source code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127274

Reviewed by Eric Carlson.

Move from using OwnPtr and PassOwnPtr to using std::unique_ptr and move semantics
in the WebAudio module and the WebAudio code in the platform layer.

* Modules/webaudio/AsyncAudioDecoder.cpp:
* Modules/webaudio/AsyncAudioDecoder.h:
* Modules/webaudio/AudioBasicInspectorNode.cpp:
(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
* Modules/webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
* Modules/webaudio/AudioBasicProcessorNode.h:
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
* Modules/webaudio/AudioContext.cpp:
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::AudioDestinationNode):
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::addInput):
(WebCore::AudioNode::addOutput):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
* Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::createKernel):
(WebCore::BiquadProcessor::getFrequencyResponse):
* Modules/webaudio/BiquadProcessor.h:
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::ChannelMergerNode):
* Modules/webaudio/ChannelSplitterNode.cpp:
(WebCore::ChannelSplitterNode::ChannelSplitterNode):
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
(WebCore::ConvolverNode::uninitialize):
(WebCore::ConvolverNode::setBuffer):
* Modules/webaudio/ConvolverNode.h:
* Modules/webaudio/DefaultAudioDestinationNode.h:
* Modules/webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* Modules/webaudio/DelayProcessor.cpp:
(WebCore::DelayProcessor::createKernel):
* Modules/webaudio/DelayProcessor.h:
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
(WebCore::DynamicsCompressorNode::initialize):
(WebCore::DynamicsCompressorNode::uninitialize):
* Modules/webaudio/DynamicsCompressorNode.h:
* Modules/webaudio/GainNode.cpp:
(WebCore::GainNode::GainNode):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):
* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
* Modules/webaudio/MediaStreamAudioSource.cpp:
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::OscillatorNode):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::uninitialize):
(WebCore::PannerNode::setPanningModel):
* Modules/webaudio/PannerNode.h:
* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::createBandLimitedTables):
* Modules/webaudio/PeriodicWave.h:
* Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::RealtimeAnalyser):
(WebCore::RealtimeAnalyser::setFftSize):
* Modules/webaudio/RealtimeAnalyser.h:
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
* Modules/webaudio/WaveShaperDSPKernel.cpp:
(WebCore::WaveShaperDSPKernel::lazyInitializeOversampling):
* Modules/webaudio/WaveShaperDSPKernel.h:
* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::WaveShaperNode):
* Modules/webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::createKernel):
* Modules/webaudio/WaveShaperProcessor.h:
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::AudioBus):
(WebCore::AudioBus::copyWithGainFrom):
* platform/audio/AudioBus.h:
* platform/audio/AudioChannel.cpp:
* platform/audio/AudioChannel.h:
(WebCore::AudioChannel::AudioChannel):
(WebCore::AudioChannel::set):
* platform/audio/AudioDSPKernelProcessor.h:
* platform/audio/AudioDestination.h:
* platform/audio/AudioResampler.cpp:
(WebCore::AudioResampler::AudioResampler):
(WebCore::AudioResampler::configureChannels):
* platform/audio/AudioResampler.h:
* platform/audio/AudioSession.h:
* platform/audio/DynamicsCompressor.cpp:
(WebCore::DynamicsCompressor::setNumberOfChannels):
* platform/audio/DynamicsCompressor.h:
* platform/audio/DynamicsCompressorKernel.cpp:
(WebCore::DynamicsCompressorKernel::setNumberOfChannels):
* platform/audio/DynamicsCompressorKernel.h:
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::createInterpolatedFrame):
* platform/audio/FFTFrame.h:
* platform/audio/HRTFDatabase.cpp:
(WebCore::HRTFDatabase::HRTFDatabase):
* platform/audio/HRTFDatabase.h:
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
(WebCore::HRTFDatabaseLoader::load):
* platform/audio/HRTFDatabaseLoader.h:
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::createForSubject):
(WebCore::HRTFElevation::createByInterpolatingSlices):
* platform/audio/HRTFElevation.h:
(WebCore::HRTFElevation::HRTFElevation):
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::HRTFKernel):
(WebCore::HRTFKernel::createImpulseResponse):
(WebCore::HRTFKernel::createInterpolatedKernel):
* platform/audio/HRTFKernel.h:
(WebCore::HRTFKernel::create):
(WebCore::HRTFKernel::HRTFKernel):
* platform/audio/MultiChannelResampler.cpp:
(WebCore::MultiChannelResampler::MultiChannelResampler):
* platform/audio/MultiChannelResampler.h:
* platform/audio/Panner.cpp:
(WebCore::Panner::create):
* platform/audio/Panner.h:
* platform/audio/Reverb.cpp:
(WebCore::Reverb::initialize):
* platform/audio/Reverb.h:
* platform/audio/ReverbConvolver.h:
* platform/audio/ReverbConvolverStage.cpp:
(WebCore::ReverbConvolverStage::ReverbConvolverStage):
* platform/audio/ReverbConvolverStage.h:
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestination::create):
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
* platform/audio/ios/AudioDestinationIOS.cpp:
(WebCore::AudioDestination::create):
* platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSession::AudioSession):
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::create):
* platform/audio/mac/AudioDestinationMac.h:
* platform/audio/mac/AudioSessionMac.cpp:
(WebCore::AudioSession::AudioSession):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162368 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix build.
andersca@apple.com [Mon, 20 Jan 2014 20:26:08 +0000 (20:26 +0000)]
Fix build.

* heap/BlockAllocator.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162367 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRegion based multicol: support explicit column breaks
commit-queue@webkit.org [Mon, 20 Jan 2014 19:55:59 +0000 (19:55 +0000)]
Region based multicol: support explicit column breaks
https://bugs.webkit.org/show_bug.cgi?id=123993

Patch by Morten Stenshorne <mstensho@opera.com> on 2014-01-20
Reviewed by David Hyatt.

Source/WebCore:

Merely supporting insertion of explicit (forced) column breaks in
the region based multicol implementation is really simple: just
hook up with what the CSS regions code is already doing.

However, there is one complication: column balancing. In order to
balance columns as nicely as possible when there are explicit
breaks, we need to figure out between which explicit breaks the
implicit breaks will occur (if there's room for any at all).

Tests: fast/multicol/newmulticol/break-after.html
       fast/multicol/newmulticol/break-before.html
       fast/multicol/newmulticol/breaks-2-columns-3-no-balancing.html
       fast/multicol/newmulticol/breaks-2-columns-3.html
       fast/multicol/newmulticol/breaks-3-columns-3.html
       fast/multicol/newmulticol/fixed-height-fill-balance-2.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak): Use the already
existing region breaking code when inserting breaks in region
based multicol.
* rendering/RenderFlowThread.h:
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
(WebCore::RenderMultiColumnBlock::relayoutForPagination): Avoid
re-balancing if the multicol's contents were not laid out. Apart
from being good for performance, this is now necessary because of
how explicit breaks are implemented.
(WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
Detect if the contents are going to be laid out, or skipped, so
that we can tell if we need to (re-)balance the columns
afterwards.
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):
Locate the appropriate multi-column set and call its
addForcedBreak().
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::findRunWithTallestColumns):
(WebCore::RenderMultiColumnSet::distributeImplicitBreaks): Figure
out how many implicit breaks each single "content run" should
contain. The taller the content run, the more implicit breaks.
(WebCore::RenderMultiColumnSet::calculateBalancedHeight): This is
now a const method that only does half of what the old
calculateBalancedHeight() did. The rest (such as actually storing
the new column height) is done by recalculateBalancedHeight().
(WebCore::RenderMultiColumnSet::clearForcedBreaks): Needs to be
called between each layout pass, to clear the list of "content
runs".
(WebCore::RenderMultiColumnSet::addForcedBreak): Only useful when
columns are to be balanced. It receives explicit (forced) breaks
and stores them as "content runs". When layout is done, we'll go
through the list of content runs, and see where implicit breaks
should be inserted (if there's room for any). The goal is to
insert implicit breaks in such a way that the final columns become
as short as possible.
(WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
Calculates and sets a new balanced column height. This used to be
done directly in calculateBalancedHeight(), but that method is now
const and it now only calculates the new height and returns it.
(WebCore::RenderMultiColumnSet::prepareForLayout):
* rendering/RenderMultiColumnSet.h: Remove old data members
intended for forced breaks (they were unused), and introduce a
"content run" vector instead. A new content run is triggered by an
explicit break. This is only used when column balancing is
enabled. When not balanced, RenderMultiColumnSet doesn't need to
do anything when explicit breaks are inserted.

LayoutTests:

* fast/multicol/newmulticol/break-after-expected.html: Added.
* fast/multicol/newmulticol/break-after.html: Added.
* fast/multicol/newmulticol/break-before-expected.html: Added.
* fast/multicol/newmulticol/break-before.html: Added.
* fast/multicol/newmulticol/breaks-2-columns-3-expected.html: Added.
* fast/multicol/newmulticol/breaks-2-columns-3-no-balancing-expected.html: Added.
* fast/multicol/newmulticol/breaks-2-columns-3-no-balancing.html: Added.
* fast/multicol/newmulticol/breaks-2-columns-3.html: Added.
* fast/multicol/newmulticol/breaks-3-columns-3-expected.html: Added.
* fast/multicol/newmulticol/breaks-3-columns-3.html: Added.
* fast/multicol/newmulticol/fixed-height-fill-balance-2-expected.html: Added.
* fast/multicol/newmulticol/fixed-height-fill-balance-2.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162366 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUpdate style checker and tests to deal with override instead of OVERRIDE
darin@apple.com [Mon, 20 Jan 2014 19:39:15 +0000 (19:39 +0000)]
Update style checker and tests to deal with override instead of OVERRIDE
https://bugs.webkit.org/show_bug.cgi?id=127175

Reviewed by Anders Carlsson.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_braces): Use override instead of OVERRIDE.
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_brace_at_begin_of_line): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162365 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoStop using ThreadCondition in BlockAllocator
andersca@apple.com [Mon, 20 Jan 2014 19:31:33 +0000 (19:31 +0000)]
Stop using ThreadCondition in BlockAllocator
https://bugs.webkit.org/show_bug.cgi?id=126313

Reviewed by Sam Weinig.

* heap/BlockAllocator.cpp:
(JSC::BlockAllocator::~BlockAllocator):
(JSC::BlockAllocator::waitForDuration):
(JSC::BlockAllocator::blockFreeingThreadMain):
* heap/BlockAllocator.h:
(JSC::BlockAllocator::deallocate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162362 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix jumping to a text position when showing a resource.
timothy@apple.com [Mon, 20 Jan 2014 19:25:01 +0000 (19:25 +0000)]
Fix jumping to a text position when showing a resource.

https://bugs.webkit.org/show_bug.cgi?id=127271

Reviewed by Joseph Pecoraro.

* UserInterface/FrameContentView.js:
(WebInspector.FrameContentView.prototype.showSourceCode): Just use showResponse's arguments
which already does the same logic to call revealPosition.
* UserInterface/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.restoreFromCookie): This was the bug.
lineNumber and columnNumber need honored here. They were only honored by FrameContentView.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showSourceCode): Use showContentViewForRepresentedObject
which also accepts a cookie and handles creating the content view for us.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162361 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAllow MediaSessionManager to restrict 'preload' behavior
eric.carlson@apple.com [Mon, 20 Jan 2014 19:23:40 +0000 (19:23 +0000)]
Allow MediaSessionManager to restrict 'preload' behavior
https://bugs.webkit.org/show_bug.cgi?id=127297

Reviewed by Jer Noble.

Source/WebCore:

Tests: media/video-restricted-no-preload-auto.html
       media/video-restricted-no-preload-metadata.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Apply restrictions to preload attribute before
    passing to media engine.
(WebCore::HTMLMediaElement::loadResource): Ditto.

* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::effectivePreloadForElement): New, limit preload according to restrictions.
* html/HTMLMediaSession.h:

* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::resetRestrictions): Limit preload to metadata only. Drive-by
    static deviceClass initialization cleanup.

* testing/Internals.cpp:
(WebCore::Internals::setMediaSessionRestrictions): Support MetadataPreloadingNotPermitted and
    AutoPreloadingNotPermitted.

LayoutTests:

* media/video-restricted-no-preload-auto-expected.txt: Added.
* media/video-restricted-no-preload-auto.html: Added.
* media/video-restricted-no-preload-metadata-expected.txt: Added.
* media/video-restricted-no-preload-metadata.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162360 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix test expectations for css3/compositing/background-blend-mode-data-uri-svg-image...
commit-queue@webkit.org [Mon, 20 Jan 2014 18:53:00 +0000 (18:53 +0000)]
Fix test expectations for css3/compositing/background-blend-mode-data-uri-svg-image.html
https://bugs.webkit.org/show_bug.cgi?id=127298

Patch by Mihai Tica <mitica@adobe.com> on 2014-01-20
Reviewed by Mihnea Ovidenie.

* platform/efl/TestExpectations:
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162359 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoEWS should provide better information to Dashboard via JSON
ap@apple.com [Mon, 20 Jan 2014 18:37:49 +0000 (18:37 +0000)]
EWS should provide better information to Dashboard via JSON
https://bugs.webkit.org/show_bug.cgi?id=127265

Reviewed by Ryosuke Niwa.

* QueueStatusServer/app.yaml: Updated version.

* QueueStatusServer/main.py:
* QueueStatusServer/handlers/queuelengthjson.py:
Added a way to cheaply get only the queue length, which is all the dashboard
needs unless a popover is opened.

* QueueStatusServer/handlers/queuestatusjson.py: Updated to return more information
that we will need. Changed some field names to be more meaningful. Fixed bot listing
to understand that a bot can be reprurposed and used in a different queue.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162358 268f45cc-cd09-0410-ab3c-d52691b4dbfc