[CSS Grid Layout] Add parsing for named grid lines
https://bugs.webkit.org/show_bug.cgi?id=119540

Reviewed by Andreas Kling.

From Blink r150381,r150587 by <jchaffraix@chromium.org>

Source/WebCore:

Adds parsing support for named grid lines at <grid-line> level,
i.e., inside grid-{row|column}-{start|end}. This change covers
only the parsing, layout changes coming in a follow up patch.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridPosition):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseIntegerOrStringFromGridPosition):
(WebCore::CSSParser::parseGridPosition):
* css/CSSParser.h:
* css/StyleResolver.cpp:
(WebCore::createGridPosition):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionFromStyle):
* rendering/style/GridPosition.h:
(WebCore::GridPosition::setExplicitPosition):
(WebCore::GridPosition::setSpanPosition):
(WebCore::GridPosition::integerPosition):
(WebCore::GridPosition::namedGridLine):

LayoutTests:

Added several new test cases which include different types of
named grid lines, this means including the names at different
positions, multiple names per line or mixing names with keywords
like 'span'.

* fast/css-grid-layout/grid-item-column-row-get-set-expected.txt:
* fast/css-grid-layout/grid-item-column-row-get-set.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Support Vector<Ref<T>>.
<https://webkit.org/b/120637>

Reviewed by Antti Koivisto.

Source/WebCore:

Use Vector<Ref<T>> internally in Page.

* page/Page.cpp:
(WebCore::networkStateChanged):
(WebCore::Page::refreshPlugins):

    Clean up these functions and use Vector<Ref<Frame>> to store pointers to frames
    since we know they are not going to be null.

(WebCore::Page::pluginViews):

    Changed this to return a Vector<Ref<PluginView>> by value instead of passing a
    writable vector as an argument. Clean up loops with 'auto'.

(WebCore::Page::storageBlockingStateChanged):
(WebCore::Page::privateBrowsingStateChanged):

    Tweaked for pluginViews() returning a Vector now.

(WebCore::Page::setVisibilityState):

    Store Documents that need a visibilitychange event in a Vector<Ref<Document>>.

Source/WTF:

Add a Ref(const T&) constructor to enable Vector<Ref<T>>. This looks a bit awkward
but is necessary for Vector::append(const T&) to find a constructor.

An alternative would be to add something like std::vector::emplace_back, but I can't
think of a good name for that, and it'd be nice if append() would "just work."

Also add operator->(). I initially excluded this because I felt it made for
unsafe-looking code. Things quickly got out of hand with .get() everywhere though.

IMO -> looks OK as long as it's only used on the first link in a dereference chain,
as that variable and its type will be "in context."

* wtf/Ref.h:
(WTF::Ref::Ref):
(WTF::Ref::~Ref):
(WTF::Ref::operator->):
(WTF::Ref::get):
* wtf/VectorTraits.h:

    Add simple traits for Ref<T> so it can be moved around freely by Vector.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: exceptions triggered from console evaluation do not pause the debugger
https://bugs.webkit.org/show_bug.cgi?id=120460

Source/WebCore:

Reviewed by Timothy Hatcher.

* inspector/InjectedScriptSource.js:
Explicitly set a sourceURL such that the frontend may identify injected script when
processing call frames in order to hide such code from the debugger.

Source/WebInspectorUI:

We used to preclude any debugging from errors stemming from code evaluated in the console
as we would always set the doNotPauseOnExceptionsAndMuteConsole parameter to "false" when
calling JavaScriptLogViewController._evaluateInInspectedWindow(). However, it is desirable
to allow debugging code ran from the console.

We now allow debugging in such a scenario and we filter out call frames coming from the
Web Inspector injected script as well as the call frame for the console prompt such that
we only pause in the debugger in case the exception is in code under the console prompt
and not the console code prompt itself.

Additionally, to prevent stepping out to call frames we may have filtered out, we disable
the "step out" button in cases where there are no further frames in the frontend to go out to.

Reviewed by Timothy Hatcher.

* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Filter out call frames that have a URL coming from Web Inspector injected script by looking
for a URL starting with the "__WebInspector" prefix. If we determine that there are no call
frames left after filtering, we resume code evaluation such that we only pause in the debugger
when the exception is in code evluated under the console prompt.

* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
Monitor any change to the active call frame such that we may tie the state of the
"step out" button to the availability of a call frame to step out to in the filtered
list set on the DebuggerManager.

* UserInterface/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Set the doNotPauseOnExceptionsAndMuteConsole to "false" when calling _evaluateInInspectedWindow()
in order to allow pausing on exceptions coming from code evalued in the console. Also, explicitly
set a sourceURL for the script to evaluate such that we may identify its origin when filtering
call frames stemming from inspector code.

* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Filter out any script resource starting with the Web Inspector-specific "__WebInspector" prefix
so that injected script does not show up.

LayoutTests:

Reviewed by Timothy Hatcher.

* platform/mac/inspector/console/command-line-api-expected.txt:
Take into account the addition of a sourceURL to inspector/InjectedScriptSource.js.


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