⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jul 20, 2015:

11:18 PM Changeset in webkit [187101] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

REGRESSION(r184376): [SOUP] Multiple assertions when downloading files
https://bugs.webkit.org/show_bug.cgi?id=147039

Reviewed by Darin Adler.

No new tests; this will be covered once we enable the network process for API tests.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::ResourceHandle::releaseForDownload): Call RefPtrBase::relaxAdoptionRequirement so
that we don't assert when storing the non-adopted ResourceHandle in a RefPtr. The ref will
be dropped in ResourceHandle::cleanupSoupOperation, which as the comment says should always
run. HOPEFULLY.
(WebCore::ResourceHandle::continueWillSendRequest): Don't assert that client() is nonnull,
because the code clearly expects and handles the case where it is null.
(WebCore::ResourceHandle::continueDidReceiveResponse): Ditto; note that here client() will
always be null for a download.

11:06 PM Changeset in webkit [187100] by Carlos Garcia Campos
  • 20 edits
    3 adds in trunk

[GTK] Add API to be notified about editor state changes
https://bugs.webkit.org/show_bug.cgi?id=145875

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

Add WebKitEditorState object, that is created on demand by the
WebKitWebView and can be used to get the typing attributes of the
editor at the current position or selection.

  • PlatformGTK.cmake:
  • Shared/EditorState.cpp: Use part of the PostLayoutData struct

for the GTK port too.
(WebKit::EditorState::encode): Encode PostLayoutData for GTK and
remove our custom cursorRect.
(WebKit::EditorState::decode): Decode PostLayoutData for GTK and
remove our custom cursorRect.
(WebKit::EditorState::PostLayoutData::encode): Reorder it to
reduce the amonut of ifdefs.
(WebKit::EditorState::PostLayoutData::decode): Ditto.

  • Shared/EditorState.h: Add AttributeStrikeThrough to

TypingAttributes enum.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::selectionDidChange): Rename
updateTextInputState() to selectionDidChange() and also notify the
WebKitWebView.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitEditorState.cpp: Added.

(webkitEditorStateGetProperty):
(webkit_editor_state_class_init):
(webkitEditorStateSetTypingAttributes):
(webkitEditorStateCreate):
(webkitEditorStateChanged):
(webkit_editor_state_get_typing_attributes):

  • UIProcess/API/gtk/WebKitEditorState.h: Added.
  • UIProcess/API/gtk/WebKitEditorStatePrivate.h: Added.
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewSelectionDidChange): Notify the WebKitEditorState if
it has already been created.
(webkit_web_view_get_editor_state): Ensure a WebKitEditorState and
return it.

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseUpdateTextInputState): Get the caret cursor rect
from PostLayoutData.

  • UIProcess/API/gtk/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add webkit_editor_state_get_type.
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitEditorState.
  • UIProcess/API/gtk/webkit2.h: Include WebKitEditorState.h.
  • UIProcess/PageClient.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::editorStateChanged): Call PageClientImpl::selectionDidChange().

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformEditorState): Add typing attributes to EditorState.

Tools:

Update the typing attributes toggle buttons state according to the
editor state in MiniBrowser, and add a test case to the
WebViewEditor unit tests.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowEditingCommandToggleButtonSetActive):
(typingAttributesChanged):
(browserWindowSetupEditorToolbar):
(browserWindowConstructed):
(browser_window_init):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:

(testWebViewEditorEditorStateTypingAttributes):
(beforeAll):

10:56 PM Changeset in webkit [187099] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r187098. rdar://problem/21878275

10:39 PM Changeset in webkit [187098] by adachan@apple.com
  • 2 edits in trunk/Source/WebCore

Follow-up to my earlier fix for r147085
https://bugs.webkit.org/show_bug.cgi?id=147085

Reviewed by Eric Carlson.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::isPlayingAudioDidChange):
Null-check document() before dereferencing it in case the audio context's document is destroyed
by the time the code block is called on the main thread.

10:35 PM Changeset in webkit [187097] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187072. rdar://problem/21582858

10:35 PM Changeset in webkit [187096] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187050. rdar://problem/21582858

10:33 PM Changeset in webkit [187095] by Carlos Garcia Campos
  • 10 edits in trunk/Source/WebCore

Remove RenderTheme::shouldShowPlaceholderWhenFocused()
https://bugs.webkit.org/show_bug.cgi?id=147104

Reviewed by Martin Robinson.

GTK+ is the only port that returns false in
shouldShowPlaceholderWhenFocused(). That's inconsistent with all
other browsers that show the placeholder text even for focused
entries in all platforms. We should change the GTK+ port
behaviour, but that would leave all implementations of
shouldShowPlaceholderWhenFocused returning true, so let's just
remove it.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible):
Do not consider whether the entry is focused or not.

  • platform/efl/RenderThemeEfl.h:
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::shouldShowPlaceholderWhenFocused): Deleted.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::shouldShowPlaceholderWhenFocused): Deleted.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldShowPlaceholderWhenFocused): Deleted.

  • rendering/RenderThemeSafari.h:

(WebCore::RenderThemeSafari::shouldShowPlaceholderWhenFocused): Deleted.

  • rendering/RenderThemeWin.h:
10:27 PM Changeset in webkit [187094] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187054. rdar://problem/21823349

10:27 PM Changeset in webkit [187093] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1-branch

Merge r187053. rdar://problem/21778212

10:27 PM Changeset in webkit [187092] by matthew_hanson@apple.com
  • 14 edits in branches/safari-601.1-branch/Source

Merge r187044. rdar://problem/21661808

10:27 PM Changeset in webkit [187091] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1-branch/Source

Merge r187039. rdar://problem/21474317

10:27 PM Changeset in webkit [187090] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit

Merge r187027. rdar://problem/21882777

10:27 PM Changeset in webkit [187089] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1-branch/Source/JavaScriptCore

Merge r186819. rdar://problem/21729083

10:16 PM Changeset in webkit [187088] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[CoordinatedGraphics] CoordinatedGraphicsLayer::setContentsToImage() should avoid scheduling unnecessary flushes
https://bugs.webkit.org/show_bug.cgi?id=147118

Reviewed by Martin Robinson.

Have CoordinatedGraphicsLayer::setContentsToImage() return early if the new
passed-in Image and the corresponding native image pointer are equal to the
currently set values.

This specifically avoids scheduling unnecessary flushes when setContentsToImage()
is repeatedly called with a null Image pointer, which in previous code would
unconditionally result in a scheduled flush even if there was no Image assigned
as the content of this layer before. Until now the layer flush scheduling was only
avoided if the two non-null native image pointers were equal.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setContentsToImage):

10:08 PM Changeset in webkit [187087] by matthew_hanson@apple.com
  • 12 edits
    1 add in branches/safari-601.1-branch

Merge r186910. rdar://problem/21863296

10:08 PM Changeset in webkit [187086] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186715. rdar://problem/21863296

9:38 PM Changeset in webkit [187085] by matthew_hanson@apple.com
  • 20 edits
    1 copy
    4 adds in branches/safari-601.1-branch

Merge r186955. rdar://problem/14489674

9:38 PM Changeset in webkit [187084] by matthew_hanson@apple.com
  • 7 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187047. rdar://problem/20860410

9:38 PM Changeset in webkit [187083] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1-branch/WebKitLibraries

Merge r187038. rdar://problem/20860410

9:38 PM Changeset in webkit [187082] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r187035. rdar://problem/21712311

9:38 PM Changeset in webkit [187081] by matthew_hanson@apple.com
  • 9 edits in branches/safari-601.1-branch

Merge r187031. rdar://problem/21712311

9:37 PM Changeset in webkit [187080] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/JavaScriptCore

Merge r187028. rdar://problem/21869970

9:37 PM Changeset in webkit [187079] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r187025. rdar://problem/21878275

9:37 PM Changeset in webkit [187078] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187023. rdar://problem/21799011

9:37 PM Changeset in webkit [187077] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187001. rdar://problem/21769577

9:37 PM Changeset in webkit [187076] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186991. rdar://problem/21643094

9:37 PM Changeset in webkit [187075] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186990. rdar://problem/21643094

9:37 PM Changeset in webkit [187074] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/LayoutTests

Merge r186988. rdar://problem/21567820

9:37 PM Changeset in webkit [187073] by matthew_hanson@apple.com
  • 12 edits
    17 adds in branches/safari-601.1-branch

Merge r186982. rdar://problem/21567820

9:37 PM Changeset in webkit [187072] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix the iOS build.

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
9:37 PM Changeset in webkit [187071] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186979. rdar://problem/19192076

9:37 PM Changeset in webkit [187070] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601.1-branch/Source

Merge r186978. rdar://problem/21643094

9:37 PM Changeset in webkit [187069] by matthew_hanson@apple.com
  • 9 edits in branches/safari-601.1-branch

Merge r186976. rdar://problem/21643094

9:37 PM Changeset in webkit [187068] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1-branch

Merge r186974. rdar://problem/21106945

9:37 PM Changeset in webkit [187067] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r186969. rdar://problem/21803781

9:37 PM Changeset in webkit [187066] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1-branch

Merge r186968. rdar://problem/21359811

9:37 PM Changeset in webkit [187065] by matthew_hanson@apple.com
  • 10 edits
    1 add in branches/safari-601.1-branch

Merge r186964. rdar://problem/21803781

9:37 PM Changeset in webkit [187064] by matthew_hanson@apple.com
  • 7 edits
    9 adds in branches/safari-601.1-branch

Merge r186957. rdar://problem/21867831

9:37 PM Changeset in webkit [187063] by matthew_hanson@apple.com
  • 9 edits in branches/safari-601.1-branch/Source

Merge r186956. rdar://problem/21643094

9:36 PM Changeset in webkit [187062] by matthew_hanson@apple.com
  • 10 edits in branches/safari-601.1-branch/Source

Merge r186916. rdar://problem/21643094

9:36 PM Changeset in webkit [187061] by matthew_hanson@apple.com
  • 8 edits in branches/safari-601.1-branch

Merge r186912. rdar://problem/21866271

9:36 PM Changeset in webkit [187060] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186890. rdar://problem/21643094

9:36 PM Changeset in webkit [187059] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186875. rdar://problem/21643094

9:36 PM Changeset in webkit [187058] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186867. rdar://problem/21643094

9:36 PM Changeset in webkit [187057] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186863. rdar://problem/21715050

9:36 PM Changeset in webkit [187056] by matthew_hanson@apple.com
  • 12 edits
    1 copy
    6 adds in branches/safari-601.1-branch

Merge r186858. rdar://problem/21643094

9:36 PM Changeset in webkit [187055] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186854. rdar://problem/21840147

7:00 PM Changeset in webkit [187054] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Facebook in tiled fullscreen is slow
https://bugs.webkit.org/show_bug.cgi?id=147134
rdar://problem/21823349

Reviewed by Tim Horton.

TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded() could cause a page to toggle
between two fixed layout sizes differing by a pixel, because of rounding. This would cause
lots of extra layouts and painting.

This happened because the the fixed layout size was computed using ceil(m_webPage.size().width() / viewScale)

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):

6:08 PM Changeset in webkit [187053] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

AX: Selection change as a result of focusing an element may cause Safari to crash
https://bugs.webkit.org/show_bug.cgi?id=147052
<rdar://problem/21778212>

Patch by Nan Wang <n_wang@apple.com> on 2015-07-20
Reviewed by Chris Fleizach.

Source/WebCore:

When focusing an element, it may trigger a deferred layout that invalidates the render
element, which will cause axObjectCache() to be a nullptr, and lead to a crash. Fix that
by using a RefPtr to hold the object and also caching the axObjectCache().

Test: platform/mac/accessibility/focus-crash.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::setSelectedRows):

LayoutTests:

  • platform/mac/accessibility/focus-crash-expected.txt: Added.
  • platform/mac/accessibility/focus-crash.html: Added.
5:58 PM Changeset in webkit [187052] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: console.assert(false, "Message") message is not visible in console
https://bugs.webkit.org/show_bug.cgi?id=147130

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-20
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
We were forgetting to assign the result of args.concat back into args.
In re-addressing this, improve the formatting of output if there is
a string message or not as the second argument to console.assert(), as
that is the common usage.

5:27 PM Changeset in webkit [187051] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r187049.

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::populateDomainCacheIfNeeded):
Can't shrinkToFit HashSets.

5:23 PM Changeset in webkit [187050] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit2

Fix crash due to RemoteLayerTreeDisplayRefreshMonitor outliving RemoteLayerTreeDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=147124
<rdar://problem/21582858>

Reviewed by Simon Fraser.

Refactors RemoteLayerTreeDisplayRefreshMonitor to use a weak pointer rather than a reference
to its RemoteLayerTreeDrawingArea, since the drawing area may be deallocated before the monitor
in some rare cases. This rarely caused pages using requestAnimationFrame to crash on iOS. However,
this should not be the case: logically, a RemoteLayerTreeDrawingArea should always outlive its
refresh monitors. Refer to https://bugs.webkit.org/show_bug.cgi?id=147128 for more details.

  • WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h:
  • WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::RemoteLayerTreeDisplayRefreshMonitor):
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::~RemoteLayerTreeDisplayRefreshMonitor): On destruction, checks

first to see whether or not the drawing area has been deallocated before telling it to update its monitors.

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:

(WebKit::RemoteLayerTreeDrawingArea::createWeakPtr): Creates and returns a new weak pointer to itself.

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):

5:12 PM Changeset in webkit [187049] by achristensen@apple.com
  • 16 edits in trunk/Source

[Content Extensions] Cache actions with domains that match everything
https://bugs.webkit.org/show_bug.cgi?id=147050

Reviewed by Benjamin Poulain.

Source/WebCore:

If you have lots of rules with triggers like {"url-filter":".*","if-domain":*webkit.org}
we will spend a lot of time adding unnecessary actions to HashSets when you are not on webkit.org.
Caching all the rules and only adding them to a collection once when the domain changes saves a lot of URL interpreting time.

We already had an optimization for the css-display-none actions with triggers that matched everything using a special bytecode operation.
This removes the need for a special bytecode operation by caching the triggers that match everything with and without domains,
then from those cached actions we compile a stylesheet, and create cached actions for every new domain we visit.

All functionality is covered by existing API tests.

  • contentextensions/CompiledContentExtension.cpp:

(WebCore::ContentExtensions::CompiledContentExtension::~CompiledContentExtension):
(WebCore::ContentExtensions::CompiledContentExtension::globalDisplayNoneSelectors): Deleted.

  • contentextensions/CompiledContentExtension.h:
  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::ContentExtension):
(WebCore::ContentExtensions::ContentExtension::findFirstIgnorePreviousRules):
(WebCore::ContentExtensions::ContentExtension::globalDisplayNoneStyleSheet):
(WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet):
(WebCore::ContentExtensions::ContentExtension::populateDomainCacheIfNeeded):
(WebCore::ContentExtensions::ContentExtension::cachedDomainActions):
(WebCore::ContentExtensions::ContentExtension::universalActionsWithDomains):

  • contentextensions/ContentExtension.h:

(WebCore::ContentExtensions::ContentExtension::compiledExtension):
(WebCore::ContentExtensions::ContentExtension::universalActionsWithoutDomains):

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::ContentExtensionRule::ContentExtensionRule):
(WebCore::ContentExtensions::Action::deserialize):
(WebCore::ContentExtensions::Action::deserializeType):
(WebCore::ContentExtensions::Action::serializedLength):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::operator==):
(WebCore::ContentExtensions::Action::setExtensionIdentifier):
(WebCore::ContentExtensions::Action::extensionIdentifier):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):

  • contentextensions/DFABytecode.h:

(WebCore::ContentExtensions::instructionSizeWithArguments):

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::DFABytecodeCompiler::emitAppendAction):

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsMatchingEverything):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsForDefaultStylesheetFromDFARoot): Deleted.

  • contentextensions/DFABytecodeInterpreter.h:
  • loader/ResourceLoadInfo.h:

Source/WebKit2:

  • UIProcess/API/APIUserContentExtensionStore.h:
4:48 PM Changeset in webkit [187048] by Lucas Forschler
  • 1 edit in branches/safari-600.1.4.17-branch/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp

Follow-up fix after r187042.

4:45 PM Changeset in webkit [187047] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

Support blocking a plug-in for non-security reasons
https://bugs.webkit.org/show_bug.cgi?id=145009

Patch by Gordon Sheridan <gordon_sheridan@apple.com> on 2015-07-20
Reviewed by Anders Carlsson.

  • Shared/Plugins/PluginModuleInfo.h:

Replace PluginModuleBlocked with separate enum values for blocking for security and compatibility.

  • UIProcess/API/C/WKAPICast.h:

(WebKit::toWKPluginLoadPolicy):
Modify to handle change to PluginModuleBlocked enum.

(WebKit::toPluginModuleLoadPolicy):
Ditto.

  • UIProcess/API/C/WKPluginLoadPolicy.h:

Added enum value for blocking a plugin for compatibility reasons.

  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm:

(WebKit::shouldBlockPlugin):
Check load policy for both reasons a plugin may be blocked.

(WebKit::WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy):
Added function to convert between load policy enum types.

(WebKit::PluginInfoStore::defaultLoadPolicyForPlugin):
Modified to call WKLoadPolicyForPluginVersion() which can distinguish between blocked for security or compatibility.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findPlugin):
Updated to recognize both PluginModuleBlocked enum values that indicate a plugin is blocked.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
Ditto.

(WebKit::WebPage::canPluginHandleResponse):
Ditto.

4:35 PM Changeset in webkit [187046] by Brian Burg
  • 4 edits
    4 adds in trunk/LayoutTests

Web Inspector: start using Promises to handle asynchronous steps in protocol tests
https://bugs.webkit.org/show_bug.cgi?id=147096

Reviewed by Joseph Pecoraro.

Existing protocol tests use lots of reinvented wheels to run
multiple asynchronous tests. This patch begins consolidation of
these redundant wheels, using a tiny test framework based on
promises.

The first change is to introduce InspectorTest.awaitCommand,
which returns a promise that is fulfilled or rejected if the command
succeeds or fails. This is the building block for writing protocol
tests with promises.

The second change is the introduction of InspectorTest.AsyncTestSuite.
This properly chains together multiple asynchronous test methods
using the promise interface. A synchronous version is also added.

To demonstrate how async tests can be written using this new approach,
this patch converts existing protocol test. Test coverage for the
new frameworks also demonstrates their use.

  • http/tests/inspector-protocol/resources/InspectorTest.js:

(InspectorTest.sendCommand):
(InspectorTest.awaitCommand):
(InspectorTest.sendMessage):
(InspectorFrontendAPI.dispatchMessageAsync):
(InspectorTest.AsyncTestSuite): Add tests for this micro framework.
(InspectorTest.AsyncTestSuite.prototype.get passCount):
(InspectorTest.AsyncTestSuite.prototype.get skipCount):
(InspectorTest.AsyncTestSuite.prototype.addTestCase):
(InspectorTest.AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(InspectorTest.AsyncTestSuite.prototype.runTestCasesAndFinish):
(InspectorTest.AsyncTestSuite.prototype.runTestCases):
(InspectorTest.SyncTestSuite): Add tests for this micro framework.
(InspectorTest.SyncTestSuite.prototype.get passCount):
(InspectorTest.SyncTestSuite.prototype.get skipCount):
(InspectorTest.SyncTestSuite.prototype.addTestCase):
(InspectorTest.SyncTestSuite.prototype.runTestCasesAndFinish):
(InspectorTest.SyncTestSuite.prototype.runTestCases):
(InspectorTest.log):
(InspectorTest.assert):

  • inspector-protocol/runtime/getProperties-expected.txt:
  • inspector-protocol/runtime/getProperties.html: Rewrite.
4:31 PM Changeset in webkit [187045] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

NSURLCache fallback does not work on iOS due to sandboxing
https://bugs.webkit.org/show_bug.cgi?id=146314
<rdar://problem/21433691>

Reviewed by Anders Carlsson.

This broke with earlier cache path computation changes.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

NSURLCache path is relative to the container cache path so "." is sufficient.
This puts the cache files under
<container>/Library/Caches/com.apple.WebKit.Networking/

4:27 PM Changeset in webkit [187044] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Adopt AVPlayerLayerView
https://bugs.webkit.org/show_bug.cgi?id=146862

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-07-20
Source/WebCore:

Reviewed by Jer Noble.

The CALayerHost is replaced with WebLayerHostView to be compatible with UIView animations.
Some animation is improved in the conversion.

WebAVPlayerLayerView and WebAVPictureInPicturePlayerLayerView derive from AVKit and UIKit respectively.
Because these frameworks are loaded at runtime, these classes must be generate using objc/runtime.h to
register them from c functions at runtime. The most important part of these UIViews is that their
backing layer is a WebAVPlayerLayer.

WebCALayerHostWrapper and WebAVVideoLayer are combined into WebAVPlayerLayer to simplify the hierarchy.
WebAVPlayerLayer is a stand-in for an AVPlayerLayer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): -removeFromSuperlayer is redundant.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity): syncTextTrackBounds on change.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
We never want animation here, since all animation will happen in UIViews.
This is just for going into the final size after a transform based animation.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::didSetupFullscreen): layer -> view
(WebVideoFullscreenControllerContext::didCleanupFullscreen): layer -> view
(WebVideoFullscreenControllerContext::setUpFullscreen): layer -> view

(WebVideoFullscreenControllerContext::setVideoLayerFrame): layer -> view
Use fence port to synchronize between the UIThread and the WebThread,
the same way WebKit2 uses a fence port to synchronize between processes.

(WebVideoFullscreenControllerContext::setVideoLayerGravity):
No longer necessary to cache videoGravity at this level.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer init]):
(-[WebAVPlayerLayer dealloc]):
(-[WebAVPlayerLayer playerController]):
(-[WebAVPlayerLayer setBounds:]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(-[WebAVPlayerLayer videoGravity]):
(-[WebAVPlayerLayer videoRect]):
(+[WebAVPlayerLayer keyPathsForValuesAffectingVideoRect]):
Added class WebAVPlayerLayer, replacing WebAVVideoLayer and WebCALayerHostWrapper.

(WebAVPictureInPicturePlayerLayerView_layerClass):
(getWebAVPictureInPicturePlayerLayerViewClass):
Added runtime class WebAVPictureInPicturePlayerLayerView

(WebAVPlayerLayerView_layerClass):
(WebAVPlayerLayerView_playerController):
(WebAVPlayerLayerView_setPlayerController):
(WebAVPlayerLayerView_videoView):
(WebAVPlayerLayerView_setVideoView):
(WebAVPlayerLayerView_startRoutingVideoToPictureInPicturePlayerLayerView):
(WebAVPlayerLayerView_stopRoutingVideoToPictureInPicturePlayerLayerView):
(WebAVPlayerLayerView_pictureInPicturePlayerLayerView):
(getWebAVPlayerLayerViewClass):
Added runtime class WebAVPlayerLayerView

(WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
Dimensions are also stored in WebAVPlayerLayer so it can make decisions about
animating the video layer.

(WebVideoFullscreenInterfaceAVKit::setExternalPlayback):
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen):
Straightforward layer to view conversion.

(WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline):
Set view frame using the view hierarchy instead of assuming it is directly in a window.

(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
Set view frame using the view hierarchy instead of assuming it is directly in a window.
dispatch_async before calling didExitFullscreen() to allows CATransactions to complete.

(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
Set view frame using the view hierarchy instead of assuming it is directly in a window.
dispatch_async before calling didSetupFullscreen() to allows CATransactions to complete.

(-[WebCALayerHostWrapper dealloc]): Deleted.
(-[WebCALayerHostWrapper setVideoSublayer:]): Deleted.
(-[WebCALayerHostWrapper videoSublayer]): Deleted.
(-[WebCALayerHostWrapper setBounds:]): Deleted.
(-[WebCALayerHostWrapper resolveBounds]): Deleted.
Class WebCALayerHostWrapper deleted. Functionality rolled into WebAVPlayerLayer.

(+[WebAVVideoLayer videoLayer]): Deleted.
(-[WebAVVideoLayer init]): Deleted.
(-[WebAVVideoLayer setPlayerViewController:]): Deleted.
(-[WebAVVideoLayer setVideoSublayer:]): Deleted.
(-[WebAVVideoLayer setBounds:]): Deleted.
(-[WebAVVideoLayer setVideoLayerGravity:]): Deleted.
(-[WebAVVideoLayer videoLayerGravity]): Deleted.
(-[WebAVVideoLayer enterPIPModeRedirectingVideoToLayer:]): Deleted.
(-[WebAVVideoLayer leavePIPMode]): Deleted.
Class WebAVVideoLayer deleted. Functionality rolled into WebAVPlayerLayer.

  • platform/ios/WebVideoFullscreenModel.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

No need to store frame and gravity in the model. It is stored in the UI where it is used.

(WebVideoFullscreenModelVideoElement::videoLayerFrame): Deleted.
(WebVideoFullscreenModelVideoElement::videoLayerGravity): Deleted.

  • platform/spi/cocoa/AVKitSPI.h: Add AVPlayerLayerView.

Source/WebKit2:

Reviewed by Simon Fraser.

The CALayerHost is replaced with WebLayerHostView to be compatible with UIView animations.
videoLayerFrame and videoLayerGravity no longer need to be stored because they are stored
where they are used in the interface. Some animation is improved in the conversion.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(+[WebLayerHostView layerClass]): Add class WebLayerHostView.
(-[WebLayerHostView contextID]):
(-[WebLayerHostView setContextID:]):
(-[WebLayerHostView layerHost]):
(WebKit::WebVideoFullscreenManagerProxy::invalidate): layer -> view
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID):
Apply the hostingDeviceScaleFactor transform to -sublayerTransform instead of to
-transform. This more directly inverts the tranform WebProcess and allows -transform
to be used for animation in the UIProcess. This is important because UIView's actions
animate -transform, but not -sublayerTrasform.

(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): layer -> view
(WebKit::WebVideoFullscreenModelContext::setVideoLayerFrame): Deleted.
(WebKit::WebVideoFullscreenModelContext::videoLayerFrame): Deleted.
(WebKit::WebVideoFullscreenModelContext::setVideoLayerGravity): Deleted.
(WebKit::WebVideoFullscreenModelContext::videoLayerGravity): Deleted.

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
Set initial video layer frame to fix start point of animation.

(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
dispatch_async allows the CATransaction to complete before continuing with the animation.
This prevents a flash during animation.

4:26 PM Changeset in webkit [187043] by andersca@apple.com
  • 7 edits in trunk/Source/WebCore

Add PLATFORM #ifdefs for Mac SPI headers
https://bugs.webkit.org/show_bug.cgi?id=147129

Reviewed by Tim Horton.

  • Configurations/WebCore.xcconfig:

Skip NPAPI headers on iOS.

  • platform/mac/WebVideoFullscreenController.h:
  • platform/spi/mac/DataDetectorsSPI.h:
  • platform/spi/mac/NSEventSPI.h:
  • platform/spi/mac/NSFontSPI.h:
  • platform/spi/mac/NSMenuSPI.h:
4:24 PM WebInspectorCodingStyleGuide edited by Brian Burg
tweaks to style guide (diff)
4:23 PM Changeset in webkit [187042] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merged r186895. rdar://problem/21714851

3:52 PM Changeset in webkit [187041] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebKit2

Merged r186812. rdar://problem/21877914

3:36 PM Changeset in webkit [187040] by matthew_hanson@apple.com
  • 1 edit in branches/safari-600.1.4.17-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp

Build fix after r186983.

3:33 PM Changeset in webkit [187039] by timothy_horton@apple.com
  • 4 edits in trunk/Source

REGRESSION (r174287): Flash of black when opening a new web view or navigating to a new page
https://bugs.webkit.org/show_bug.cgi?id=147127
<rdar://problem/21474317>

Reviewed by Simon Fraser.

  • rendering/RenderView.cpp:

(WebCore::RenderView::paintBoxDecorations):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::snapshotAtSize):
Avoid using an invalid documentBackgroundColor, fall back to baseBackgroundColor
like we did before r174287.

2:48 PM Changeset in webkit [187038] by commit-queue@webkit.org
  • 4 edits in trunk/WebKitLibraries

WKSI support for blocking a plug-in for non-security reasons.
https://bugs.webkit.org/show_bug.cgi?id=145009

Patch by Gordon Sheridan <gordon_sheridan@apple.com> on 2015-07-20
Reviewed by Anders Carlsson.

  • WebKitSystemInterface.h:
  • libWebKitSystemInterfaceMavericks.a:
  • libWebKitSystemInterfaceYosemite.a:
2:43 PM Changeset in webkit [187037] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix after r187022.

  • platform/win/WindowsTouch.h:

Undid changes from r187022

2:37 PM Changeset in webkit [187036] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Allow video to rotate when app doesnt allow rotation.
https://bugs.webkit.org/show_bug.cgi?id=147121

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-07-20
Reviewed by Jer Noble.

Set an SPI bool on the fullscreen video root view controller to allow it to override app rotation restrictions.
This allows video to be played in landscape in portrait only apps.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setupFullscreen):

2:28 PM Changeset in webkit [187035] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed assertion fix following r187031.

Just have GenericEventQueue::resume() return early if the queue isn't suspended.
Suspend/Resume calls are not always symmetrical in HTMLMediaElement.

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::resume):

2:20 PM Changeset in webkit [187034] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Unexpected ABI diffference between armv7 and armv7s in WebCore::GraphicsLayerCA::~GraphicsLayerCA()
<http://webkit.org/b/147101>

Reviewed by Michael Saboff.

  • platform/graphics/transforms/TransformationMatrix.h: Align

Matrix4 on both armv7 and armv7s.

2:16 PM Changeset in webkit [187033] by saambarati1@gmail.com
  • 12 edits in trunk/Source/JavaScriptCore

"let" scoping introduced incoherent story about symbol table cloning
https://bugs.webkit.org/show_bug.cgi?id=147046

Reviewed by Filip Pizlo.

This patch now establishes a clear set of rules for how SymbolTables
are owned by CodeBlock. Every SymbolTable that is used by a bytecode
instruction must live in CodeBlock's constant register pool. When CodeBlock
is being linked, it ensures that every SymbolTable in the constant pool is cloned.
This leaves no room for an un-cloned symbol table to be used by a bytecode instruction.
Some instructions may refer to SymbolTable's indirectly through a JSLexicalEnvironment.
This is fine, all JSLexicalEnvironment's are allocated with references to cloned symbol tables.

Another goal of this patch is to remove the notion that a SymbolTable is 1 to 1
with a CodeBlock. With lexical scoping, this view of the world is no longer
correct. This patch begins to remove this assumption by making CodeBlock's
symbolTable() getter method private. There is still one place where we need
to purge our codebase of this assumption and that is the type profiler. It
has not been updated for lexical scoping. After it is updated in
https://bugs.webkit.org/show_bug.cgi?id=145438
we will be able to remove CodeBlock's symbolTable() getter entirely.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::nameForRegister):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addStringSwitchJumpTable):
(JSC::CodeBlock::stringSwitchJumpTable):
(JSC::CodeBlock::evalCodeCache):
(JSC::CodeBlock::symbolTable):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedFunctionExecutable::link):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addExceptionHandler):
(JSC::UnlinkedCodeBlock::exceptionHandler):
(JSC::UnlinkedCodeBlock::setSymbolTableConstantIndex):
(JSC::UnlinkedCodeBlock::symbolTableConstantIndex):
(JSC::UnlinkedCodeBlock::symbolTable): Deleted.
(JSC::UnlinkedCodeBlock::setSymbolTable): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::variableForLocalEntry):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::resolveType):
(JSC::BytecodeGenerator::emitResolveScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::thisRegister):
(JSC::BytecodeGenerator::instructions):
(JSC::BytecodeGenerator::symbolTable): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::baselineCodeBlockFor):
(JSC::DFG::Graph::isStrictModeFor):
(JSC::DFG::Graph::symbolTableFor): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::baselineCodeBlock):
(JSC::AssemblyHelpers::argumentsStart):
(JSC::AssemblyHelpers::symbolTableFor): Deleted.

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Executable.cpp:

(JSC::FunctionExecutable::visitChildren):
(JSC::FunctionExecutable::clearUnlinkedCodeForRecompilation):
(JSC::FunctionExecutable::symbolTable): Deleted.

  • runtime/Executable.h:
1:45 PM Changeset in webkit [187032] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Add the necessary platform checks to iOS SPI headers
https://bugs.webkit.org/show_bug.cgi?id=147120

Reviewed by Tim Horton.

  • platform/spi/ios/GraphicsServicesSPI.h:
  • platform/spi/ios/MediaPlayerSPI.h:
  • platform/spi/ios/MobileGestaltSPI.h:
1:16 PM Changeset in webkit [187031] by akling@apple.com
  • 9 edits in trunk

Improve behavior of media elements in page cache.
<https://webkit.org/b/147020>
<rdar://problem/21712311>

Reviewed by Chris Dumez.

Source/WebCore:

Make improvements for media elements when transitioning in/out of page cache:

  • Events that were scheduled when going into cache will now be delivered when the page is restored from cache.
  • Data buffering is turned off while in the cache. This reduces the memory cost of cached pages with media elements on iOS (where mediaserverd would keep upcoming video frames in memory for cached pages.)

Test: media/restore-from-page-cache.html (amended)

  • dom/GenericEventQueue.h:
  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::enqueueEvent):
(WebCore::GenericEventQueue::suspend):
(WebCore::GenericEventQueue::resume):

Add a simple suspend/resume mechanism to GenericEventQueue that can
be used to support page caching.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):

Adapt to event queueing changes and add calls to setShouldBufferData().

  • html/HTMLSourceElement.h:
  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::HTMLSourceElement):
(WebCore::HTMLSourceElement::create):
(WebCore::HTMLSourceElement::activeDOMObjectName):
(WebCore::HTMLSourceElement::canSuspendForPageCache):
(WebCore::HTMLSourceElement::suspend):
(WebCore::HTMLSourceElement::resume):
(WebCore::HTMLSourceElement::stop):

Turn HTMLSourceElement into an ActiveDOMObject so it gets all the
appropriate page cache notifications directly. Suspend the delayed
error event delivery timer when cached.

LayoutTests:

Add some coverage for suspend/resume of queued events on cached media elements.

  • media/restore-from-page-cache-expected.txt:
  • media/restore-from-page-cache.html:
1:06 PM Changeset in webkit [187030] by Michael Catanzaro
  • 5 edits in trunk/Source/WebKit2

[Seccomp] Should be easier to debug blocked syscalls
https://bugs.webkit.org/show_bug.cgi?id=142980

These should be printed even when not running in debug mode. There is no
value in hiding errors from release build users.

Reviewed by Žan Doberšek.

  • Shared/linux/SeccompFilters/SeccompBroker.cpp:

(WebKit::SeccompBroker::runLoop): Don't close stderr et. al. in release builds.

  • Shared/linux/SeccompFilters/Syscall.cpp:

(WebKit::write_uint): Added.
(WebKit::reportUnexpectedSyscall): Added.
(WebKit::Syscall::createFromContext): Call reportUnexpectedSyscall. Also, no need to crash
here in release builds.

  • Shared/linux/SeccompFilters/SyscallPolicy.cpp:

(WebKit::SyscallPolicy::hasPermissionForPath): Print a warning when access is denied.
(WebKit::SyscallPolicy::permissionToString): Added.

  • Shared/linux/SeccompFilters/SyscallPolicy.h: Add permissionToString.
12:50 PM Changeset in webkit [187029] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Fix the !ENABLE(VIDEO) build after r186396
https://bugs.webkit.org/show_bug.cgi?id=147116

Reviewed by Brent Fulgham.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didClose):

12:04 PM Changeset in webkit [187028] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(186691): OSR entry is broken on loop headers that have no live variables
https://bugs.webkit.org/show_bug.cgi?id=147074
rdar://problem/21869970

Reviewed by Michael Saboff.

The OSR entry must-handle block/value widening introduced in r186691 would cause the
CFA to reexecute if it caused any live local variables to change value. But this fails
if the must-handle block has no live local variables, and the entry block otherwise
appears to be unreachable.

This fixes the bug by having the change detection include whether the block hadn't been
visited in addition to whether any local variable values got widened.

This is a ~4% speed-up on SunSpider in browser.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):

11:51 AM Changeset in webkit [187027] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Win] Certain Debug builds can take close to 3 hours to link
https://bugs.webkit.org/show_bug.cgi?id=147114
<rdar://problem/21882777>

Reviewed by Tim Horton.

Correct the 64-bit DebugSuffix link target to match the 32-bit version.

  • WebKit.vcxproj/WebKit/WebKit.vcxproj: Turn off the REF and ICF

flags for the 64-bit DebugSuffix link target.

11:12 AM Changeset in webkit [187026] by mark.lam@apple.com
  • 10 edits in trunk/Source

Rollout r187020 and r187021: breaks JSC API tests on debug builds.
https://bugs.webkit.org/show_bug.cgi?id=147110

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::addCurrentThread):

  • runtime/JSLock.cpp:

(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::JSLock):
(JSC::JSLock::willDestroyVM):
(JSC::JSLock::setExclusiveThread):
(JSC::JSLock::lock):
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):
(JSC::JSLock::dropAllLocks):

  • runtime/JSLock.h:

(JSC::JSLock::vm):
(JSC::JSLock::hasExclusiveThread):
(JSC::JSLock::exclusiveThread):

  • runtime/VM.h:

(JSC::VM::hasExclusiveThread):
(JSC::VM::exclusiveThread):
(JSC::VM::setExclusiveThread):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

Source/WTF:

  • wtf/WTFThreadData.cpp:

(WTF::WTFThreadData::WTFThreadData):

  • wtf/WTFThreadData.h:

(WTF::WTFThreadData::stack):

11:05 AM Changeset in webkit [187025] by adachan@apple.com
  • 2 edits in trunk/Source/WebCore

Fix deadlock between -[AVPlayerItem currentTime] and -[AVPlayer isExternalPlaybackActive]
https://bugs.webkit.org/show_bug.cgi?id=147085
<rdar://problem/21878275>

Reviewed by Jer Noble.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::isPlayingAudioDidChange):
Call Document::updateIsPlayingMedia() on the main thread, since we could be on the audio I/O
thread here and the Document::updateIsPlayingMedia() call could block, causing a deadlock.

10:42 AM Changeset in webkit [187024] by commit-queue@webkit.org
  • 9 edits
    2 copies
    3 adds in trunk

[GTK] Add selection-changed signal to the WebKit2 API
https://bugs.webkit.org/show_bug.cgi?id=137116

Patch by Tomas Popela <tpopela@redhat.com> on 2015-07-20
Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Add a new object WebKitWebEditor where the editing capabilities of a
WebPage will be grouped and exposed. Add the selection-changed signal
there (we used the same name as in WK1 API).

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp: Added.

(didChangeSelection):
(webkitWebEditorCreate):
(webkit_web_editor_get_page):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h: Added.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h: Added.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(webkitWebPageGetPage):
(webkit_web_page_get_editor):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:

Tools:

Add a new WebProcess test TestEditor that is testing the WebKitWebEditor
(namely the selection-changed signal).

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/EditorTest.cpp: Added.

(WebKitWebEditorTest::create):
(WebKitWebEditorTest::selectionChangedCallback):
(WebKitWebEditorTest::testSelectionSelectAll):
(WebKitWebEditorTest::testSelectionCollapse):
(WebKitWebEditorTest::testSelectionModifyMove):
(WebKitWebEditorTest::testSelectionModifyExtend):
(WebKitWebEditorTest::testSelectionUnselect):
(registerTests):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestEditor.cpp: Added.

(testWebKitWebEditorSelectionChanged):
(beforeAll):
(afterAll):

10:08 AM Changeset in webkit [187023] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

WebsiteDataStore operations need to grab background assertions
https://bugs.webkit.org/show_bug.cgi?id=147015
rdar://problem/21799011

Reviewed by Sam Weinig.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):

8:55 AM Changeset in webkit [187022] by achristensen@apple.com
  • 19 edits
    2 adds in trunk

Resurrect CMake build on Windows.
https://bugs.webkit.org/show_bug.cgi?id=147083

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsCommon.cmake:
  • Source/cmake/OptionsWindows.cmake:

Change features to get it to compile. Still not a complete feature set.

Source/WebCore:

  • CMakeLists.txt:
  • PlatformWin.cmake:
  • dom/Document.cpp:

(WebCore::Document::~Document):

  • dom/Range.cpp:
  • dom/Text.cpp:
  • editing/CompositeEditCommand.cpp:
  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::createTexture):

  • platform/win/WindowsTouch.h:
  • rendering/RenderThemeWin.h:

Fixed some including and compiling quirks needed for different configurations.

Source/WebKit:

  • PlatformWin.cmake: Added.

Based on original work by Patrick Gansterer and Mark Salisbury
in https://bugs.webkit.org/show_bug.cgi?id=72816

Source/WTF:

  • wtf/PlatformWin.cmake:

Tools:

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/PlatformWin.cmake: Added.
  • WinLauncher/CMakeLists.txt:
5:04 AM Changeset in webkit [187021] by peavo@outlook.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed debug build fix after r187020.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::addCurrentThread):
VM::exclusiveThread() has changed return type to ThreadIdentifier.

2:14 AM Changeset in webkit [187020] by peavo@outlook.com
  • 9 edits in trunk/Source

JavaScriptCore performance is very bad on Windows
https://bugs.webkit.org/show_bug.cgi?id=146448

Reviewed by Mark Lam.

Source/JavaScriptCore:

Profiling shows that std::this_thread::get_id() is slow on Windows.
Use WTF::currentThread() instead, which calls GetCurrentThreadId().
This is faster on Windows. The issue has been reported to Microsoft,
https://connect.microsoft.com/VisualStudio/feedback/details/1558211.

  • runtime/JSLock.cpp:

(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::JSLock):
(JSC::JSLock::willDestroyVM):
(JSC::JSLock::setExclusiveThread):
(JSC::JSLock::lock):
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):

  • runtime/JSLock.h:

(JSC::JSLock::vm):
(JSC::JSLock::hasExclusiveThread):
(JSC::JSLock::exclusiveThread):

  • runtime/VM.h:

(JSC::VM::hasExclusiveThread):
(JSC::VM::exclusiveThread):
(JSC::VM::setExclusiveThread):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM): Compile fix.

Source/WTF:

Updating the stack bounds is time consuming.
Only update the stack bounds when a new fiber is running.

  • wtf/WTFThreadData.cpp:

(WTF::WTFThreadData::WTFThreadData):

  • wtf/WTFThreadData.h:

(WTF::WTFThreadData::stack):

12:19 AM Changeset in webkit [187019] by Julien Brianceau
  • 2 edits in trunk/Source/WTF

Use isnan from std namespace in Stopwatch.h.
https://bugs.webkit.org/show_bug.cgi?id=146911

Reviewed by Žan Doberšek.

  • wtf/Stopwatch.h:

(WTF::Stopwatch::isActive):
(WTF::Stopwatch::start):
(WTF::Stopwatch::stop):
(WTF::Stopwatch::elapsedTime):

Jul 19, 2015:

11:38 PM Changeset in webkit [187018] by timothy_horton@apple.com
  • 8 edits
    1 add
    2 deletes in trunk

Make shrink-wrapping test a ref-test instead of pixel-test
https://bugs.webkit.org/show_bug.cgi?id=147081

Reviewed by Sam Weinig.

Source/WebCore:

Nobody runs pixel tests.

  • svg/SVGPathUtilities.cpp:

(WebCore::pathIteratorForBuildingString):
(WebCore::buildStringFromPath):

  • svg/SVGPathUtilities.h:

Add a helper that turns a Path into a SVG path string.

  • testing/Internals.cpp:

(WebCore::Internals::pathStringWithShrinkWrappedRects):

  • testing/Internals.h:
  • testing/Internals.idl:

Have the internals shrink-wrap method return an SVG path instead of a DOMPath.

LayoutTests:

  • fast/shrink-wrap/rect-shrink-wrap-expected.html: Added.
  • fast/shrink-wrap/rect-shrink-wrap-expected.png: Removed.
  • fast/shrink-wrap/rect-shrink-wrap-expected.txt: Removed.
  • fast/shrink-wrap/rect-shrink-wrap.html:

SVG all the things.

4:37 PM Changeset in webkit [187017] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

In strict mode, Object.keys(arguments) includes "length"
https://bugs.webkit.org/show_bug.cgi?id=147071

Reviewed by Darin Adler.

ClonedAguments didn't set the "length" with DontEnum.

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::createWithInlineFrame):
(JSC::ClonedArguments::createByCopyingFrom):

  • tests/stress/arguments-length-always-dont-enum.js: Added.

(shouldBe):
(argsSloppy):
(argsStrict):

4:10 PM Changeset in webkit [187016] by commit-queue@webkit.org
  • 5 edits in trunk

new Date(NaN).toJSON() must return null instead of throwing a TypeError
https://bugs.webkit.org/show_bug.cgi?id=141115

Patch by Jordan Harband <ljharb@gmail.com> on 2015-07-19
Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToJSON):

LayoutTests:

  • js/dom/JSON-stringify-expected.txt:
  • js/resources/JSON-stringify.js:
3:27 PM Changeset in webkit [187015] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Enable seccomp filter API tests
https://bugs.webkit.org/show_bug.cgi?id=140071

Reviewed by Žan Doberšek.

These tests will now be run by the run-gtk-tests script.

  • TestWebKitAPI/PlatformGTK.cmake:
12:31 PM Changeset in webkit [187014] by saambarati1@gmail.com
  • 3 edits
    3 adds in trunk

Parser::parseFunctionInfo hits RELEASE_ASSERT for Arrow Functions
https://bugs.webkit.org/show_bug.cgi?id=147090

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

ArrowFunction's have there ParserFunctionInfo "name" field to
be a non-null pointer. This is obviously allowed and valid except we
had a RELEASE_ASSERT that claimed otherwise. This is a mistake.

Note: ArrowFunction's will never actually have a function name;
there ParserFunctionInfo "name" field will be the empty string.
This is not be mistaken with the name field being a null pointer.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo):

LayoutTests:

  • js/arrowfunction-strict-mode-expected.txt: Added.
  • js/arrowfunction-strict-mode.html: Added.
  • js/script-tests/arrowfunction-strict-mode.js: Added.

(foo):

12:14 PM Changeset in webkit [187013] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

Unreviewed, placate -Wmismatched-tags after r187011

It's basically bug #146990 again. Oops.

  • WebProcess/gtk/SeccompFiltersWebProcessGtk.h:
9:57 AM Changeset in webkit [187012] by saambarati1@gmail.com
  • 77 edits
    6 adds in trunk

[ES6] Add support for block scope const
https://bugs.webkit.org/show_bug.cgi?id=31813

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

'const' is now implemented in an ES6 spec compliant manner.
'const' variables are always block scoped and always live
either on the stack or in a JSLexicalEnvironment. 'const'
variables never live on the global object.

Inside the BytecodeGenerator, when assigning to a stack
'const' variable or a LocalClosureVar 'const' variable,
we will emit code that just throws a type error.
When assigning to a ClosureVar const variable, CodeBlock linking
will ensure that we perform a dynamic lookup of that variable so
that put_to_scope's slow path throws a type error.

The old 'const' implementation has been removed in this patch.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::variableForLocalEntry):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitInstanceOf):
(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::isArgumentNumber):
(JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::variablePerSymbolTable): Deleted.
(JSC::BytecodeGenerator::emitInitGlobalConst): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::Variable::Variable):
(JSC::Variable::isReadOnly):
(JSC::Variable::isSpecial):
(JSC::Variable::isConst):
(JSC::BytecodeGenerator::thisRegister):
(JSC::BytecodeGenerator::emitTypeOf):
(JSC::BytecodeGenerator::emitIn):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::CommaNode::emitBytecode):
(JSC::BindingNode::bindValue):
(JSC::ConstDeclNode::emitCodeSingle): Deleted.
(JSC::ConstDeclNode::emitBytecode): Deleted.
(JSC::ConstStatementNode::emitBytecode): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_to_arguments):
(JSC::JIT::emit_op_init_global_const): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_to_arguments):
(JSC::JIT::emit_op_init_global_const): Deleted.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createDeclarationStatement):
(JSC::ASTBuilder::createEmptyVarExpression):
(JSC::ASTBuilder::createDebugger):
(JSC::ASTBuilder::appendStatement):
(JSC::ASTBuilder::createVarStatement): Deleted.
(JSC::ASTBuilder::createLetStatement): Deleted.
(JSC::ASTBuilder::createConstStatement): Deleted.
(JSC::ASTBuilder::appendConstDecl): Deleted.

  • parser/NodeConstructors.h:

(JSC::CommaNode::CommaNode):
(JSC::SourceElements::SourceElements):
(JSC::SwitchNode::SwitchNode):
(JSC::BlockNode::BlockNode):
(JSC::ConstStatementNode::ConstStatementNode): Deleted.
(JSC::ConstDeclNode::ConstDeclNode): Deleted.

  • parser/Nodes.h:

(JSC::ConstDeclNode::hasInitializer): Deleted.
(JSC::ConstDeclNode::ident): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVariableDeclaration):
(JSC::Parser<LexerType>::parseWhileStatement):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseDefaultValueForDestructuringPattern):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseTryStatement):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseConstDeclaration): Deleted.
(JSC::Parser<LexerType>::parseConstDeclarationList): Deleted.

  • parser/Parser.h:

(JSC::isEvalNode):
(JSC::isEvalNode<EvalNode>):
(JSC::isArguments):
(JSC::isEval):
(JSC::isEvalOrArgumentsIdentifier):
(JSC::Scope::Scope):
(JSC::Scope::declareCallee):
(JSC::Scope::declareVariable):
(JSC::Scope::declareLexicalVariable):
(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::allowsVarDeclarations):
(JSC::Scope::allowsLexicalDeclarations):
(JSC::Scope::declareParameter):
(JSC::Scope::declareBoundParameter):
(JSC::Parser::destructuringKindFromDeclarationType):
(JSC::Parser::assignmentContextFromDeclarationType):
(JSC::Parser::isEvalOrArguments):
(JSC::Parser::currentScope):
(JSC::Parser::popScope):
(JSC::Parser::declareVariable):
(JSC::Parser::hasDeclaredVariable):
(JSC::Parser::setStrictMode):
(JSC::Parser::strictMode):
(JSC::Parser::isValidStrictMode):
(JSC::Parser::declareParameter):
(JSC::Parser::declareBoundParameter):
(JSC::Parser::breakIsValid):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createForInLoop):
(JSC::SyntaxChecker::createForOfLoop):
(JSC::SyntaxChecker::createEmptyStatement):
(JSC::SyntaxChecker::createDeclarationStatement):
(JSC::SyntaxChecker::createReturnStatement):
(JSC::SyntaxChecker::createBreakStatement):
(JSC::SyntaxChecker::createVarStatement): Deleted.
(JSC::SyntaxChecker::createLetStatement): Deleted.

  • parser/VariableEnvironment.h:

(JSC::VariableEnvironmentEntry::isCaptured):
(JSC::VariableEnvironmentEntry::isConst):
(JSC::VariableEnvironmentEntry::isVar):
(JSC::VariableEnvironmentEntry::isLet):
(JSC::VariableEnvironmentEntry::setIsCaptured):
(JSC::VariableEnvironmentEntry::setIsConst):
(JSC::VariableEnvironmentEntry::setIsVar):
(JSC::VariableEnvironmentEntry::setIsLet):
(JSC::VariableEnvironmentEntry::isConstant): Deleted.
(JSC::VariableEnvironmentEntry::setIsConstant): Deleted.

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::defineOwnProperty):
(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):
(JSC::lastInPrototypeChain):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::finishCreation):
(JSC::JSGlobalObject::addVar):
(JSC::JSGlobalObject::addConst): Deleted.

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::symbolTablePut):

  • tests/stress/const-and-with-statement.js: Added.

(truth):
(assert):
(shouldThrowInvalidConstAssignment):
(.):

  • tests/stress/const-exception-handling.js: Added.

(truth):
(assert):
(.):

  • tests/stress/const-loop-semantics.js: Added.

(truth):
(assert):
(shouldThrowInvalidConstAssignment):
(.):

  • tests/stress/const-not-strict-mode.js: Added.

(truth):
(assert):
(shouldThrowTDZ):
(.):

  • tests/stress/const-semantics.js: Added.

(truth):
(assert):
(shouldThrowInvalidConstAssignment):
(.):

  • tests/stress/const-tdz.js: Added.

(truth):
(assert):
(shouldThrowTDZ):
(.):

Source/WebInspectorUI:

"const" variables do not live on the global object and are only
accessible within the "Program" they're defined in. Therefore,
the WebInspector global must be defined as "var" and not "const".

  • UserInterface/Base/WebInspector.js:

LayoutTests:

"const" variables do not live on the global object. They
are only available in the "Program" (read: JavaScript file or
script tag) that they're defined in. Tests have been updated
accordingly to switch the "const" variables assumed to be globals
into "var"s. "var" declared variables in the top level scope
of a program do live on the global object.

  • fast/canvas/webgl/compressed-tex-image.html:
  • fast/dom/event-handler-attributes.html:
  • fast/forms/listbox-visible-size.html:
  • js/arguments-expected.txt:
  • js/arrowfunction-syntax-errors-expected.txt:
  • js/const-expected.txt:
  • js/const-without-initializer-expected.txt:
  • js/constant-count-expected.txt:
  • js/dom/inc-const-valueOf-expected.txt:
  • js/dom/script-tests/inc-const-valueOf.js:

(testPreIncConstVarWithAssign):

  • js/function-toString-parentheses-expected.txt:
  • js/kde/const-expected.txt:
  • js/kde/resources/const.js:
  • js/parser-syntax-check-expected.txt:
  • js/script-tests/arguments.js:

(argumentsVarUndefined):
(argumentsConst):
(argumentCalleeInException):
(argumentsConstUndefined): Deleted.

  • js/script-tests/class-syntax-declaration.js:

(A):

  • js/script-tests/class-syntax-expression.js:
  • js/script-tests/const-without-initializer.js:
  • js/script-tests/const.js:

(shouldThrowInvalidConstAssignment):
(assert):
(f):
(tryCatch1):
(tryCatch2):
(with1):
(with2):
(.):

  • js/script-tests/constant-count.js:

(f):

  • js/script-tests/function-dot-arguments.js:

(assignConstInitTest2.g):
(assignConstInitTest2):

  • js/script-tests/function-toString-parentheses.js:
  • js/script-tests/parser-syntax-check.js:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.6-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T7-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T8-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T9-expected.txt:
  • sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A13_T3-expected.txt:
  • sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A14_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T6-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T7-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T8-expected.txt:
  • transforms/3d/hit-testing/composited-hit-test.html:
  • transforms/3d/hit-testing/coplanar-with-camera.html:
  • transforms/3d/hit-testing/hover-rotated-negative-z.html:
  • transforms/3d/hit-testing/hover-rotated-with-children-negative-z.html:
  • transforms/3d/hit-testing/negative-zoffset-hit-test.html:
  • transforms/3d/hit-testing/overlapping-layers-hit-test.html:
  • transforms/3d/hit-testing/perspective-clipped.html:
  • transforms/3d/hit-testing/rotated-hit-test-with-child.html:
  • transforms/3d/hit-testing/rotated-hit-test.html:
  • transforms/3d/hit-testing/rotated-hit-test2.html:
  • transitions/resources/transition-test-helpers.js:

(roundNumber):

9:32 AM Changeset in webkit [187011] by Michael Catanzaro
  • 7 edits
    2 adds in trunk

[GTK] Add seccomp filters support
https://bugs.webkit.org/show_bug.cgi?id=110014

Reviewed by Žan Doberšek.

.:

Find needed compiler and linker flags for libseccomp.

  • Source/cmake/OptionsGTK.cmake:

Source/WebKit2:

Allow building with ENABLE_SECCOMP_FILTERS=ON. Based on work by Thiago Marcos P. Santos.

  • PlatformGTK.cmake: Support ENABLE_SECCOMP_FILTERS build option.
  • WebProcess/gtk/SeccompFiltersWebProcessGtk.cpp: Added.

(WebKit::SeccompFiltersWebProcessGtk::SeccompFiltersWebProcessGtk):
(WebKit::SeccompFiltersWebProcessGtk::platformInitialize):

  • WebProcess/gtk/SeccompFiltersWebProcessGtk.h: Added.
  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Initialize default
GTK+ web process seccomp filters.

Tools:

Add libseccomp to jhbuild modulesets.

  • gtk/jhbuild.modules:
6:16 AM Changeset in webkit [187010] by ddkilzer@apple.com
  • 5 edits in trunk/Source/WebKit/win

REGRESSION (r187002): Broke the Windows build: Reduce PassRefPtr in WebKit2 - 3
<https://bugs.webkit.org/show_bug.cgi?id=146995>

Attempt to fix the Windows build.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::createDocumentLoader):
(WebFrameLoaderClient::createFrame):
(WebFrameLoaderClient::createPlugin):

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebDocumentLoader.cpp:

(WebDocumentLoader::create):

  • WebDocumentLoader.h:
5:35 AM Changeset in webkit [187009] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r187008): CGPathCreateMutableCopyByTransformingPath() is not available on Windows
<https://bugs.webkit.org/show_bug.cgi?id=147077>

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::transform): Restore less efficient code path
for Windows.

Jul 18, 2015:

9:38 PM Changeset in webkit [187008] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Simplify Path(CG)::transform/translate
https://bugs.webkit.org/show_bug.cgi?id=147077

Reviewed by Simon Fraser.

No new tests; no behavior change.

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::translate):
(WebCore::Path::transform):
Use CGPathCreateMutableCopyByTransformingPath to do the copy and transform
in a single call instead of two.

Make use of transform() to implement translate() instead of duplicating the code.
Move the two functions near each other.

(WebCore::Path::boundingRect):
Remove irrelevant reference to Snow Leopard.

8:37 PM Changeset in webkit [187007] by Simon Fraser
  • 3 edits in trunk/Tools

MiniBrowser window title is just "Window" when page has no <title>
https://bugs.webkit.org/show_bug.cgi?id=147076

Reviewed by Tim Horton.

Make MiniBrowser windows show the filename from the URL if we never get a title changed
notification.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController updateTitle:]):
(-[WK1BrowserWindowController webView:didCommitLoadForFrame:]):
(-[WK1BrowserWindowController webView:didReceiveTitle:forFrame:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController updateTitle:]):
(-[WK2BrowserWindowController observeValueForKeyPath:ofObject:change:context:]):
(-[WK2BrowserWindowController webView:didCommitNavigation:]):

7:14 PM Changeset in webkit [187006] by mrajca@apple.com
  • 5 edits
    2 adds in trunk

Media Session: Add support for 'Content' interruption types
https://bugs.webkit.org/show_bug.cgi?id=147042

Reviewed by Eric Carlson.

Tests: Added media/session/content-interruptions

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::handleIndefinitePauseInterruption): Indefinitely pause the session by pausing media

elements and removing them from the set of active participating elements.

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::didReceiveStartOfInterruptionNotification): Implemented support for 'Content'

interruption types as described in 4.5.2.

6:36 PM Changeset in webkit [187005] by mrajca@apple.com
  • 2 edits in trunk/Source/WebCore

Media Session: add support for telephony interruptions
https://bugs.webkit.org/show_bug.cgi?id=147016

Reviewed by Eric Carlson.

  • platform/audio/mac/MediaSessionInterruptionProviderMac.mm:

(WebCore::callDidBeginRinging): Forward this event to media sessions as a 'Transient' interruption.
(WebCore::MediaSessionInterruptionProviderMac::beginListeningForInterruptions):
(WebCore::MediaSessionInterruptionProviderMac::stopListeningForInterruptions):

6:30 PM Changeset in webkit [187004] by mrajca@apple.com
  • 7 edits in trunk/Source/WebCore

Media Session: add infrastructure for testing interruptions
https://bugs.webkit.org/show_bug.cgi?id=147060

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.h: Export methods to be used with tests.
  • Modules/mediasession/MediaSessionManager.h: Ditto.
  • bindings/scripts/CodeGeneratorJS.pm: JSMediaSession needs to be marked with WEBCORE_EXPORT so it works with JSInternals.
  • testing/Internals.cpp:

(WebCore::Internals::sendMediaSessionStartOfInterruptionNotification): Let tests send interruptions to MediaSessionManager.
(WebCore::Internals::sendMediaSessionEndOfInterruptionNotification): Ditto.
(WebCore::Internals::mediaSessionCurrentState): Expose the current state of media sessions to tests.

  • testing/Internals.h:
  • testing/Internals.idl: Add interfaces for sending interruptions from JS tests.
5:36 PM Changeset in webkit [187003] by saambarati1@gmail.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

lexical scoping is broken with respect to "break" and "continue"
https://bugs.webkit.org/show_bug.cgi?id=147063

Reviewed by Filip Pizlo.

Bug #142944 which introduced "let" and lexical scoping
didn't properly hook into the bytecode generator's machinery
for calculating scope depth deltas for "break" and "continue". This
resulted in the bytecode generator popping an incorrect number
of scopes when lexical scopes were involved.

This patch fixes this problem and generalizes this machinery a bit.
This patch also renames old functions in a sensible way that is more
coherent in a world with lexical scoping.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::newLabelScope):
(JSC::BytecodeGenerator::emitProfileType):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::popLexicalScope):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::resolveType):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitGetParentScope):
(JSC::BytecodeGenerator::emitPopScope):
(JSC::BytecodeGenerator::emitPopWithOrCatchScope):
(JSC::BytecodeGenerator::emitPopScopes):
(JSC::BytecodeGenerator::calculateTargetScopeDepthForExceptionHandler):
(JSC::BytecodeGenerator::localScopeDepth):
(JSC::BytecodeGenerator::labelScopeDepth):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::pushScopedControlFlowContext):
(JSC::BytecodeGenerator::popScopedControlFlowContext):
(JSC::BytecodeGenerator::emitPushCatchScope):
(JSC::BytecodeGenerator::currentScopeDepth): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::hasFinaliser):
(JSC::BytecodeGenerator::scopeDepth): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ContinueNode::trivialTarget):
(JSC::BreakNode::trivialTarget):
(JSC::ReturnNode::emitBytecode):
(JSC::WithNode::emitBytecode):
(JSC::TryNode::emitBytecode):

  • tests/stress/lexical-scoping-break-continue.js: Added.

(assert):
(.):

5:16 PM Changeset in webkit [187002] by Gyuyoung Kim
  • 86 edits in trunk/Source

Reduce PassRefPtr in WebKit2 - 3
https://bugs.webkit.org/show_bug.cgi?id=146995

Reviewed by Daniel Bates.

To remove PassRefPtr, this patch reduces use of PassRefPtr in WebKit2.
Because some uses depend on WebCore, WebCore, WK1 ports are modified as well.

Source/WebCore:

  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::createPopupMenu):
(WebCore::EmptyChromeClient::createSearchPopupMenu):
(WebCore::EmptyFrameLoaderClient::createDocumentLoader):
(WebCore::EmptyFrameLoaderClient::createFrame):
(WebCore::EmptyFrameLoaderClient::createPlugin):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::init):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):

  • loader/FrameLoaderClient.h:
  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::scheduleSubresourceLoad):
(WebCore::ResourceLoadScheduler::schedulePluginStreamLoad):

  • loader/ResourceLoadScheduler.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::create):

  • loader/SubresourceLoader.h:
  • page/ChromeClient.h:
  • platform/graphics/texmap/TextureMapperBackingStore.h:
  • platform/graphics/texmap/TextureMapperLayer.h:

(WebCore::TextureMapperLayer::texture):

  • platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:

(WebCore::TextureMapperSurfaceBackingStore::texture):

  • platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
  • platform/graphics/texmap/TextureMapperTile.h:

(WebCore::TextureMapperTile::texture):

  • platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:

(WebCore::TextureMapperTiledBackingStore::texture):

  • platform/graphics/texmap/TextureMapperTiledBackingStore.h:
  • storage/StorageNamespace.h:

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createDocumentLoader):

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::createDocumentLoader):

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::getOrCreateUniqueIDBDatabase):

  • DatabaseProcess/DatabaseProcess.h:
  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::takeInitializationReply):

  • PluginProcess/PluginControllerProxy.h:
  • Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:

(WebKit::CoordinatedBackingStore::texture):

  • Shared/CoordinatedGraphics/CoordinatedBackingStore.h:

(WebKit::CoordinatedBackingStore::create):

  • Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:

(WebKit::WebCoordinatedSurface::create):
(WebKit::WebCoordinatedSurface::createWithSurface):

  • Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::webCryptoMasterKey):

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::webCryptoMasterKey):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createContextMenuProxy):
(WebKit::PageClientImpl::createColorPicker):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/Authentication/WebCredential.h:
  • UIProcess/Authentication/WebProtectionSpace.h:
  • UIProcess/AutoCorrectionCallback.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::webCryptoMasterKey):

  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::createPopupMenuProxy):
(WebKit::WebView::createContextMenuProxy):
(WebKit::WebView::createColorPicker):

  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/efl/WebViewEfl.cpp:

(WebKit::WebViewEfl::createPopupMenuProxy):
(WebKit::WebViewEfl::createContextMenuProxy):
(WebKit::WebViewEfl::createColorPicker):

  • UIProcess/efl/WebViewEfl.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createContextMenuProxy):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::dataSelectionForPasteboard):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createContextMenuProxy):
(WebKit::PageClientImpl::createColorPicker):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::dataSelectionForPasteboard):

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad):
(WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad):

  • WebProcess/Network/WebResourceLoadScheduler.h:
  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::fromNPP):
(WebKit::NetscapePlugin::snapshot):
(WebKit::NetscapePlugin::liveResourceData):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Plugin.h:
  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::snapshot):
(WebKit::PluginProxy::liveResourceData):

  • WebProcess/Plugins/PluginProxy.h:
  • WebProcess/Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::copy):

  • WebProcess/Storage/StorageNamespaceImpl.h:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toHistoryItem):

  • WebProcess/WebCoreSupport/SessionStateConversion.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createPopupMenu):
(WebKit::WebChromeClient::createSearchPopupMenu):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createDocumentLoader):
(WebKit::WebFrameLoaderClient::createFrame):
(WebKit::WebFrameLoaderClient::createPlugin):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::create):
(WebKit::WebPage::createDocumentLoader):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::lookupTextAtLocation):

4:54 PM Changeset in webkit [187001] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Scroll position jumps when scrolling scaling pages down in split view
https://bugs.webkit.org/show_bug.cgi?id=147072
rdar://problem/21769577

Reviewed by Sam Weinig.

When apple.com/music is in Split View at a reduced scale, scrolling the page
can cause unwanted scroll jumps. This happened because we'd enter
TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded() with a pending
layout, so run the autosizing logic. When scrolled near the bottom, the unconstrained
layout resulted in a shorter document, which truncated the scroll position. The
scaled layout then restored the longer document, but it also restored that
truncated scroll position.

Forcing a layout is sufficient to fix the bug for this page, and doing a single
layout (which will happen anyway) is preferable to running the autosize logic
if layout happens to be dirty.

I was not able to make a test to reproduce the problem. Entering
scaleViewToFitDocumentIfNeeded() with pending layout was triggerable
using a transform transition, but I was not able to reproduce incorrect
scroll position restoration.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):

4:41 PM Changeset in webkit [187000] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

inspector/console/command-line-api.html is slow on Debug Yosemite WK2

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=inspector%2Fconsole%2Fcommand-line-api.html>

  • platform/mac-wk2/TestExpectations: Mark test as slow on Debug

Yosemite WK2:

  • inspector/console/command-line-api.html
4:32 PM Changeset in webkit [186999] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/cache/disk-cache/disk-cache-disable.html is flaky on Release Yosemite WK2

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fcache%2Fdisk-cache%2Fdisk-cache-disable.html>

  • platform/mac-wk2/TestExpectations: Mark test as flaky on

Release Yosemite WK2:

  • http/tests/cache/disk-cache/disk-cache-disable.html
4:32 PM Changeset in webkit [186998] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

media/restore-from-page-cache.html is flaky on Debug Mavericks

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=media%2Frestore-from-page-cache.html>

When the test fails, the computed width and height is
300px × 150px instead of the expected 320px × 240px.

  • platform/mac/TestExpectations: Mark test as flaky on Debug Mavericks:
  • media/restore-from-page-cache.html
2:21 PM Changeset in webkit [186997] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk/Source/JavaScriptCore

Unreviewed, rolling out r186996.
https://bugs.webkit.org/show_bug.cgi?id=147070

Broke JSC tests (Requested by smfr on #webkit).

Reverted changeset:

"lexical scoping is broken with respect to "break" and
"continue""
https://bugs.webkit.org/show_bug.cgi?id=147063
http://trac.webkit.org/changeset/186996

1:12 PM Changeset in webkit [186996] by saambarati1@gmail.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

lexical scoping is broken with respect to "break" and "continue"
https://bugs.webkit.org/show_bug.cgi?id=147063

Reviewed by Filip Pizlo.

Bug #142944 which introduced "let" and lexical scoping
didn't properly hook into the bytecode generator's machinery
for calculating scope depth deltas for "break" and "continue". This
resulted in the bytecode generator popping an incorrect number
of scopes when lexical scopes were involved.

This patch fixes this problem and generalizes this machinery a bit.
This patch also renames old functions in a sensible way that is more
coherent in a world with lexical scoping.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::newLabelScope):
(JSC::BytecodeGenerator::emitProfileType):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::popLexicalScope):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::resolveType):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitGetParentScope):
(JSC::BytecodeGenerator::emitPopScope):
(JSC::BytecodeGenerator::emitPopWithOrCatchScope):
(JSC::BytecodeGenerator::emitPopScopes):
(JSC::BytecodeGenerator::calculateTargetScopeDepthForExceptionHandler):
(JSC::BytecodeGenerator::localScopeDepth):
(JSC::BytecodeGenerator::labelScopeDepth):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::pushScopedControlFlowContext):
(JSC::BytecodeGenerator::popScopedControlFlowContext):
(JSC::BytecodeGenerator::emitPushCatchScope):
(JSC::BytecodeGenerator::currentScopeDepth): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::hasFinaliser):
(JSC::BytecodeGenerator::scopeDepth): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ContinueNode::trivialTarget):
(JSC::BreakNode::trivialTarget):
(JSC::ReturnNode::emitBytecode):
(JSC::WithNode::emitBytecode):
(JSC::TryNode::emitBytecode):

  • tests/stress/lexical-scoping-break-continue.js: Added.

(assert):
(.):

12:48 PM Changeset in webkit [186995] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Skip input range repaint test.

  • platform/win/TestExpectations:
7:22 AM Changeset in webkit [186994] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186981): fast/repaint/block-inputrange-repaint.html is starting out life as flaky

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Frepaint%2Fblock-inputrange-repaint.html>

  • fast/repaint/block-inputrange-repaint.html:
  • Use setTimeout() to give WebKit time to repaint.
6:54 AM Changeset in webkit [186993] by ddkilzer@apple.com
  • 4 edits in trunk/LayoutTests

REGRESSION (r186905,r186992): Incorrect results for platform/{gtk,efl,win}/fast/shrink-wrap/rect-shrink-wrap-expected.txt

  • platform/efl/fast/shrink-wrap/rect-shrink-wrap-expected.txt:
  • platform/gtk/fast/shrink-wrap/rect-shrink-wrap-expected.txt:
  • platform/win/fast/shrink-wrap/rect-shrink-wrap-expected.txt:
  • Update to correct expected results.
5:54 AM Changeset in webkit [186992] by ddkilzer@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

REGRESSION (r186858): GTK and EFL ports don't composite <canvas> elements

See also r186905 for Windows.

  • platform/efl/fast/shrink-wrap/rect-shrink-wrap-expected.txt: Added.
  • platform/gtk/fast/shrink-wrap/rect-shrink-wrap-expected.txt: Added.
5:30 AM Changeset in webkit [186991] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r186976): Use piFloat instead of M_PI

Attempt to fix the following build failure:

PathUtilities.cpp(183): error C2065: 'M_PI' : undeclared identifier [...\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj]

  • platform/graphics/PathUtilities.cpp:

(WebCore::walkGraphAndExtractPolygon): Use piFloat since M_PI is
not defined on Windows.

5:20 AM Changeset in webkit [186990] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r186976): Windows build broke due to missing definition of M_PI

Attempt to fix the following build failure:

PathUtilities.cpp(182): error C2065: 'M_PI' : undeclared identifier [...\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj]

  • platform/graphics/PathUtilities.cpp: Include <wtf/MathExtras.h>.
5:19 AM Changeset in webkit [186989] by ddkilzer@apple.com
  • 3 edits in branches/safari-600.1.4.17-branch/LayoutTests

Merge r186988. rdar://problem/21709404

5:07 AM Changeset in webkit [186988] by ddkilzer@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION (r186982): http/tests/contentdispositionattachmentsandbox/form-submission-disabled.html and loader/meta-refresh-disabled.html fail

Part of:
<https://bugs.webkit.org/show_bug.cgi?id=147044>
<rdar://problem/21567820>

  • http/tests/contentdispositionattachmentsandbox/form-submission-disabled-expected.txt:
  • Fix line number of console message.
  • loader/meta-refresh-disabled-expected.txt:
  • Add newly expected console message.

Jul 17, 2015:

11:32 PM Changeset in webkit [186987] by commit-queue@webkit.org
  • 2 edits in trunk

Bring back the GNU ar check to create thin archives on non-Linux systems
https://bugs.webkit.org/show_bug.cgi?id=146681

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2015-07-17
Reviewed by Martin Robinson.

We already use GNU ar thin archive feature to save time and disk space
on creating static archives, but it is only enabled on Linux. Without
this feature, the debug build of WebCore can be larger than 4 GiB,
which can cause error because GNU ar format uses 32-bit integer to
store offsets in the symbol table. This patch is similar to
https://bugs.webkit.org/show_bug.cgi?id=128596.

  • Source/cmake/OptionsCommon.cmake:
10:51 PM Changeset in webkit [186986] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

DFG should have some obvious mitigations against watching structures that are unprofitable to watch
https://bugs.webkit.org/show_bug.cgi?id=147034

Reviewed by Mark Lam and Michael Saboff.

This implements two guards against the DFG watching structures that are likely to fire
their watchpoints:

  • Don't watch dictionaries or any structure that had a dictionary in its past. Dictionaries can be flattened, and then they can transform back to dictionaries.


  • Don't watch structures whose past structures were transitioned-away from while their transition watchpoints were being watched. This property gives us monotonicity: if we recompile because we watched structure S1 of object O, then we won't make the same mistake again when object O has structure S2, S3, and so on.


This is a 1.5% speed-up on Kraken. It does penalize some Octane tests, but it also seems to
help some of them, so on Octane it's basically neutral.

  • bytecode/Watchpoint.h:

(JSC::WatchpointSet::invalidate):
(JSC::WatchpointSet::isBeingWatched):
(JSC::WatchpointSet::addressOfState):
(JSC::WatchpointSet::addressOfSetIsNotEmpty):
(JSC::InlineWatchpointSet::touch):
(JSC::InlineWatchpointSet::isBeingWatched):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::createStructure):
(JSC::JSGlobalObject::registerWeakMap):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::didTransitionFromThisStructure):

  • runtime/Structure.h:
10:49 PM Changeset in webkit [186985] by fpizlo@apple.com
  • 8 edits
    2 deletes in trunk/Source/JavaScriptCore

Remove DFG::DesiredWriteBarriers because it's just a very difficult way of saying "please barrier the machine code block owner"
https://bugs.webkit.org/show_bug.cgi?id=147030

Reviewed by Andreas Kling.

All of the users of DesiredWriteBarriers were just using it to request that Plan
finalization executes a barrier on codeBlock->ownerExecutable. Indeed, that's the only
owning cell in the heap that compilation affects. So, we might as well just have Plan
unconditionally execute that barrier and then we don't need DesiredWriteBarriers at
all.

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGDesiredWriteBarriers.cpp: Removed.
  • dfg/DFGDesiredWriteBarriers.h: Removed.
  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::registerFrozenValues):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::reallyAdd):
(JSC::DFG::Plan::notifyCompiling):
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::cancel):

  • dfg/DFGPlan.h:
10:20 PM Changeset in webkit [186984] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION (r169105): Do not assign a renderer to multiple selection subtrees.
https://bugs.webkit.org/show_bug.cgi?id=147038
rdar://problem/21819351

Reviewed by David Kilzer.

A renderer should never be assigned to multiple selection subtrees. (Currently RenderObject maintains the last selection state.)
RenderView::applySubtreeSelection() loops from the start to the end of the selection to find renderers that are inside the selection.
However, in case of regions (when multiple selection roots are present) traversing the renderer tree by calling RenderObject::nextInPreOrder() could
end up going across selection roots.
This patch ensures that we assign renderers to a specific selection only when the current selection root and the renderer's selection root match.

Source/WebCore:

Test: fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees2.html

  • rendering/RenderView.cpp:

(WebCore::SelectionIterator::SelectionIterator):
(WebCore::SelectionIterator::current):
(WebCore::SelectionIterator::checkForSpanner):
(WebCore::RenderView::applySubtreeSelection):

LayoutTests:

  • fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees2-expected.txt: Added.
  • fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees2.html: Added.
9:44 PM Changeset in webkit [186983] by aestes@apple.com
  • 12 edits
    17 adds in branches/safari-600.1.4.17-branch

Merge r186982. rdar://problem/21709404

8:47 PM Changeset in webkit [186982] by aestes@apple.com
  • 12 edits
    17 adds in trunk

[iOS] Further tighten the sandbox around pages fetched with Content-Disposition: attachment
https://bugs.webkit.org/show_bug.cgi?id=147044
rdar://problem/21567820

Reviewed by Brady Eidson.

Source/WebCore:

In addition to placing resources fetched with 'Content-Disposition: attachment' in a unique origin,
this change does the following:

  • Switches the sandbox type from SandboxOrigin to SandboxAll, which enforces the same restrictions as <iframe sandbox>.
  • Disables processing of <meta http-equiv> elements.
  • Disables loading of cross-origin subframes.

Tests: http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled.html

http/tests/contentdispositionattachmentsandbox/form-submission-disabled.html
http/tests/contentdispositionattachmentsandbox/http-equiv-disabled.html
http/tests/contentdispositionattachmentsandbox/plugins-disabled.html
http/tests/contentdispositionattachmentsandbox/scripts-disabled.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Switched to calling Document::httpEquivPolicy(). Logged an error to the console for policies other than Enabled.
(WebCore::Document::initSecurityContext): Switched sandbox enforcement from SandboxOrigin to SandboxAll.
(WebCore::Document::httpEquivPolicy): Returned a HttpEquivPolicy based on shouldEnforceContentDispositionAttachmentSandbox() and Settings::httpEquivEnabled().
(WebCore::Document::shouldEnforceContentDispositionAttachmentSandbox): Returned true if Settings::contentDispositionAttachmentSandboxEnabled()
and the document was fetched as an attachment.

  • dom/Document.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest): When requesting a subframe main resource when the parent frame enforces an attachment sandbox,
only continue if the parent frame's SecurityOrigin allows the request.

  • page/Settings.in: Added contentDispositionAttachmentSandboxEnabled with an initial value of false.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]): Enabled Content-Disposition: attachment sandbox on iOS.

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Enabled Content-Disposition: attachment sandbox on iOS.

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::decidePolicyForResponse): Only log the message about attachments if the custom policy delegate is enabled.
This matches the behavior of DumpRenderTree.

LayoutTests:

  • http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt: Added.
  • http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled.html: Added.
  • http/tests/contentdispositionattachmentsandbox/form-submission-disabled-expected.txt: Added.
  • http/tests/contentdispositionattachmentsandbox/form-submission-disabled.html: Added.
  • http/tests/contentdispositionattachmentsandbox/http-equiv-disabled-expected.txt: Added.
  • http/tests/contentdispositionattachmentsandbox/http-equiv-disabled.html: Added.
  • http/tests/contentdispositionattachmentsandbox/plugins-disabled-expected.html: Added.
  • http/tests/contentdispositionattachmentsandbox/plugins-disabled.html: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/cross-origin-frames-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/form-submission-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/http-equiv-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/plugins-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/scripts-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/scripts-disabled-expected.txt: Added.
  • http/tests/contentdispositionattachmentsandbox/scripts-disabled.html: Added.
8:46 PM Changeset in webkit [186981] by Alan Bujtas
  • 3 edits
    2 adds in trunk

(display: block)input range's thumb disappears when moved.
https://bugs.webkit.org/show_bug.cgi?id=146896
<rdar://problem/21787807>

Reviewed by Simon Fraser.

Since the thumb is positioned after the layout for the input (shadow) subtree is finished, the repaint rects
issued during the layout will not cover the re-positioned thumb.
We need to issue a repaint soon after the thumb is re-positioned.

Source/WebCore:

Test: fast/repaint/block-inputrange-repaint.html

  • html/shadow/SliderThumbElement.cpp:

(WebCore::RenderSliderContainer::layout):

LayoutTests:

  • fast/repaint/block-inputrange-repaint-expected.txt: Added.
  • fast/repaint/block-inputrange-repaint.html: Added.
8:16 PM Changeset in webkit [186980] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Attempt to fix the build.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless):

  • html/HTMLMediaElement.h:
5:30 PM Changeset in webkit [186979] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Picture in Picture interacts poorly with AirPlay/HDMI
https://bugs.webkit.org/show_bug.cgi?id=147061
<rdar://problem/19192076>

Reviewed by Tim Horton.

When we are actively playing to an external target, the
picture in picture button should be hidden.

Also, the availability of picture in picture is also
dependent on AirPlay, so that we don't auto-pip when
we're displaying on a TV.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.configureInlineControls): Call the update function.
(ControllerIOS.prototype.updatePictureInPictureButton): Add or remove a hidden class.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::allowsPictureInPicture): Check Airplay status.

5:20 PM Changeset in webkit [186978] by timothy_horton@apple.com
  • 6 edits in trunk/Source

[iOS] TextIndicator has a large forehead when line-height > 1
https://bugs.webkit.org/show_bug.cgi?id=147058
<rdar://problem/21643094>

Reviewed by Dean Jackson.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::getClippedVisibleTextRectangles):

  • editing/FrameSelection.h:

Add a parameter controlling whether getClippedVisibleTextRectangles
returns selection-height rects (including extra line-height) or text-height
rects (including only the text height). Plumb it down.

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
(WebCore::TextIndicator::createWithSelectionInFrame):
Use the tighter text-height rects on iOS, where there's no selection highlight to cover up.
Remove an assertion that is no longer always true, and which is mostly obsoleted by the
fact that we don't let FrameSnapshotting code arbitrarily decide the rect to snapshot anymore.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
Apply a review comment that I left myself and then forgot about.

4:59 PM Changeset in webkit [186977] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Implement selectionInteractionAssistant accessor.
https://bugs.webkit.org/show_bug.cgi?id=147054
rdar://problem/20864286

Reviewed by Tim Horton.

One more change to adopt the new selection interaction
model on iOS.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView selectionInteractionAssistant]):

4:55 PM Changeset in webkit [186976] by timothy_horton@apple.com
  • 9 edits in trunk

Improve rect shrink-wrapping algorithm
https://bugs.webkit.org/show_bug.cgi?id=147037
<rdar://problem/21643094>

Reviewed by Simon Fraser.

  • platform/graphics/FloatPoint.h:

(WebCore::areEssentiallyEqual):
Added; implementation is the same as FloatSize's.

  • platform/graphics/PathUtilities.cpp:

(WebCore::FloatPointGraph::FloatPointGraph):
(WebCore::FloatPointGraph::~FloatPointGraph):
(WebCore::FloatPointGraph::Node::Node):
(WebCore::FloatPointGraph::Node::nextPoints):
(WebCore::FloatPointGraph::Node::addNextPoint):
(WebCore::FloatPointGraph::Node::isVisited):
(WebCore::FloatPointGraph::Node::visit):
(WebCore::FloatPointGraph::Node::reset):
(WebCore::FloatPointGraph::reset):
(WebCore::FloatPointGraph::findOrCreateNode):
(WebCore::findLineSegmentIntersection):
(WebCore::addIntersectionPoints):
(WebCore::walkGraphAndExtractPolygon):
(WebCore::findUnvisitedPolygonStartPoint):
(WebCore::unitePolygons):
(WebCore::edgesForRect):
(WebCore::PathUtilities::pathWithShrinkWrappedRects):
(WebCore::addShrinkWrapRightCorner): Deleted.
(WebCore::addShrinkWrapLeftCorner): Deleted.
(WebCore::addShrinkWrappedPathForRects): Deleted.
(WebCore::rectsIntersectOrTouch): Deleted.
(WebCore::findSetContainingRect): Deleted.
Add a new implementation of shrink-wrap, which is significantly more
generic than the old one, which assumed a top-down progression of rects.

This version uses polygon intersection to find the path around the
set of rects, and then follows said path and adds appropriately-sized
arcs for the corners.

The polygon intersection algorithm first finds all the intersection points
between all of the rects, then builds a graph of edges outward from one point.
It then traverses the graph, choosing at each point the next edge which
has not been visited and has the greatest interior angle, recording the polygon as it goes.

If at the end of the traversal we have not returned to the initial node,
we give up on shrink-wrapping and just use a bounding box around the rects.

If any of the original rects have not been visited at all, we repeat the traversal
starting with that rect, making an additional polygon (since we removed completely contained
rects before we started, having not visited the rect at all means that it's not connected
to the others).

Once we have a set of united polygons, we follow each one, determining the ideal (always
equal in width and height, never more than half the length of either edge, so that we always
have a smooth curve) arc radius and projecting it onto the edge, and then
adding an arc between the end of the previous path and beginning of the next.

Because the shrink-wrap algorithm is fairly expensive, if there are more than 20 rects,
we fall back to a bounding box. Given the current use cases, this is more than enough
rects, but can certainly be adjusted in the future if needed.

  • testing/Internals.cpp:

(WebCore::Internals::pathWithShrinkWrappedRects):

  • testing/Internals.h:
  • testing/Internals.idl:

Add a radius parameter.

  • fast/shrink-wrap/rect-shrink-wrap-expected.png:
  • fast/shrink-wrap/rect-shrink-wrap.html:

Add a radius parameter to testRects, defaulting to 8.

Add an offset parameter to testRects, making it easier to slide
the rect sets around.

Add some more test cases.

4:47 PM Changeset in webkit [186975] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.41

New tag.

4:32 PM Changeset in webkit [186974] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

AX: iframe within table cell is inaccessible to VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=147001
<rdar://problem/21106945>

Patch by Nan Wang <n_wang@apple.com> on 2015-07-17
Reviewed by Chris Fleizach.

Source/WebCore:

When a table cell is created before its parent table determines if it should be ignored or not,
the table cell may cache the wrong role. Fix that by allowing each table cell to update its role
after the table makes this determination.

Test: accessibility/iframe-within-cell.html

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::addChildrenFromSection):

LayoutTests:

  • accessibility/iframe-within-cell-expected.txt: Added.
  • accessibility/iframe-within-cell.html: Added.
4:32 PM Changeset in webkit [186973] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

4:26 PM Changeset in webkit [186972] by bshafiei@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning.

4:26 PM Changeset in webkit [186971] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

style.fontFamily accessor crashes on unstyled node created from DOMParser().parseFromString()
https://bugs.webkit.org/show_bug.cgi?id=147026
<rdar://problem/21864487>

Reviewed by Andreas Kling.

Source/WebCore:

Font CSS properties are a little special because they are used as indices into caches.
Normally, StyleResolver gives all nodes a default font family, so our cache works correctly.
However, if the document doesn't have a Settings object, StyleResolver wasn't doing this.
Documents created from DOMParser().parseFromString() don't have a Settings object.

Test: fast/text/crash-font-family-parsed.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::initializeFontStyle): Set a font family even if we don't have a
Settings object.

LayoutTests:

  • fast/text/crash-font-family-parsed-expected.txt: Added.
  • fast/text/crash-font-family-parsed.html: Added.
4:18 PM Changeset in webkit [186970] by Yusuke Suzuki
  • 2 edits
    1 move in trunk/LayoutTests

Unreviewed, rename test file from promise-resolve-non-dom.js to promise-resolve-in-non-dom.js
https://bugs.webkit.org/show_bug.cgi?id=146828

This is the simple follow up patch.
When executing the JSC stress tests, script-tests's file name and the expectation file name should be equal.

  • js/promise-resolve-in-non-dom.html:
  • js/script-tests/promise-resolve-in-non-dom.js: Renamed from LayoutTests/js/script-tests/promise-resolve-non-dom.js.

(value.then):

  • js/script-tests/promise-resolve-non-dom.js:

(value.then): Deleted.

4:05 PM Changeset in webkit [186969] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r186964): Crash in WebKit2.CloseFromWithinCreatePage
https://bugs.webkit.org/show_bug.cgi?id=147055

Reviewed by Alex Christensen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::createNewPage): Grab the main frame’s URL before calling out to the
client, who may destroy the frame.

4:01 PM Changeset in webkit [186968] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Video posters disappear once media has loaded
https://bugs.webkit.org/show_bug.cgi?id=147045

Reviewed by Simon Fraser.

Source/WebCore:

After r184932, all video elements are composited. However, there is logic in
RenderLayerBacking::updateConfiguration() which adds the video layer to the page
if the video is composited, without checking first to see if it should actually
do so.

Test: compositing/video/poster.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):

LayoutTests:

  • compositing/video/poster-expected.html: Added.
  • compositing/video/poster.html: Added.
3:54 PM Changeset in webkit [186967] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.8.4

New tag.

3:40 PM Changeset in webkit [186966] by Yusuke Suzuki
  • 11 edits
    6 adds in trunk

Integrate automatic microtask draining into JSC framework and re-enable Promise
https://bugs.webkit.org/show_bug.cgi?id=146828

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Add automatic microtask draining system into JSC framework.
When the depth of VM lock becomes 0, before this, we drain the queued microtasks.
Enqueuing behavior can be injected by the JSGlobalObject's method table.
It is utilized in WebCore to post the microtask to WebCore's event loop.

In the case of JSC interactive shell, VM depth is always greater than 0.
So we manually drains the queued microtasks after evaluating the written line.

Since now JSC framework has the microtask queue, we can drain the queued microtasks.
So re-enable the Promise in the JSC framework context.

  • API/JSContextRef.cpp:

(javaScriptRuntimeFlags): Deleted.

  • API/tests/testapi.c:

(main):

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):

  • jsc.cpp:

(runInteractive):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::queueMicrotask):

  • runtime/JSLock.cpp:

(JSC::JSLock::willReleaseLock):

  • runtime/VM.cpp:

(JSC::VM::queueMicrotask):
(JSC::VM::drainMicrotasks):
(JSC::QueuedTask::run):

  • runtime/VM.h:

(JSC::QueuedTask::QueuedTask):

LayoutTests:

Add Promise tests mainly focusing on microtasks.
They can be executed in JSC shell. So they are locate in js/ directory (not js/dom).

  • js/promise-nested-microtasks-expected.txt: Added.
  • js/promise-nested-microtasks.html: Added.
  • js/promise-resolve-in-non-dom-expected.txt: Added.
  • js/promise-resolve-in-non-dom.html: Added.
  • js/script-tests/promise-nested-microtasks.js: Added.

(Promise.resolve.then):

  • js/script-tests/promise-resolve-non-dom.js: Added.

(value.then):

  • resources/standalone-post.js:
2:47 PM Changeset in webkit [186965] by commit-queue@webkit.org
  • 4 edits in trunk

[Content Extensions] Term::isUniversalTransition() incorrectly expects the end-of-line assertion in character sets
https://bugs.webkit.org/show_bug.cgi?id=147032

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-17
Reviewed by Alex Christensen.

Source/WebCore:

  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::isUniversalTransition):
The universal transition is not supposed to account for the end-of-line assertion,
it should be a transition matching any character.

Here, we were counting 128 transitions, the 127 characters plus the
transition on zero we are using for EOL.

The end result is Term::isUniversalTransition() was completely useless.
The only code using it is the pattern simplificaton phase. That part
was not working correclty and was allowing useless ".*" in the patterns.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

Test that the useless terms are eliminated by counting
the number of NFA nodes generated.

2:16 PM Changeset in webkit [186964] by mitz@apple.com
  • 10 edits
    1 add in trunk

Source/WebCore:
WebCore part of <rdar://problem/21803781> The external URL policy is not reported correctly in navigation actions that create new windows
https://bugs.webkit.org/show_bug.cgi?id=147040

Reviewed by Dean Jackson.

Test: TestWebKitAPI/Tests/WebKit2Cocoa/ShouldOpenExternalURLsInNewWindowActions.mm

  • loader/FrameLoader.cpp:

(WebCore::shouldOpenExternalURLsPolicyToApply): Pulled the logic out of
applyShouldOpenExternalURLsPolicyToNewDocumentLoader into this new helper.
(WebCore::FrameLoader::loadURL): When targeting a new frame, apply the external URLs policy
to the action passed to checkNewWindowPolicy.
(WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader): Call the new
helper function.
(WebCore::createWindow): Include the external URL policy in the action passed to
createWindow.

Source/WebKit2:
WebKit2 part of <rdar://problem/21803781> The external URL policy is not reported correctly in navigation actions that create new windows
https://bugs.webkit.org/show_bug.cgi?id=147040

Reviewed by Dean Jackson.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPage): Disallow App Links if the new page is for the
same protocol, host and port as the main frame of this page.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction): Disallow App Links if
m_shouldSuppressAppLinksInNextNavigationPolicyDecision is set, and reset it. See below for
when we set it.
(WebKit::WebPageProxy::decidePolicyForNewWindowAction): Disallow App Links if the new window
is for the same protocol, host and port as the main frame of this page.
(WebKit::WebPageProxy::createNewPage): Make the new page disallow App Links in the first
policy decision if it is for the same protocol, host and port as the main frame of this
page.

  • UIProcess/WebPageProxy.h: Added m_shouldSuppressAppLinksInNextNavigationPolicyDecision

member variable.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow): Pass the shouldOpenExternalURLsPolicy.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto.

Tools:
Tests for <rdar://problem/21803781> The external URL policy is not reported correctly in navigation actions that create new windows
https://bugs.webkit.org/show_bug.cgi?id=147040

Reviewed by Dean Jackson.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ShouldOpenExternalURLsInNewWindowActions.mm: Added.

(-[ShouldOpenExternalURLsInNewWindowActionsController webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[ShouldOpenExternalURLsInNewWindowActionsController webView:didFinishNavigation:]):
(-[ShouldOpenExternalURLsInNewWindowActionsController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

12:35 PM Changeset in webkit [186963] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

ScrollView.h should be self-contained
https://bugs.webkit.org/show_bug.cgi?id=147004

Reviewed by Sam Weinig.

  • platform/ScrollView.h:
12:23 PM Changeset in webkit [186962] by bshafiei@apple.com
  • 33 edits in tags/Safari-601.1.36.2

Merged r186881. rdar://problem/21822278

12:00 PM Changeset in webkit [186961] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Rolling r186895 back in, in its entirety.
https://bugs.webkit.org/show_bug.cgi?id=146976

Rubberstamped by Tim Horton.

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::createCookies): Use new CFNetwork SPI.

11:50 AM Changeset in webkit [186960] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.36.2/Source

Versioning.

11:48 AM Changeset in webkit [186959] by saambarati1@gmail.com
  • 65 edits in trunk

Function parameters should be parsed in the same parser arena as the function body
https://bugs.webkit.org/show_bug.cgi?id=145995

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

This patch changes how functions are parsed in JSC. A function's
parameters are now parsed in the same arena as the function itself.
This allows us to arena allocate all destructuring AST nodes and
the FunctionParameters node. This will help make implementing ES6
default parameter values sane.

A source code that represents a function now includes the text of the function's
parameters. The starting offset is at the opening parenthesis of the parameter
list or at the starting character of the identifier for arrow functions that
have single arguments and don't start with parenthesis.

For example:

"function (param1, param2) { ... }"


| This offset used to be the starting offset of a function's SourceCode


| This is the new starting offset for a function's SourceCode.

This requires us to change how some offsets are calculated
and also requires us to report some different line numbers for internal
metrics that use a SourceCode's starting line and column numbers.

This patch also does a bit of cleanup with regards to how
functions are parsed in general (especially arrow functions).
It removes some unnecessary #ifdefs and the likes for arrow
to make things clearer and more deliberate.

  • API/JSScriptRef.cpp:

(parseScript):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutableInternal):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedFunctionExecutable::parameterCount): Deleted.

  • bytecode/UnlinkedCodeBlock.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::DestructuringAssignmentNode::emitBytecode):
(JSC::assignDefaultValueIfUndefined):
(JSC::ArrayPatternNode::collectBoundIdentifiers):
(JSC::DestructuringPatternNode::~DestructuringPatternNode): Deleted.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createClassExpr):
(JSC::ASTBuilder::createFunctionExpr):
(JSC::ASTBuilder::createFunctionBody):
(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createElementList):
(JSC::ASTBuilder::createFormalParameterList):
(JSC::ASTBuilder::appendParameter):
(JSC::ASTBuilder::createClause):
(JSC::ASTBuilder::createClauseList):
(JSC::ASTBuilder::createFuncDeclStatement):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::createForOfLoop):
(JSC::ASTBuilder::isResolve):
(JSC::ASTBuilder::createDestructuringAssignment):
(JSC::ASTBuilder::createArrayPattern):
(JSC::ASTBuilder::appendArrayPatternSkipEntry):
(JSC::ASTBuilder::appendArrayPatternEntry):
(JSC::ASTBuilder::appendArrayPatternRestEntry):
(JSC::ASTBuilder::finishArrayPattern):
(JSC::ASTBuilder::createObjectPattern):
(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::createBindingLocation):
(JSC::ASTBuilder::setEndOffset):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::Lexer):
(JSC::Lexer<T>::nextTokenIsColon):
(JSC::Lexer<T>::setTokenPosition):
(JSC::Lexer<T>::lex):
(JSC::Lexer<T>::clear):

  • parser/Lexer.h:

(JSC::Lexer::setIsReparsingFunction):
(JSC::Lexer::isReparsingFunction):
(JSC::Lexer::lineNumber):
(JSC::Lexer::setIsReparsing): Deleted.
(JSC::Lexer::isReparsing): Deleted.

  • parser/NodeConstructors.h:

(JSC::TryNode::TryNode):
(JSC::FunctionParameters::FunctionParameters):
(JSC::FuncExprNode::FuncExprNode):
(JSC::FuncDeclNode::FuncDeclNode):
(JSC::ArrayPatternNode::ArrayPatternNode):
(JSC::ObjectPatternNode::ObjectPatternNode):
(JSC::BindingNode::BindingNode):
(JSC::DestructuringAssignmentNode::DestructuringAssignmentNode):
(JSC::ParameterNode::ParameterNode): Deleted.
(JSC::ArrayPatternNode::create): Deleted.
(JSC::ObjectPatternNode::create): Deleted.
(JSC::BindingNode::create): Deleted.

  • parser/Nodes.cpp:

(JSC::ProgramNode::ProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionBodyNode::FunctionBodyNode):
(JSC::FunctionBodyNode::finishParsing):
(JSC::FunctionNode::FunctionNode):
(JSC::FunctionNode::finishParsing):
(JSC::FunctionParameters::create): Deleted.
(JSC::FunctionParameters::FunctionParameters): Deleted.
(JSC::FunctionParameters::~FunctionParameters): Deleted.

  • parser/Nodes.h:

(JSC::ProgramNode::startColumn):
(JSC::ProgramNode::endColumn):
(JSC::EvalNode::startColumn):
(JSC::EvalNode::endColumn):
(JSC::FunctionParameters::size):
(JSC::FunctionParameters::at):
(JSC::FunctionParameters::append):
(JSC::FuncExprNode::body):
(JSC::DestructuringPatternNode::~DestructuringPatternNode):
(JSC::DestructuringPatternNode::isBindingNode):
(JSC::DestructuringPatternNode::emitDirectBinding):
(JSC::ArrayPatternNode::appendIndex):
(JSC::ObjectPatternNode::appendEntry):
(JSC::BindingNode::boundProperty):
(JSC::BindingNode::divotStart):
(JSC::BindingNode::divotEnd):
(JSC::DestructuringAssignmentNode::bindings):
(JSC::FuncDeclNode::body):
(JSC::ParameterNode::pattern): Deleted.
(JSC::ParameterNode::nextParam): Deleted.
(JSC::FunctionParameters::patterns): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::~Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::allowAutomaticSemicolon):
(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseArrowFunctionSingleExpressionBodySourceElements):
(JSC::Parser<LexerType>::tryParseDestructuringPatternExpression):
(JSC::Parser<LexerType>::parseSwitchClauses):
(JSC::Parser<LexerType>::parseSwitchDefaultClause):
(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::operatorString):
(JSC::Parser<LexerType>::parseArrowFunctionSingleExpressionBody): Deleted.

  • parser/Parser.h:

(JSC::Parser::positionBeforeLastNewline):
(JSC::Parser::locationBeforeLastToken):
(JSC::Parser::findCachedFunctionInfo):
(JSC::Parser::isofToken):
(JSC::Parser::isEndOfArrowFunction):
(JSC::Parser::isArrowFunctionParamters):
(JSC::Parser::tokenStart):
(JSC::Parser::isLETMaskedAsIDENT):
(JSC::Parser::autoSemiColon):
(JSC::Parser::setEndOfStatement):
(JSC::Parser::canRecurse):
(JSC::Parser<LexerType>::parse):
(JSC::parse):

  • parser/ParserFunctionInfo.h:
  • parser/ParserModes.h:

(JSC::functionNameIsInScope):

  • parser/SourceCode.h:

(JSC::makeSource):
(JSC::SourceCode::subExpression):
(JSC::SourceCode::subArrowExpression): Deleted.

  • parser/SourceProviderCache.h:

(JSC::SourceProviderCache::get):

  • parser/SourceProviderCacheItem.h:

(JSC::SourceProviderCacheItem::endFunctionToken):
(JSC::SourceProviderCacheItem::usedVariables):
(JSC::SourceProviderCacheItem::writtenVariables):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::SyntaxChecker):
(JSC::SyntaxChecker::createClassExpr):
(JSC::SyntaxChecker::createFunctionExpr):
(JSC::SyntaxChecker::createFunctionBody):
(JSC::SyntaxChecker::createArrowFunctionExpr):
(JSC::SyntaxChecker::setFunctionNameStart):
(JSC::SyntaxChecker::createArguments):
(JSC::SyntaxChecker::createPropertyList):
(JSC::SyntaxChecker::createElementList):
(JSC::SyntaxChecker::createFormalParameterList):
(JSC::SyntaxChecker::appendParameter):
(JSC::SyntaxChecker::createClause):
(JSC::SyntaxChecker::createClauseList):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/Completion.cpp:

(JSC::checkSyntax):

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax):

  • tests/controlFlowProfiler/conditional-expression.js:

(testConditionalFunctionCall):

LayoutTests:

  • fast/profiler/anonymous-event-handler-expected.txt:
  • fast/profiler/anonymous-function-called-from-different-contexts-expected.txt:
  • fast/profiler/anonymous-function-calls-built-in-functions-expected.txt:
  • fast/profiler/anonymous-function-calls-eval-expected.txt:
  • fast/profiler/anonymous-functions-with-display-names-expected.txt:
  • fast/profiler/apply-expected.txt:
  • fast/profiler/built-in-function-calls-anonymous-expected.txt:
  • fast/profiler/built-in-function-calls-user-defined-function-expected.txt:
  • fast/profiler/call-expected.txt:
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt:
  • fast/profiler/compare-multiple-profiles-expected.txt:
  • fast/profiler/constructor-expected.txt:
  • fast/profiler/dead-time-expected.txt:
  • fast/profiler/document-dot-write-expected.txt:
  • fast/profiler/event-handler-expected.txt:
  • fast/profiler/execution-context-and-eval-on-same-line-expected.txt:
  • fast/profiler/inline-event-handler-expected.txt:
  • fast/profiler/many-calls-in-the-same-scope-expected.txt:
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt:
  • fast/profiler/multiple-and-different-scoped-function-calls-expected.txt:
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt:
  • fast/profiler/multiple-frames-expected.txt:
  • fast/profiler/named-functions-with-display-names-expected.txt:
  • fast/profiler/nested-anonymous-functon-expected.txt:
  • fast/profiler/nested-start-and-stop-profiler-expected.txt:
  • fast/profiler/one-execution-context-expected.txt:
  • fast/profiler/profile-calls-in-included-file-expected.txt:
  • fast/profiler/profile-with-no-title-expected.txt:
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt:
  • fast/profiler/profiling-from-a-nested-location-expected.txt:
  • fast/profiler/simple-event-call-expected.txt:
  • fast/profiler/simple-no-level-change-expected.txt:
  • fast/profiler/start-and-stop-profiler-multiple-times-expected.txt:
  • fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt:
  • fast/profiler/stop-profiling-after-setTimeout-expected.txt:
  • fast/profiler/stop-then-function-call-expected.txt:
  • fast/profiler/two-execution-contexts-expected.txt:
  • fast/profiler/user-defined-function-calls-built-in-functions-expected.txt:
  • fast/profiler/window-dot-eval-expected.txt:
  • js/dom/script-start-end-locations-expected.txt:
11:46 AM Changeset in webkit [186958] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.36.2

New tag.

11:28 AM Changeset in webkit [186957] by commit-queue@webkit.org
  • 7 edits
    9 adds in trunk

[Content Extensions] CSS-display-none rules are not working properly
https://bugs.webkit.org/show_bug.cgi?id=147024

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-17
Reviewed by Sam Weinig.

Source/WebCore:

There were 2 bugs prevening rules with css-display-none and a url-filter from working
correctly.

First, ContentExtensions::serializeActions() was merging selectors regardless of their
trigger. All the CSS Selectors would be grouped together and applied regardless of which
rule apply.

That problem was fixed by grouping CSS rules by trigger. We want all the undistinguishable
CSS rules to be merged. The trigger makes 2 rules dinstinguishable as one rule can apply
on a page while the next rule does not. The simplest approach is to group by trigger.

The second problem had to do with rules added before the document is created.
When accumulating those rules, we were only keeping the last one. The reason was that
DocumentLoader::addPendingContentExtensionDisplayNoneSelector() would only keep a single
selector list by extension.

This is fixed by keeping a vector of all the rules that apply.

Tests: http/tests/contentextensions/css-display-none-with-different-case-sensitivity-are-not-merged.html

http/tests/contentextensions/css-display-none-with-different-triggers-are-not-merged.html
http/tests/contentextensions/two-distinguishable-css-display-none-rules-on-main-resource.html

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::serializeActions):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Trigger::isEmpty):
(WebCore::ContentExtensions::TriggerHash::hash):
(WebCore::ContentExtensions::TriggerHash::equal):
(WebCore::ContentExtensions::TriggerHashTraits::constructDeletedValue):
(WebCore::ContentExtensions::TriggerHashTraits::isDeletedValue):
(WebCore::ContentExtensions::TriggerHashTraits::emptyValue):
(WebCore::ContentExtensions::TriggerHashTraits::isEmptyValue):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad): Deleted.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::addPendingContentExtensionDisplayNoneSelector):

  • loader/DocumentLoader.h:

LayoutTests:

  • http/tests/contentextensions/css-display-none-with-different-case-sensitivity-are-not-merged-expected.txt: Added.
  • http/tests/contentextensions/css-display-none-with-different-case-sensitivity-are-not-merged.html: Added.
  • http/tests/contentextensions/css-display-none-with-different-case-sensitivity-are-not-merged.html.json: Added.
  • http/tests/contentextensions/css-display-none-with-different-triggers-are-not-merged-expected.txt: Added.
  • http/tests/contentextensions/css-display-none-with-different-triggers-are-not-merged.html: Added.
  • http/tests/contentextensions/css-display-none-with-different-triggers-are-not-merged.html.json: Added.
  • http/tests/contentextensions/two-distinguishable-css-display-none-rules-on-main-resource-expected.txt: Added.
  • http/tests/contentextensions/two-distinguishable-css-display-none-rules-on-main-resource.html: Added.
  • http/tests/contentextensions/two-distinguishable-css-display-none-rules-on-main-resource.html.json: Added.
11:24 AM Changeset in webkit [186956] by timothy_horton@apple.com
  • 9 edits in trunk/Source

iOS TextIndicators include text that is not supposed to be indicated
https://bugs.webkit.org/show_bug.cgi?id=147028
<rdar://problem/21643094>

Reviewed by Sam Weinig.

Paint the selection and background, but not other foregrounds, for iOS TextIndicators.

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRect):

  • page/FrameSnapshotting.h:

Add a new snapshot option where we'll paint backgrounds and the selected
foreground and nothing else.
Pass the new snapshot option through as a paint behavior.

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
Implement the incantations necessary to make a temporary selection
change not get sent to the UI process and actually have WebCore know about it
and accurately respond to questions about it.

(WebCore::TextIndicator::createWithSelectionInFrame):
Paint selection and backgrounds on iOS.

  • rendering/PaintPhase.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionColor):
Add a new paint behavior, SelectionAndBackgroundsOnly, which behaves
the same as selection only except it allows backgrounds to paint.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::shouldCreateTransientPaintingSnapshot):

11:11 AM Changeset in webkit [186955] by mark.lam@apple.com
  • 25 edits in trunk

Remove leak of objects between isolated worlds on custom events, message events, and pop state events.
https://bugs.webkit.org/show_bug.cgi?id=118884

Reviewed by Filip Pizlo and Mark Lam.
Patch by Keith Miller <keith_miller@apple.com>.

Source/WebCore:

Tests: fast/events/event-leak-objects.html

fast/events/event-properties-gc.html

Fixes an issue where objects passed as certain properties of events could cross isolated worlds. This
was fixed by checking that any object passed by an event must be serializable or originate from the same
isolated world as the one it is currently being accessed in. In the case of MessageEvents and PopStateEvents we
cache the values of the data and state properties, respectively, as they may be a deserialized object. In case
an object was deserialized in a world with elevated privileges we also check the cached value is from the same
world, if it is from a different world we recompute it. For testing purposes, I added a new function to Internals
that determines whether a JSObject originated in the current world.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/DOMWrapperWorld.h:

(WebCore::worldForDOMObject):

  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSCustomEventCustom.cpp: Copied from Source/WebCore/dom/CustomEvent.cpp.

(WebCore::JSCustomEvent::detail):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data):

  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::state):

  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::initCustomEvent):
(WebCore::CustomEvent::trySerializeDetail):

  • dom/CustomEvent.h:
  • dom/CustomEvent.idl:
  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::initMessageEvent):
(WebCore::MessageEvent::trySerializeData):

  • dom/MessageEvent.h:
  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::trySerializeState):

  • dom/PopStateEvent.h:
  • testing/Internals.cpp:

(WebCore::Internals::isFromCurrentWorld):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

These tests ensure ensure objects are not leaked across isolated worlds and that those properties are not prematurely
garbage collected.

  • fast/events/constructors/custom-event-constructor-expected.txt:
  • fast/events/constructors/custom-event-constructor.html:
  • fast/events/event-leak-objects-expected.txt: Added.
  • fast/events/event-leak-objects.html: Added.
  • fast/events/event-properties-gc-expected.txt: Added.
  • fast/events/event-properties-gc.html: Added.
2:23 AM Changeset in webkit [186954] by Carlos Garcia Campos
  • 7 edits in trunk/Source

[GTK] Cleanup PasteboardHelper
https://bugs.webkit.org/show_bug.cgi?id=147035

Reviewed by Žan Doberšek.

Source/WebCore:

It's actually a singleton, but the API suggests you can create
your own or use the default one, but the default one should be the
only one. Rename PasteboardHelper::defaultPasteboardHelper() as
PasteboardHelper::singleton() and make it non-copyable and never
destroyed.

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::writePlainText): Use PasteboardHelper::singleton().
(WebCore::Pasteboard::write): Ditto.
(WebCore::Pasteboard::writePasteboard): Ditto.
(WebCore::Pasteboard::clear): Ditto.
(WebCore::Pasteboard::canSmartReplace): Ditto.
(WebCore::Pasteboard::read): Ditto.
(WebCore::Pasteboard::hasData): Ditto.
(WebCore::Pasteboard::types): Ditto.
(WebCore::Pasteboard::readString): Ditto.
(WebCore::Pasteboard::readFilenames): Ditto.

  • platform/gtk/PasteboardHelper.cpp:

(WebCore::PasteboardHelper::singleton): Renamed as singleton, also
use NeverDestroyed and return a reference instead of a pointer.
(WebCore::PasteboardHelper::PasteboardHelper): Do all
initializations here and remove the initialization static flag,
since this is a real singleton now. Also use
gdk_atom_intern_static_string() to initialize the atoms instead of
gdk_atom_intern().
(WebCore::PasteboardHelper::targetList):
(WebCore::PasteboardHelper::targetListForDataObject):
(WebCore::getClipboardContentsCallback):

  • platform/gtk/PasteboardHelper.h:

Source/WebKit2:

Use PasteboardHelper::singleton() instead of
PasteboardHelper::defaultPasteboardHelper().

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseConstructed):

  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::startDrag):
(WebKit::DragAndDropHandler::fillDragData):
(WebKit::DragAndDropHandler::dataObjectForDropData):
(WebKit::DragAndDropHandler::requestDragData):

Jul 16, 2015:

11:24 PM Changeset in webkit [186953] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r186808. rdar://problem/21801544

11:15 PM Changeset in webkit [186952] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebInspectorUI

Merge r186926. rdar://problem/21868062

11:15 PM Changeset in webkit [186951] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebInspectorUI

Merge r186925. rdar://problem/21868413

11:15 PM Changeset in webkit [186950] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r186924. rdar://problem/21669802

11:15 PM Changeset in webkit [186949] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/JavaScriptCore

Merge r186920. rdar://problem/21764196

11:15 PM Changeset in webkit [186948] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1-branch/Source

Merge r186919. rdar://problem/21834578

11:15 PM Changeset in webkit [186947] by matthew_hanson@apple.com
  • 34 edits in branches/safari-601.1-branch

Merge r186881. rdar://problem/21822278

11:15 PM Changeset in webkit [186946] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186799. rdar://problem/20542574

11:15 PM Changeset in webkit [186945] by matthew_hanson@apple.com
  • 7 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186798. rdar://problem/20542574

10:33 PM Changeset in webkit [186944] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1-branch

Merge r186911. rdar://problem/21822541

10:33 PM Changeset in webkit [186943] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebKit/mac

Merge r186909. rdar://problem/21802456

10:33 PM Changeset in webkit [186942] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186895. rdar://problem/21692212

10:33 PM Changeset in webkit [186941] by matthew_hanson@apple.com
  • 9 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r186887. rdar://problem/21692212

10:33 PM Changeset in webkit [186940] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186879. rdar://problem/21758704

10:33 PM Changeset in webkit [186939] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601.1-branch/Source

Merge r186878. rdar://problem/21758722

10:33 PM Changeset in webkit [186938] by matthew_hanson@apple.com
  • 4 edits
    3 adds in branches/safari-601.1-branch

Merge r186868. rdar://problem/21758704

10:32 PM Changeset in webkit [186937] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-601.1-branch

Merge r186865. rdar://problem/21823835

10:32 PM Changeset in webkit [186936] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186857. rdar://problem/21840845

10:32 PM Changeset in webkit [186935] by matthew_hanson@apple.com
  • 4 edits
    4 adds in branches/safari-601.1-branch

Merge r186840. rdar://problem/21823681

10:32 PM Changeset in webkit [186934] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186837. rdar://problem/21774358

10:32 PM Changeset in webkit [186933] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r186828. rdar://problem/19925709

10:32 PM Changeset in webkit [186932] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-601.1-branch

Merge r186827. rdar://problem/21736723

10:32 PM Changeset in webkit [186931] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r186814. rdar://problem/21605505

10:32 PM Changeset in webkit [186930] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r186812. rdar://problem/21818117

10:32 PM Changeset in webkit [186929] by matthew_hanson@apple.com
  • 4 edits
    15 adds in branches/safari-601.1-branch

Merge r186807. rdar://problem/21782350

10:32 PM Changeset in webkit [186928] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Merge r186786. rdar://problem/9222837

8:59 PM Changeset in webkit [186927] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

webkit-patch uses incorrect credentials from keychain to login until account lockout
https://bugs.webkit.org/show_bug.cgi?id=146923

Patch by Dean Johnson <dean_johnson@apple.com> on 2015-07-16
Reviewed by Daniel Bates.

When webkit-patch upload asks for login credentials for bugs.webkit.org, if you
provide incorrect credentials then ask for them to be saved to the keychain
webkit-patch will then use those incorrect credentials until 5 total attempts
have been made to log in. This will lock the user out of Bugzilla for a
half hour.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(Bugzilla.authenticate): Added argument to read_credentials() that
passes in whether or not to use stored credentials.

  • Scripts/webkitpy/common/net/credentials.py:

(Credentials.read_credentials): Added optional argument 'use_stored_credentials'
that specifies whether or not to use credentials stored on the system. If it
does, we do not auto-fill credentials since either the credentials caused
the failure, or they weren't used in the first place so there is no reason
to try and use them again if a failure happened.

  • Scripts/webkitpy/common/net/credentials_unittest.py: Added unit test for newly added

use_stored_credentials argument.
(test_do_not_use_stored_credentials): Added unit test to make sure functions that
retrieve username/password information from the local system (environment, Git, keychain,
keyring) are never called. It also tests that we get back our mocked username and password.
(test_do_not_use_stored_credentials.MockKeyring): Mock keyring
(test_do_not_use_stored_credentials.MockKeyring.get_password): Assert this is never called.
(test_do_not_use_stored_credentials.FakeCredentials): Mock credentials
(test_do_not_use_stored_credentials.FakeCredentials._credentials_from_keychain): Assert this
is never called.
(test_do_not_use_stored_credentials.FakeCredentials._credentials_from_environment): Ditto
(test_do_not_use_stored_credentials.FakeCredentials._offer_to_store_credentials_in_keyring): Ditto
(test_do_not_use_stored_credentials.FakeUser): Mock the User class
(test_do_not_use_stored_credentials.FakeUser.prompt): Returns a username to assert against.
(test_do_not_use_stored_credentials.FakeUser.prompt_password): Returns a password to assert
against.

8:59 PM Changeset in webkit [186926] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r186218) ScriptTimelineRecord attempts to access null property
https://bugs.webkit.org/show_bug.cgi?id=147025

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-16
Reviewed by Timothy Hatcher.

The issue here was two ScriptTimelineRecord's were created for the same
profile payload. When the first ScriptTimelineRecord processed the
payload to create a Profile we modified the payload, then when the
second ScriptTimelineRecord tries to process the payload the data is
in an unexpected state and it crashes.

The solution here is to stash the result on the payload, so when the
payload is shared we can just immediately jump to the resulting Profile.
The longer term solution will be to share higher level objects and not
attempt to process the payload multiple times. That is tracked by:
<https://webkit.org/b/147029> Web Inspector: Better share objects generated from timeline events (Records)

  • UserInterface/Models/ScriptTimelineRecord.js:

(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
When processing the profile payload, store the Profile on the payload
so if another ScriptTimelineRecord has that payload they can avoid
re-processing it.

8:55 PM Changeset in webkit [186925] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Total Size of Resources number in dashboard is wrong (does not update during load)
https://bugs.webkit.org/show_bug.cgi?id=147027

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-16
Reviewed by Timothy Hatcher.

  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
Restore implementation of callback from r183328 to update total resource
size as resources are downloaded.

8:55 PM Changeset in webkit [186924] by Matt Baker
  • 2 edits in trunk/Source/WebKit2

[Mac] Web Inspector toolbar can be covered by the Safari tab bar when docked to the right
https://bugs.webkit.org/show_bug.cgi?id=146994

Reviewed by Timothy Hatcher.

WebInspectorProxy contained logic which ignored the next frame change notification from the inspected view,
whenever it updated the frames of both the Inspector view and inspected view. This patch removes that logic,
as it prevented the Inspector's frame from being adjusted after changes to the browser's top content inset.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorProxyObjCAdapter ignoreNextInspectedViewFrameDidChange]): Deleted.
(-[WKWebInspectorProxyObjCAdapter inspectedViewFrameDidChange:]): Deleted.
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange): Deleted.

8:33 PM Changeset in webkit [186923] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix build for newer LLVMs.

  • llvm/LLVMHeaders.h:
  • llvm/library/LLVMExports.cpp:
7:56 PM Changeset in webkit [186922] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Unreviewed, remove my redundant email information.

  • Scripts/webkitpy/common/config/contributors.json:
7:45 PM Changeset in webkit [186921] by hyungwook.lee@navercorp.com
  • 2 edits in trunk/Tools

Unreviewed. Add Hyungwook Lee as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
7:27 PM Changeset in webkit [186920] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

RegExp::match() should set m_state to ByteCode if compilation fails.
https://bugs.webkit.org/show_bug.cgi?id=147023

Reviewed by Michael Saboff.

A RegExp has a YarrCodeBlock that has 4 MacroAssemblerCodeRefs for compiled code.
If one of these compilations succeeds, RegExp::m_state will be set to JITCode.
Subsequently, if RegExp tries to compile another one of these but fails, m_state
will be left untouched i.e. it still says JITCode. As a result, when
RegExp::match() later tries to execute the non-existant compiled code, it will
crash.

The fix is to downgrade m_state to ByteCode if RegExp ever fails to compile.
This failure should be rare. We'll do the minimal work here to fix the issue and
keep an eye on the perf bots. If perf regresses, we can do some optimization work then.

This issue is difficult to test for since it either requires a low memory condition
to trigger a failed RegExp compilation at the right moment, or for the RegExp to
succeed compilation in the MatchedOnly mode but fail in IncludeSubpatterns mode.
Instead, I manually tested it by instrumenting RegExp::compile() to fail once in every
10 compilation attempts.

  • runtime/RegExp.cpp:

(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

5:29 PM Changeset in webkit [186919] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Web Inspector: [Mac] Save dialog not working when inspector is docked
https://bugs.webkit.org/show_bug.cgi?id=146991

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-16
Reviewed by Sam Weinig.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::save):
(-[WebInspectorWindowController webView:runOpenPanelForFileButtonWithResultListener:allowMultipleFiles:]):
When the window is nil (docked) use a non-window version of running the dialog.

Source/WebKit2:

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::runOpenPanel):
(WebKit::WebInspectorProxy::platformSave):
When the window is nil (docked) use a non-window version of running the dialog.

4:36 PM Changeset in webkit [186918] by mrajca@apple.com
  • 5 edits in trunk/Source/WebCore

Media Session: handle 'Transient' and 'Transient Solo' interruption events https://bugs.webkit.org/show_bug.cgi?id=146840

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::handleDuckInterruption): Added stub.
(WebCore::MediaSession::handleUnduckInterruption): Added stub.
(WebCore::MediaSession::handlePauseInterruption): Pause active media elements. We use our helper method to do this

"safely" since pausing a media element can change the collection we're iterating.

(WebCore::MediaSession::handleUnpauseInterruption): Unpause active media elements. We use our helper method to do this

"safely" since unpausing a media element can change the collection we're iterating.

(WebCore::MediaSession::togglePlayback): Factored out "safe" iteration into a helper method elsewhere.
(WebCore::MediaSession::safelyIterateActiveMediaElements): Safely iterate through the collection of active media

elements.

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::MediaSessionManager): On Mac, register for platform-specific interruptions.
(WebCore::MediaSessionManager::didReceiveStartOfInterruptionNotification): Implemented section 4.5.2 of Media Session spec.
(WebCore::MediaSessionManager::didReceiveEndOfInterruptionNotification): Ditto.

  • Modules/mediasession/MediaSessionManager.h:
4:22 PM Changeset in webkit [186917] by mrajca@apple.com
  • 2 edits
    6 adds in trunk/Source/WebCore

Media Session: add support for platform-specific interruption providers
https://bugs.webkit.org/show_bug.cgi?id=147008

Reviewed by Eric Carlson.

  • WebCore.xcodeproj/project.pbxproj: Include new source files.
  • platform/mediasession/MediaSessionInterruptionProvider.cpp: Added base class to be used by MediaSessionManager to listen for interruption notifications.

(WebCore::MediaSessionInterruptionProvider::MediaSessionInterruptionProvider): Begin listening for interruptions

upon construction.

(WebCore::MediaSessionInterruptionProvider::~MediaSessionInterruptionProvider): Stop listening for interruptions

before destruction.

(WebCore::MediaSessionInterruptionProvider::beginListeningForInterruptions): To be overridden by subclasses.
(WebCore::MediaSessionInterruptionProvider::stopListeningForInterruptions): To be overridden by subclasses.

  • platform/mediasession/MediaSessionInterruptionProvider.h: Added.

(WebCore::MediaSessionInterruptionProviderClient::~MediaSessionInterruptionProviderClient):
(WebCore::MediaSessionInterruptionProvider::client):

  • platform/mediasession/mac/MediaSessionInterruptionProviderMac.h: Added for providing Mac-specific interruptions.

(WebCore::MediaSessionInterruptionProviderMac::~MediaSessionInterruptionProviderMac):

  • platform/mediasession/mac/MediaSessionInterruptionProviderMac.mm: Added stubs.

(WebCore::MediaSessionInterruptionProviderMac::beginListeningForInterruptions):
(WebCore::MediaSessionInterruptionProviderMac::stopListeningForInterruptions):

4:14 PM Changeset in webkit [186916] by timothy_horton@apple.com
  • 10 edits in trunk/Source

Add shrink-wrapped link highlights
https://bugs.webkit.org/show_bug.cgi?id=147021
<rdar://problem/21643094>

Reviewed by Enrica Casucci.

  • Shared/InteractionInformationAtPosition.cpp:

(WebKit::InteractionInformationAtPosition::encode):
(WebKit::InteractionInformationAtPosition::decode):

  • Shared/InteractionInformationAtPosition.h:

Add a TextIndicator to InteractionInformationAtPosition.
Make use of some new C++ features.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]):
(-[WKContentView didDismissPreviewViewController:committing:]):
Make use of the TextIndicator (if we have one) to show a shrink-wrapped
snapshot of the link.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
Build a TextIndicator for the link if possible.

  • WebCore.xcodeproj/project.pbxproj:
  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
(WebCore::TextIndicator::createWithSelectionInFrame):

  • page/TextIndicator.h:

Add a margin parameter to TextIndicator; this inflates each text rect
by the given amount.

Use snapshotFrameRect instead of snapshotSelection because we really
want an image that exactly fits textBoundingRectInDocumentCoordinates,
and snapshotSelection comes up with selection rects in different ways,
especially on iOS (where it comes up with nothing!).

For now, avoid forcing black text or painting only the selection on iOS.
Eventually, we should have TextIndicator options for these things that
are then respected at the presentation layer.

3:57 PM Changeset in webkit [186915] by Wenson Hsieh
  • 2 edits in trunk/Tools

Added myself to the list of contributors.

Reviewed by Brent Fulgham.

  • Scripts/webkitpy/common/config/contributors.json:
3:50 PM Changeset in webkit [186914] by Lucas Forschler
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merged r186764. rdar://problem/9222837

3:27 PM Changeset in webkit [186913] by mrajca@apple.com
  • 12 edits in trunk/Source

Media Session: remove plumbing for delivering start/end-of-interruption events
https://bugs.webkit.org/show_bug.cgi?id=147005

Reviewed by Eric Carlson.

Instead of receiving interruptions through WebKit, we will provide platform-specific implementations in WebCore
so the same behavior is available to all clients.

WebCore:

  • Modules/mediasession/MediaSessionEvents.h:
  • page/Page.cpp:
  • page/Page.h:

WebKit:

  • UIProcess/API/C/WKPage.cpp:
  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
3:08 PM Changeset in webkit [186912] by achristensen@apple.com
  • 8 edits in trunk

[Content Extensions] Cache domain actions
https://bugs.webkit.org/show_bug.cgi?id=146817

Reviewed by Benjamin Poulain.

Source/WebCore:

Right now we run regular expressions on the domain every time we have any rules that match with if-domain or unless-domain.
This caches the results of running regular expressions on the domain of the main document's url so we only need to
run those regular expressions when the main document changes domain. We also spend less time adding unused actions into HashSets.

All behavior is covered by existing api tests, but I added some to explicitly test if-domain and unless-domain with multiple load types.

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::globalDisplayNoneStyleSheet):
(WebCore::ContentExtensions::ContentExtension::cachedDomainActions):

  • contentextensions/ContentExtension.h:

(WebCore::ContentExtensions::ContentExtension::identifier):
(WebCore::ContentExtensions::ContentExtension::compiledExtension):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::getJumpDistance):
(WebCore::ContentExtensions::matchesDomain):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsForDefaultStylesheetFromDFARoot):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretWithDomains):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):

  • contentextensions/DFABytecodeInterpreter.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Test if-domain and unless-domain with multiple load types.

2:54 PM Changeset in webkit [186911] by Simon Fraser
  • 3 edits
    2 adds in trunk

Fix disappearing position:fixed elements in fixed layout mode
https://bugs.webkit.org/show_bug.cgi?id=147019

Reviewed by Tim Horton.
Source/WebCore:

Test: compositing/fixed-with-fixed-layout.html

When in fixed layout mode, and being scaled down, viewportConstrainedVisibleContentRect() is
the wrong thing to use to determine if position:fixed elements are clipped out. In this case,
use the simpler document bounds (before scaling).

In the long term, there needs to be an equivalent of viewportConstrainedVisibleContentRect()
that gives an appropriate rect that can be used here.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForPosition):

LayoutTests:

Test with four fixed elements in fixed layout mode.

  • compositing/fixed-with-fixed-layout-expected.txt: Added.
  • compositing/fixed-with-fixed-layout.html: Added.
2:51 PM Changeset in webkit [186910] by benjamin@webkit.org
  • 12 edits
    1 add in trunk

[Content extensions] Combine suffixes when generating NFAs
https://bugs.webkit.org/show_bug.cgi?id=146961

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-16
Reviewed by Alex Christensen.

Source/WebCore:

In this patch, I add a mechanism very similar to the prefix tree
but for the suffix (called a reverse suffix tree here).

The idea is here is to reuse the existing NFA nodes when generating
a chain of suffix Term that were already generated previously.
When generating a disjunction ending with the same suffix, we now
have the same trailing NFA nodes for both sides of the disjunction.

Mixing the prefix and suffix generation can be tricky, we do not want
transitions from a pattern to creep into the suffix of an other.

To avoid any conflict, the rules here are very simple:
-Only use the reverse suffix tree for terms without actions

up to a leaf term with actions.

This rule ensure that no action will accidentally make its way
to an other rule by resuing a vertex of the reverse suffix tree.

-Only use the reverse suffix tree for chains of terms in which

each term only has zero or one following term.

With this condition, when taking any vertex of the reverse suffix
tree, there is only one edge that move out of that vertex when reading
from left to right.
For any vertex, there is only one possible string generated
left-to-right, a single suffix.

This is overly restrictive but it is fast, easier to verify, and it works
well in practice.
For all the more complicated cases, we can count on the Minimizer to
find a better solution.

With all the simple suffixes merged, our NFAs are smaller, which
let us combine more patterns.
The DFAs are also smaller and faster to produce since their size
is relative to the NFA sizes.

Overall, I get the following gains:
-Chris's test case:

compile time -40%.
bytecode size -14%.

-Armand's test case:

compile time -53%.
bytecode size -13%.

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree):
(WebCore::ContentExtensions::generateInfixUnsuitableForReverseSuffixTree):
(WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree):
(WebCore::ContentExtensions::clearReverseSuffixTree):
(WebCore::ContentExtensions::generateNFAForSubtree):

  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::debugPrintDot):
Forgot to close a tag, dot was not happy.

  • contentextensions/HashableActionList.h: Added.

(WebCore::ContentExtensions::HashableActionList::HashableActionList):
(WebCore::ContentExtensions::HashableActionList::isEmptyValue):
(WebCore::ContentExtensions::HashableActionList::isDeletedValue):
(WebCore::ContentExtensions::HashableActionList::operator==):
(WebCore::ContentExtensions::HashableActionList::operator!=):
(WebCore::ContentExtensions::HashableActionListHash::hash):
(WebCore::ContentExtensions::HashableActionListHash::equal):
We need a way to group reverse suffix tree by their terminal actions.
This new hash structure lets us find unique vertex for a list of actions
in any order.

  • contentextensions/ImmutableNFANodeBuilder.h:

(WebCore::ContentExtensions::ImmutableNFANodeBuilder::isValid):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::nodeId):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): Deleted.
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): Deleted.
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): Deleted.

  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::generateGraph):
(WebCore::ContentExtensions::Term::generateSubgraphForAtom):
Node building changes a bit.

Previously, it was assumed nodes are always built from left to right.
Getting the node on the right was done by providing the left node and the term
doing the transition.

Now we have both left to right and right to left generation.

The right-to-left has a specific property: no edge can be added after
it's initial term (rule 2 of our reverse suffix tree). This simplifies
things a bit since we can finalize all the nodes in the suffix tree.
All we need is to keep their ID to be able to link new nodes
to the reverse suffix tree.

Source/WTF:

  • wtf/Vector.h:

(WTF::minCapacity>::Vector):
(WTF::=):
Copying a vector with a different inline capacity was broken due to
the addition of MinimumCapacity.

This feature was needed by this patch so I fixed WTF.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::compareContents):

  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:
2:50 PM Changeset in webkit [186909] by Simon Fraser
  • 3 edits in trunk/Source/WebKit/mac

[iOS] Expose contentsSizeRespectingOverflow() via WebView so UIWebView can use it
https://bugs.webkit.org/show_bug.cgi?id=146924
WebKit part of rdar://problem/21802456

Reviewed by Tim Horton.

Expose the FrameView's contentsSizeRespectingOverflow() via WebView, for use
by UIKit.

  • WebView/WebView.mm:

(-[WebView _contentsSizeRespectingOverflow]):

  • WebView/WebViewPrivate.h:
2:40 PM Changeset in webkit [186908] by Andres Gomez
  • 3 edits in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Further optimize the weight and time icons taken back to the toolbar dashboard for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=147010

SVG images optimized with a combination of sed replacements, the
usage of the scour tool (http://www.codedread.com/scour/) and a
forked version of the svgo tool (https://github.com/tanty/svgo).

Also, added the class attribute to the shape elements following
the convention used in Apple's images.

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/Time.svg: Optimized.
  • UserInterface/Images/gtk/Weight.svg: Optimized.
1:24 PM Changeset in webkit [186907] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Rolling out part of r186895 until rdar://problem/21861167 is resolved.
https://bugs.webkit.org/show_bug.cgi?id=146976

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::createCookies): Don’t use this new SPI quite yet.

1:19 PM Changeset in webkit [186906] by fpizlo@apple.com
  • 25 edits in trunk

Unreviewed, roll out http://trac.webkit.org/changeset/186903. It broke the build.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/DOMWrapperWorld.h:

(WebCore::currentWorld):
(WebCore::worldForDOMObject): Deleted.

  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSCustomEventCustom.cpp:

(WebCore::JSCustomEvent::detail): Deleted.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data):

  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::state):

  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::initCustomEvent):
(WebCore::CustomEvent::eventInterface):
(WebCore::CustomEvent::trySerializeDetail): Deleted.

  • dom/CustomEvent.h:
  • dom/CustomEvent.idl:
  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::initMessageEvent):
(WebCore::MessageEvent::data):
(WebCore::MessageEvent::trySerializeData): Deleted.

  • dom/MessageEvent.h:
  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::create):
(WebCore::PopStateEvent::eventInterface):
(WebCore::PopStateEvent::trySerializeState): Deleted.

  • dom/PopStateEvent.h:
  • testing/Internals.cpp:

(WebCore::Internals::deserializeBuffer):
(WebCore::Internals::setUsesOverlayScrollbars):
(WebCore::Internals::isFromCurrentWorld): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/events/constructors/custom-event-constructor-expected.txt:
  • fast/events/constructors/custom-event-constructor.html:
  • fast/events/event-leak-objects-expected.txt:
  • fast/events/event-leak-objects.html:
  • fast/events/event-properties-gc-expected.txt:
  • fast/events/event-properties-gc.html:
1:07 PM Changeset in webkit [186905] by timothy_horton@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Rebaseline test for Windows.

  • platform/win/fast/shrink-wrap: Added.
  • platform/win/fast/shrink-wrap/rect-shrink-wrap-expected.txt: Added.
1:06 PM Changeset in webkit [186904] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r186464): [SOUP] ASSERTION FAILED: !m_messageReceiverMapCount when closing any tab
https://bugs.webkit.org/show_bug.cgi?id=147006

Reviewed by Anders Carlsson.

Remove the message receiver before it is deallocated.

  • UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:

(WebKit::CustomProtocolManagerProxy::~CustomProtocolManagerProxy):

12:30 PM Changeset in webkit [186903] by fpizlo@apple.com
  • 20 edits
    5 adds in trunk

Remove leak of objects between isolated worlds on custom events, message events, and pop state events.
https://bugs.webkit.org/show_bug.cgi?id=118884

Patch by Keith Miller <keith_miller@apple.com> on 2015-07-16
Reviewed by Filip Pizlo.

Source/WebCore:

Tests: fast/events/event-leak-objects.html

fast/events/event-properties-gc.html

Fixes an issue where objects passed as certain properties of events could cross isolated worlds. This
was fixed by checking that any object passed by an event must be serializable or originate from the same
isolated world as the one it is currently being accessed in. In the case of MessageEvents and PopStateEvents we
cache the values of the data and state properties, respectively, as they may be a deserialized object. In case
an object was deserialized in a world with elevated privileges we also check the cached value is from the same
world, if it is from a different world we recompute it. For testing purposes, I added a new function to Internals
that determines whether a JSObject originated in the current world.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/DOMWrapperWorld.h:

(WebCore::worldForDOMObject):

  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSCustomEventCustom.cpp: Copied from Source/WebCore/dom/CustomEvent.cpp.

(WebCore::JSCustomEvent::detail):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data):

  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::state):

  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::initCustomEvent):
(WebCore::CustomEvent::trySerializeDetail):

  • dom/CustomEvent.h:
  • dom/CustomEvent.idl:
  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::initMessageEvent):
(WebCore::MessageEvent::trySerializeData):

  • dom/MessageEvent.h:
  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::trySerializeState):

  • dom/PopStateEvent.h:
  • testing/Internals.cpp:

(WebCore::Internals::isFromCurrentWorld):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

These tests ensure ensure objects are not leaked across isolated worlds and that those properties are not prematurely
garbage collected.

  • fast/events/constructors/custom-event-constructor-expected.txt:
  • fast/events/constructors/custom-event-constructor.html:
  • fast/events/event-leak-objects-expected.txt: Added.
  • fast/events/event-leak-objects.html: Added.
  • fast/events/event-properties-gc-expected.txt: Added.
  • fast/events/event-properties-gc.html: Added.
12:16 PM Changeset in webkit [186902] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.17-branch/Source

Versioning.

11:31 AM Changeset in webkit [186901] by Andres Gomez
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add new Network icon for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=147002

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/Network.svg: Added.

Icon for the new Network tab.

11:23 AM Changeset in webkit [186900] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/canvas/canvas-too-large-to-draw.html as crashing on El Capitan

Fix is tracked by <rdar://problem/21857102>.

  • platform/mac/TestExpectations: Mark test as crashing:
  • fast/canvas/canvas-too-large-to-draw.html
10:52 AM Changeset in webkit [186899] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Win] Unreviewed gardening.

  • WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Move file into the

appropriate category in the project.

10:42 AM Changeset in webkit [186898] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit/win

[Win] Gross workaround to fix build after r186858.

  • WebView.cpp:

(WebView::unused5): Force export of WebCore symbol through
WebKit.dll.

10:39 AM Changeset in webkit [186897] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Review feedback followup for:
REGRESSION(r186088): Crash under WebKit::WebPageProxy::didFailLoadForFrame
<rdar://problem/21692212> and https://bugs.webkit.org/show_bug.cgi?id=146988

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::refView): CFRetain instead of Obj-C retain.
(WebKit::PageClientImpl::derefView): CFRelease instead of Obj-C release.

10:26 AM Changeset in webkit [186896] by Andres Gomez
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add new composite record icon for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=146998

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/TimelineRecordComposite.svg: Added.

New composite record icon.

10:25 AM Changeset in webkit [186895] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

WebKit document.cookie mis-parsing.
rdar://problem/21715050 and https://bugs.webkit.org/show_bug.cgi?id=146976

Reviewed by Sam Weinig.

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::createCookies): Use new SPI if available.
(WebCore::setCookiesFromDOM):

  • platform/spi/cf/CFNetworkSPI.h:
10:21 AM Changeset in webkit [186894] by andersca@apple.com
  • 19 edits in trunk/Source/WebCore

Headers that use WEBCORE_EXPORT should include PlatformExportMacros.h
https://bugs.webkit.org/show_bug.cgi?id=146984

Reviewed by Daniel Bates.

  • contentextensions/DFA.h:
  • dom/ContextDestructionObserver.h:
  • dom/DeviceOrientationData.h:
  • dom/ExceptionCodePlaceholder.h:
  • editing/cocoa/HTMLConverter.h:
  • html/track/AudioTrack.h:
  • loader/FrameLoaderStateMachine.h:
  • loader/appcache/ApplicationCacheHost.h:
  • loader/cache/CachedResourceHandle.h:
  • platform/URL.h:
  • platform/animation/Animation.h:
  • platform/audio/AudioHardwareListener.h:
  • platform/audio/AudioSession.h:
  • platform/graphics/transforms/AffineTransform.h:
  • platform/network/Credential.h:
  • platform/network/CredentialBase.h:
  • platform/network/ResourceHandleClient.h:
  • platform/network/mac/AuthenticationMac.h:
8:34 AM Changeset in webkit [186893] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[Linux] Seccomp: fix -Wmismatched-tags
https://bugs.webkit.org/show_bug.cgi?id=146990

Reviewed by Žan Doberšek.

WebProcessCreationParameters is a struct nowadays, not a class, so declare it appropriately.

  • Shared/linux/SeccompFilters/SyscallPolicy.h:
3:29 AM Changeset in webkit [186892] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185415): [GTK] Browsers crash when an input method is enabled
https://bugs.webkit.org/show_bug.cgi?id=146639

Reviewed by Žan Doberšek.

In r185415 I assumed that preedit signals were always emitted
after a keypress was handled by the WebView. However, some input
methods handle the keyboard events before the WebView, and preedit
signals are emitted but no key event has been handled by the
WebView. So, instead of asserting when filter key event completion
handler is nullptr, we should check whether the current event was
generated for a WebView filter request or not. In case the
completion handler is nullptr, we send the event directly to the
page, instead of going through the WebView, since there won't be
editing commands for those events anyway.

  • UIProcess/gtk/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::handleKeyboardEvent):
(WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults):

1:57 AM Changeset in webkit [186891] by commit-queue@webkit.org
  • 4 edits
    2 adds
    2 deletes in trunk

Web Inspector: update $$() to return an Array
https://bugs.webkit.org/show_bug.cgi?id=146964

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-16
Reviewed by Brian Burg.

Source/WebCore:

Test: inspector/console/command-line-api.html

  • inspector/CommandLineAPIModuleSource.js:

Update $$(...) to return an array.
Also InjectedScriptHost.type was renamed to subtype
a while ago.

LayoutTests:

  • inspector/console/command-line-api-expected.txt: Added.
  • inspector/console/command-line-api.html: Added.

Add back a command line api test.

  • platform/efl/inspector/console/command-line-api-expected.txt: Removed.
  • platform/mac/inspector/console/command-line-api-expected.txt: Removed.

Remove old platform expected results for the old version of this test.

  • platform/win/TestExpectations:

Speculatively skipping on Windows since other inspector/console tests are skipped.

Jul 15, 2015:

11:36 PM Changeset in webkit [186890] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Move indicator rect uniting code to TextIndicatorWindow instead of TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=146992
<rdar://problem/21643094>

Reviewed by Daniel Bates.

Having to unite all the rects if any overlap is an implementation
detail of the Mac TextIndicatorWindow presentation, not a fundamental
property of TextIndicator.

Other TextIndicator presentations might be able to handle overlapping
rects more effectively, so we shouldn't lose information unless we need to.

This also avoids having a second copy of some constants!

  • page/TextIndicator.cpp:

(WebCore::outsetIndicatorRectIncludingShadow): Deleted.
(WebCore::textIndicatorsForTextRectsOverlap): Deleted.
(WebCore::TextIndicator::TextIndicator): Deleted.

  • page/mac/TextIndicatorWindow.mm:

(outsetIndicatorRectIncludingShadow):
(textIndicatorsForTextRectsOverlap):
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):

11:04 PM Changeset in webkit [186889] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

Unreviewed. Follow up to r186887 for GTK+.

Add GTK+ implementation of PageClientImpl::refView/derefView.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::refView):
(WebKit::PageClientImpl::derefView):

  • UIProcess/API/gtk/PageClientImpl.h:
10:31 PM Changeset in webkit [186888] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Input method filter is always enabled when the view is focused
https://bugs.webkit.org/show_bug.cgi?id=146965

Reviewed by Martin Robinson.

Source/WebKit2:

It should only be enabled when the view is focused and there's an
editable element focused. In r138544, when input methods were
implemented, the message SetInputMethodState was added, but it was
never used. Instead, the notifyFocusIn method of the IM filter
enables the input method unconditionally. We should actually use
the SetInputMethodState message to enable/disable input methods
when editable elements are focused/unfocused.

  • UIProcess/gtk/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::setEnabled): Call notifyFocusedIn/Out
when inputs methods are enabled/disabled instead of notifying the
IM context directly.
(WebKit::InputMethodFilter::setCursorRect): Do not update the
cursor position if input methods are didabled.
(WebKit::InputMethodFilter::notifyFocusedIn): Do nothing when
input methods are disabled. Do not enable input methods
uncontionally here.
(WebKit::InputMethodFilter::notifyFocusedOut): Do not disable
input methods uncontionally here.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::setInputMethodState): Call
WebPage::setInputMethodState() for GTK platform.

  • WebProcess/WebPage/WebPage.h: Add setInputMethodState() for GTK platform.
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::setInputMethodState): Update input method state
and send SetInputMethodState message to the UI process if state changed.

Tools:

Use setEnabled() instead of notifyFocusedIn() to enable input methods.

  • TestWebKitAPI/Tests/WebKit2/gtk/InputMethodFilter.cpp:

(TestWebKitAPI::TestInputMethodFilter::TestInputMethodFilter):

9:03 PM Changeset in webkit [186887] by beidson@apple.com
  • 9 edits in trunk/Source/WebKit2

REGRESSION(r186088): Crash under WebKit::WebPageProxy::didFailLoadForFrame
<rdar://problem/21692212> and https://bugs.webkit.org/show_bug.cgi?id=146988

Reviewed by Sam Weinig.

When a loader delegate callback results in the WKView getting deallocated, then the PageClient
is also destroyed.

WebPageProxy then (often) turns around and uses the PageClient anyways.

Tried to write a TestWebKitAPI test for this, but only didFailLoadForFrame appears to obviously
be vulnerable, and there seems to be no way to reproduce that failure case under TestWebKitAPI.

  • UIProcess/PageClient.h: Add ref/derefView.
  • UIProcess/API/gtk/PageClientImpl.h: Stub them out.
    • UIProcess/efl/WebViewEfl.h: Stub them out.
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::refView): [m_wkView retain]
(WebKit::PageClientImpl::derefView): [m_wkView release]

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::refView): Retain all 3 views.
(WebKit::PageClientImpl::derefView): Release all 3 views.

  • UIProcess/WebPageProxy.cpp:

(WebKit::PageClientProtector::PageClientProtector): Calls refView() on the PageClient.
(WebKit::PageClientProtector::~PageClientProtector): Calls derefView() on the PageClient.
(WebKit::WebPageProxy::didChangeBackForwardList): All methods that make m_loaderClient or

m_pageClient callouts get a protector at their head.

(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList):
(WebKit::WebPageProxy::findPlugin):
(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::didStartProgress):
(WebKit::WebPageProxy::didChangeProgress):
(WebKit::WebPageProxy::didFinishProgress):
(WebKit::WebPageProxy::didDestroyNavigation):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didChangeProvisionalURLForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReceiveTitleForFrame):
(WebKit::WebPageProxy::didFirstLayoutForFrame):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
(WebKit::WebPageProxy::didLayoutForCustomContentProvider):
(WebKit::WebPageProxy::didLayout):
(WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::didDetectXSSForFrame):
(WebKit::WebPageProxy::frameDidBecomeFrameSet):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseSync):
(WebKit::WebPageProxy::unableToImplementPolicy):
(WebKit::WebPageProxy::didNavigateWithNavigationData):
(WebKit::WebPageProxy::didPerformClientRedirect):
(WebKit::WebPageProxy::didPerformServerRedirect):
(WebKit::WebPageProxy::didUpdateHistoryTitle):
(WebKit::WebPageProxy::wrapCryptoKey):
(WebKit::WebPageProxy::unwrapCryptoKey):
(WebKit::WebPageProxy::navigationGestureDidBegin):
(WebKit::WebPageProxy::navigationGestureWillEnd):
(WebKit::WebPageProxy::navigationGestureDidEnd):
(WebKit::WebPageProxy::willRecordNavigationSnapshot):

7:42 PM Changeset in webkit [186886] by Michael Catanzaro
  • 2 edits in trunk/Tools

[EFL] Bump libseccomp version to 2.2.3
https://bugs.webkit.org/show_bug.cgi?id=146980

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
7:08 PM Changeset in webkit [186885] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.17.2

New tag.

7:03 PM Changeset in webkit [186884] by ryuan.choi@navercorp.com
  • 4 edits in trunk/Source/WebCore

[CoordinatedGraphics] Remove setContentsScale from TiledBackingStore
https://bugs.webkit.org/show_bug.cgi?id=146921

Reviewed by Gyuyoung Kim.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::createBackingStore):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::setContentsScale): Deleted.

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
6:55 PM Changeset in webkit [186883] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning

6:52 PM Changeset in webkit [186882] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.8.3

New Tag.

6:45 PM Changeset in webkit [186881] by Brent Fulgham
  • 34 edits in trunk

[Win] Maintain consistent COM Interfaces
https://bugs.webkit.org/show_bug.cgi?id=146983
<rdar://problem/21822278>

Reviewed by Dean Jackson.

Source/WebKit/win:

Keep WebKit's COM interface compatible with software
linked against earlier WebKit releases:

  1. Update IDL to present the same interface as earlier releases of WebKit.
  2. Add new interface objects (i.g., IWebFrame2) extending earlier interfaces when adding new methods.
  3. Update our internal software to use the correct interface objects.
  • DefaultPolicyDelegate.cpp:

(DefaultPolicyDelegate::decidePolicyForNavigationAction):

  • Interfaces/IWebEditingDelegate.idl:
  • Interfaces/IWebFrame.idl:
  • Interfaces/IWebPreferencesPrivate.idl:
  • Interfaces/IWebSecurityOrigin.idl:
  • Interfaces/IWebUIDelegatePrivate.idl:
  • Interfaces/IWebViewPrivate.idl:
  • Interfaces/WebKit.idl:
  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::shouldInsertNode):

  • WebFrame.cpp:

(WebFrame::updateBackground):
(WebFrame::isMainFrame):

  • WebFrame.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::QueryInterface):
(WebPreferences::setMockScrollbarsEnabled):
(WebPreferences::screenFontSubstitutionEnabled):
(WebPreferences::setScreenFontSubstitutionEnabled):
(WebPreferences::hyperlinkAuditingEnabled):
(WebPreferences::unused4):
(WebPreferences::shouldPaintNativeControls):
(WebPreferences::setShouldPaintNativeControls):
(WebPreferences::setDeveloperExtrasEnabled):
(WebPreferences::authorAndUserStylesEnabled):
(WebPreferences::inApplicationChromeMode):

  • WebPreferences.h:
  • WebSecurityOrigin.cpp:

(WebSecurityOrigin::QueryInterface):
(WebSecurityOrigin::setQuota):
(WebSecurityOrigin::initWithURL):

  • WebSecurityOrigin.h:
  • WebView.cpp:

(WebView::QueryInterface):
(WebView::notifyPreferencesChanged):
(WebView::selectedRangeForTesting):
(WebView::setLoadResourcesSerially):

  • WebView.h:

Tools:

Update DumpRenderTree and WinLauncher to use the properly
versioned COM interface objects.

  • DumpRenderTree/win/AccessibilityControllerWin.cpp:

(AccessibilityController::rootElement):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):
(resetWebViewToConsistentStateBeforeTesting):
(runTest):
(createWebViewAndOffscreenWindow):

  • DumpRenderTree/win/EditingDelegate.cpp:

(EditingDelegate::QueryInterface):
(EditingDelegate::shouldEndEditingInDOMRange):
(EditingDelegate::shouldInsertNode):

  • DumpRenderTree/win/EditingDelegate.h:
  • DumpRenderTree/win/EventSender.cpp:

(scalePageByCallback):

  • DumpRenderTree/win/FrameLoadDelegate.cpp:

(FrameLoadDelegate::didCommitLoadForFrame):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::callShouldCloseOnWebView):
(TestRunner::applicationCacheDiskUsageForOrigin):
(TestRunner::clearApplicationCacheForOrigin):
(TestRunner::setDefersLoading):
(TestRunner::setDomainRelaxationForbiddenForURLScheme):
(TestRunner::setTabKeyCyclesThroughElements):
(TestRunner::setValueForUser):
(TestRunner::dispatchPendingLoadRequests):
(TestRunner::setWindowIsKey):
(TestRunner::execCommand):
(TestRunner::addOriginAccessWhitelistEntry):
(TestRunner::removeOriginAccessWhitelistEntry):
(TestRunner::addUserScript):
(TestRunner::addUserStyleSheet):
(TestRunner::showWebInspector):
(TestRunner::closeWebInspector):
(TestRunner::evaluateInWebInspector):
(TestRunner::setSerializeHTTPLoads):

  • DumpRenderTree/win/TextInputControllerWin.cpp:

(TextInputController::setMarkedText):
(TextInputController::hasMarkedText):
(TextInputController::unmarkText):
(TextInputController::markedRange):
(TextInputController::insertText):
(TextInputController::firstRectForCharacterRange):
(TextInputController::selectedRange):

  • DumpRenderTree/win/UIDelegate.h:

(UIDelegate::unused2):
(UIDelegate::unused3):
(UIDelegate::webViewScrolled):
(UIDelegate::webViewShouldInterruptJavaScript):
(UIDelegate::webViewReceivedFocus):
(UIDelegate::unused4): Deleted.

  • TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp:

(TestWebKitAPI::WebViewDestructionWithHostWindow::SetUp):

  • WinLauncher/PageLoadTestClient.cpp:

(PageLoadTestClient::didStartProvisionalLoad):

  • WinLauncher/WinLauncher.cpp:

(WinLauncher::init):

  • WinLauncher/WinLauncher.h:
  • WinLauncher/WinLauncherWebHost.cpp:

(WinLauncherWebHost::didFinishLoadForFrame):
(WinLauncherWebHost::didFirstLayoutInFrame):

  • WinLauncher/WinLauncherWebHost.h:
6:25 PM Changeset in webkit [186880] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Fix armv7 build.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState): The 64-bit argument
version of poke is not available on armv7 builds.

6:13 PM Changeset in webkit [186879] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Tag WebGL layers with sRGB colorspace
https://bugs.webkit.org/show_bug.cgi?id=146986
<rdar://problem/21758704>

Fix the build on older El Capitan releases.

  • platform/graphics/mac/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):

  • platform/spi/cocoa/QuartzCoreSPI.h:
6:00 PM Changeset in webkit [186878] by weinig@apple.com
  • 6 edits in trunk/Source

Color match plug-ins
<rdar://problem/21758722>
https://bugs.webkit.org/show_bug.cgi?id=146987

Reviewed by Dean Jackson.

Source/WebCore:

  • platform/spi/cocoa/QuartzCoreSPI.h:

Add colorMatchUntaggedContent property.

Source/WebKit2:

  • Platform/mac/LayerHostingContext.h:
  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::setColorMatchUntaggedContent):
(WebKit::LayerHostingContext::colorMatchUntaggedContent):
Add setter/getter for color matching untagged content.

  • PluginProcess/mac/PluginControllerProxyMac.mm:

(WebKit::PluginControllerProxy::updateLayerHostingContext):
Have plug-ins CAContext's color match untagged colors into sRGB.

5:33 PM Changeset in webkit [186877] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Resizing TimelineRuler selection on both sides doesn't work with snapping enabled
https://bugs.webkit.org/show_bug.cgi?id=146970

Reviewed by Brian Burg.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
Use snapped current time value when setting selection bounds.

5:31 PM Changeset in webkit [186876] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] 64-bit Build Failure
https://bugs.webkit.org/show_bug.cgi?id=146989

Reviewed by Mark Lam.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState): Add missing
declaration for 64-bit type on 4-argument register machines (like
Windows).

5:29 PM Changeset in webkit [186875] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Another build fix after r186858.

  • html/canvas/DOMPath.h: Don't use WEBCORE_EXPORT on the

overall class and the destructor declaration.

5:06 PM Changeset in webkit [186874] by Lucas Forschler
  • 6 edits in branches/safari-601.1-branch

Merged r186826.

4:57 PM Changeset in webkit [186873] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebKit2

Merge r186838. rdar://problem/21716363

4:57 PM Changeset in webkit [186872] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186863. rdar://problem/21714843

4:31 PM Changeset in webkit [186871] by matthew_hanson@apple.com
  • 8 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186533. rdar://problem/21533137

4:13 PM Changeset in webkit [186870] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Many test failures in scm_unittest.py
https://bugs.webkit.org/show_bug.cgi?id=143967

Patch by Dean Johnson <dean_johnson@apple.com> on 2015-07-15
Reviewed by Daniel Bates.

  • Scripts/webkitpy/common/checkout/scm/detection.py:

(SCMDetector.detect_scm_system): Paths with symlinks are now resolved to
absolute canonical file paths. Two mutually exclusive issues cause this
to be a problem.

1) Python's os.path.relpath() function does not return correct relative
paths between two filepaths that point to the same file, if symlinks are
involved.

On Mac, /tmp points to /private/tmp
ex. os.path.relpath('/tmp', '/private/tmp')

returns '../../tmp'

What we want is actually just '.'
2) Git does not allow file paths to trace outside of
the Git repository. This means that if you have a repository in
/tmp and you refer to that repository when invoking a git command as
../tmp, Git will produce errors about working outside of the repository.

  • Scripts/webkitpy/common/checkout/scm/git.py: Over time Git has changed

its default behavior and such, needed to be updated.
(Git.changed_files): '--' was added into the command so that patch_directories
were taken as positional arguments.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py: Changed tests and setup

in the GitSVNTest class to more closely emulate the version of Git that the tests
assumed a system had. Also fixed a small side-effect from the absolute canonical
path fix in SCMDetector.detect_scm_system
(SVNTestRepository.setup): A relative filepath was previously passed as the
checkout root to SCMDetector.detect_scm_system, but is now cleaned to
an absolute canonical path before being passed in. The failing test
was a "sanity check" that the svn.checkout_root and scm.checkout_root
were the same.
(GitSVNTest._setup_git_checkout):

1) Added "--prefix " option to git clone since Git changed its default
behavior in version 2.0.
2) The branch master was renamed to trunk to more closely emulate what
tests expected when they were written.

(GitSVNTest.test_changed_files_local_plus_working_copy): Two of the three
original tests failed because the tests expected the trunk branch
to produce its parent's commit, whereas Git merely provides the HEAD commit
for a given branch (trunk in this case). Based on other tests written
in the same commit, it appears these tests were failing from the point they
were written.

4:04 PM Changeset in webkit [186869] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.8-branch/Source

Merge r186559. rdar://problem/21716363

4:00 PM Changeset in webkit [186868] by dino@apple.com
  • 4 edits
    3 adds in trunk

Tag WebGL layers with sRGB colorspace
https://bugs.webkit.org/show_bug.cgi?id=146986
<rdar://problem/21758704>

Reviewed by Simon Fraser.

Source/WebCore:

Label a CAOpenGLLayer as using the sRGB colorspace,
like the rest of our page content.

Test: fast/canvas/webgl/match-page-color-space.html

  • platform/graphics/mac/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]): Set the colorspace property on the layer.
(-[WebGLLayer copyCGLPixelFormatForDisplayMask:]):
(-[WebGLLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):

LayoutTests:

Add a test that embeds a WebGL canvas inside a solid div. Since both
have the same color, the canvas should seemlessly disappear into
the surrounding div.

  • fast/canvas/webgl/match-page-color-space-expected.html: Added.
  • fast/canvas/webgl/match-page-color-space.html: Added.
  • platform/mac-mavericks/TestExpectations: Skip this test.
  • platform/mac-yosemite/TestExpectations: Added. Skip this test.
3:42 PM Changeset in webkit [186867] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Win] Unreviewed build fix after r186858.

Add missing DOMPath and PathUtilities files to project.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
3:39 PM Changeset in webkit [186866] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Headers that look for NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES should import NSGeometry.h
https://bugs.webkit.org/show_bug.cgi?id=146982

Reviewed by Tim Horton.

  • platform/graphics/FloatPoint.h:
  • platform/graphics/IntPoint.h:
  • platform/graphics/IntSize.h:
3:33 PM Changeset in webkit [186865] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Scroll snapping to elements is broken for main frame scrolling
https://bugs.webkit.org/show_bug.cgi?id=146957

Patch by Wenson Hsieh <Wenson Hsieh> on 2015-07-15
Reviewed by Brent Fulgham.

Source/WebCore:

Fixes the case of elements with scroll snap coordinates in a scroll snapping mainframe by changing
RenderBox::findEnclosingScrollableContainer to return the body's RenderBox when all enclosing elements
are not overflow scrollable but the mainframe can scroll.

Test: css3/scroll-snap/scroll-snap-coordinate-mainframe.html

  • page/FrameView.h: Export isScrollable so that the Internals API can use it.
  • rendering/RenderBox.cpp: Include MainFrame.h.

(WebCore::RenderBox::findEnclosingScrollableContainer): Changed to return the body's RenderBox if

none of its parent elements are overflow scrolling.

  • testing/Internals.cpp:

(WebCore::Internals::scrollSnapOffsets): Updated to return snap offsets for the body element,

allowing us to call window.internals.scrollSnapOffsets(document.body).

LayoutTests:

Tests that basic scroll snap coordinates in the mainframe works.

  • css3/scroll-snap/scroll-snap-coordinate-mainframe-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-coordinate-mainframe.html: Added.
3:30 PM Changeset in webkit [186864] by matthew_hanson@apple.com
  • 13 edits
    1 add in branches/safari-600.8-branch/Source

Merge r186781. rdar://problem/21708063

3:22 PM Changeset in webkit [186863] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

WebKit document.cookie mis-parsing.
rdar://problem/21715050 and https://bugs.webkit.org/show_bug.cgi?id=146976

Reviewed by Sam Weinig.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::setCookiesFromDOM): Use new CFNetwork SPI when available.

2:54 PM Changeset in webkit [186862] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] font fallback not working
https://bugs.webkit.org/show_bug.cgi?id=146595

Patch by Jinyoung Hur <hur.ims@navercorp.com> on 2015-07-15
Reviewed by Myles C. Maxfield.

A Win32 API, GetGlyphIndices(), is not used properly, so any glyphs are considered existing in a font and it prevents the font fall back mechanism from working.

I think a specific font should be newly installed on the test machine to test this case but I have no idea how can it be done.

  • platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:

(WebCore::GlyphPage::fill):

2:46 PM Changeset in webkit [186861] by Michael Catanzaro
  • 4 edits in trunk/Source/WebKit2

[GTK] Rename PACKAGE_LOCALE_DIR to LOCALEDIR
https://bugs.webkit.org/show_bug.cgi?id=146975

Reviewed by Martin Robinson.

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkit_web_context_class_init):

  • WebProcess/gtk/WebProcessMainGtk.cpp:
2:41 PM Changeset in webkit [186860] by saambarati1@gmail.com
  • 81 edits
    14 adds in trunk

[ES6] implement block scoping to enable 'let'
https://bugs.webkit.org/show_bug.cgi?id=142944

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

(JSC::BuiltinExecutables::createExecutableInternal):

  • bytecode/BytecodeList.json:

This patch adds a new opcode and removes op_pop_scope:
1) op_get_parent_scope returns the parent scope but doesn't
implicitly write that scope into the scope register. op_pop_scope
is now reduced to op_get_parent_scope followed by op_mov.

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::stronglyVisitStrongReferences):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addStringSwitchJumpTable):
(JSC::CodeBlock::stringSwitchJumpTable):
(JSC::CodeBlock::symbolTable):
(JSC::CodeBlock::evalCodeCache):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::replaceConstant):
op_put_to_scope for LocalClosureVar now takes as an argument
the constant index for the Symbol Table it will be putting into.
This argument is only used to communicate from the BytecodeGenerator
to CodeBlock linking time and it is not present in the linked bytecode.

op_put_to_scope for non LocalClosureVar takes, at the same index, an
argument that represents the local scope depth which it uses for
JSScope::abstractResolve to know how many scopes it needs to skip.
Again, this is not in the linked code.
op_get_from_scope and op_resolve_scope also take as an argument
the local scope depth to use in JSScope::abstractResolve. Again,
this is not used in the linked code.

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
(JSC::EvalCodeCache::clear):
(JSC::EvalCodeCache::isCacheable):
When direct eval is called and passed a scope that
corresponds to a lexical scope, we can't safely cache
that code because we won't be able to guarantee
that the cached code is always executed in the same scope.
Consider this example:
function foo() {

let x = 20;
eval("x;");
if (b) {

let x = 30;
if (b) {

let y = 40;
eval("x;")

}

}

}

We can't reuse resolution depth when linking get_from_scope in evals.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::parameterCount):

  • bytecode/UnlinkedCodeBlock.h:

Unlinked functions now know the variables that were under TDZ in their parent
scope.

(JSC::UnlinkedCodeBlock::symbolTable):
(JSC::UnlinkedCodeBlock::setSymbolTable):
(JSC::UnlinkedCodeBlock::setSymbolTableConstantIndex):
(JSC::UnlinkedCodeBlock::symbolTableConstantIndex):
(JSC::UnlinkedCodeBlock::vm):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::~BytecodeGenerator):
(JSC::BytecodeGenerator::newRegister):
(JSC::BytecodeGenerator::reclaimFreeRegisters):
(JSC::BytecodeGenerator::newBlockScopeVariable):
(JSC::BytecodeGenerator::newTemporary):
(JSC::BytecodeGenerator::emitProfileType):
(JSC::BytecodeGenerator::emitLoadGlobalObject):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::popLexicalScope):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::variablePerSymbolTable):
(JSC::BytecodeGenerator::variableForLocalEntry):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::initializeVariable):
(JSC::BytecodeGenerator::emitTDZCheck):
(JSC::BytecodeGenerator::needsTDZCheck):
(JSC::BytecodeGenerator::emitTDZCheckIfNecessary):
(JSC::BytecodeGenerator::liftTDZCheckIfPossible):
(JSC::BytecodeGenerator::getVariablesUnderTDZ):
(JSC::BytecodeGenerator::emitNewObject):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitGetParentScope):
(JSC::BytecodeGenerator::emitPopScope):
(JSC::BytecodeGenerator::emitDebugHook):
(JSC::BytecodeGenerator::pushFinallyContext):
(JSC::BytecodeGenerator::pushIteratorCloseContext):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::emitPopScopes):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::calculateTargetScopeDepthForExceptionHandler):
(JSC::BytecodeGenerator::currentScopeDepth):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitPushCatchScope):
(JSC::BytecodeGenerator::beginSwitch):
(JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):
(JSC::BytecodeGenerator::emitEnumeration):

  • bytecompiler/BytecodeGenerator.h:

(JSC::Variable::Variable):
(JSC::Variable::isResolved):
(JSC::Variable::symbolTableConstantIndex):
(JSC::Variable::ident):
(JSC::BytecodeGenerator::ignoredResult):
(JSC::BytecodeGenerator::tempDestination):
(JSC::BytecodeGenerator::lastOpcodeID):
(JSC::BytecodeGenerator::makeFunction):
(JSC::BytecodeGenerator::symbolTable):
(JSC::BytecodeGenerator::shouldOptimizeLocals): Deleted.
(JSC::BytecodeGenerator::canOptimizeNonLocals): Deleted.
The heart of the changes in this patch are in the bytecode generator.
The bytecode generator now keeps a stack of tuples of
{symbol table, scope register, flag indicating catch or with scope, symbol table index in constant pool}
that models the runtime scope stack. This symbol table stack is used
in resolving local variables.

Also, the bytecode generator handles pushing and popping of lexical scopes.
This is relatively straight forward:
Captured 'let' variables end up in the JSLexicalEnvironment scope and non-captured
variables end up on the stack. Some trickiness is involved in generating
code for 'for' loops that have captured variables (I'm talking about variables in the loop
header, not the loop body). Each iteration of the for loop ends up with
its own JSLexicalEnvironment. Static code must be generated in such a way
to create this runtime behavior. This is done by emitting instructions to
push and pop a lexical scope at the end of each loop and copying values
from the previous loop's scope into the new scope. This code must also
ensure that each loop iteration's scope refers to the same underlying
SymbolTable so that no scope is accidentally mistaken as being a singleton scope.

When the debugger is enabled, all lexically defined variables will end up in the
JSLexicalEnvironment.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ResolveNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::PostfixNode::emitResolve):
(JSC::DeleteResolveNode::emitBytecode):
(JSC::TypeOfResolveNode::emitBytecode):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::BlockNode::emitBytecode):
(JSC::ExprStatementNode::emitBytecode):
(JSC::DeclarationStatement::emitBytecode):
(JSC::EmptyVarExpression::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ForInNode::emitMultiLoopBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::SwitchNode::emitBytecode):
(JSC::BindingNode::bindValue):
(JSC::VarStatementNode::emitBytecode): Deleted.

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::getOwnPropertySlot):
(JSC::DebuggerScope::put):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGNode.h:

(JSC::DFG::Node::castConstant):
(JSC::DFG::Node::initializationValueForActivation):
(JSC::DFG::Node::containsMovHint):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

CreateActivation nodes now have a second OpInfo that tracks the
initial value that needs to be placed in the activation. This initial value
is also used in allocation sinking to create proper bottom values for all
scope variables.

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateActivation):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToLLVM::compileMaterializeCreateActivation):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_push_with_scope):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_create_lexical_environment):
(JSC::JIT::emit_op_get_parent_scope):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_enter):
(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_pop_scope): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_push_with_scope):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_create_lexical_environment):
(JSC::JIT::emit_op_get_parent_scope):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_enter):
(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_pop_scope): Deleted.

  • jit/JITOperations.cpp:

(JSC::canAccessArgumentIndexQuickly):

  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createSourceElements):
(JSC::ASTBuilder::funcDeclarations):
(JSC::ASTBuilder::features):
(JSC::ASTBuilder::numConstants):
(JSC::ASTBuilder::createConditionalExpr):
(JSC::ASTBuilder::createAssignResolve):
(JSC::ASTBuilder::createClassDeclStatement):
(JSC::ASTBuilder::createBlockStatement):
(JSC::ASTBuilder::createIfStatement):
(JSC::ASTBuilder::createForLoop):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::createForOfLoop):
(JSC::ASTBuilder::isBindingNode):
(JSC::ASTBuilder::createEmptyStatement):
(JSC::ASTBuilder::createDeclarationStatement):
(JSC::ASTBuilder::createVarStatement):
(JSC::ASTBuilder::createLetStatement):
(JSC::ASTBuilder::createEmptyVarExpression):
(JSC::ASTBuilder::createEmptyLetExpression):
(JSC::ASTBuilder::createReturnStatement):
(JSC::ASTBuilder::createTryStatement):
(JSC::ASTBuilder::createSwitchStatement):
(JSC::ASTBuilder::appendStatement):
(JSC::ASTBuilder::createCommaExpr):
(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::createBindingLocation):
(JSC::ASTBuilder::setEndOffset):
(JSC::ASTBuilder::Scope::Scope):
(JSC::ASTBuilder::makeAssignNode):
(JSC::ASTBuilder::varDeclarations): Deleted.
(JSC::ASTBuilder::addVar): Deleted.

  • parser/Keywords.table:
  • parser/NodeConstructors.h:

(JSC::ReadModifyResolveNode::ReadModifyResolveNode):
(JSC::AssignResolveNode::AssignResolveNode):
(JSC::ExprStatementNode::ExprStatementNode):
(JSC::DeclarationStatement::DeclarationStatement):
(JSC::EmptyVarExpression::EmptyVarExpression):
(JSC::EmptyLetExpression::EmptyLetExpression):
(JSC::IfElseNode::IfElseNode):
(JSC::WhileNode::WhileNode):
(JSC::ForNode::ForNode):
(JSC::CaseBlockNode::CaseBlockNode):
(JSC::SwitchNode::SwitchNode):
(JSC::ConstDeclNode::ConstDeclNode):
(JSC::BlockNode::BlockNode):
(JSC::EnumerationNode::EnumerationNode):
(JSC::ForInNode::ForInNode):
(JSC::ForOfNode::ForOfNode):
(JSC::ObjectPatternNode::create):
(JSC::BindingNode::create):
(JSC::BindingNode::BindingNode):
(JSC::VarStatementNode::VarStatementNode): Deleted.

  • parser/Nodes.cpp:

(JSC::ScopeNode::ScopeNode):
(JSC::ScopeNode::singleStatement):
(JSC::ProgramNode::ProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):
(JSC::FunctionNode::finishParsing):
(JSC::VariableEnvironmentNode::VariableEnvironmentNode):

  • parser/Nodes.h:

(JSC::VariableEnvironmentNode::VariableEnvironmentNode):
(JSC::VariableEnvironmentNode::lexicalVariables):
(JSC::ScopeNode::usesThis):
(JSC::ScopeNode::needsActivationForMoreThanVariables):
(JSC::ScopeNode::needsActivation):
(JSC::ScopeNode::hasCapturedVariables):
(JSC::ScopeNode::captures):
(JSC::ScopeNode::varDeclarations):
(JSC::ScopeNode::functionStack):
(JSC::ScopeNode::neededConstants):
(JSC::ProgramNode::startColumn):
(JSC::ProgramNode::endColumn):
(JSC::EvalNode::startColumn):
(JSC::EvalNode::endColumn):
(JSC::BindingNode::boundProperty):
(JSC::BindingNode::divotStart):
(JSC::BindingNode::divotEnd):
(JSC::ScopeNode::capturedVariableCount): Deleted.
(JSC::ScopeNode::capturedVariables): Deleted.
(JSC::ScopeNode::varStack): Deleted.
There is a new class called 'VariableEnvironmentNode' that has the
necessary fields to model a lexical scope. Multiple AST nodes now
also inherit from VariableEnvironmentNode.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVariableDeclaration):
(JSC::Parser<LexerType>::parseWhileStatement):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::tryParseDestructuringPatternExpression):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseConstDeclarationList):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseBreakStatement):
(JSC::Parser<LexerType>::parseContinueStatement):
(JSC::Parser<LexerType>::parseSwitchStatement):
(JSC::Parser<LexerType>::parseTryStatement):
(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseVarDeclaration): Deleted.
(JSC::Parser<LexerType>::parseVarDeclarationList): Deleted.

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setIsFunction):
(JSC::Scope::isFunction):
(JSC::Scope::isFunctionBoundary):
(JSC::Scope::setIsLexicalScope):
(JSC::Scope::isLexicalScope):
(JSC::Scope::declaredVariables):
(JSC::Scope::finalizeLexicalEnvironment):
(JSC::Scope::computeLexicallyCapturedVariablesAndPurgeCandidates):
(JSC::Scope::declareCallee):
(JSC::Scope::declareVariable):
(JSC::Scope::declareLexicalVariable):
(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::hasLexicallyDeclaredVariable):
(JSC::Scope::hasDeclaredParameter):
(JSC::Scope::declareWrite):
(JSC::Scope::preventAllVariableDeclarations):
(JSC::Scope::preventVarDeclarations):
(JSC::Scope::allowsVarDeclarations):
(JSC::Scope::allowsLexicalDeclarations):
(JSC::Scope::declareParameter):
(JSC::Scope::declareBoundParameter):
(JSC::Scope::useVariable):
(JSC::Scope::setNeedsFullActivation):
(JSC::Scope::needsFullActivation):
(JSC::Scope::hasDirectSuper):
(JSC::Scope::setNeedsSuperBinding):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::getCapturedVars):
(JSC::Scope::copyCapturedVariablesToVector):
(JSC::Parser::AutoCleanupLexicalScope::AutoCleanupLexicalScope):
(JSC::Parser::AutoCleanupLexicalScope::~AutoCleanupLexicalScope):
(JSC::Parser::AutoCleanupLexicalScope::setIsValid):
(JSC::Parser::AutoCleanupLexicalScope::isValid):
(JSC::Parser::AutoCleanupLexicalScope::setPopped):
(JSC::Parser::AutoCleanupLexicalScope::scope):
(JSC::Parser::currentScope):
(JSC::Parser::pushScope):
(JSC::Parser::popScopeInternal):
(JSC::Parser::popScope):
(JSC::Parser::declareVariable):
(JSC::Parser::hasDeclaredVariable):
(JSC::Parser::hasDeclaredParameter):
(JSC::Parser::declareWrite):
(JSC::Parser::findCachedFunctionInfo):
(JSC::Parser::isFunctionBodyNode):
(JSC::Parser::continueIsValid):
(JSC::Parser::pushLabel):
(JSC::Parser::popLabel):
(JSC::Parser::getLabel):
(JSC::Parser::isLETMaskedAsIDENT):
(JSC::Parser<LexerType>::parse):
(JSC::Scope::preventNewDecls): Deleted.
(JSC::Scope::allowsNewDecls): Deleted.
(JSC::Scope::getCapturedVariables): Deleted.
There are basic parser changes that now allow for the 'let'
keyword. The trickiest change is how we will still treat 'let'
as an identifier for sloppy-mode code sometimes. For example,
"var let = ..." is allowed but "let let" or "const let" is not.

The most significant change to the parser made for this patch
is appropriating the Scope struct to also also model a lexical
scope. Changes were made in how we track captured variables to
account for this. In general, I think some of this code could
benefit from a slight refactoring to make things cleaner.

  • parser/ParserTokens.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createNewExpr):
(JSC::SyntaxChecker::createConditionalExpr):
(JSC::SyntaxChecker::createAssignResolve):
(JSC::SyntaxChecker::createEmptyVarExpression):
(JSC::SyntaxChecker::createEmptyLetExpression):
(JSC::SyntaxChecker::createClassExpr):
(JSC::SyntaxChecker::createClassDeclStatement):
(JSC::SyntaxChecker::createBlockStatement):
(JSC::SyntaxChecker::createExprStatement):
(JSC::SyntaxChecker::createIfStatement):
(JSC::SyntaxChecker::createForLoop):
(JSC::SyntaxChecker::createForInLoop):
(JSC::SyntaxChecker::createForOfLoop):
(JSC::SyntaxChecker::createEmptyStatement):
(JSC::SyntaxChecker::createVarStatement):
(JSC::SyntaxChecker::createLetStatement):
(JSC::SyntaxChecker::createReturnStatement):
(JSC::SyntaxChecker::createBreakStatement):
(JSC::SyntaxChecker::createContinueStatement):
(JSC::SyntaxChecker::createTryStatement):
(JSC::SyntaxChecker::createSwitchStatement):
(JSC::SyntaxChecker::createWhileStatement):
(JSC::SyntaxChecker::createWithStatement):
(JSC::SyntaxChecker::createDoWhileStatement):
(JSC::SyntaxChecker::createGetterOrSetterProperty):
(JSC::SyntaxChecker::appendStatement):
(JSC::SyntaxChecker::combineCommaNodes):
(JSC::SyntaxChecker::evalCount):
(JSC::SyntaxChecker::appendBinaryExpressionInfo):
(JSC::SyntaxChecker::operatorStackPop):
(JSC::SyntaxChecker::addVar): Deleted.

  • parser/VariableEnvironment.cpp: Added.

(JSC::VariableEnvironment::markVariableAsCapturedIfDefined):
(JSC::VariableEnvironment::markVariableAsCaptured):
(JSC::VariableEnvironment::markAllVariablesAsCaptured):
(JSC::VariableEnvironment::hasCapturedVariables):
(JSC::VariableEnvironment::captures):
(JSC::VariableEnvironment::swap):

  • parser/VariableEnvironment.h: Added.

(JSC::VariableEnvironmentEntry::isCaptured):
(JSC::VariableEnvironmentEntry::isConstant):
(JSC::VariableEnvironmentEntry::isVar):
(JSC::VariableEnvironmentEntry::isLet):
(JSC::VariableEnvironmentEntry::setIsCaptured):
(JSC::VariableEnvironmentEntry::setIsConstant):
(JSC::VariableEnvironmentEntry::setIsVar):
(JSC::VariableEnvironmentEntry::setIsLet):
(JSC::VariableEnvironmentEntry::clearIsVar):
(JSC::VariableEnvironment::begin):
(JSC::VariableEnvironment::end):
(JSC::VariableEnvironment::add):
(JSC::VariableEnvironment::size):
(JSC::VariableEnvironment::contains):
(JSC::VariableEnvironment::remove):
VariableEnvironment is a new class that keeps track
of the static environment in the parser and the bytecode generator.
VariableEnvironment behaves like SymbolTable but for the bytecode generator.
It keeps track of variable types, i.e, if a variable is a "var", "let", "const"
and whether or not its captured.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:

(JSC::CodeCache::clear):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::createErrorForInvalidGlobalAssignment):
(JSC::createTDZError):
(JSC::throwOutOfMemoryError):

  • runtime/ExceptionHelpers.h:
  • runtime/Executable.cpp:

(JSC::EvalExecutable::create):
(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/Executable.h:
  • runtime/JSCJSValue.h:

(JSC::jsUndefined):
(JSC::jsTDZValue):
(JSC::jsBoolean):

  • runtime/JSEnvironmentRecord.h:

(JSC::JSEnvironmentRecord::finishCreationUninitialized):
(JSC::JSEnvironmentRecord::finishCreation):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::weakRandomInteger):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval):

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::symbolTableGet):

  • runtime/JSLexicalEnvironment.h:

(JSC::JSLexicalEnvironment::create):

  • runtime/JSScope.cpp:

(JSC::JSScope::resolve):
(JSC::JSScope::abstractResolve):
(JSC::JSScope::collectVariablesUnderTDZ):
(JSC::JSScope::isLexicalScope):
(JSC::resolveModeName):

  • runtime/JSScope.h:
  • runtime/PropertySlot.h:

(JSC::PropertySlot::setValue):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::SymbolTable):
(JSC::SymbolTable::cloneScopePart):

  • runtime/SymbolTable.h:

SymbolTable now uses an extra bit to know if it corresponds
to a "let"-like environment or not.

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase<Unknown>::get):
(JSC::WriteBarrierBase<Unknown>::clear):
(JSC::WriteBarrierBase<Unknown>::setUndefined):
(JSC::WriteBarrierBase<Unknown>::setStartingValue):
(JSC::WriteBarrierBase<Unknown>::isNumber):
(JSC::WriteBarrierBase<Unknown>::isObject):
(JSC::WriteBarrierBase<Unknown>::isNull):

  • tests/stress/activation-sink-default-value-tdz-error.js: Added.

(shouldThrowTDZ):
(bar):
(foo.cap):

  • tests/stress/activation-sink-osrexit-default-value-tdz-error.js: Added.

(shouldThrowTDZ):
(bar):

  • tests/stress/lexical-let-and-with-statement.js: Added.

(truth):
(assert):
(.):

  • tests/stress/lexical-let-exception-handling.js: Added.

(truth):
(assert):
(.):

  • tests/stress/lexical-let-global-not-captured-variables.js: Added.

(truth):
(assert):
(foo):
(.let.capY):

  • tests/stress/lexical-let-loop-semantics.js: Added.

(truth):
(assert):
(shouldThrowTDZ):
(.):

  • tests/stress/lexical-let-not-strict-mode.js: Added.

(truth):
(assert):
(shouldThrowTDZ):
(.):

  • tests/stress/lexical-let-semantics.js: Added.

(truth):
(assert):
(let.globalFunction):
(let.retGlobalNumberCaptured):
(let.setGlobalNumberCaptured):
(.):

  • tests/stress/lexical-let-tdz.js: Added.

(truth):
(assert):
(shouldThrowTDZ):
(.):

LayoutTests:

  • js/dom/reserved-words-as-property-expected.txt:
  • js/keywords-and-reserved_words-expected.txt:
  • js/let-syntax-expected.txt: Added.
  • js/let-syntax.html: Added.
  • js/reserved-words-strict-expected.txt:
  • js/script-tests/keywords-and-reserved_words.js:
  • js/script-tests/let-syntax.js: Added.

(truth):
(assert):
(hasSyntaxError):
(shouldHaveSyntaxError):
(shouldNotHaveSyntaxError):
(shouldHaveSyntaxErrorStrictOnly):

  • js/script-tests/reserved-words-strict.js:
  • js/script-tests/statement-list-item-syntax-errors.js:

(testSyntax):
(runTests):

  • js/statement-list-item-syntax-errors-expected.txt:
2:29 PM Changeset in webkit [186859] by andersca@apple.com
  • 8 edits in trunk/Source

Make JavaScriptCore SPI headers used by WebCore SPI headers self-contained
https://bugs.webkit.org/show_bug.cgi?id=146978

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

  • debugger/DebuggerPrimitives.h:
  • disassembler/Disassembler.h:
  • heap/Weak.h:
  • inspector/InspectorValues.h:
  • runtime/JSCJSValue.h:

Source/WTF:

  • wtf/ExportMacros.h:
2:19 PM Changeset in webkit [186858] by timothy_horton@apple.com
  • 12 edits
    7 adds in trunk

Factor rect shrink-wrapping code out of RenderThemeMac for future reuse
https://bugs.webkit.org/show_bug.cgi?id=146973
<rdar://problem/21643094>

Reviewed by Anders Carlsson.

Test: fast/shrink-wrap/rect-shrink-wrap.html

  • WebCore.xcodeproj/project.pbxproj:

Add DOMPath.cpp and PathUtilities.{h, cpp}.

  • bindings/js/JSDOMBinding.h:

(WebCore::NativeValueTraits<double>::nativeValue):
Make it possible to use sequence<double> in IDL files.

  • bindings/scripts/CodeGeneratorJS.pm:

Export JSDOMPath for use in Internals.

  • html/canvas/DOMPath.cpp: Added.

(WebCore::DOMPath::~DOMPath):

  • html/canvas/DOMPath.h:

Out-of-line the DOMPath destructor so as not to anger the bindings
integrity checker (otherwise, the address of the DOMPath destructor
is different in WebCoreTestSupport and WebCore, causing us to fail
the vtable equality test).

  • platform/graphics/Path.h:

Forward declare FloatRect instead of including it unnecessarily.
Export ensurePlatformPath().

  • platform/graphics/PathUtilities.cpp: Added.

(WebCore::addShrinkWrapRightCorner):
(WebCore::addShrinkWrapLeftCorner):
(WebCore::addShrinkWrappedPathForRects):
These parts are extracted from RenderThemeMac, with two changes:

+ support for arbitrarily-aligned rects

(the other version assumed they were horizontally center-aligned)

+ support for overlapping rects

(the other version assumed they touched but did not overlap)

There are still things missing:

+ support for a fallback when the shape is too hard to shrink-wrap

And things broken:

+ if the distance between two edges is smaller than the corner radius,

we'll end up with a sharp edge in the path

Both of these cases are covered in the layout test and can be improved.

(WebCore::rectsIntersectOrTouch):
Rect intersection with <= instead of <.

(WebCore::contiguousRectGroupsFromRects):
Given a set of rects, find all of the contiguous regions. We'll
shrink-wrap each region independently.

(WebCore::PathUtilities::pathWithShrinkWrappedRects):

  • platform/graphics/PathUtilities.h: Added.

Add PathUtilities, where the shrink-wrapping code lives.

  • rendering/RenderThemeMac.mm:

(WebCore::paintAttachmentTitleBackground):
(WebCore::addAttachmentTitleBackgroundRightCorner): Deleted.
(WebCore::addAttachmentTitleBackgroundLeftCorner): Deleted.
Remove shrink-wrapping implementation and make use of the one in PathUtilities.

  • testing/Internals.cpp:

(WebCore::Internals::pathWithShrinkWrappedRects):

  • testing/Internals.h:
  • testing/Internals.idl:

Expose pathWithShrinkWrappedRects to tests via Internals.
It takes a sequence<double> where every four values are the x, y, w, h
of a rect, and returns a DOMPath which can be used with Canvas.

  • fast/shrink-wrap/rect-shrink-wrap-expected.png: Added.
  • fast/shrink-wrap/rect-shrink-wrap-expected.txt: Added.
  • fast/shrink-wrap/rect-shrink-wrap.html: Added.

Add a test of both working and broken (indicated by comments in the test)
shrink-wrapping cases.

2:07 PM Changeset in webkit [186857] by enrica@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Should look for RTF and RTFD pasteboard types before plain text.
https://bugs.webkit.org/show_bug.cgi?id=146971
rdar://problem/21840845

Reviewed by Sam Weinig.

The list of pasteboard types returned by supportedPasteboardTypes
determines the order in which WebKit looks for data in the pasteboard
to create a fragment. The incorrect order could make plain text to
be preferred over rich format.

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::supportedPasteboardTypes):

2:06 PM Changeset in webkit [186856] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Private headers that include project headers should also be project headers
https://bugs.webkit.org/show_bug.cgi?id=146974

Reviewed by Dan Bernstein.

Since these headers can't be included by WebKit anyway they shouldn't be installed.

  • WebCore.xcodeproj/project.pbxproj:
2:05 PM Changeset in webkit [186855] by matthew_hanson@apple.com
  • 28 edits
    4 adds in branches/safari-600.8-branch

Merge r186763. rdar://problem/21707917

1:49 PM Changeset in webkit [186854] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[Mac] AirPlay route is not always set automatically
https://bugs.webkit.org/show_bug.cgi?id=146969

Reviewed by Jer Noble.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Return early if there are

no clients. Make the first client in the vector automatically play to the target if there
is no other match and there is an active route.

(WebCore::WebMediaSessionManager::watchdogTimerFired): Call picker.invalidatePlaybackTargets,

not stopMonitoringPlaybackTargets.

  • platform/graphics/MediaPlaybackTargetPicker.cpp:

(WebCore::MediaPlaybackTargetPicker::invalidatePlaybackTargets): New.

  • platform/graphics/MediaPlaybackTargetPicker.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets): Do nothing, AirPlay

automatically stops monitoring when appropriate and release the picker also releases
the output context, which drops the route.

(WebCore::MediaPlaybackTargetPickerMac::invalidatePlaybackTargets): New.

1:36 PM Changeset in webkit [186853] by andersca@apple.com
  • 1 edit
    5 deletes in trunk/Source/WebCore

Remove forwarding headers that no longer point to valid headers
https://bugs.webkit.org/show_bug.cgi?id=146972

Reviewed by Tim Horton.

  • ForwardingHeaders/heap/AllocationSpace.h: Removed.
  • ForwardingHeaders/runtime/IntegralTypedArrayBase.h: Removed.
  • ForwardingHeaders/runtime/PrototypeFunction.h: Removed.
  • ForwardingHeaders/runtime/StorageBarrier.h: Removed.
  • ForwardingHeaders/runtime/TypedArrayBase.h: Removed.
1:34 PM Changeset in webkit [186852] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit2

[GTK] Rename LIBEXECDIR to PKGLIBEXECDIR
https://bugs.webkit.org/show_bug.cgi?id=140070

Reviewed by Martin Robinson.

The path that's currently stored in LIBEXECDIR is one level lower than
the real LIBEXECDIR, which we are going to need. Introduce PKGLIBEXECDIR
so that we can use LIBEXECDIR for the real LIBEXECDIR in the future.

  • PlatformGTK.cmake:
  • Shared/gtk/ProcessExecutablePathGtk.cpp:

(WebKit::findWebKitProcess):

11:32 AM Changeset in webkit [186851] by basile_clement@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Change sizeof(Register) to sizeof(void*)

Rubber-stamped by Michael Saboff.

sizeof(void*) is the actual size of a pointer on the current
architecture, while sizeof(Register) is the size of a 64-bit JS slot.
They are the technically the same since FTL only works on 64-bit
architectures, but we should still use the semantically correct one.

  • ftl/FTLJSCall.cpp:

(JSC::FTL::JSCall::emit):

11:02 AM Changeset in webkit [186850] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Mac][WK2] Videos should only have access to cookies when -[NSURLRequest HTTPShouldHandleCookies] is YES
https://bugs.webkit.org/show_bug.cgi?id=146763
<rdar://problem/21736994>

Reviewed by Darin Adler.

We should only fetch cookies from the Network process when -[NSURLRequest HTTPShouldHandleCookies] is YES.
This makes us more closely match the behavior of the CFNetwork implementation of
-[NSURLSessionLocal {_copyCookiesForRequestUsingAllAppropriateStorageSemantics, _getCookieHeadersForTask:completionHandler}].

  • Shared/mac/CookieStorageShim.mm:

(-[WKNSURLSessionLocal _copyCookiesForRequestUsingAllAppropriateStorageSemantics:]):
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

10:52 AM Changeset in webkit [186849] by enrica@apple.com
  • 7 edits in trunk/Source/WebKit2

[iOS] Add support for updateSelectionWithExtentPoint:withBoundary.
https://bugs.webkit.org/show_bug.cgi?id=146951
rdar://problem/20864286

Reviewed by Tim Horton.

Add implementation for new method used by text selection
engine on iOS. The new function modifies the selection near the given point
and snaps it at the boundary of the specified granularity.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
(-[WKContentView _characterBeforeCaretSelection]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPageProxy::requestDictationContext):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::rangeForGranularityAtPoint):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):

10:42 AM Changeset in webkit [186848] by basile_clement@apple.com
  • 3 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Only non-constructors functions are candidate for tail calls
https://bugs.webkit.org/show_bug.cgi?id=146967

Reviewed by Saam Barati.

Previously, we were emitting tail calls in any ScopeNode. This is
wrong: we should only be emitting tail calls in FunctionNodes that are
not ES6 constructors.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ScopeNode::emitStatementsBytecode):
(JSC::FunctionNode::emitBytecode):

  • parser/Nodes.h:
9:04 AM Changeset in webkit [186847] by matthew_hanson@apple.com
  • 10 edits
    2 adds in branches/safari-600.8-branch

Merge r186744. rdar://problem/21716371

9:04 AM Changeset in webkit [186846] by matthew_hanson@apple.com
  • 14 edits in branches/safari-600.8-branch/Source/WebKit2

Merge r186804. rdar://problem/21716368

9:04 AM Changeset in webkit [186845] by matthew_hanson@apple.com
  • 6 edits
    12 adds in branches/safari-600.8-branch

Merge r186793. rdar://problem/21707880

9:04 AM Changeset in webkit [186844] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/LayoutTests

Merge r186790. rdar://problem/21708063

9:04 AM Changeset in webkit [186843] by matthew_hanson@apple.com
  • 8 edits
    8 adds in branches/safari-600.8-branch

Merge r186749. rdar://problem/21532770

9:04 AM Changeset in webkit [186842] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.8-branch

Merge r186747. rdar://problem/21716398

9:04 AM Changeset in webkit [186841] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-600.8-branch

Merge r186746. rdar://problem/21716391

9:02 AM Changeset in webkit [186840] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

Negative scroll snap repeat values cause web process to hang indefinitely
https://bugs.webkit.org/show_bug.cgi?id=146953
Source/WebCore:

<rdar://problem/21823681>

Patch by Wenson Hsieh <Wenson Hsieh> on 2015-07-15
Reviewed by Simon Fraser.

Fixed dangerous behavior caused by setting -scroll-snap-points-x or -y to negative or very small
positive values. In the case of negative or 0 repeats, the web process would hang indefinitely. In
the case of very small positive values, a massive amount of memory could potentially be allocated
just to store snap offsets.

Tests: css3/scroll-snap/scroll-snap-negative-repeat.html

css3/scroll-snap/scroll-snap-subpixel-repeat.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseNonElementSnapPoints): Changed to consider negative snap repeat values as invalid CSS.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::updateFromStyle): Changed to threshold non-negative snap repeat values to 1px.

LayoutTests:

Patch by Wenson Hsieh <Wenson Hsieh> on 2015-07-15
Reviewed by Simon Fraser.

The first test case checks that setting -scroll-snap-points-x or -y to a negative value
will not cause the web process to hang. The second test case (in a similar vein) checks
that tiny subpixel snap repeats generate a reasonable number of snap offsets.

  • css3/scroll-snap/scroll-snap-negative-repeat-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-negative-repeat.html: Added.
  • css3/scroll-snap/scroll-snap-subpixel-repeat-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-subpixel-repeat.html: Added.
9:01 AM Changeset in webkit [186839] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[Linux] SeccompBrokerClient should cache arbitrary file descriptors
https://bugs.webkit.org/show_bug.cgi?id=140068

Reviewed by Žan Doberšek.

If malloc() attempts to open /proc/sys/vm/overcommit_memory in a SIGSYS
signal handler, the SeccompBroker will attempt to recursively broker the
open() syscall. Generalize the existing code that already handles the
similar case where malloc() opens /sys/devices/system/cpu/online to
handle this situation as well.

  • Shared/linux/SeccompFilters/SeccompBroker.cpp:

(WebKit::SIGSYSHandler):
(WebKit::SeccompBrokerClient::SeccompBrokerClient):
(WebKit::SeccompBrokerClient::~SeccompBrokerClient):
(WebKit::SeccompBrokerClient::handleIfOpeningCachedFile):
(WebKit::SeccompBrokerClient::cacheFile):
(WebKit::SeccompBrokerClient::handleIfOpeningOnlineCPUCount): Deleted.

7:47 AM Changeset in webkit [186838] by ddkilzer@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebKit2

REGRESSION (r186559): Follow-up fix to merge r183861 for <rdar://problem/21716677>

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup): Restore call to
deref() so we don't leak the NetworkResourceLoader.

7:22 AM Changeset in webkit [186837] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Placeholder colors should be system grays
https://bugs.webkit.org/show_bug.cgi?id=146955
<rdar://problem/21774358>

Reviewed by Sam Weinig.

Update the PiP and Airplay placards to use the correct shades
of gray.

  • Modules/mediacontrols/mediaControlsApple.css: No need to specify the

font here, nor have rules for Picture in Picture, which isn't available
on OS X.
(audio::-webkit-media-controls-time-remaining-display): We should specify
font style here.
(video:-webkit-full-screen::-webkit-media-controls-panel): Drive-by cleanup.
(audio::-webkit-media-controls-wireless-playback-status): Use a gray background
and system gray for text and artwork.
(audio::-webkit-media-controls-wireless-playback-status.small): Ditto.
(audio::-webkit-media-controls-picture-in-picture-button): Deleted (not on OS X).
(audio::-webkit-media-controls-wireless-playback-text-top): Deleted use of background color.
(audio::-webkit-media-controls-wireless-playback-text-bottom): Ditto..

  • Modules/mediacontrols/mediaControlsiOS.css: Use a gray background

and system gray for text and artwork.
(audio::-webkit-media-controls-wireless-playback-status):
(audio::-webkit-media-controls-wireless-playback-text-top):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):

7:15 AM Changeset in webkit [186836] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/misc/large-js-program.php crashes slowly in Debug builds on Windows

Fix is tracked by <rdar://problem/21816197>.

After r186813, the test was found to also crash in Debug builds
on Windows; it just needed more time to do so:

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fmisc%2Flarge-js-program.php>

  • platform/win/TestExpectations: Mark test as slow and crashing:
  • http/tests/misc/large-js-program.php
6:34 AM Changeset in webkit [186835] by ChangSeok Oh
  • 3 edits in trunk/Source/WebKit2

[GTK] Accelerated compositing is enabled by MiniBrowser in Wayland
https://bugs.webkit.org/show_bug.cgi?id=146827

Reviewed by Žan Doberšek.

WebKit2Gtk+ does not currently support accelerated compositing. For the reason,
we forcedly disable it in webkitWebViewBaseCreateWebPage. However, when we launch
MiniBrowser in wayland, the unsupported feature is re-enabled since the existing
setting is overwritten by a newly created one. Here the default value for
accelerated compositing is true. We can fix this by moving the code disabling
accelerated composition to WebPreferences::platformInitializeStore() so that
we make sure the accelerated compositing is always disabled for wayland.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCreateWebPage): Deleted.

  • UIProcess/gtk/WebPreferencesGtk.cpp:

(WebKit::WebPreferences::platformInitializeStore):

1:33 AM Changeset in webkit [186834] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed build fix.

  • Platform/spi/ios/SafariServicesSPI.h:

Jul 14, 2015:

11:43 PM Changeset in webkit [186833] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebKit2

[CoordinatedGraphics] Possible wrong rendering with scrolling
https://bugs.webkit.org/show_bug.cgi?id=146958

Reviewed by Gyuyoung Kim.

While r174261 fixing build break, there is some mistake that flushes contents layer
instead of overlay layer.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):

11:29 PM Changeset in webkit [186832] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Attempted build fixes.

  • Platform/spi/ios/SafariServicesSPI.h:
10:04 PM Changeset in webkit [186831] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r186698): Web Inspector: Frame selector is monospace again
https://bugs.webkit.org/show_bug.cgi?id=146954

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/HierarchicalPathComponent.css:

(.hierarchical-path-component):

9:42 PM Changeset in webkit [186830] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Attempted build fixes.

  • Platform/spi/ios/SafariServicesSPI.h:
9:16 PM Changeset in webkit [186829] by commit-queue@webkit.org
  • 9 edits
    4 adds
    6 deletes in trunk/Source/WebCore

[EFL] Scrollbar is not drawn on MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=143566

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-07-14
Reviewed by Gyuyoung Kim.

Implement the ScrollbarThemeEfl to draw the scrollbar on EFL port.

  • PlatformEfl.cmake: Removed the ScrollbarEfl.cpp.
  • platform/Scrollbar.cpp: Removed the !PLATFORM(EFL) guard to use the createNativeScrollbar().
  • platform/efl/DefaultTheme/CMakeLists.txt: Replaced the image files with new ones.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc:
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_horizontal.png: Added.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_vertical.png: Added.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png: Removed.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png: Removed.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png: Removed.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_horizontal.png: Added.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_vertical.png: Added.
  • platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png: Removed.
  • platform/efl/RenderThemeEfl.cpp:

(WebCore::toEdjeGroup):
(WebCore::RenderThemeEfl::paintThemePart): Added the new function to draw the scrollbar

using the RenderThemeEfl.

  • platform/efl/RenderThemeEfl.h:
  • platform/efl/ScrollbarEfl.cpp: Removed.
  • platform/efl/ScrollbarEfl.h: Removed.
  • platform/efl/ScrollbarThemeEfl.cpp: Implemented the default functions to draw the scrollbar.

(WebCore::scrollbarMap):
(WebCore::ScrollbarThemeEfl::~ScrollbarThemeEfl):
(WebCore::ScrollbarThemeEfl::scrollbarThickness):
(WebCore::ScrollbarThemeEfl::hasThumb):
(WebCore::ScrollbarThemeEfl::backButtonRect):
(WebCore::ScrollbarThemeEfl::forwardButtonRect):
(WebCore::ScrollbarThemeEfl::trackRect):
(WebCore::ScrollbarThemeEfl::minimumThumbLength):
(WebCore::ScrollbarThemeEfl::paintTrackBackground):
(WebCore::ScrollbarThemeEfl::paintThumb):
(WebCore::ScrollbarThemeEfl::registerScrollbar):
(WebCore::ScrollbarThemeEfl::unregisterScrollbar):
(WebCore::ScrollbarThemeEfl::loadThemeIfNeeded):

  • platform/efl/ScrollbarThemeEfl.h:

(WebCore::ScrollbarThemeEfl::usesOverlayScrollbars):

7:12 PM Changeset in webkit [186828] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Don't persist history item tree for subframes across reloads.
<https://webkit.org/b/146937>
<rdar://problem/19925709>

Reviewed by Brady Eidson.

Throw away the subframe history items when reloading a page. This ensures that we
don't accumulate outdated frame metadata when subframes change name across page loads.
Since the history item tree is encoded in the UA session state and gets serialized to
disk, it's important that we don't let it grow unbounded.

  • loader/HistoryController.cpp:

(WebCore::HistoryController::updateForReload):

5:23 PM Changeset in webkit [186827] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION (r177876): store.apple.com profile and cart icons are missing
https://bugs.webkit.org/show_bug.cgi?id=146894

Patch by Antti Koivisto <Antti Koivisto> on 2015-07-14
Reviewed by Myles C. Maxfield.

Source/WebCore:

If we had several @font-face rules for the same face covering overlapping ranges we
would only try to get glyphs from the first one. If it didn't have the glyph we wouldn't
try the other ones.

Test: fast/css/font-face-multiple-missing-glyphs.html

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForVariant):
(WebCore::FontCascadeFonts::glyphDataForNormalVariant):

Get GlyphData with one call.

  • platform/graphics/FontRanges.cpp:

(WebCore::FontRanges::~FontRanges):
(WebCore::FontRanges::glyphDataForCharacter):

Check that we actually have a glyph in the font for the character before returning it.

(WebCore::FontRanges::fontForCharacter):
(WebCore::FontRanges::fontForFirstRange):

  • platform/graphics/FontRanges.h:

(WebCore::FontRanges::size):
(WebCore::FontRanges::rangeAt):

LayoutTests:

  • fast/css/font-face-multiple-missing-glyphs-expected.html: Added.
  • fast/css/font-face-multiple-missing-glyphs.html: Added.
4:50 PM Changeset in webkit [186826] by andersca@apple.com
  • 6 edits in trunk

Assertions.h should include ExportMacros.h
https://bugs.webkit.org/show_bug.cgi?id=146948

Reviewed by Tim Horton.

Source/JavaScriptCore:

Remove now unneeded WTF_EXPORT_PRIVATE define.

  • API/JSBase.h:

Source/WTF:

  • wtf/Assertions.h:

Tools:

Remove now unneeded WTF_EXPORT_PRIVATE define.

  • DumpRenderTree/cg/ImageDiffCG.cpp:
4:50 PM Changeset in webkit [186825] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the 32 bit build after r186817
https://bugs.webkit.org/show_bug.cgi?id=146947

Changed CGRect to NSRect.

Patch by Wenson Hsieh <Wenson Hsieh> on 2015-07-14
Reviewed by Simon Fraser.

  • platform/mac/ThemeMac.mm:

(WebCore::paintButton):

4:38 PM Changeset in webkit [186824] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: TimelineRuler minimum selection time range should be configurable
https://bugs.webkit.org/show_bug.cgi?id=146944

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/RenderingFrameTimelineOverview.js:

Set minimum selection to 1 frame.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype.set selectionDuration):
Use ruler's minimum duration.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get minimumSelectionDuration):
(WebInspector.TimelineRuler.prototype.set minimumSelectionDuration):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
Added property for setting minimum selection duration. Default minimum duration is 0.01, which is
equal to the old hard-coded minimum selection time range.

4:13 PM Changeset in webkit [186823] by Lucas Forschler
  • 2 edits in trunk/Source/WebKit

Teach platformMac.cmake about El Capitan WKSI.
<rdar://problem/21822469>

Reviewed by Alex Christensen.

  • PlatformMac.cmake:
3:33 PM Changeset in webkit [186822] by basile_clement@apple.com
  • 5 edits in branches/jsc-tailcall/Source/JavaScriptCore

[ES6] Recognize calls in tail position
https://bugs.webkit.org/show_bug.cgi?id=146481

Reviewed by Saam Barati.

This patch adds the capability for the bytecode generator to recognize
and dispatch tail calls, as per ES6 spec:
http://www.ecma-international.org/ecma-262/6.0/#sec-isintailposition

This does not change the generated bytecode, but merely provides the
hook for generating tail calls in subsequent patches toward
https://bugs.webkit.org/show_bug.cgi?id=146477

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitTailCall):
(JSC::BytecodeGenerator::emitTailCallVarargs):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNode):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstantNode::emitBytecode):
(JSC::NumberNode::emitBytecode):
(JSC::RegExpNode::emitBytecode):
(JSC::ThisNode::emitBytecode):
(JSC::SuperNode::emitBytecode):
(JSC::ResolveNode::emitBytecode):
(JSC::TemplateStringNode::emitBytecode):
(JSC::TemplateLiteralNode::emitBytecode):
(JSC::TaggedTemplateNode::emitBytecode):
(JSC::ArrayNode::emitBytecode):
(JSC::ObjectLiteralNode::emitBytecode):
(JSC::PropertyListNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::ArgumentListNode::emitBytecode):
(JSC::NewExprNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emitBytecode):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::PostfixNode::emitBytecode):
(JSC::DeleteResolveNode::emitBytecode):
(JSC::DeleteBracketNode::emitBytecode):
(JSC::DeleteDotNode::emitBytecode):
(JSC::DeleteValueNode::emitBytecode):
(JSC::VoidNode::emitBytecode):
(JSC::TypeOfResolveNode::emitBytecode):
(JSC::TypeOfValueNode::emitBytecode):
(JSC::PrefixNode::emitBytecode):
(JSC::UnaryOpNode::emitBytecode):
(JSC::BitwiseNotNode::emitBytecode):
(JSC::BinaryOpNode::emitBytecode):
(JSC::EqualNode::emitBytecode):
(JSC::StrictEqualNode::emitBytecode):
(JSC::ThrowableBinaryOpNode::emitBytecode):
(JSC::InstanceOfNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecode):
(JSC::ConditionalNode::emitBytecode):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::AssignDotNode::emitBytecode):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::AssignErrorNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::CommaNode::emitBytecode):
(JSC::ConstDeclNode::emitBytecode):
(JSC::ConstStatementNode::emitBytecode):
(JSC::SourceElements::emitBytecode):
(JSC::BlockNode::emitBytecode):
(JSC::EmptyStatementNode::emitBytecode):
(JSC::DebuggerStatementNode::emitBytecode):
(JSC::ExprStatementNode::emitBytecode):
(JSC::VarStatementNode::emitBytecode):
(JSC::EmptyVarExpression::emitBytecode):
(JSC::IfElseNode::emitBytecode):
(JSC::DoWhileNode::emitBytecode):
(JSC::WhileNode::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::ContinueNode::emitBytecode):
(JSC::BreakNode::emitBytecode):
(JSC::ReturnNode::emitBytecode):
(JSC::WithNode::emitBytecode):
(JSC::CaseClauseNode::emitBytecode):
(JSC::CaseBlockNode::emitBytecodeForBlock):
(JSC::SwitchNode::emitBytecode):
(JSC::LabelNode::emitBytecode):
(JSC::ThrowNode::emitBytecode):
(JSC::TryNode::emitBytecode):
(JSC::ScopeNode::emitStatementsBytecode):
(JSC::ProgramNode::emitBytecode):
(JSC::EvalNode::emitBytecode):
(JSC::FunctionBodyNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::FuncDeclNode::emitBytecode):
(JSC::FuncExprNode::emitBytecode):
(JSC::ClassDeclNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
(JSC::DestructuringAssignmentNode::emitBytecode):
(JSC::SpreadExpressionNode::emitBytecode):

  • parser/Nodes.h:
3:24 PM Changeset in webkit [186821] by andersca@apple.com
  • 7 edits in trunk/Source

Remove wkPopupMenu from WebCoreSystemInterface; it's not called from WebCore
https://bugs.webkit.org/show_bug.cgi?id=146945

Reviewed by Tim Horton.

Source/WebCore:

  • platform/mac/WebCoreSystemInterface.h:

Source/WebKit/mac:

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

3:06 PM Changeset in webkit [186820] by basile_clement@apple.com
  • 15 edits
    2 deletes in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Get rid of the arity fixup return thunk
https://bugs.webkit.org/show_bug.cgi?id=146847

Reviewed by Michael Saboff.

This removes the arity check fail return thunk since it is now the
caller's responsibility to restore the stack pointer.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGJITCompiler.cpp:
  • ftl/FTLLink.cpp:
  • jit/ArityCheckFailReturnThunks.cpp: Removed.
  • jit/ArityCheckFailReturnThunks.h: Removed.
  • jit/JIT.cpp:
  • jit/ThunkGenerators.cpp:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::setupArityCheckData):

  • runtime/CommonSlowPaths.h:
  • runtime/Options.h:
  • runtime/VM.cpp:
  • runtime/VM.h:
2:56 PM Changeset in webkit [186819] by mmirman@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Repatch. Makes compileArithSub in the DFG ensure that the constant is an int32.
https://bugs.webkit.org/show_bug.cgi?id=146910
rdar://problem/21729083

Reviewed by Filip Pizlo.

Also fixes the debug build problem where all edges are assumed to
have UntypedUse before the fixup phase.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithSub):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validateEdgeWithDoubleResultIfNecessary):

  • tests/stress/arith-add-with-constants.js: Added some tests for this case.

(arithAdd42WrittenAsInteger):
(testArithAdd42WrittenAsInteger):
(arithSub42WrittenAsDouble):
(testArithSub42WrittenAsDouble):
(doubleConstant):
(testDoubleConstant): Added test for the case of +0.0 and Math.min(0.0)
(arithAdd42WrittenAsDouble): Deleted.
(testArithAdd42WrittenAsDouble): Deleted.

2:46 PM Changeset in webkit [186818] by basile_clement@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Temporarily disable FTL
https://bugs.webkit.org/show_bug.cgi?id=146941

Rubber-stamped by Michael Saboff.

  • runtime/Options.h:
2:39 PM Changeset in webkit [186817] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Input buttons rendered at the wrong size when pinching-to-zoom
https://bugs.webkit.org/show_bug.cgi?id=146916

Patch by Wenson Hsieh <Wenson Hsieh> on 2015-07-14
Reviewed by Dean Jackson.

Scales buttons and their focus rects up when pinching to zoom by painting to an offscreen ImageBuffer which is
then scaled and painted onto the display.

  • platform/Theme.h: Modified signature of Theme::paint.

(WebCore::Theme::paint): Added plumbing necessary to send the device and page scale factors to paintButton.

  • platform/mac/ThemeMac.h: Modified signature of paintButton.
  • platform/mac/ThemeMac.mm: Added ImageBuffer.h header.

(WebCore::buttonFocusRectOutlineWidth): Represents the width of the focus rect of a button. Used by paintButton

to determine the size of the ImageBuffer required to draw a focus rect.

(WebCore::paintButton): Changed to paint button cells and the focus rect, if applicable, to a temporary ImageBuffer

before painting the ImageBuffer onto the view. Refactored to receive a deviceScaleFactor and page scale factor,
used when painting to the ImageBuffer.

(WebCore::ThemeMac::paint): Added plumbing necessary to send the device and page scale factors to paintButton.

  • rendering/RenderTheme.cpp: Modified signature of RenderTheme::paint.

(WebCore::RenderTheme::paint): Added plumbing necessary to send the device and page scale factors to paintButton.

2:19 PM Changeset in webkit [186816] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r186809.
https://bugs.webkit.org/show_bug.cgi?id=146943

Caused about 190 layout test failures. (Requested by mlam_ on
#webkit).

Reverted changeset:

"REGRESSION (r177876): store.apple.com profile and cart icons
are missing"
https://bugs.webkit.org/show_bug.cgi?id=146894
http://trac.webkit.org/changeset/186809

2:18 PM Changeset in webkit [186815] by basile_clement@apple.com
  • 6 edits in branches/jsc-tailcall/Source/JavaScriptCore

JavaScript functions should restore the stack pointer after a call
https://bugs.webkit.org/show_bug.cgi?id=146846

Reviewed by Michael Saboff.

This patch makes it so that the DFG and FTL JIT are restoring the stack
pointer after a call and no longer relying on it still being valid.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLJSCall.cpp:

(JSC::FTL::JSCall::emit):

  • ftl/FTLJSCall.h:
2:06 PM Changeset in webkit [186814] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Release assert under StyleResolver::loadPendingImages() caused by MemoryPressureHandler
https://bugs.webkit.org/show_bug.cgi?id=146940
rdar://problem/21605505

Reviewed by Sam Weinig.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::processWillSuspendImminently):

2:05 PM Changeset in webkit [186813] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/misc/large-js-program.php crashes in Release, times out in Debug, on Windows

Fix is tracked by <rdar://problem/21816197>.

  • platform/win/TestExpectations: Mark test as crashing in

Release and timing out on Debug:

  • http/tests/misc/large-js-program.php
1:39 PM Changeset in webkit [186812] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

WebKit needs to serialize numeric values in NSError userInfo
<rdar://problem/21818117>
https://bugs.webkit.org/show_bug.cgi?id=146936

Reviewed by Anders Carlsson.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
Encode userInfo values that are NSNumbers in addition to NSStrings and NSURLs. Decoding
is already handled.

1:18 PM Changeset in webkit [186811] by mmirman@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r186805.

Made raytracer on octane 80% slower

Reverted changeset:

"Makes compileArithSub in the DFG ensure that the constant is
an int32."
https://bugs.webkit.org/show_bug.cgi?id=146910
http://trac.webkit.org/changeset/186805

1:06 PM Changeset in webkit [186810] by Michael Catanzaro
  • 5 edits
    1 copy
    2 adds in trunk/Source/WebKit2

[Linux] SeccompFilters: whitelist all NPAPI plugin directories
https://bugs.webkit.org/show_bug.cgi?id=140067

Reviewed by Žan Doberšek.

  • PlatformEfl.cmake: Build PluginSearchPath.cpp
  • PlatformGTK.cmake: Build PluginSearchPath.cpp
  • Shared/Plugins/unix/PluginSearchPath.cpp: Added.

(WebKit::pluginsDirectories): Moved from PluginInfoStoreUnix.cpp.

  • Shared/Plugins/unix/PluginSearchPath.h: Added.
  • Shared/linux/SeccompFilters/SyscallPolicy.cpp:

(WebKit::SyscallPolicy::addDefaultWebProcessPolicy): Add the entire
plugin search path to the whitelist.

  • UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:

(WebKit::PluginInfoStore::pluginsDirectories): Now gets plugins
directories from PluginSearchPath.cpp

12:50 PM Changeset in webkit [186809] by mmaxfield@apple.com
  • 6 edits
    2 adds in trunk

REGRESSION (r177876): store.apple.com profile and cart icons are missing
https://bugs.webkit.org/show_bug.cgi?id=146894

Patch by Antti Koivisto <Antti Koivisto> on 2015-07-14
Reviewed by Myles C. Maxfield.

Source/WebCore:

If we had several @font-face rules for the same face covering overlapping ranges we
would only try to get glyphs from the first one. If it didn't have the glyph we wouldn't
try the other ones.

Test: fast/css/font-face-multiple-missing-glyphs.html

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForVariant):
(WebCore::FontCascadeFonts::glyphDataForNormalVariant):

Get GlyphData with one call.

  • platform/graphics/FontRanges.cpp:

(WebCore::FontRanges::~FontRanges):
(WebCore::FontRanges::glyphDataForCharacter):

Check that we actually have a glyph in the font for the character before returning it.

(WebCore::FontRanges::fontForCharacter):
(WebCore::FontRanges::fontForFirstRange):

  • platform/graphics/FontRanges.h:

(WebCore::FontRanges::size):
(WebCore::FontRanges::rangeAt):

LayoutTests:

  • fast/css/font-face-multiple-missing-glyphs-expected.html: Added.
  • fast/css/font-face-multiple-missing-glyphs.html: Added.
10:37 AM Changeset in webkit [186808] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

https://bugs.webkit.org/show_bug.cgi?id=146917
iOS WebKit doesn't build.
rdar://problem/21801544

Fix the build - don't use deprecated methods.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-14
Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _registerPreviewInWindow:]):
(-[WKContentView _unregisterPreviewInWindow:]):

10:36 AM Changeset in webkit [186807] by commit-queue@webkit.org
  • 4 edits
    15 adds in trunk

[Content Extensions] Fix if-domain and unless-domain when loading main documents.
https://bugs.webkit.org/show_bug.cgi?id=146868

Patch by Alex Christensen <achristensen@webkit.org> on 2015-07-14
Reviewed by Benjamin Poulain.

Source/WebCore:

Tests: http/tests/contentextensions/block-everything-if-domain.html

http/tests/contentextensions/block-everything-unless-domain-iframe.html
http/tests/contentextensions/block-everything-unless-domain-redirect.php
http/tests/contentextensions/block-everything-unless-domain.html

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
If we are loading a new main document, use that main document url as the main document url for domain comparison.

LayoutTests:

  • http/tests/contentextensions/block-everything-if-domain-expected.txt: Added.
  • http/tests/contentextensions/block-everything-if-domain.html: Added.
  • http/tests/contentextensions/block-everything-if-domain.html.json: Added.
  • http/tests/contentextensions/block-everything-unless-domain-expected.txt: Added.
  • http/tests/contentextensions/block-everything-unless-domain-iframe-expected.txt: Added.
  • http/tests/contentextensions/block-everything-unless-domain-iframe.html: Added.
  • http/tests/contentextensions/block-everything-unless-domain-iframe.html.json: Added.
  • http/tests/contentextensions/block-everything-unless-domain-redirect-expected.txt: Added.
  • http/tests/contentextensions/block-everything-unless-domain-redirect.php: Added.
  • http/tests/contentextensions/block-everything-unless-domain-redirect.php.json: Added.
  • http/tests/contentextensions/block-everything-unless-domain.html: Added.
  • http/tests/contentextensions/block-everything-unless-domain.html.json: Added.
  • http/tests/contentextensions/main-resource-redirect-blocked-expected.txt:
  • http/tests/contentextensions/resources/block-everything-unless-domain-helper.html: Added.
  • http/tests/contentextensions/resources/should-load.html: Added.
  • http/tests/contentextensions/resources/should-not-load.html: Added.
10:26 AM Changeset in webkit [186806] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

https://bugs.webkit.org/show_bug.cgi?id=146909
Add actions for default link preview that uses SFSafariViewController.

Use the new private properties to prepare actions for the default link preview controller.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-14
Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewViewControllerForPosition:inSourceView:]):

10:24 AM Changeset in webkit [186805] by mmirman@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Makes compileArithSub in the DFG ensure that the constant is an int32.
https://bugs.webkit.org/show_bug.cgi?id=146910
rdar://problem/21729083

Reviewed by Filip Pizlo.

Also fixes the debug build problem where all edges are assumed to
have UntypedUse before the fixup phase.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithSub):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validateEdgeWithDoubleResultIfNecessary):

  • tests/stress/arith-add-with-constants.js: Added some tests for this case.

(arithAdd42WrittenAsInteger):
(testArithAdd42WrittenAsInteger):
(arithSub42WrittenAsDouble):
(testArithSub42WrittenAsDouble):
(doubleConstant):
(testDoubleConstant): Added test for the case of +0.0 and Math.min(0.0)
(arithAdd42WrittenAsDouble): Deleted.
(testArithAdd42WrittenAsDouble): Deleted.

9:16 AM Changeset in webkit [186804] by matthew_hanson@apple.com
  • 14 edits in branches/safari-600.1.4.17-branch/Source/WebKit2

Merged r185877.

8:58 AM Changeset in webkit [186803] by weinig@apple.com
  • 15 edits
    17 adds in trunk

DOM4: prepend, append, before, after & replace
https://bugs.webkit.org/show_bug.cgi?id=74648

Reviewed by Darin Adler.

Source/WebCore:

  • Adds support for ChildNode.before/after/replaceWith and ParentNode.prepend/append which are new functions in https://dom.spec.whatwg.org
  • Uses custom bindings rather than implementing support for union types in the code generator as their uses seems isolated to just this spec at the moment. If more uses come along, we should implement proper support for them in the generator and remove the custom bindings added here.

Tests: fast/dom/ChildNode-after.html

fast/dom/ChildNode-before.html
fast/dom/ChildNode-replaceWith.html
fast/dom/ParentNode-append.html
fast/dom/ParentNode-prepend.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:

Add new files.

  • bindings/js/JSCharacterDataCustom.cpp: Added.

(WebCore::JSCharacterData::before):
(WebCore::JSCharacterData::after):
(WebCore::JSCharacterData::replaceWith):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::prepend):
(WebCore::JSDocument::append):
(WebCore::JSDocument::createTouchList):

  • bindings/js/JSDocumentFragmentCustom.cpp: Added.

(WebCore::JSDocumentFragment::prepend):
(WebCore::JSDocumentFragment::append):

  • bindings/js/JSDocumentTypeCustom.cpp: Added.

(WebCore::JSDocumentType::before):
(WebCore::JSDocumentType::after):
(WebCore::JSDocumentType::replaceWith):

  • bindings/js/JSElementCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::JSElement::before):
(WebCore::JSElement::after):
(WebCore::JSElement::replaceWith):
(WebCore::JSElement::prepend):
(WebCore::JSElement::append):
Add custom bindings to implement the use of variadic union types.

  • bindings/js/JSNodeOrString.cpp: Added.

(WebCore::toNodeOrStringVector):

  • bindings/js/JSNodeOrString.h: Added.

Adds a help function for converting an JS argument list into a Vector
of NodeOrString objects.

  • dom/ChildNode.idl:

Expose before/after/replaceWith to JavaScript.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):

  • dom/ContainerNode.h:

Add implementations of append and prepend.

  • dom/Node.h:
  • dom/Node.cpp:

(WebCore::nodeSetPreTransformedFromNodeOrStringVector):
(WebCore::firstPrecedingSiblingNotInNodeSet):
(WebCore::firstFollowingSiblingNotInNodeSet):
Helper functions for before, after and removeWith.

(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
Add implementations of before, after and removeWith.

  • dom/NodeOrString.cpp: Added.

(WebCore::convertNodesOrStringsIntoNode):

  • dom/NodeOrString.h: Added.

(WebCore::NodeOrString::NodeOrString):
(WebCore::NodeOrString::~NodeOrString):
(WebCore::NodeOrString::type):
(WebCore::NodeOrString::node):
(WebCore::NodeOrString::string):
Custom union type representing the (Node or DOMString) IDL type.

  • dom/ParentNode.idl:

Expose append/prepend to JavaScript.

LayoutTests:

  • fast/dom/ChildNode-after-expected.txt: Added.
  • fast/dom/ChildNode-after.html: Added.
  • fast/dom/ChildNode-before-expected.txt: Added.
  • fast/dom/ChildNode-before.html: Added.
  • fast/dom/ChildNode-replaceWith-expected.txt: Added.
  • fast/dom/ChildNode-replaceWith.html: Added.
  • fast/dom/ParentNode-append-expected.txt: Added.
  • fast/dom/ParentNode-append.html: Added.
  • fast/dom/ParentNode-prepend-expected.txt: Added.
  • fast/dom/ParentNode-prepend.html: Added.
8:35 AM Changeset in webkit [186802] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit2

[Linux] SeccompFilters: whitelist source directory on all ports
https://bugs.webkit.org/show_bug.cgi?id=140066

Reviewed by Žan Doberšek.

Move this from EFL to port-independent code.

  • Shared/linux/SeccompFilters/SyscallPolicy.cpp:

(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):

  • WebProcess/efl/SeccompFiltersWebProcessEfl.cpp:

(WebKit::SeccompFiltersWebProcessEfl::platformInitialize):

1:53 AM Changeset in webkit [186801] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK] Add a runtime check for X11 display in webkitWebViewBaseExitAcceleratedCompositingMode()
https://bugs.webkit.org/show_bug.cgi?id=146711

Reviewed by Carlos Garcia Campos.

webkitWebViewBaseExitAcceleratedCompositingMode() is already guarded with
X11 build guards, but it should also do a runtime check that the program
is running under an X11 display before proceeding.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDidRelaunchWebProcess):

1:46 AM Changeset in webkit [186800] by clopez@igalia.com
  • 4 edits in trunk

[GTK] [Wayland] Build by default the X11 and Wayland targets.
https://bugs.webkit.org/show_bug.cgi?id=146057

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/OptionsGTK.cmake:

Tools:

  • gtk/install-dependencies:

Jul 13, 2015:

6:58 PM Changeset in webkit [186799] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:

(WebCore::InbandTextTrackPrivateAVCF::readNativeSampleBuffer): Don't try to build
the new Legible Output API features if they aren't available in the build
environment.

6:11 PM Changeset in webkit [186798] by Brent Fulgham
  • 7 edits in trunk/Source/WebCore

[Win] Update Media Player logic for new Legible Output API
https://bugs.webkit.org/show_bug.cgi?id=146922
<rdar://problem/20542574>

Reviewed by Eric Carlson.

  • AVFoundationSupport.py: Check for updated AVFCF feature.
  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Update to call the
new 'readNativeSampleBuffer' method.
(WebCore::InbandTextTrackPrivateAVF::readNativeSampleBuffer): Added. This is a no-op
on Windows if it has the new AVCF API. Otherwise, it contains the same implementation
that has always been used in 'processNativeSamples'.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:

(WebCore::InbandTextTrackPrivateAVCF::readNativeSampleBuffer): Added. Use the new
Legible Output API instead of the old CoreMedia solution if it is available.

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:

(WebCore::InbandTextTrackPrivateAVCF::mediaSelectionOption):

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:

(WebCore::InbandTextTrackPrivateLegacyAVCF::readNativeSampleBuffer): Add a stub implementation.

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::createPlayerItem): Use the new Legible Output API if it is available.

5:10 PM Changeset in webkit [186797] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Fix a typo.

  • public/js/helper-classes.js:
4:53 PM Changeset in webkit [186796] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception in inspector for some ConsoleMessages
https://bugs.webkit.org/show_bug.cgi?id=146919

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-13
Reviewed by Brian Burg.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
The parameters list may not exist, so null check it before use.

4:27 PM Changeset in webkit [186795] by basile_clement@apple.com
  • 14 edits in trunk

Object cycles should not prevent allocation elimination/sinking
https://bugs.webkit.org/show_bug.cgi?id=143073

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch introduces a new allocation sinking phase that is able to
sink cycles, in DFGAllocationCycleSinkingPhase.cpp. This phase
supersedes the old allocation sinking phase in
DFGObjectAllocationSinkingPhase.cpp, as that previous phase was never
able to sink allocation cycles while the new phase sometimes can; see
DFGAllocationCycleSinkingPhase.cpp for details.

For now, the new sinking phase is kept behind a
JSC_enableAllocationCycleSinking flag that reverts to the old sinking
phase when false (i.e., by default). This also removes the old
JSC_enableObjectAllocationSinking flag. run-javascriptcore-tests
defaults to using the new sinking phase.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addStructureSet): Allow empty structure sets

  • dfg/DFGLazyNode.cpp:

(JSC::DFG::LazyNode::dump): Prettier dump

  • dfg/DFGNode.h:

(JSC::DFG::Node::cellOperand): Move to opInfo for MaterializeCreateActivation
(JSC::DFG::Node::hasStructureSet): Add MaterializeNewObject
(JSC::DFG::Node::objectMaterializationData): Move to opInfo2

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp: Remove unused header
  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::ObjectAllocationSinkingPhase): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::run): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::performSinking): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::determineMaterializationPoints): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::resolve): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::createMaterialize): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::populateMaterialize): Deleted.

  • dfg/DFGObjectAllocationSinkingPhase.h:
  • dfg/DFGPromotedHeapLocation.h: Add a hash and a helper function to PromotedLocationDescriptor

(JSC::DFG::PromotedLocationDescriptor::PromotedLocationDescriptor):
(JSC::DFG::PromotedLocationDescriptor::operator bool):
(JSC::DFG::PromotedLocationDescriptor::neededForMaterialization):
(JSC::DFG::PromotedLocationDescriptorHash::hash):
(JSC::DFG::PromotedLocationDescriptorHash::equal):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validateSSA): Assert that most nodes never see a phantom allocation

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileMaterializeNewObject): Use the new structureSet() operand
(JSC::FTL::DFG::LowerDFGToLLVM::compileMaterializeCreateActivation): Node has a new child

  • ftl/FTLOSRExitCompiler.cpp: Handle materialization cycles

(JSC::FTL::compileStub):

  • ftl/FTLOperations.cpp: Handle materialization cycles

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):

  • ftl/FTLOperations.h: Handle materialization cycles
  • tests/stress/correctly-sink-object-even-though-it-dies.js: Added.

(clobber):
(foo):

  • tests/stress/eliminate-object-read-over-call.js: Added.

(clobber):
(foo):

  • tests/stress/materialize-object-on-edge.js: Added.

(call):
(foo):

  • tests/stress/object-sinking-stress.js: Added.

(foo):

  • tests/stress/sink-object-cycle.js: Added.

(clobber):
(foo):

  • tests/stress/sink-object-past-put.js: Added.

(clobber):
(foo):

  • tests/stress/sinkable-new-object-in-loop.js: Added.

(foo):

LayoutTests:

Add a few microbenchmarks that show performance improvement when
sinking or elimininating object cycles.

  • js/regress/elidable-new-object-cycle-expected.txt: Added.
  • js/regress/elidable-new-object-cycle.html: Added.
  • js/regress/script-tests/elidable-new-object-cycle.js: Added.

(sumOfArithSeries):
(foo):

  • js/regress/script-tests/sinkable-closure-cycle.js: Added.

(factorial.f):
(factorial):

  • js/regress/script-tests/sinkable-new-object-cycle.js: Added.

(sumOfArithSeries):
(verify):
(foo):

  • js/regress/sinkable-closure-cycle-expected.txt: Added.
  • js/regress/sinkable-closure-cycle.html: Added.
  • js/regress/sinkable-new-object-cycle-expected.txt: Added.
  • js/regress/sinkable-new-object-cycle.html: Added.
4:11 PM Changeset in webkit [186794] by dbates@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Cleanup: Avoid extraneous increment and decrement of reference count of ScriptArguments in ConsoleClient
https://bugs.webkit.org/show_bug.cgi?id=146920

Reviewed by Brian Burg.

Remove local variable RefPtr<ScriptArguments> and copy constructor call with an argument that
was initialized with an rvalue reference. The argument itself is an lvalue reference.

  • runtime/ConsoleClient.cpp:

(JSC::ConsoleClient::printConsoleMessageWithArguments):
(JSC::ConsoleClient::internalMessageWithTypeAndLevel):

4:06 PM Changeset in webkit [186793] by ddkilzer@apple.com
  • 6 edits
    12 adds in branches/safari-600.1.4.17-branch

Merge r186663. rdar://problem/21708241

4:00 PM Changeset in webkit [186792] by basile_clement@apple.com
  • 21 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Clean up register naming
https://bugs.webkit.org/show_bug.cgi?id=146849

Reviewed by Michael Saboff.

This changes register naming conventions in the llint and baseline JIT
in order to use as few (native) callee-save registers as possible on
64-bits platforms. It also introduces significant changes in the way
registers names are defined in the LLint and baseline JIT in order to
enable a simpler convention about which registers can be aliased that
is valid across all architecture, and described in
llint/LowLevelInterpreter.asm.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileFunction):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • jit/FPRInfo.h:

(JSC::FPRInfo::toRegister):
(JSC::FPRInfo::toIndex):

  • jit/GPRInfo.h:

(JSC::GPRInfo::toIndex):
(JSC::GPRInfo::toRegister):

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_mod):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_loop_hint):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_end):
(JSC::JIT::emit_op_new_object):

  • jit/RegisterPreservationWrapperGenerator.cpp:

(JSC::generateRegisterPreservationWrapper):
(JSC::generateRegisterRestoration):

  • jit/ThunkGenerators.cpp:

(JSC::arityFixupGenerator):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm.rb:
  • offlineasm/arm64.rb:
  • offlineasm/cloop.rb:
  • offlineasm/mips.rb:
  • offlineasm/registers.rb:
  • offlineasm/sh4.rb:
  • offlineasm/x86.rb:
3:51 PM Changeset in webkit [186791] by mrajca@apple.com
  • 12 edits
    1 move in trunk/Source

Media Session: add plumbing for delivering start/end-of-interruption events
https://bugs.webkit.org/show_bug.cgi?id=146837

Reviewed by Tim Horton.

WebCore:

  • Modules/mediasession/MediaSessionEvents.h: Renamed from MediaEventTypes.h and added new constants for interruption events.
  • WebCore.xcodeproj/project.pbxproj: Renamed MediaEventTypes.h.
  • page/Page.h: Added stub.
  • page/Page.cpp: Added stub.

WebKit2: Added plumbing.

  • UIProcess/API/C/WKPage.cpp:

(WKPageHandleMediaSessionInterruptionEvent):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMediaSessionInterruptionEvent):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::handleMediaSessionInterruptionEvent):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
3:38 PM Changeset in webkit [186790] by ddkilzer@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/LayoutTests

Merge r186542. rdar://problem/21708151

3:28 PM Changeset in webkit [186789] by bshafiei@apple.com
  • 4 edits in tags/Safari-601.1.40/Source

Merged r186777. rdar://problem/21789252

3:26 PM Changeset in webkit [186788] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1-branch/Source

Merged r186777. rdar://problem/21789252

3:24 PM Changeset in webkit [186787] by bshafiei@apple.com
  • 4 edits in tags/Safari-601.1.39.2/Source

Merged r186777. rdar://problem/21789252

3:24 PM Changeset in webkit [186786] by Simon Fraser
  • 5 edits in trunk/Source

[iOS WK2] When choosing an initial viewport scale, take overflow on the <body> into account
https://bugs.webkit.org/show_bug.cgi?id=146918
rdar://problem/9222837

Reviewed by Tim Horton.

Use as input to the viewport scaling algorithm a contents size from the FrameView
that takes overflow on the viewport renderer into account. This prevents unexpected
viewports scaling on pages that have content that overflows their expressed contents size,
but apply overflow to the <body>.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::contentsSizeRespectingOverflow): Look for overflow:hidden on each axis of
the m_viewportRenderer, which is computed post-layout by calculateScrollbarModesForLayout()
and is used for scrollbar logic on OS X. Clip unscaledDocumentRect on each axis, and then
apply page scale.

  • page/FrameView.h:

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mainFrameDidLayout): Use contentsSizeRespectingOverflow(),
rather than raw contentsSize(), to determine scaling.

3:16 PM Changeset in webkit [186785] by ddkilzer@apple.com
  • 6 edits in branches/safari-600.1.4.17-branch/Source/WebKit2

Merge r186531. rdar://problem/21708155

3:09 PM Changeset in webkit [186784] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

Update JetStream version number to 1.1.

Rubber stamped by Ryosuke Niwa.

  • JetStream/create.rb:
3:09 PM Changeset in webkit [186783] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.39.2/Source

Versioning.

3:05 PM Changeset in webkit [186782] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.39.2

New tag.

2:48 PM Changeset in webkit [186781] by ddkilzer@apple.com
  • 13 edits
    1 add in branches/safari-600.1.4.17-branch/Source

Merge r186530. rdar://problem/21708151

2:40 PM Changeset in webkit [186780] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Update WebCore Features.json
https://bugs.webkit.org/show_bug.cgi?id=146914

Reviewed by Benjamin Poulain.

  • features.json: Update with notes for CSS Scroll Snap Points, Filter Effects,

backdrop-filters, and initial-letter.

2:38 PM Changeset in webkit [186779] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the build.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _registerPreviewInWindow:]):
(-[WKContentView _unregisterPreviewInWindow:]):

1:50 PM Changeset in webkit [186778] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Removed now-unused SPI -[WKWebView _loadRequest:withOptions:].

Rubber-stamped by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _loadRequest:withOptions:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
1:44 PM Changeset in webkit [186777] by andersca@apple.com
  • 4 edits in trunk/Source

Apps linked with a deployment target of iOS 7.x or earlier crash when using modern WebKit API
https://bugs.webkit.org/show_bug.cgi?id=146913
rdar://problem/21789252

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

Make a top-level symlink from /System/Library/PrivateFrameworks/JavaScriptCore.framework to
/System/Library/Frameworks/JavaScriptCore.framework.

Source/WebKit2:

Make a top-level symlink from /System/Library/PrivateFrameworks/WebKit.framework to
/System/Library/Frameworks/WebKit.framework.

  • WebKit2.xcodeproj/project.pbxproj:
1:10 PM Changeset in webkit [186776] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

If Watchpoint::fire() looks at the state of the world, it should definitely see its set invalidated, and maybe it should see the object of interest in the transitioned-to state
https://bugs.webkit.org/show_bug.cgi?id=146897

Reviewed by Mark Lam.

The idea is to eventually support adaptive watchpoints. An adaptive watchpoint will be
able to watch for a condition that is more fine-grained than any one watchpoint set. For
example, we might watch a singleton object to see if it ever acquires a property called
"foo". So long as it doesn't have such a property, we don't want to invalidate any code.
But if it gets that property, then we should deoptimize. Current watchpoints will
invalidate code as soon as any property is added (or deleted), because they will use the
transition watchpoint set of the singleton object's structure, and that fires anytime
there is any transition.

An adaptive watchpoint would remember the singleton object, and when it got fired, it
would check if the object's new structure has the property "foo". If not, it would check
if the object's new structure is watchable (i.e. has a valid transition watchpoint set).
If the property is missing and the structure is watchable, it would add itself to the
watchpoint set of the new structure. Otherwise, it would deoptimize.

There are two problems with this idea, and this patch fixes these problems. First, we
usually fire the transition watchpoint before we do the structure transition. This means
that if the fire() method looked at the singleton object's structure, it would see the old
structure, not the new one. It would have no way of knowing what the new structure is.
Second, inside the fire() method, the watchpoint set being invalidated still appears
valid, since we change the state after we fire all watchpoints.

This patch addresses both issues. Now, in the most important case (addPropertyTransition),
we fire the watchpoint set after we have modified the object. This is accomplished using
a deferral scope called DeferredStructureTransitionWatchpointFire. In cases where there is
no deferral, the adaptive watchpoint will conservatively resort to deoptimization because
it would find that the singleton object's structure is no longer watchable. This is
because in the absence of deferral, the singleton object would still have the original
structure, but that structure's watchpoint set would now report itself as having been
invalidated.

  • bytecode/Watchpoint.cpp:

(JSC::WatchpointSet::fireAllSlow): Change the state of the set before firing all watchpoints.
(JSC::WatchpointSet::fireAllWatchpoints):

  • runtime/JSObject.h:

(JSC::JSObject::putDirectInternal): Use the deferral scope.

  • runtime/Structure.cpp:

(JSC::Structure::Structure): Pass the deferral scope to didTransitionFromThisStructure.
(JSC::Structure::addPropertyTransition): Pass the deferral scope to create().
(JSC::StructureFireDetail::dump): This is no longer anonymous.
(JSC::DeferredStructureTransitionWatchpointFire::DeferredStructureTransitionWatchpointFire): Start with a null structure.
(JSC::DeferredStructureTransitionWatchpointFire::~DeferredStructureTransitionWatchpointFire): Fire the watchpoint if there is a structure.
(JSC::DeferredStructureTransitionWatchpointFire::add): Add a structure. Logically this is a list of deferred things, but we assert that there only will be one (happens to be true now).
(JSC::Structure::didTransitionFromThisStructure): Defer the watchpoint firing if there is a deferral scope.

  • runtime/Structure.h:

(JSC::StructureFireDetail::StructureFireDetail): Move this to the header.

  • runtime/StructureInlines.h:

(JSC::Structure::create): Pass the deferral scope to the constructor.

1:07 PM Changeset in webkit [186775] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.40/Source/WebKit2

Merged r186770. rdar://problem/21686508

1:05 PM Changeset in webkit [186774] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r186770. rdar://problem/21686508

1:04 PM Changeset in webkit [186773] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.39.0.2/Source/WebKit2

Merged r186770. rdar://problem/21686508

1:02 PM Changeset in webkit [186772] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.39.0.2/Source

Versioning.

12:58 PM Changeset in webkit [186771] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.39.0.2

New tag.

12:54 PM Changeset in webkit [186770] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Silverlight causes tabs to hang
https://bugs.webkit.org/show_bug.cgi?id=146912
rdar://problem/21686508

Reviewed by Sam Weinig.

Make sure to link production builds of the legacy plug-in process against the shim on 10.11 and newer.

  • Configurations/PluginProcess.xcconfig:
12:50 PM Changeset in webkit [186769] by Brent Fulgham
  • 10 edits in trunk/Source/WebCore

Change MediaPlayer Media Stream method signatures to use references
https://bugs.webkit.org/show_bug.cgi?id=146839
<rdar://problem/21769035>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-13
Reviewed by Darin Adler.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::loadWithNextMediaEngine):

  • platform/graphics/MediaPlayerPrivate.h: Changed to references
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Ditto

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load): Ditto

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
12:11 PM Changeset in webkit [186768] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

GTK] Build race with -DENABLE_WAYLAND_TARGET=ON
https://bugs.webkit.org/show_bug.cgi?id=146740

Reviewed by Martin Robinson.

No new tests, no behavior changes.

  • PlatformGTK.cmake: platform/graphics/wayland sources should be

included into WebCore source list instead of WebCorePlatformGTK.
Also move the add_custom_command() block into if(ENABLE_WAYLAND_TARGET),
this is not strictly needed to fix this bug, but it seems cleaner.

12:03 PM Changeset in webkit [186767] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use -apple-system-monospaced-numbers for line numbers
https://bugs.webkit.org/show_bug.cgi?id=146898

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror .CodeMirror-linenumber): Decrease font-size by 1px to make 4 digit numbers fit.

10:59 AM Changeset in webkit [186766] by commit-queue@webkit.org
  • 2 edits
    4 adds in trunk/Source/WebCore

Adding MediaStream Engine building blocks to the code repo
https://bugs.webkit.org/show_bug.cgi?id=146789
<rdar://problem/21747025>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-13
Reviewed by Brent Fulgham.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Added.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setLoadingProgresssed):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setHasAvailableVideoFrame):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createWeakPtr):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Added.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::getSupportedTypes):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::cancelLoad):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::prepareToPlay):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformMedia):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pauseInternal):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paused):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVolume):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsScanning):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setMuted):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::naturalSize):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasVideo):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAudio):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVisible):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::durationMediaTime):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::seeking):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setRateDouble):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setPreservesPitch):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::networkState):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::readyState):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::seekable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::maxMediaTimeSeekable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::minMediaTimeSeekable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::buffered):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::didLoadingProgress):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setSize):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAvailableVideoFrame):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsAcceleratedRendering):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::movieLoadType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::prepareForRendering):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::engineDescription):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::languageOfPrimaryAudioTrack):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldBePlaying):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::addDisplayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::removeDisplayLayer):

  • platform/graphics/avfoundation/objc/MediaStreamPrivateAVFObjC.h: Added.
  • platform/graphics/avfoundation/objc/MediaStreamPrivateAVFObjC.mm: Added.

(WebCore::MediaStreamPrivateAVFObjC::create):
(WebCore::MediaStreamPrivateAVFObjC::MediaStreamPrivateAVFObjC):
(WebCore::MediaStreamPrivateAVFObjC::~MediaStreamPrivateAVFObjC):
(WebCore::MediaStreamPrivateAVFObjC::duration):
(WebCore::MediaStreamPrivateAVFObjC::buffered):
(WebCore::MediaStreamPrivateAVFObjC::readyState):
(WebCore::MediaStreamPrivateAVFObjC::hasAudio):
(WebCore::MediaStreamPrivateAVFObjC::hasVideo):
(WebCore::MediaStreamPrivateAVFObjC::naturalSize):

  • platform/mediastream/MediaStreamPrivate.h:

(WebCore::MediaStreamPrivate::MediaStreamPrivate): Added constructor.

10:17 AM Changeset in webkit [186765] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip failing table-related AX tests
https://bugs.webkit.org/show_bug.cgi?id=146903

  • platform/win/TestExpectations:
9:54 AM Changeset in webkit [186764] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Cancel AirPlay explicitly when exiting from full screen
https://bugs.webkit.org/show_bug.cgi?id=146902
<rdar://problem/20923632>

Reviewed by Brent Fulgham.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::~WebVideoFullscreenInterfaceAVKit): Call setExternalPlayback(false)

if playing to an external screen.

9:25 AM Changeset in webkit [186763] by ddkilzer@apple.com
  • 28 edits
    4 adds in branches/safari-600.1.4.17-branch

Merge r186476. rdar://problem/21708269

8:42 AM Changeset in webkit [186762] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit2

[Linux] SeccompFilters: handle alternate install prefixes
https://bugs.webkit.org/show_bug.cgi?id=140065

Reviewed by Žan Doberšek.

If the install prefix is something other than /usr, e.g. /usr/local or
~/jhbuild/install, then we want to make sure to allow libraries and data
from that prefix.

  • PlatformEfl.cmake:
  • Shared/linux/SeccompFilters/SyscallPolicy.cpp:

(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):

6:15 AM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose r186761 -- this is a good patch! (diff)
12:44 AM Changeset in webkit [186761] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK] Contents not correctly laid out when the web view is not realized
https://bugs.webkit.org/show_bug.cgi?id=142532

Reviewed by Darin Adler.

The problem is that we are not reporting any size until the web
view is realized, so any web view loaded in a separate tab in the
browser, will report 0x0 as the window.innerWidth,
window.innerHeight until the view is realized. Websites that use
the window.innerWidth/innerHeight during the page load to decide
how to lay out the contents will be rendered wrongly.
I haven't been able to reproduce this with unit tests, as this
requires the particular case of same window but different web
views using tabs for example.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::viewSize): Always report the drawing area
size to make usre it's in sync with the WebProcess page size.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSizeAllocate): Remove the optimization of only
report the size when it has changed, since both the redirected
window and the drawing area already do that check. Also remove the
optimization of waiting until the view is mapped to report its
size, since that's often too late for websites using the window
size during load.
(webkitWebViewBaseMap): Never report size on map, it should have
already been reported by size-allocate.

12:13 AM Changeset in webkit [186760] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

12:11 AM Changeset in webkit [186759] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.40

New tag.

Jul 12, 2015:

11:59 PM Changeset in webkit [186758] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1-branch

Merged r186741. rdar://problem/21051187

11:56 PM Changeset in webkit [186757] by bshafiei@apple.com
  • 22 edits in branches/safari-601.1-branch/Source

Merged r186712. rdar://problem/20483550

11:54 PM Changeset in webkit [186756] by bshafiei@apple.com
  • 11 edits in branches/safari-601.1-branch/Source

Merged r186707. rdar://problem/21779205

11:52 PM Changeset in webkit [186755] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r186703. rdar://problem/21555051

11:50 PM Changeset in webkit [186754] by bshafiei@apple.com
  • 2 edits
    2 copies in branches/safari-601.1-branch/Source/JavaScriptCore

Merged r186702. rdar://problem/21736607

11:49 PM Changeset in webkit [186753] by bshafiei@apple.com
  • 45 edits
    4 copies in branches/safari-601.1-branch/Source/JavaScriptCore

Merged r186691. rdar://problem/21771059

11:47 PM Changeset in webkit [186752] by bshafiei@apple.com
  • 6 edits in branches/safari-601.1-branch/Source

Merged r186684. rdar://problem/21501819

11:45 PM Changeset in webkit [186751] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1-branch/Source/WebCore

Merged r186683. rdar://problem/21371589

11:44 PM Changeset in webkit [186750] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r186678. rdar://problem/21251875

11:11 PM Changeset in webkit [186749] by ddkilzer@apple.com
  • 8 edits
    8 adds in branches/safari-600.1.4.17-branch

Merge r185769. rdar://problem/21727217

10:24 PM Changeset in webkit [186748] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add -apple-system-monospaced-numbers to font and font-family autocomplete
https://bugs.webkit.org/show_bug.cgi?id=146865

Reviewed by Daniel Bates.

  • UserInterface/Models/CSSKeywordCompletions.js:
9:28 PM Changeset in webkit [186747] by ddkilzer@apple.com
  • 3 edits
    2 adds in branches/safari-600.1.4.17-branch

Merge r186474. rdar://problem/21716537

9:07 PM Changeset in webkit [186746] by ddkilzer@apple.com
  • 4 edits
    2 adds in branches/safari-600.1.4.17-branch

Merge r185572. rdar://problem/21716531

7:16 PM Changeset in webkit [186745] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Watchpoints should be removed from their owning WatchpointSet before they are fired
https://bugs.webkit.org/show_bug.cgi?id=146895

Reviewed by Sam Weinig.

This simplifies the WatchpointSet API by making it so that when Watchpoint::fire() is
called, the Watchpoint is no longer in the set. This means that you don't have to remember
to remove it from the set's list (currently we do that implicitly as part of whatever
any particular Watchpoint::fireInternal() does), and you can now write adaptive
watchpoints that re-add themselves to a different set if they determine that the thing
they are actually watching is still intact but now needs to be watched in a different way
(like watching for whether some singleton object has a property of some name).

  • bytecode/Watchpoint.cpp:

(JSC::Watchpoint::~Watchpoint): Add a comment about why this is necessary.
(JSC::Watchpoint::fire): Make this out-of-line, private, and make it assert that we're no longer on the list.
(JSC::WatchpointSet::fireAllWatchpoints): Make this remove the watchpoint from the list before firing it.

  • bytecode/Watchpoint.h:

(JSC::Watchpoint::fire): Deleted. I moved this to Watchpoint.cpp.

6:39 PM Changeset in webkit [186744] by ddkilzer@apple.com
  • 10 edits
    2 adds in branches/safari-600.1.4.17-branch

Merge r184434, and a small part of r173173. rdar://problem/21716506

6:39 PM Changeset in webkit [186743] by ddkilzer@apple.com
  • 4 edits
    1 add in branches/safari-600.1.4.17-branch/Tools

Make run-webkit-tests work with iOS Simulator

Merge r179788, r179793.

3:09 PM Changeset in webkit [186742] by ddkilzer@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebKit2

Merge r184991. rdar://problem/21716545

12:41 PM Changeset in webkit [186741] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: WEB: VoiceOver for iOS does not read <iframe> elements during linear (swipe) navigation.
https://bugs.webkit.org/show_bug.cgi?id=146861

Reviewed by Darin Adler.

Source/WebCore:

AttachmentViews exist only on WK1 so we need account for both platforms.

Test: platform/ios-simulator/accessibility/iframe-access.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):

LayoutTests:

  • platform/ios-simulator/accessibility/iframe-access-expected.txt: Added.
  • platform/ios-simulator/accessibility/iframe-access.html: Added.
9:28 AM Changeset in webkit [186740] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

[Streams API] Templating ReadableJSStream
https://bugs.webkit.org/show_bug.cgi?id=146802

Reviewed by Darin Adler.

Introducing ReadableStream::clearValues to clear queued values when cancelling and going into error state.

Introducing ReadableEnqueuingStream to handle the stream queue, as a class template.
Specialized ReadableEnqueuingStream for the purpose of ReadableJSStream (storage of JSValue with variable size).

Updated some static functions to accept a ReadableStream in lieu of the more specialized ReadableJSStream.

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::changeStateToErrored):
(WebCore::ReadableStream::cancelNoCheck):

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableEnqueuingStream::ReadableEnqueuingStream):
(WebCore::ReadableEnqueuingStream::enqueueChunk):
(WebCore::ReadableEnqueuingStream<ChunkType>::read):

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::read):
(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::enqueueChunk):
(WebCore::createPullResultFulfilledFunction):
(WebCore::createCancelResultFulfilledFunction):
(WebCore::ReadableJSStream::ReadableJSStream):
(WebCore::ReadableJSStream::enqueue):

  • bindings/js/ReadableJSStream.h:

(WebCore::ReadableJSStreamValue::create):
(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::desiredSize):
(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::ReadableEnqueuingStream):

7:46 AM Changeset in webkit [186739] by ddkilzer@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebKit2

Merge r184991. rdar://problem/21716403

12:36 AM Changeset in webkit [186738] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

12:33 AM Changeset in webkit [186737] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.39.1/Source

Versioning.

12:32 AM Changeset in webkit [186736] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.39.1

New tag.

12:29 AM Changeset in webkit [186735] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WTF

Merged r186720. rdar://problem/21221902

12:28 AM Changeset in webkit [186734] by bshafiei@apple.com
  • 9 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r186719. rdar://problem/21221902

12:26 AM Changeset in webkit [186733] by bshafiei@apple.com
  • 11 edits
    1 copy
    1 delete in branches/safari-601.1-branch/Source

Merged r186718. rdar://problem/21221902

12:23 AM Changeset in webkit [186732] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r186716. rdar://problem/21507154

12:22 AM Changeset in webkit [186731] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r186713. rdar://problem/21507154

12:15 AM Changeset in webkit [186730] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merged r186727.

12:06 AM Changeset in webkit [186729] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.39.0.1/Source/WebCore

Merged r186727.

Jul 11, 2015:

11:43 PM Changeset in webkit [186728] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, EFL gardening on 12th Jul.

Mark some ax tests and editing tests to failure since r186694 and r185692.

  • platform/efl/TestExpectations:
10:37 PM Changeset in webkit [186727] by bshafiei@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cancelLoad):

9:28 PM Changeset in webkit [186726] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.39.0.1/Source

Versioning.

9:24 PM Changeset in webkit [186725] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.39.0.1

New tag.

9:23 PM Changeset in webkit [186724] by Nikita Vasilyev
  • 10 edits in trunk/Source

Web Inspector: Inspector should be able to be docked to the bottom of a narrow window
https://bugs.webkit.org/show_bug.cgi?id=146871

Reviewed by Timothy Hatcher.

Source/WebCore:

  • inspector/InspectorFrontendClientLocal.cpp:

Source/WebInspectorUI:

  • UserInterface/Views/Toolbar.css:

(@media (max-width: 539px)): Hide download button to fit search field into the screen.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

Source/WebKit2:

  • UIProcess/WebInspectorProxy.cpp:
  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCanAttach):

  • WebProcess/WebPage/WebInspector.cpp:
9:14 PM Changeset in webkit [186723] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

8:58 PM Changeset in webkit [186722] by bshafiei@apple.com
  • 1 copy in branches/safari-601.1-branch

New Branch.

7:59 PM Changeset in webkit [186721] by timothy@apple.com
  • 1 edit
    3 adds in trunk/Websites/webkit.org

Add some images for a blog post.

  • blog-files/inspector-elements-network-tabs.png: Added.
  • blog-files/inspector-tab-bar.png: Added.
  • blog-files/inspector-tab-icons.svg: Added.
6:54 PM Changeset in webkit [186720] by Joseph Pecoraro
  • 2 edits in trunk/Source/WTF

Unreviewed build fix, restrict APP_LINKS to just iOS.

  • wtf/Platform.h:
5:51 PM WebKitGTK/Releasing edited by Martin Robinson
Warning that contents are out of date (diff)
3:58 PM Changeset in webkit [186719] by Joseph Pecoraro
  • 9 edits in trunk/Source/WebKit2

Allow clients to opt-out of default app link link actions
https://bugs.webkit.org/show_bug.cgi?id=146883
<rdar://problem/21221902>

Reviewed by Dan Bernstein.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::shouldIncludeAppLinkActionsForElement):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::shouldIncludeAppLinkActionsForElement):
Plumbing for a new delegate message to ask the client if they
would like app link actions or not. Default is yes.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
Pass elementInfo into methods generating default actions.

(-[WKActionSheetAssistant _appendOpenActionsForURL:actions:elementInfo:]):
When generating open actions, if the process has AppLink capabilities
ask the client if they want to include AppLink actions or fall back
to the basic Open action.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]):
(-[WKContentView previewViewControllerForPosition:inSourceView:]):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]):
Assistant delegate implementations forward to the UIDelegate.

3:58 PM Changeset in webkit [186718] by Joseph Pecoraro
  • 11 edits
    1 move in trunk/Source

Update default link action sheets for app links
https://bugs.webkit.org/show_bug.cgi?id=146658
<rdar://problem/21221902>

Reviewed by Dan Bernstein.

Source/WebCore:

  • English.lproj/Localizable.strings:
  • platform/spi/ios/LaunchServicesSPI.h:

Source/WebKit2:

  • Shared/mac/SandboxUtilities.h:
  • Shared/mac/SandboxUtilities.mm: Renamed from Source/WebKit2/Shared/mac/SandboxUtilities.cpp.

(WebKit::processHasEntitlement):

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::applicationType):
(WebKit::hasEntitlement): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:

Share a helper for checking if the current process has an entitlement.

  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:title:actionHandler:]):
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

  • UIProcess/API/Cocoa/_WKElementActionInternal.h:

Add an internal way to make an element action with a standard type and regular handler.
We use this for the new standard types that don't have a default implementation.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(applicationHasAppLinkEntitlements):
(appLinkForURL):
Helpers checking access to app links and fetching app links.

(-[WKActionSheetAssistant _appendOpenActionsForURL:actions:]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet]):
(-[WKActionSheetAssistant defaultActionsForImageSheet]):
Create "Open in Safari" and "Open in 'App'" default actions for AppLinks,
otherwise add the normal default "Open" action.

3:29 PM Changeset in webkit [186717] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve runtime of pseudo-element sidebar style ordering
https://bugs.webkit.org/show_bug.cgi?id=146866

Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSRule.js:

(WebInspector.CSSRule.prototype.update): Determines the most specific selector and saves it to a variable.
(WebInspector.CSSRule.prototype.get mostSpecificSelector): Returns the most specific selector.
(WebInspector.CSSRule.prototype.selectorIsGreater): Compares the most specific selector to a given selector.
(WebInspector.CSSRule.prototype._determineMostSpecificSelector):
Searches through the selector list to find and return the selector that is the most specific.
(WebInspector.CSSRule):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh):

2:30 PM Changeset in webkit [186716] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove incorrect overriding of inputAssistantItem in WKContentView.
https://bugs.webkit.org/show_bug.cgi?id=146863
rdar://problem/21507154

Reviewed by Sam Weinig.

Correction to the patch in r186713.
We need to provide the inputAssistantItem from the responder.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView inputAccessoryView]):

1:35 PM Changeset in webkit [186715] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix CONTENT_EXTENSIONS_STATE_MACHINE_DEBUGGING
https://bugs.webkit.org/show_bug.cgi?id=146879

Reviewed by Andreas Kling.

Some of my recent changes broke CONTENT_EXTENSIONS_STATE_MACHINE_DEBUGGING :(

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::prefixTreeVertexToString):
(WebCore::ContentExtensions::recursivePrint):
(WebCore::ContentExtensions::CombinedURLFilters::print):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::debugPrintDot):

1:15 PM Changeset in webkit [186714] by Chris Dumez
  • 5 edits in trunk

Unreviewed, rolling out r186689 and r186710.
https://bugs.webkit.org/show_bug.cgi?id=146880

May have caused a PLT regression and broken a layout test
(Requested by cdumez on #webkit).

Reverted changesets:

"[WK2] Increase the QoS of some of our WorkQueues to match the
one of our processes"
https://bugs.webkit.org/show_bug.cgi?id=146855
http://trac.webkit.org/changeset/186689

"REGRESSION (r186689?): fast/frames/frame-limit.html timeout
on Mavericks {Release,Debug} WK2 bots"
https://bugs.webkit.org/show_bug.cgi?id=146876
http://trac.webkit.org/changeset/186710

Patch by Commit Queue <commit-queue@webkit.org> on 2015-07-11

12:02 PM Changeset in webkit [186713] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove incorrect overriding of inputAssistantItem in WKContentView.
https://bugs.webkit.org/show_bug.cgi?id=146863
rdar://problem/21507154

Reviewed by Dan Bernstein.

Removing implementation of inputAssistantItem and moving initialization
of formAccessoryView to inputAccessoryView to avoid interfering with
the keyboard handling of the assistant bar.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView inputAccessoryView]):
(-[WKContentView inputAssistantItem]): Deleted.
(-[WKContentView _inputAssistantItem]): Deleted.

11:19 AM Changeset in webkit [186712] by Simon Fraser
  • 22 edits in trunk/Source

[iOS WK2] Scrolling issues on horizontally scrollable RTL pages
https://bugs.webkit.org/show_bug.cgi?id=146872
rdar://problem/7569416

Reviewed by Sam Weinig.

Horizontally scrollable RTL pages in WebKit2 had a variety of issues: they had
a gap down the right edge, and unreachable content on the left side, focussing
form fields scrolled to the wrong location, and programmatic scrolls scrolled
to the wrong place.

Fix by plumbing the WebCore notion of scrollOrigin through to the UI process,
and using it in various places. There are three main aspects to the patch:

  1. scroll origin is included in RemoteLayerTreeTransaction, and plumbed through to -[WKWebView _scrollToContentOffset:] for correct programmatic scrolling,

Source/WebCore:

including zooming to focussed form elements.

  1. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect() rather than just conjuring up a rect with a zero origin, which makes position:fixed work correctly.
  2. _interactionViewsContainerView (which hosts tap highlights) is positioned to coincide with the origin of the documentRect (i.e. at the scroll origin, which may not be top-left). This allows tap highlights to show in the correct location.
  3. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account; if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit testing area.
  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::unobscuredContentRect):

Source/WebKit2:

including zooming to focused form elements. The WKContentView's boundsOrigin
is set to the scroll origin so that the view coordinates match document coordinates.

  1. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect() rather than just conjuring up a rect with a zero origin, which makes position:fixed work correctly.
  2. _interactionViewsContainerView (which hosts tap highlights) is positioned to coincide with the origin of the documentRect (i.e. at the scroll origin, which may not be top-left). This allows tap highlights to show in the correct location.
  3. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account; if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit testing area.
  • Shared/mac/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::scrollOrigin):
(WebKit::RemoteLayerTreeTransaction::setScrollOrigin):

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::description): Dump some more info.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToContentOffset:scrollOrigin:]):
(-[WKWebView _scrollToContentOffset:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::requestScroll):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::requestScroll):

  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestScroll):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::requestScroll):
(WebKit::PageClientImpl::documentRect):
(WebKit::PageClientImpl::contentsSize): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _didCommitLayerTree:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computeCustomFixedPositionRect):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::requestScroll):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willCommitLayerTree):

8:44 AM Changeset in webkit [186711] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html crashes on Windows

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-deny-meta-tag-parent-same-origin-deny.html>

  • platform/win/TestExpectations: Mark tests as crashing:
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html
8:18 AM Changeset in webkit [186710] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186689?): fast/frames/frame-limit.html timeout on Mavericks {Release,Debug} WK2 bots

Fix tracked by: <http://webkit.org/b/146876>

  • platform/mac-wk2/TestExpectations: Mark test as timing out:
  • fast/frames/frame-limit.html
7:17 AM Changeset in webkit [186709] by ddkilzer@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION (r186697): Fix Yosemite, El Capitan test results for js/dom/global-constructors-attributes.html

  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • Move MediaStream results into alphabetical order to fix test failures.
1:42 AM Changeset in webkit [186708] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Warning icon tooltip for numbers with no units could be improved
https://bugs.webkit.org/show_bug.cgi?id=146859

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
If the property's value is incorrect and is comprised of only numbers, that must mean that the value needs
to have units (like "px") after the number. Added another warning icon case to support this scenario.

Jul 10, 2015:

11:55 PM Changeset in webkit [186707] by Chris Dumez
  • 11 edits in trunk/Source

[WK2] Diagnostic logging messages are causing too much IPC
https://bugs.webkit.org/show_bug.cgi?id=146873
<rdar://problem/21779205>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Move shouldLogAfterSampling() utility function to DiagnosticLoggingClient
so it can be easily reused.

  • page/DiagnosticLoggingClient.h:

(WebCore::DiagnosticLoggingClient::shouldLogAfterSampling):

Source/WebKit2:

Diagnostic logging messages are causing too much IPC. To address the
problem, we now do the sampling of the senders' side (WebContent
process and Networking process) instead of the receiver's side
(UIProcess).

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::logDiagnosticMessage):
(WebKit::NetworkProcess::logDiagnosticMessageWithResult):
(WebKit::NetworkProcess::logDiagnosticMessageWithValue):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::logSampledDiagnosticMessage):
(WebKit::NetworkProcessProxy::logSampledDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logSampledDiagnosticMessageWithValue):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):
(WebKit::WebPageProxy::logSampledDiagnosticMessage):
(WebKit::WebPageProxy::logSampledDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logSampledDiagnosticMessageWithValue):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):

11:41 PM Changeset in webkit [186706] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::DesiredWatchpoints should accept WatchpointSetType's that aren't necessarily pointers
https://bugs.webkit.org/show_bug.cgi?id=146875

Reviewed by Dan Bernstein.

In the future we'll want to add a desired watchpoint set that's something like "please
watch property 'Foo' for 'deletion' on structure 'S1'", so that the "set type" is struct
like "struct MySet { StringImpl* property; Mode mode; Structure* structure };".

This is a very mechanical change for now - all of the current users happen to use sets
that are pointer typed, so it's just a matter of moving some "*"'s around.

  • dfg/DFGDesiredWatchpoints.h:

(JSC::DFG::GenericSetAdaptor::add):
(JSC::DFG::GenericSetAdaptor::hasBeenInvalidated):
(JSC::DFG::GenericDesiredWatchpoints::GenericDesiredWatchpoints):
(JSC::DFG::GenericDesiredWatchpoints::addLazily):
(JSC::DFG::GenericDesiredWatchpoints::reallyAdd):
(JSC::DFG::GenericDesiredWatchpoints::areStillValid):
(JSC::DFG::GenericDesiredWatchpoints::isWatched):
(JSC::DFG::DesiredWatchpoints::isWatched):

10:52 PM Changeset in webkit [186705] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Watchpoints should be allocated with FastMalloc
https://bugs.webkit.org/show_bug.cgi?id=146874

Reviewed by Dan Bernstein.

This is in preparation for adding new subclasses of Watchpoint. While starting to do this
I realized that the way Watchpoints allocated themselves was unusual.

  • bytecode/CodeBlockJettisoningWatchpoint.h:

(JSC::CodeBlockJettisoningWatchpoint::CodeBlockJettisoningWatchpoint): No need for the default constructor.

  • bytecode/Watchpoint.h:

(JSC::Watchpoint::Watchpoint): This should be noncopyable and fast-allocated.

  • dfg/DFGCommonData.h: Use a Bag<> instead of SegmentedVector<>. Bag means "malloc things but allow me to free them all at once", which is what we are doing here.
  • dfg/DFGDesiredWatchpoints.h:

(JSC::DFG::GenericDesiredWatchpoints::reallyAdd): Use the Bag<> API rather than the very awkward SegmentedVector<> API.

8:45 PM Changeset in webkit [186704] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup: Remove default constructor for WebCore::Pair()
https://bugs.webkit.org/show_bug.cgi?id=146856
<rdar://problem/21773212>

Reviewed by Darin Adler.

Remove default constructor for WebCore::Pair() and the setters Pair::set{First, Second}()
since they are not used and it seems weird to keep the latter after the removal of the former.
Should it turn out that we find a use for having a default constructor and/or setters then
we can revert this change.

  • css/Pair.h:

(WebCore::Pair::create): Deleted.
(WebCore::Pair::setFirst): Deleted.
(WebCore::Pair::setSecond): Deleted.
(WebCore::Pair::Pair): Deleted.

8:43 PM Changeset in webkit [186703] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Airplay button and placeholder are missing in inline controls
https://bugs.webkit.org/show_bug.cgi?id=146869
<rdar://problem/21555051>

Reviewed by Simon Fraser.

Fix a typo in the ENABLE that was causing the Airplay
setting (allowsAirPlayForMediaPlayback, which becomes
webkitWirelessVideoPlaybackDisabled) to default to false.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Change WIRELESS_TARGET_PLAYBACK
to WIRELESS_PLAYBACK_TARGET.

8:01 PM Changeset in webkit [186702] by fpizlo@apple.com
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

AI folding of IsObjectOrNull is broken for non-object types that may be null
https://bugs.webkit.org/show_bug.cgi?id=146867

Reviewed by Ryosuke Niwa.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): Fix the bug and add some text describing what is going on.

  • tests/stress/misc-is-object-or-null.js: Added. Test for the bug.

(foo):

  • tests/stress/other-is-object-or-null.js: Added. Test for a bug I almost introduced.

(foo):

7:30 PM Changeset in webkit [186701] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

It should be easy to measure total compile times.
https://bugs.webkit.org/show_bug.cgi?id=146857

Reviewed by Sam Weinig.

This gives DFG::Plan the ability to track total compile times, and return them in a map
of stats that jsc.cpp can display.

I want to do some work to bring down DFG compile times. This will help me measure whether
I'm making a difference or not.

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::~Plan):
(JSC::DFG::Plan::computeCompileTimes):
(JSC::DFG::Plan::reportCompileTimes):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::cancel):
(JSC::DFG::Plan::compileTimeStats):
(JSC::DFG::dumpAndVerifyGraph): Deleted.
(JSC::DFG::profilerCompilationKindForMode): Deleted.

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::compileTimeStats):

  • jsc.cpp:

(jscmain):

  • runtime/Options.h:
5:40 PM Changeset in webkit [186700] by ryuan.choi@navercorp.com
  • 3 edits in trunk/Source/WebCore

[CoordinatedGraphics] Override primaryLayerID in CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=146826

Reviewed by Gyuyoung Kim.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::id): Moved id as inline function.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

(WebCore::CoordinatedGraphicsLayer::id):

5:40 PM Changeset in webkit [186699] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

Unskip some now-passing tests.

  • platform/mac-wk2/TestExpectations:
5:16 PM Changeset in webkit [186698] by timothy@apple.com
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: Use -apple-system instead of -webkit-system-font
https://bugs.webkit.org/show_bug.cgi?id=146860

Remove explicit uses of font-family where inhertance from the body is enough.
Change -webkit-system-font to -apple-system and use -apple-system-monospaced-numbers
for DataGrid and the toolbar dashboard.

Reviewed by Sam Weinig.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):

  • UserInterface/Views/DataGrid.css:

(.data-grid td):

  • UserInterface/Views/DefaultDashboardView.css:

(.toolbar .dashboard.default > .item):
(.toolbar .dashboard.default > :matches(.time, .resourcesSize)):
(.toolbar .dashboard.default > .resourcesSize):

  • UserInterface/Views/HierarchicalPathComponent.css:

(.hierarchical-path-component):

  • UserInterface/Views/LogContentView.css:

(.console-messages):

  • UserInterface/Views/Main.css:

(body):

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:

(.object-tree-array-index .index-name):

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property .prototype-name):

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree-outline li .empty-message):

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(.timeline-overview-graph.rendering-frame > .divider > .label):

  • UserInterface/Views/SourceCodeTextEditor.css:

(.source-code.text-editor > .CodeMirror .issue-widget > .text):

  • UserInterface/Views/TypeTreeView.css:

(.type-tree):

5:12 PM Changeset in webkit [186697] by commit-queue@webkit.org
  • 7 edits in trunk

Exposing webkitMediaStream as MediaStream
https://bugs.webkit.org/show_bug.cgi?id=146813
<rdar://problem/21754383>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-10
Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/mediastream/MediaStream.idl: Changed interface

name from webkitMediaStream to MediaStream

LayoutTests:

  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:

Changed attributes from webkitMediaStream to MediaStream

  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:

Ditto

  • platform/mac/js/dom/global-constructors-attributes-expected.txt:

Ditto

5:04 PM Changeset in webkit [186696] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

REGRESSION (r183133-r183138): Secondary clicking in whitespace selects preceding word
https://bugs.webkit.org/show_bug.cgi?id=146695
<rdar://problem/21441466>

Reviewed by Tim Horton.

Add a new test that checks for correct mac selection behavior for editable and read-only
text fields.

  • platform/mac/editing/selection/context-menu-select-editability-expected.txt: Added.
  • platform/mac/editing/selection/context-menu-select-editability.html: Added.
4:31 PM Changeset in webkit [186695] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add source links to functions logged in the console
https://bugs.webkit.org/show_bug.cgi?id=146377

Reviewed by Timothy Hatcher.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Returns a promise that contains the sourceCodeLocation if the object represents a function and has an objectId.
(WebInspector.RemoteObject.prototype._isFunction):

  • UserInterface/Views/ConsoleMessageView.css:

(.console-message .console-message-location):
Added specified values for font sizing and family to ensure that all location links have the same styling.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
Now creates a link to the source code of the entered text if the message is of the type "result".
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._createRemoteObjectIfNeeded):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._linkifyLocation):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrameLocation):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrame):

4:09 PM Changeset in webkit [186694] by Brent Fulgham
  • 5 edits in trunk/Tools

[Mac] Unable to dismiss context menu during test runs
https://bugs.webkit.org/show_bug.cgi?id=146836

Reviewed by Tim Horton.

Since Context Menus are modal, the test system would block on the displayed context menu,
causing tests to fail. Instead, we should do what WK1 was doing, which is to perform the
mouse click and generate the menu contents, but not ask AppKit to display it.

Drive-by fix: We did not handle 'escape' key presses. This is also fixed.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController keyDown:withModifiers:withLocation:]): Handle the 'escape' character.

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::mouseMoveTo): Keep track of the current mouse position.
(WTR::EventSendingController::contextClick): Don't emit an actual context menu invocation and then
copy the menu items. Instead, use WKBundlePageCopyContentMenuAtPointInWindow to do all the same
work without actually calling on AppKit to display the menu.
ask WebCore to do all the work EXCEPT displaying the menu.

  • WebKitTestRunner/InjectedBundle/EventSendingController.h:
  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::keyDown): Handle the 'escape' character.

3:29 PM Changeset in webkit [186693] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Use CoreAnimation fences instead of synchronous IPC to synchronize resize
https://bugs.webkit.org/show_bug.cgi?id=146294
<rdar://problem/21090193>

Reviewed by Anders Carlsson.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate):
Tiny followup; don't touch Connection if the connection isn't valid.

3:04 PM Changeset in webkit [186692] by commit-queue@webkit.org
  • 19 edits
    2 adds in trunk

Source/WebCore:
Added ARIA 1.1 "cell" and "table" roles.
https://bugs.webkit.org/show_bug.cgi?id=146011
<rdar://problem/21398946>

Patch by Nan Wang <n_wang@apple.com> on 2015-07-10
Reviewed by Chris Fleizach.

Created a new role called GridCellRole to match the gridcell role,
so the previous CellRole and TableRole will match to cell and table role.
Made the changes to make sure that both GridRole and TableRole have same
behavior, as well as the circumstance for GridCellRole and CellRole.

Test: accessibility/roles-table-and-cell.html

  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::supportsRequiredAttribute):
(WebCore::AccessibilityNodeObject::canSetSelectedAttribute):

  • accessibility/AccessibilityObject.cpp:

(WebCore::initializeRoleMap):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedRows):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
(WebCore::AccessibilityRenderObject::selectedChildren):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::roleValue):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::determineAccessibilityRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:
Added tests for new role: table and cell.
https://bugs.webkit.org/show_bug.cgi?id=146011.

Patch by Nan Wang <n_wang@apple.com> on 2015-07-10
Reviewed by Chris Fleizach.

Added tests for table and cell role. Also modified other tests to fit the changes.

  • accessibility/roles-computedRoleString-expected.txt:
  • accessibility/roles-computedRoleString.html:
  • accessibilit/roles-table-and-cell-expected.txt: Added.
  • accessibility/roles-table-and-cell.html: Added.
  • platform/mac/accessibility/aria-table-hierarchy-expected.txt:
  • platform/mac/accessibility/aria-tables-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
2:19 PM Changeset in webkit [186691] by fpizlo@apple.com
  • 45 edits
    4 adds in trunk/Source/JavaScriptCore

DFG fragile frozen values are fundamentally broken
https://bugs.webkit.org/show_bug.cgi?id=146602

Reviewed by Mark Lam.

This change gets rid of the FragileValue value strength, because it was fundamentally
broken.

FragileValue was a value known to the compiler but not tracked by the GC in any way -
it wasn't marked and it wasn't weak. This was used to support AI bootstrap for OSR
must-handle values. The philosophy was that if the compiler did use the value for
optimization, it would have been strengthened to a weak value (or maybe even a strong
value, though we probably won't do that). But this was too much of a pipe dream. I've
found at least one case where the compiler did use the value, but never strengthened
it: it would happen if the value ended up in an OSR entry data expected value. Then if
we GCed, we might have killed the value, but OSR entry would still try to use it for
validation. That might have sort of just worked, but it's clearly shady.

The reason why we made must-handle values fragile and not weak is that most of the time
the values disappear from the abstract state: they are LUBed to a non-constant. If we
kept them around as weak, we'd have too many cases of the GC killing the code because
it thought that the value was somehow meaningful to the code when it was only used as a
temporary artifact of optimization.

So, it's true that it's very important for must-handle values not to automatically be
weak or strong. It's also true that the values are necessary for AI bootstrap because
we need to know what values OSR entry will require. But we shouldn't accomplish these
goals by having the compiler hold onto what are essentially dangling pointers.

This implements a better solution: instead of having InPlaceAbstractState bootstrap the
AI with must-handle values at the beginning, we now widen the valuesAtHead of the
must-handle block after AI converges. This widening is done in CFAPhase. This allows us
to see if the must-handle values are necessary at all. In most cases, the widening
takes a non-constant abstract value and simply amends something to its type based on
the type of the must-handle value, and so the must-handle value never actually shows up
in either the IR or any abstract value. In the unlikely event that the value at head is
bottom, we freeze the must-handle value. This change removes FragileValue, and this
freezing uses WeakValue as the strength. That makes sense: since the abstract value was
bottom, the must-handle value becomes integral to the IR and so it makes no sense for
the GC to keep the resulting CodeBlock alive if that must-handle value dies. This will
sometimes happen for example if you have a very long-running loop whose pre-header
allocates some object, but that pre-header appears to always exit to the optimizing JIT
because it was only profiled once in the LLInt and that profiling appears insufficient
to the DFG. In that case, we'll effectively constant-fold the references to the object
inside the loop, which is both efficient (yay constant folding!) and necessary
(otherwise we wouldn't know what the type of the variable should have been).

Testing and debugging this is complicated. So, this adds some new capabilities:

  • DFG IR dumps also dump all of the FrozenValues that point to the heap along with their strengths, so that it's easy to see what GC objects the DFG feels are necessary for the compilation.


  • DFG OSR entry preparation prints out the OSR entry data structures, so that it's easy to see what GC pointers (and other things) are used for OSR entry validation. The printouts are quite detailed, and should also help other kinds of OSR entry debugging.


  • DFG::Plan now validates whether all of the GC pointers planted in the various JITCode data structures are also properly registered as either weak or strong pointers in the CodeBlock. This validation check previously failed due to fragile values ending up in the OSR entry data structures, both in the newly added test (dead-osr-entry-value.js) and in some pre-existing tests (like earley-boyer and 3d-raytrace).

(JSC::CodeBlock::stronglyVisitStrongReferences):

  • bytecode/CodeOrigin.cpp:

(JSC::InlineCallFrame::visitAggregate):

  • bytecode/Operands.h:

(JSC::Operands::operand):
(JSC::Operands::hasOperand):

  • bytecode/StructureSet.cpp:

(JSC::StructureSet::dump):
(JSC::StructureSet::validateReferences):

  • bytecode/StructureSet.h:
  • bytecode/TrackedReferences.cpp: Added.

(JSC::TrackedReferences::TrackedReferences):
(JSC::TrackedReferences::~TrackedReferences):
(JSC::TrackedReferences::add):
(JSC::TrackedReferences::check):
(JSC::TrackedReferences::dump):

  • bytecode/TrackedReferences.h: Added.
  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::observeTransitions):
(JSC::DFG::AbstractValue::set):
(JSC::DFG::AbstractValue::fixTypeForRepresentation):
(JSC::DFG::AbstractValue::mergeOSREntryValue):
(JSC::DFG::AbstractValue::filter):
(JSC::DFG::AbstractValue::dumpInContext):
(JSC::DFG::AbstractValue::validateReferences):
(JSC::DFG::AbstractValue::setOSREntryValue): Deleted.

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::fullTop):
(JSC::DFG::AbstractValue::merge):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):

  • dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::invalidate):
(JSC::DFG::CommonData::validateReferences):

  • dfg/DFGCommonData.h:

(JSC::DFG::CommonData::requiredRegisterCountForExecutionAndExit):

  • dfg/DFGFrozenValue.h:

(JSC::DFG::FrozenValue::FrozenValue):
(JSC::DFG::FrozenValue::strengthenTo):
(JSC::DFG::FrozenValue::pointsToHeap):
(JSC::DFG::FrozenValue::strength):
(JSC::DFG::FrozenValue::freeze):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::registerFrozenValues):
(JSC::DFG::Graph::visitChildren):
(JSC::DFG::Graph::freeze):
(JSC::DFG::Graph::freezeStrong):
(JSC::DFG::Graph::freezeFragile): Deleted.

  • dfg/DFGGraph.h:
  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::initialize):

  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::setOptimizationThresholdBasedOnCompilationResult):
(JSC::DFG::JITCode::validateReferences):

  • dfg/DFGJITCode.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::addressOfDoubleConstant):
(JSC::DFG::JITCompiler::noticeOSREntry):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::branchStructurePtr):
(JSC::DFG::JITCompiler::jitCode):
(JSC::DFG::JITCompiler::noticeOSREntry): Deleted.

  • dfg/DFGMinifiedGraph.cpp: Added.

(JSC::DFG::MinifiedGraph::prepareAndShrink):
(JSC::DFG::MinifiedGraph::validateReferences):

  • dfg/DFGMinifiedGraph.h:

(JSC::DFG::MinifiedGraph::append):
(JSC::DFG::MinifiedGraph::prepareAndShrink): Deleted.

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::OSREntryData::dumpInContext):
(JSC::DFG::OSREntryData::dump):
(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSREntry.h:

(JSC::DFG::getOSREntryDataBytecodeIndex):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::linkOSREntries):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):

  • dfg/DFGStructureAbstractValue.cpp:

(JSC::DFG::StructureAbstractValue::dump):
(JSC::DFG::StructureAbstractValue::validateReferences):

  • dfg/DFGStructureAbstractValue.h:
  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • dfg/DFGValueStrength.cpp:

(WTF::printInternal):

  • dfg/DFGValueStrength.h:

(JSC::DFG::merge):

  • ftl/FTLExitPropertyValue.cpp:

(JSC::FTL::ExitPropertyValue::dump):
(JSC::FTL::ExitPropertyValue::validateReferences):

  • ftl/FTLExitPropertyValue.h:
  • ftl/FTLExitTimeObjectMaterialization.cpp:

(JSC::FTL::ExitTimeObjectMaterialization::dump):
(JSC::FTL::ExitTimeObjectMaterialization::validateReferences):

  • ftl/FTLExitTimeObjectMaterialization.h:
  • ftl/FTLExitValue.cpp:

(JSC::FTL::ExitValue::dump):
(JSC::FTL::ExitValue::validateReferences):

  • ftl/FTLExitValue.h:
  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::dfgCommon):
(JSC::FTL::JITCode::validateReferences):

  • ftl/FTLJITCode.h:

(JSC::FTL::JITCode::handles):
(JSC::FTL::JITCode::dataSections):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExit::codeLocationForRepatch):
(JSC::FTL::OSRExit::validateReferences):

  • ftl/FTLOSRExit.h:

(JSC::FTL::OSRExit::considerAddingAsFrequentExitSite):

  • jit/JITCode.cpp:

(JSC::JITCode::typeName):
(JSC::JITCode::validateReferences):
(JSC::JITCode::execute):

  • jit/JITCode.h:

(JSC::JITCode::start):

  • tests/stress/dead-osr-entry-value.js: Added.

(foo):

2:17 PM Changeset in webkit [186690] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Storage tab should have a scope bar in the sidebar
https://bugs.webkit.org/show_bug.cgi?id=146799

Fix a couple typos found post review.

  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel):

2:15 PM Changeset in webkit [186689] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

[WK2] Increase the QoS of some of our WorkQueues to match the one of our processes
https://bugs.webkit.org/show_bug.cgi?id=146855

Reviewed by Anders Carlsson.

Increase the QoS of some of our WorkQueues to match the one of our processes. For
e.g., even though the WebContent and the Networking processes have USER_UNITIATED
QoS, the IPC between them is using a WorkQueue with DEFAULT QoS. Similarly, the
WorkQueue used for network cache reads has DEFAULT QoS.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::Storage):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::Connection):

2:12 PM Changeset in webkit [186688] by fpizlo@apple.com
  • 3 edits
    1 add in trunk

It should be possible to run the OSR exit fuzzer
https://bugs.webkit.org/show_bug.cgi?id=146814

Reviewed by Mark Lam.

Source/JavaScriptCore:

Fix a silly bug: the option matching was accidentally allowing a prefix match, which
always did the wrong thing for --fireOSRExitFuzzAt and --fireOSRExitFuzzAtStatic. Make
this an exact match instead.

  • runtime/Options.cpp:

(JSC::Options::setOption):

Tools:

This runs a test command to detect how many static OSR exit sites it had, and then for
each exit site, it triggers three exits (earliest opportunity, last opportunity, some
middle opportunity), plus a mode where the check always exits. This is an exhaustive
search, so in the future it'll be very appropriate for cases where we have a simple test
and we want to see what happens when you eventually exit in this test.

Right now this isn't hooked into any specific tests, but I've done some spot checks on it
and it seems to do the right thing.

  • Scripts/jsc-stress-test-helpers/js-osr-exit-fuzz: Added.

(fail):

1:40 PM Changeset in webkit [186687] by dbates@webkit.org
  • 8 edits in trunk

Serialized declaration for background-size/-webkit-mask-size should preserve identical
values instead of coalescing them
https://bugs.webkit.org/show_bug.cgi?id=143191
<rdar://problem/21759393>

Reviewed by Darin Adler.

Source/WebCore:

Inspired by Blink r157745:
<http://src.chromium.org/viewvc/blink?view=revision&revision=157745>
And Blink r172548:
<http://src.chromium.org/viewvc/blink?view=revision&revision=172548>

Fixes an issue where identical values in a CSS declaration for properties background-size
and -webkit-mask-size would be coalesced when serialized.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseFillSize): Modified to create a Pair object with the appropriate
identical value encoding strategy. We only coalesce identical values when serializing the
declaration of property -webkit-background-size.

  • css/Pair.h:

(WebCore::Pair::create): Added variant that takes an encoding.
(WebCore::Pair::cssText): Moved implementation of Pair::generateCSSString() to here and
modified to conditionally coalesce identical values during serialization.
(WebCore::Pair::Pair): Added variant that takes an encoding.
(WebCore::Pair::generateCSSString): Deleted; moved implementation into Pair::cssText().

LayoutTests:

Inspired by Blink r172548:
<http://src.chromium.org/viewvc/blink?view=revision&revision=172548>

Update tests and test results to ensure we serialize background-size, -webkit-mask-size
correctly when identical values are present in their declarations.

  • fast/backgrounds/size/parsing-background-size-values-expected.txt:
  • fast/backgrounds/size/resources/parsing-background-size-values.js:
  • fast/masking/parsing-mask-expected.txt:
  • fast/masking/parsing-mask.html:
1:39 PM Changeset in webkit [186686] by mmaxfield@apple.com
  • 11 edits
    2 adds in trunk

Bidi-Isolate inlines break layout with collapsed whitespace
https://bugs.webkit.org/show_bug.cgi?id=109624
<rdar://problem/21752834>

Reviewed by David Hyatt.

Source/WebCore:

This patch changes the logic in constructBidiRunsForSegment() when it encounters an
isolate. It already has logic to create a BidiResolver for the isolated text;
however, that logic doesn't handle setting up the MidpointState at all.
Specifically, we can set the MidpointState's cursor to point to the context which
we can remember from addPlaceholderRunForIsolatedInline(). This information is
remembered in a HashMap in BidiResolver.

This patch is a partial port of Blink patch
https://src.chromium.org/viewvc/blink?view=rev&revision=159203

Here is some explanatory text regarding how we collapse spaces:

Collapsing whitespace happens in a series of phases. The first phase occurs when
we perform line breaking. Here, we keep track of sequences of whitespace which
should be collapsed, in the form of a vector of pairs of InlineIterators. We put
this knowledge into a MidpointState object.

Then, once we have a line, we run the bidi algorithm on the line (including the
whitespace). As output, the bidi algorithm calls the BidiResolver::appendRun()
callback with two InlineIterators each time it wants to create a run. Because
each renderer that we create has to be owned by exactly one DOM node,
BidiResolver::appendRun() iterates between its two InlineIterator arguments,
calling RenderBlockFlow::appendRunsForObject() on each interstitial DOM node.

This is the function where whitespace collapsing happens. The MidpointState object
keeps a cursor into its remembered whitespace sequences. Here, we simply make a
bidi run for each region in between adjacent whitespace pairs in the MidpointState
object. These bidi runs eventually get turned into leaf InlineBoxes.

The problem is that the BidiResolver::appendRun() callbacks don't occur in
string-order, but the Midpoint InlineIterator pairs are in string-order. In
particular, within a particular isolate, appendRun() gets called in string
order, but callbacks that occur for inner isolates are deferred. This means that
RenderBlockFlow::appendRunsForObject() gets confused when it looks for relevant
whitespace to skip.

Test: fast/text/bidi-isolate-whitespace-collapse.html

  • platform/text/BidiResolver.h:

(WebCore::MidpointState::numMidpoints): Returning a const unsigned& is silly.
(WebCore::MidpointState::currentMidpoint): Ditto.
(WebCore::MidpointState::setCurrentMidpoint): The isolated MidpointState object
needs to be able to set its current midpoint to point to the first one inside
the isolate.
(WebCore::MidpointState::decrementNumMidpoints): Renamed from "decrease"
(WebCore::MidpointState::betweenMidpoints): This function is true iff
currentMidpoint() % 2. Instead of keeping a member variable, we can just compute
that.
(WebCore::MidpointState::reset): Deleted.
(WebCore::MidpointState::decreaseNumMidpoints): Deleted.
(WebCore::MidpointState::setBetweenMidpoints): Deleted.

  • rendering/InlineIterator.h:

(WebCore::IsolateTracker::addFakeRunIfNecessary): Call
RenderBlockFlow::appendRunsForObject() to keep our MidpointState object in sync
when we pop out of the isolated object. However, we pass in a null run list,
because we don't want to append just yet (that happens when we process the
isolate).
(WebCore::InlineBidiResolver::appendRun): Update for new signature of
appendRunsForObject().

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::shouldSkipCreatingRunsForObject): Take a reference instead
of a pointer.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::createRun): Ditto.
(WebCore::RenderBlockFlow::appendRunsForObject): Allow someone passing us a null
BidiRunList. In this case, we will keep the resolver's midpointState() up to date,
but won't actually emit any runs.
(WebCore::notifyResolverToResumeInIsolate): Renamed from setUp.
(WebCore::isolatedResolversMidpointState): Calculate the midpoint state for the
isolated resolver.
(WebCore::setUpResolverToResumeInIsolate): Call isolatedResolversMidpointState().
(WebCore::constructBidiRunsForSegment): Pass in the topResolver, which is
necessary for isolatedResolversMidpointState().

  • rendering/line/BreakingContext.h:

(WebCore::checkMidpoints):

LayoutTests:

  • fast/inline/crash-when-child-renderer-is-removed-and-line-stays-clean-expected.txt:
  • fast/text/bidi-isolate-whitespace-collapse-expected.html: Added.
  • fast/text/bidi-isolate-whitespace-collapse.html: Added.
  • fast/text/international/embed-bidi-style-in-isolate-crash-expected.txt:
  • fast/text/remove-text-node-linebox-not-dirty-crash-expected.txt:
1:34 PM Changeset in webkit [186685] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Cleanup: WebCore::Pair class should use RefPtr&& instead of PassRefPtr
https://bugs.webkit.org/show_bug.cgi?id=146852

Reviewed by Anders Carlsson.

  • css/CSSParser.cpp:

(WebCore::createPrimitiveValuePair): Write using a variadic template that forwards its
arguments to the appropriate Pair::create constructor.
(WebCore::CSSParser::parse4ValuesFillPosition): Use RefPtr&& instead of PassRefPtr.
(WebCore::CSSParser::parse3ValuesFillPosition): Ditto.
(WebCore::CSSParser::parseFillPosition): Use WTF::move() instead of RefPtr::release()
so that we pass a rvalue reference to RefPtr.
(WebCore::CSSParser::parseFillSize): Ditto.
(WebCore::CSSParser::parseBorderImageRepeat): Ditto.

  • css/CSSParser.h:
  • css/Pair.h:

(WebCore::Pair::create): Use RefPtr&& instead of PassRefPtr.
(WebCore::Pair::setFirst): Ditto.
(WebCore::Pair::setSecond): Ditto.
(WebCore::Pair::Pair): Ditto. Also substitute nullptr for 0 in the member initialization
list of the default constructor.

1:19 PM Changeset in webkit [186684] by Alan Bujtas
  • 6 edits in trunk/Source

Crash at WebCore::WebPage::innerFrameQuad.
https://bugs.webkit.org/show_bug.cgi?id=146843
rdar://problem/21501819

Reviewed by Andreas Kling.

We may end up with a null rootEditableElement() after calling Document::updateLayout().

Speculative fix. Not reproducible.

Source/WebCore:

  • page/Frame.cpp: Some const cleanup.

(WebCore::Frame::visiblePositionForPoint):

  • page/Frame.h:

Source/WebKit2:

  • WebProcess/WebPage/WebPage.h: Some const cleanup.
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::innerFrameQuad): null check assistedNode.rootEditableElement()
(WebKit::constrainPoint):
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::visiblePositionInFocusedNodeForPoint):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::selectPositionAtBoundaryWithDirection):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::updateSelectionWithExtentPoint):
(WebKit::WebPage::getPositionInformation):

12:01 PM Changeset in webkit [186683] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Crash in HistoryController::updateForCommit dereferencing a null HistoryItem.
<rdar://problem/21371589> and https://bugs.webkit.org/show_bug.cgi?id=146842

Reviewed by Chris Dumez.

No new tests (Unknown how to reproduce).

This patch basically rolls back part of http://trac.webkit.org/changeset/179472.

r179472 changed HistoryController::setCurrentItem() to take a reference instead of a pointer.
Unfortunately, we sometimes call setCurrentItem(nullptr).

We'd like to *not* do that, and there are assertions in place to try to catch when we do,
but in the meantime it is not valid to dereference nullptr.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadSameDocumentItem):

  • loader/HistoryController.cpp:

(WebCore::HistoryController::updateForCommit):
(WebCore::HistoryController::recursiveUpdateForCommit):
(WebCore::HistoryController::recursiveUpdateForSameDocumentNavigation):
(WebCore::HistoryController::setCurrentItem): Take a ptr instead of a ref.
(WebCore::HistoryController::createItem):

  • loader/HistoryController.h:
10:53 AM Changeset in webkit [186682] by jfernandez@igalia.com
  • 6 edits
    6 adds in trunk

[CSS Grid Layout] Grid item's auto-margins are not applied correctly
https://bugs.webkit.org/show_bug.cgi?id=146581

Reviewed by Darin Adler.

Source/WebCore:

Grid Layout specification states that auto-margins must prevent to apply
any Box Alignment property in that dimension. Instead, auto-margin is
applied as described in the spec.

http://dev.w3.org/csswg/css-grid/#auto-margins

Only Flexbox and Grid Layout implement vertical auto-margin alignment;
for other layout modes, auto-margin should compute as 0.

Tests: fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr.html

fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl.html
fast/css-grid-layout/grid-item-auto-margins-alignment.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::updateGridAlignmentAfterStyleChange):

  • rendering/RenderBox.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::hasAutoMarginsInColumnAxis):
(WebCore::RenderGrid::hasAutoMarginsInRowAxis):
(WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded):
(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::columnPositionForChild):

  • rendering/RenderGrid.h:

LayoutTests:

Tests to verify auto-margins alignment works as expected with grid items.

  • fast/css-grid-layout/grid-item-auto-margins-alignment-expected.txt: Added.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr-expected.txt: Added.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr.html: Added.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl-expected.txt: Added.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl.html: Added.
  • fast/css-grid-layout/grid-item-auto-margins-alignment.html: Added.
10:41 AM Changeset in webkit [186681] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add tests for r186649
https://bugs.webkit.org/show_bug.cgi?id=146821

Patch by Alex Christensen <achristensen@webkit.org> on 2015-07-10
Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
(TestWebKitAPI::compareContents):
(TestWebKitAPI::expectedIndex):
Add some larger tests to test large jumps.

10:38 AM Changeset in webkit [186680] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix overloaded virtual function warning in ScrollbarThemeGtk.h
https://bugs.webkit.org/show_bug.cgi?id=145920

Reviewed by Darin Adler.

  • platform/gtk/ScrollbarThemeGtk.h:
9:34 AM Changeset in webkit [186679] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: <details> element should allow expand/close through AX API
https://bugs.webkit.org/show_bug.cgi?id=146549

Apply review comments from Daniel Bates.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::setIsExpanded):

9:33 AM Changeset in webkit [186678] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Document picker has overlapping icons on iPad
https://bugs.webkit.org/show_bug.cgi?id=146808
<rdar://problem/21251875>

Reviewed by Sam Weinig.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel documentMenu:didPickDocumentPicker:]):
Don't show this UI as a popover on iPad; the default is a full screen
form sheet.

8:45 AM Changeset in webkit [186677] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERT restoring from page cache as DocumentLoader reattaches to its Frame.
<rdar://problem/21766282> and https://bugs.webkit.org/show_bug.cgi?id=146786

Reviewed by NOBODY (Fixing obvious boneheaded mistake in r186642)

No new tests (Covered by existing)

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::attachToFrame): Bail if reattaching to the current Frame,

which happens when restoring from the page cache.

8:28 AM Changeset in webkit [186676] by matthew_hanson@apple.com
  • 10 edits in tags/Safari-601.1.39/Source

Disable non-shipping features.

8:07 AM Changeset in webkit [186675] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-601.1.39/Source

Un-versioning.

7:53 AM Changeset in webkit [186674] by matthew_hanson@apple.com
  • 5 edits in trunk/Source

Versioning.

7:51 AM Changeset in webkit [186673] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-601.1.39/Source

Versioning.

7:37 AM Changeset in webkit [186672] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.39

New Tag.

5:39 AM Changeset in webkit [186671] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Fix typo in LayoutTests/platform/wk2/TestExpectation.
https://bugs.webkit.org/show_bug.cgi?id=146830

Unreviewed, WK2 gardening.

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-07-10

  • platform/wk2/TestExpectations:
5:33 AM Changeset in webkit [186670] by Michael Catanzaro
  • 2 edits in trunk

[GTK] ar warning when linking static libraries
https://bugs.webkit.org/show_bug.cgi?id=144988

Reviewed by Carlos Garcia Campos.

Do not use 'u' when calling ar. This argument conflicts with 'D' and is ignored if 'D' is
used, and 'D' is used by default if binutils is built with --enable-deterministic-archives.
Using 'u' with 'D' causes a warning to be printed when linking static libraries. At least
Fedora and Debian have recently both chosen to use --enable-deterministic-archives, so we
should either stop using 'u' or else add 'U' as well in order to disable deterministic
archives. Using 'U' should result in a somewhat faster build (at least when using the
Makefile generator), but it's unlikely that the difference is significant, so let's simply
remove 'u' until someone determines otherwise. This seems like a better option than adding
'U' so as not to foil distributions' attempts to perform deterministic builds. This also
aligns us with the behavior of upstream CMake (which has never used 'u'). This is a minor
behavior change on distributions that do not use --enable-deterministic-archives, notably
Arch and openSUSE.

  • Source/cmake/OptionsCommon.cmake:
5:30 AM Changeset in webkit [186669] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Swedish translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=146596

Patch by Josef Andersson <josef.andersson@fripost.org> on 2015-07-10
Reviewed by Carlos Garcia Campos.

  • sv.po:
5:26 AM Changeset in webkit [186668] by loki@webkit.org
  • 2 edits in trunk/Websites/planet.webkit.org

[Planet WebKit] Update the feed url of the University of Szeged's blog.
https://bugs.webkit.org/show_bug.cgi?id=146835

Reviewed by Csaba Osztrogonác.

  • config.ini:

Jul 9, 2015:

11:05 PM Changeset in webkit [186667] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

[Streams API] Fix readable-stream-tee.html
https://bugs.webkit.org/show_bug.cgi?id=146803

Reviewed by Darin Adler.

  • streams/reference-implementation/readable-stream-tee.html:
10:55 PM Changeset in webkit [186666] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Plugin create can end up destroying its renderer.
https://bugs.webkit.org/show_bug.cgi?id=146824
rdar://problem/18921429

Reviewed by Andreas Kling.

Plugins can run arbitrary code during initialization. If the plugin
happens to destroy the associated node, its renderer becomes invalid.
This patch checks whether the renderer survived the createPlugin() call.
(This WeakPtr pattern is also used in RenderWidget to avoid dangling pointers.)

Speculative fix. Not reproducible.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadPlugin):

10:31 PM Changeset in webkit [186665] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Quick fix for run_benchmark script that AppKit.NSRunningApplication does not work properly
https://bugs.webkit.org/show_bug.cgi?id=146820

Patch by Dewei Zhu <Dewei Zhu> on 2015-07-09
Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver):
(OSXBrowserDriver.close_browsers):
(OSXBrowserDriver._terminiate_processes):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver):
(OSXChromeCanaryDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:

(OSXFirefoxDriver):
(OSXFirefoxNightlyDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver):

10:18 PM Changeset in webkit [186664] by mitz@apple.com
  • 18 edits in trunk/Source

Source/WebCore:
WebCore part of Track and expose policies for external URL schemes and App Links separately
https://bugs.webkit.org/show_bug.cgi?id=146822

Reviewed by Anders Carlsson.

  • loader/FrameLoaderTypes.h: Added ShouldOpenExternalURLsPolicy::ShouldAllowExternalSchemes,

meaning external schemes are allowed but App Links are not. The opposite state doesn’t
exist.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected): Opening a link in a new window
or in the current window should never open it as an App Link.

Source/WebKit2:
WebKit2 part of Track and expose policies for external URL schemes and App Links separately
https://bugs.webkit.org/show_bug.cgi?id=146822

Reviewed by Anders Carlsson.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h: Replaced the shouldOpenExternalURLsPolicy boolean member with a shouldOpenExternalURLsPolicy member whose type is ShouldOpenExternalURLsPolicy, and updated encoding and decoding:
  • UIProcess/API/APINavigationAction.h: Added shouldOpenAppLinks boolean to NavigationAction::create and the constructor. It augments the policy in the NavigationActionData with a valude decided in the UI process. Replaced shouldOpenExternalURLs() with shouldOpenExternalSchemes() and shouldOpenAppLinks() which check the policy and the new m_shouldOpenAppLinks boolean.
  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction _shouldOpenExternalSchemes]): Getter for new property, calls through

to the NavigationAction.

(-[WKNavigationAction _shouldOpenAppLinks]): Ditto.
(-[WKNavigationAction _shouldOpenExternalURLs]): Now deprecated and returns the

_shouldOpenExternalSchemes value.

  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h: Declared new properties for the two policies and deprecated old property.
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::tryAppLink): Changed to use NavigationAction::shouldOpenAppLinks, which

encapsulates logic that used to be here.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPage): Allow App Links (if already allowed by policy).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction): Moved logic from tryAppLink in

NavigationState.mm here and pass the result to NavigationAction::create.

(WebKit::WebPageProxy::decidePolicyForNewWindowAction): Allow App Links (if already allowed

by policy).

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::loadRequest): Changed the default policy to not allow App Links (but

still allow external schemes).

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:

(WKBundleNavigationActionGetShouldTryAppLinks): Added this getter.

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.h: Added m_shouldTryAppLinks boolean member, initialized from the policy. Updated the initialization of m_shouldOpenExternalURLs to account for the new policy.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Pass the policy

in the navigation data.

10:10 PM Changeset in webkit [186663] by dbates@webkit.org
  • 6 edits
    12 adds in trunk

Fetching Content Security Policy report URL should respect same origin policy
https://bugs.webkit.org/show_bug.cgi?id=146754
<rdar://problem/18860259>

Reviewed by Brady Eidson.

Inspired by Blink r149791 (by Mike West <mkwst@chromium.org>):
<https://src.chromium.org/viewvc/blink?revision=149791&view=revision>

Source/WebCore:

As per <http://www.w3.org/TR/2015/CR-CSP2-20150219/#send-violation-reports>, fetching the
Content Security Policy report URL should include cookies if and only if the origin of
the protected resource is equal to the origin of the report URL.

Tests: http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.html

http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled.html
http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.html
http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.html
http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.html
http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.html

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendViolationReport):

LayoutTests:

Added additional tests for private browsing mode.

  • http/tests/cookies/resources/setCookies.cgi:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.html: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled.html: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.html: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.html: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.html: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/save-report.php:
  • platform/wk2/TestExpectations: Skip private browsing mode tests in WebKit2 until we fix <https://bugs.webkit.org/show_bug.cgi?id=115274>.
8:45 PM Changeset in webkit [186662] by timothy_horton@apple.com
  • 20 edits in trunk/Source

Use CoreAnimation fences instead of synchronous IPC to synchronize resize
https://bugs.webkit.org/show_bug.cgi?id=146294
<rdar://problem/21090193>

Reviewed by Anders Carlsson.

Because of changes in underlying frameworks, we can no longer depend on
blocking the UI process main thread to be sufficient to synchronize
UI process CA commits with commits coming from the Web process.

Instead, we have to use CoreAnimation fences to perform this synchronization.
Instead of blocking inside waitForAndDispatchImmediately, we'll end up
blocking during the CA commit.

  • Platform/mac/LayerHostingContext.mm:

Use HAVE(COREANIMATION_FENCES).

  • Platform/IPC/Connection.cpp:

(IPC::Connection::Connection):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::installIncomingSyncMessageCallback):
(IPC::Connection::uninstallIncomingSyncMessageCallback):
Keep track of a set of incoming sync message callbacks, and fire them
(on another queue) when a sync message arrives.

(IPC::Connection::hasIncomingSyncMessage):

  • Platform/IPC/Connection.h:

Add a way to check if there are any sync messages in the queue.

  • UIProcess/API/mac/WKView.mm:

(-[WKView forceAsyncDrawingAreaSizeUpdate:]):
(-[WKView waitForAsyncDrawingAreaSizeUpdate]):
These are no longer used; do nothing on 10.10+.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::updateGeometry):

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scaleViewAndUpdateGeometryFenced):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateGeometry):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:

Add a MachSendRight parameter to UpdateGeometry, so that we can send along
a fence port with the geometry update if needed.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
Apply the incoming fence so that geometry changes will be synchronized between processes.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
Don't wait for DidUpdateGeometry to come in if we're using fences to achieve the same thing.

(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
Create and block us on a fence and send it along with the geometry update.
If a sync message is in the incoming message queue, don't create the fence;
if a sync message comes in at any point after we've installed the fence (but
before the relevant commit completes), invalidate the fence, so that we won't
end up temorarily deadlocked waiting for the fence timeout.

  • platform/cocoa/MachSendRight.h:

Export some constructors.

  • platform/spi/cocoa/QuartzCoreSPI.h:

Add some SPI.

  • wtf/Platform.h:

Add HAVE(COREANIMATION_FENCES)

5:45 PM Changeset in webkit [186661] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning.

5:44 PM Changeset in webkit [186660] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.8.2

New Tag.

5:41 PM Changeset in webkit [186659] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning.

5:40 PM Changeset in webkit [186658] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Followup to r186647

Reviewed by NOBODY.

Thanks, EWS and commit-queue, for not catching this!

  • loader/DocumentLoader.h: Add a semi-colon.
5:31 PM Changeset in webkit [186657] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.1.4.17-branch/Source

Versioning.

5:27 PM Changeset in webkit [186656] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.4.17.1

New Tag.

5:20 PM Changeset in webkit [186655] by Michael Catanzaro
  • 3 edits in trunk/Tools

[GTK] pango should be included in the default jhbuild moduleset
https://bugs.webkit.org/show_bug.cgi?id=146683

Reviewed by Martin Robinson.

Recent releases of pango 1.36 use functions that are only provided by fontconfig 2.12 when
compiled against sufficiently-new versions of fontconfig. Since we depend on both pango and
fontconfig, and pango depends on fontconfig, we must either add pango to our jhbuild
moduleset or else upgrade fontconfig to a recent unstable release (knowing that we will have
the same problem again the next time pango wants to use a new fontconfig feature), or remove
fontconfig (which would make it hard to keep tests working). On the balance, adding pango is
best.

  • gtk/jhbuild-optional.modules: Remove pango
  • gtk/jhbuild.modules: Add pango and update to latest 1.36.8
5:11 PM Changeset in webkit [186654] by timothy@apple.com
  • 4 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Storage tab should have a scope bar in the sidebar
https://bugs.webkit.org/show_bug.cgi?id=146799

Reviewed by Mark Lam.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Main.html: Added StorageSidebarPanel.css.
  • UserInterface/Views/StorageSidebarPanel.css: Added.
  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel):
(WebInspector.StorageSidebarPanel.prototype.hasCustomFilters):
(WebInspector.StorageSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.StorageSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.StorageSidebarPanel.prototype._scopeBarSelectionDidChange):

5:09 PM Changeset in webkit [186653] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] Crash when spell checker returns no guesses
https://bugs.webkit.org/show_bug.cgi?id=146805

Reviewed by Martin Robinson.

Properly handle ContextMenuItemTagNoGuessesFound in the switch statement.

  • UIProcess/API/gtk/WebKitContextMenuActions.cpp:

(webkitContextMenuActionGetForContextMenuItem):

5:02 PM Changeset in webkit [186652] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION: Inline media scrubbing always pauses the video
https://bugs.webkit.org/show_bug.cgi?id=146819
<rdar://problem/21572027>

Reviewed by Eric Carlson. Joseph Pecoraro also was really
helpful in diagnosing the problem.

When we moved some code from a getter/setter in the child
class to the base class, it was no longer being called due
to the bad way we were implementing inheritance. The solution
was to have the child class explicitly call into the base
class.

The much better solution would have been to rewrite everything
to use ES6 classes or, as a smaller change, assign the proto
directly on the child prototype. But I felt that was a bit
too risky at this point.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.extend): Describe in a comment why the extend function
is not suitable.

  • Modules/mediacontrols/mediaControlsiOS.js: Add a getter/setter for

scrubbing that calls into the base Controller.

5:02 PM Changeset in webkit [186651] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make the TabBar work better with AX
https://bugs.webkit.org/show_bug.cgi?id=146806

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar): Set role to tablist and drop tabIndex.

  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem): Set role to tab and tabIndex.
(WebInspector.TabBarItem.prototype.set selected): Toggle aria-selected.

4:43 PM Changeset in webkit [186650] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: <details> element should allow expand/close through AX API
https://bugs.webkit.org/show_bug.cgi?id=146549

Reviewed by Mario Sanchez Prada.

Forgot this file with the original commit.

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::toggleOpen):

4:33 PM Changeset in webkit [186649] by achristensen@apple.com
  • 6 edits in trunk/Source

[Content Extensions] Add 3 byte jump size.
https://bugs.webkit.org/show_bug.cgi?id=146425

Reviewed by Darin Adler.

Source/WebCore:

  • contentextensions/DFABytecode.h:

(WebCore::ContentExtensions::smallestPossibleJumpSize):

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::appendZeroes):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::jumpSizeInBytes):
(WebCore::ContentExtensions::getJumpSize):
(WebCore::ContentExtensions::getJumpDistance):
Added DFABytecodeJumpSize::Int24.

Source/WebKit2:

  • UIProcess/API/APIUserContentExtensionStore.h:

Increment CurrentContentExtensionFileVersion because of change in the bytecode.

4:32 PM Changeset in webkit [186648] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit2

SafariViewController loads partial webpage or entirely blank webpage
https://bugs.webkit.org/show_bug.cgi?id=146815
rdar://problem/21734757

Reviewed by Dan Bernstein.

  • Platform/spi/ios/UIKitSPI.h:

Add _hostProcessIdentifier getter.

  • UIProcess/ApplicationStateTracker.h:

Change ApplicationStateTracker to hold on to a WKContentView instead of a UIView.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::applicationType):
Add a helper function that returns the type of application the web view is hosted by (regular
application, view service or extension).

(WebKit::ApplicationStateTracker::ApplicationStateTracker):
Register notifications and update m_isInBackground. For regular applications, just listen for UIApplication notifications.
For view services, walk the view controller hierarchy and find the service view controller and listen for notifications and use
BKS to find the background state of the host application. For extensions, just use BKSApplicationStateMonitor directly.

(WebKit::isViewService): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView willMoveToWindow:]):
If we're moving out of a window, null out the state tracker.

(-[WKContentView didMoveToWindow]):
If we moved to a window, create a new state tracker.

(-[WKContentView isBackground]):
Handle a null application state.

(-[WKContentView _commonInitializationWithProcessPool:configuration:]): Deleted.
Don't create the application state here.

4:29 PM Changeset in webkit [186647] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Add better ASSERTs to learn more about what is going wrong in DocumentLoader::detachFromFrame()
https://bugs.webkit.org/show_bug.cgi?id=146816

Reviewed by Alex Christensen.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::attachToFrame): Set the "has ever been attached" flag to true.
(WebCore::DocumentLoader::detachFromFrame): ASSERT m_frame is non-null, but with a message

depending on the value of the "has ever been attached" flag.

  • loader/DocumentLoader.h:
4:27 PM Changeset in webkit [186646] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Mac, iOS] The mimeTypeCache should return a reference
https://bugs.webkit.org/show_bug.cgi?id=146809

Reviewed by Eric Carlson.

No new tests: No change in functionality.

Don't copy the mime type cache every time someone asks it a question. Return
by reference instead.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::mimeTypeCache):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::mimeTypeCache):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::mimeTypeCache):

4:21 PM Changeset in webkit [186645] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't clear the console when navigating to a different page
https://bugs.webkit.org/show_bug.cgi?id=142751

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager): No longer distinguishes from page refreshes and page navigations for console clearing.
(WebInspector.LogManager.prototype._delayedMessagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent): Changed context menu keep/clear log text.
(WebInspector.LogContentView.prototype._toggleClearLogOnNavigateSetting):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting): Deleted.

4:02 PM Changeset in webkit [186644] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Rubber banding is broken when using a Mighty Mouse
https://bugs.webkit.org/show_bug.cgi?id=146693

Patch by Wenson Hsieh <whsieh@berkeley.edu> on 2015-07-09
Reviewed by Tim Horton.

Source/WebCore:

Sets the "constrain content edge scrolling" flag to true by default, causing scrolling
with a Mighty Mouse to not extend beyond the container's edges.

Test: platform/mac-wk2/tiled-drawing/scrolling/stateless-scrolling-no-rubber-band.html

  • rendering/RenderLayer.cpp: Remove code that defaulted the flag to false.

(WebCore::RenderLayer::RenderLayer): Deleted.

  • rendering/RenderMarquee.cpp: Added special case for marquees that allows content to scroll.

(WebCore::RenderMarquee::RenderMarquee): See above.

LayoutTests:

  • platform/mac-wk2/tiled-drawing/scrolling/stateless-scrolling-no-rubber-band-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/stateless-scrolling-no-rubber-band.html: Added.
3:58 PM Changeset in webkit [186643] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

SymbolTable::entryFor() should do a bounds check before indexing into the localToEntry vector.
https://bugs.webkit.org/show_bug.cgi?id=146807

Reviewed by Filip Pizlo.

When we capture an argument by name and we use "arguments", we put all of the
arguments into the scope. But destructured arguments are put into the scope
anonymously i.e. the SymbolTable knows that the scope offset is in use via
SymbolTable::m_maxScopeOffset, but that ScopeOffset won't appear in
SymbolTable::m_map.

The SymbolTable's m_localToEntry vector is synthesized from its m_map, and will
have a size which is based on the largest ScopeOffset in the m_map. If we have a
scenario where the anonymous argument is at a higher ScopeOffset than all the
named arguments, then the m_localsToEntry vector will not have an entry for it
i.e. the m_localsToEntry vector will have a size that is <= the ScopeOffset of
the anonymous argument.

Hence, SymbolTable::entryFor() should ensure that the requested ScopeOffset is
within the bounds of the m_localToEntry vector before indexing into it.

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::entryFor):

3:30 PM Changeset in webkit [186642] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

DocumentLoader::detachFromFrame() is being called with no current Frame set.
<rdar://problem/21293082> and https://bugs.webkit.org/show_bug.cgi?id=146786

Reviewed by Sam Weinig.

No new tests (Unknown how to reproduce).

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::attachToFrame):
(WebCore::DocumentLoader::detachFromFrame): Null check m_frame before dereferencing it.
(WebCore::DocumentLoader::setFrame): Deleted, renamed to attachToFrame(), and take's

a Frame& instead of a Frame*.

  • loader/DocumentLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::initForSynthesizedDocument): setFrame is now attachToFrame.
(WebCore::FrameLoader::setPolicyDocumentLoader): Ditto.
(WebCore::FrameLoader::transitionToCommitted): Ditto.

3:28 PM Changeset in webkit [186641] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.8-branch/Source/WebKit2

Roll out r186559. rdar://problem/21716363

3:11 PM Changeset in webkit [186640] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Expose MediaStream methods to be used in the MediaStream Engine
https://bugs.webkit.org/show_bug.cgi?id=146791
<rdar://problem/21747589>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-09
Reviewed by Brent Fulgham.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::getAudioTracks): Removed const
(WebCore::MediaStream::getVideoTracks): Ditto

  • Modules/mediastream/MediaStream.h: Needed to change functions to

override

  • platform/mediastream/MediaStreamPrivate.h: Added certain calls to

PrivateClient that exposes methods to be used in the engine

3:07 PM Changeset in webkit [186639] by Devin Rousso
  • 4 edits in trunk

Web Inspector: Fix shape-highlight layout tests
https://bugs.webkit.org/show_bug.cgi?id=146080

Reviewed by Joseph Pecoraro.

Source/WebCore:

  • inspector/InspectorOverlay.cpp:

(WebCore::buildObjectForShapeOutside): Now properly returns the shape margin.

LayoutTests:

  • http/tests/inspector/dom/shapes-test.js: Updated.
3:02 PM Changeset in webkit [186638] by Lucas Forschler
  • 1 copy in branches/jsc-tailcall

New Branch.

3:00 PM Changeset in webkit [186637] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186508. rdar://problem/21707887

2:59 PM Changeset in webkit [186636] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] AirPlay to password protected AppleTV fails
https://bugs.webkit.org/show_bug.cgi?id=146812

Reviewed by NOBODY (OOPS!).

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Initialize previouslyRequestedPicker.
(WebCore::WebMediaSessionManager::clientStateDidChange): Cleanup the logic and add a comment

to make it slightly easier to follow. Don't begin playing to a device unless playback
has just started (don't switch in mid-play).

(WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Use the last client to

request the device picker as a fallback in case no other client is a canditate. Add more
logging to make it possible to debug the selection logic.

(WebCore::WebMediaSessionManager::scheduleDelayedTask): Fiddle with the logging.

2:57 PM Changeset in webkit [186635] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Pseudo-element style ordering is wrong for pseudo-styles on unique selectors
https://bugs.webkit.org/show_bug.cgi?id=146804

Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSRule.js:

(WebInspector.CSSRule.prototype.selectorIsGreater):
Loops through the selectors in a rule to check if their specificity is greater than a given selector's specificity.

  • UserInterface/Models/CSSSelector.js:

(WebInspector.CSSSelector.prototype.isGreaterThan):
Determines if the given selector's specificity is greater than this selector's specificity.
(WebInspector.CSSSelector):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
If the pseudo-element selector's specificity is greater than the current selector's
specificity, create the pseudo-element's section and add it before the current style.

2:54 PM Changeset in webkit [186634] by Devin Rousso
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Special Logs to Console that do not have an expression should be styled differently, looks like code
https://bugs.webkit.org/show_bug.cgi?id=143840

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.WebInspector.JavaScriptLogViewController.appendImmediateExecutionWithResult):
Now applies a class to special logs initiated by the user (log element, log object, etc).

  • UserInterface/Views/ConsoleCommandView.js:

(WebInspector.ConsoleCommandView): Added className parameter.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-user-command.selected-element-log):
(.console-user-command.special-user-log > .console-message-text):

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu):

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._contextMenuHandler):

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._logSymbolProperty):
(WebInspector.ObjectTreeBaseTreeElement.prototype._logValue):

2:03 PM Changeset in webkit [186633] by matthew_hanson@apple.com
  • 12 edits
    1 copy in branches/safari-600.8-branch

Merge r186591. rdar://problem/21716407

2:03 PM Changeset in webkit [186632] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-600.8-branch

Merge r186577. rdar://problem/21533109

2:03 PM Changeset in webkit [186631] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.8-branch

Merge r186575. rdar://problem/21716377

2:03 PM Changeset in webkit [186630] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-600.8-branch

Merge r186571. rdar://problem/21716420

2:03 PM Changeset in webkit [186629] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Tools

Merge r186568. rdar://problem/21716428

2:03 PM Changeset in webkit [186628] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186567. rdar://problem/21716428

2:03 PM Changeset in webkit [186627] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-600.8-branch

Merge r186560. rdar://problem/21716387

2:03 PM Changeset in webkit [186626] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.8-branch/Source/WebKit2

Merge r186559. rdar://problem/21716363

2:03 PM Changeset in webkit [186625] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186558. rdar://problem/21716436

2:03 PM Changeset in webkit [186624] by matthew_hanson@apple.com
  • 6 edits
    4 adds in branches/safari-600.8-branch

Merge r186557. rdar://problem/21716382

2:03 PM Changeset in webkit [186623] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186556. rdar://problem/21716415

2:03 PM Changeset in webkit [186622] by matthew_hanson@apple.com
  • 2 edits
    1 add in branches/safari-600.8-branch/Source/JavaScriptCore

Merge r186555. rdar://problem/21716357

2:03 PM Changeset in webkit [186621] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186554. rdar://problem/21716400

2:02 PM Changeset in webkit [186620] by matthew_hanson@apple.com
  • 7 edits
    1 move
    3 adds in branches/safari-600.8-branch

Merge r186553. rdar://problem/21716372

2:02 PM Changeset in webkit [186619] by matthew_hanson@apple.com
  • 11 edits in branches/safari-600.8-branch

Merge r186551. rdar://problem/21716372

2:02 PM Changeset in webkit [186618] by matthew_hanson@apple.com
  • 16 edits in branches/safari-600.8-branch

Merge r186539. rdar://problem/21707873

2:02 PM Changeset in webkit [186617] by matthew_hanson@apple.com
  • 59 edits
    1 move
    60 adds
    1 delete in branches/safari-600.8-branch

Merge r186521. rdar://problem/21707887

2:02 PM Changeset in webkit [186616] by matthew_hanson@apple.com
  • 6 edits
    4 adds in branches/safari-600.8-branch

Merge r186516. rdar://problem/21707896

2:02 PM Changeset in webkit [186615] by matthew_hanson@apple.com
  • 2 edits
    1 copy in branches/safari-600.8-branch/Source/WebCore

Merge r186507. rdar://problem/21707927

2:02 PM Changeset in webkit [186614] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.8-branch/Source/WebCore

Merge r186506. rdar://problem/21707927

2:01 PM Changeset in webkit [186613] by matthew_hanson@apple.com
  • 4 edits
    6 adds in branches/safari-600.8-branch

Merge r186505. rdar://problem/21707923

2:01 PM Changeset in webkit [186612] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.8-branch

Merge r186504. rdar://problem/21707900

2:01 PM Changeset in webkit [186611] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-600.8-branch

Merge r186503. rdar://problem/21707907

2:01 PM Changeset in webkit [186610] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.8-branch

Merge r186502. rdar://problem/21707910

1:47 PM Changeset in webkit [186609] by Devin Rousso
  • 2 edits in trunk/Tools

Unreviewed. Added myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
1:47 PM Changeset in webkit [186608] by commit-queue@webkit.org
  • 6 edits
    2 copies in trunk/Source/WebCore

Implementing platform-specific section of enumerateDevices
https://bugs.webkit.org/show_bug.cgi?id=146461
<rdar://problem/21614466>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-09
Reviewed by Darin Adler.

  • Modules/mediastream/MediaDeviceInfo.cpp: Changed access methods

(WebCore::MediaDeviceInfo::audioInputType): Added AtomicString
permanent refs
(WebCore::MediaDeviceInfo::audioOutputType): Ditto
(WebCore::MediaDeviceInfo::videoInputType): Ditto

  • Modules/mediastream/MediaDeviceInfo.h: Changed String refs to values

(WebCore::MediaDeviceInfo::label): Ditto
(WebCore::MediaDeviceInfo::deviceId): Ditto
(WebCore::MediaDeviceInfo::groupId): Ditto
(WebCore::MediaDeviceInfo::kind): Ditto

  • platform/mediastream/MediaDevicesPrivate.cpp: Implemented query for

available devices
(WebCore::MediaDevicesPrivate::MediaDevicesPrivate):
(WebCore::MediaDevicesPrivate::create):
(WebCore::MediaDevicesPrivate::availableMediaDevices):

  • platform/mediastream/MediaDevicesPrivate.h:

(WebCore::MediaDevicesPrivate::~MediaDevicesPrivate):

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/MediaStreamTrackSourcesRequestClient.h: Needed

to tack on extra fields to hold data
(WebCore::TrackSourceInfo::create):
(WebCore::TrackSourceInfo::groupId):
(WebCore::TrackSourceInfo::deviceId):
(WebCore::TrackSourceInfo::TrackSourceInfo):

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::getSourcesInfo):

1:37 PM Changeset in webkit [186607] by peavo@outlook.com
  • 9 edits
    1 add in trunk/Source

[Win] Add memory pressure handler.
https://bugs.webkit.org/show_bug.cgi?id=146685

Reviewed by Brent Fulgham.

Source/WebCore:

Add memory pressure handler implementation on Windows.
We check the memory usage at regular intervals with a timer.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseMemory):
(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::uninstall):
(WebCore::MemoryPressureHandler::holdOff):

  • platform/win/MemoryPressureHandlerWin.cpp: Added.

(WebCore::CheckMemoryTimer::CheckMemoryTimer):
(WebCore::CheckMemoryTimer::fired):
(WebCore::CheckMemoryTimer::handleMemoryLow):
(WebCore::MemoryPressureHandler::platformReleaseMemory):
(WebCore::memCheckTimer):
(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::uninstall):
(WebCore::MemoryPressureHandler::holdOff):
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
(WebCore::MemoryPressureHandler::ReliefLogger::platformLog):

  • platform/win/Win32Handle.h:

(WebCore::Win32Handle::operator=):

Source/WebKit:

  • WebKit.vcxproj/WebKit/WebKitCommon.props: Link with process api library.

Source/WebKit/win:

  • WebView.cpp:

(WebView::initWithFrame): Install memory pressure handler.

1:24 PM Changeset in webkit [186606] by msaboff@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r180248): Repro Crash: com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::createRangeError + 20
https://bugs.webkit.org/show_bug.cgi?id=146767

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

If the stack check fails at the top most frame, we must use that frame to
generate the exception. Reverted the code to always use the current frame to
throw an out of stack exception.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

LayoutTests:

New test that generates a call to a function that involves creating a huge
object literal that exceeds the available stack space.

  • http/tests/misc/large-js-program-expected.txt: Added.
  • http/tests/misc/large-js-program.php: Added.
12:43 PM Changeset in webkit [186605] by fpizlo@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

OSR exit fuzzing should allow us to select a static exit site
https://bugs.webkit.org/show_bug.cgi?id=146601

Reviewed by Geoffrey Garen.

The original implementation of the fuzzer allows us to trigger an exit based on its index
in the dynamic sequence of exit sites encountered. But there are usually millions of
dynamically encountered exit sites, even if the program only has thousands of static exit
sites. That means that we would at best be able to do a random sampling of exits, and
those would be biased to the hottest exit sites.

This change allows us to also select exit sites based on their index in the static
sequence of exit sites that the compiler compiled. Then, once that static exit site is
selected, we can select which dynamic exit at that exit site we should trigger. Since the
number of static exit sites is usually smallish (it's bounded by program size), we can do
an exhaustive search over all exit sites in most programs.

  • dfg/DFGOSRExitFuzz.cpp:

(JSC::numberOfStaticOSRExitFuzzChecks):
(JSC::numberOfOSRExitFuzzChecks):

  • dfg/DFGOSRExitFuzz.h:

(JSC::DFG::doOSRExitFuzzing):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitOSRExitFuzzCheck):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):

  • jsc.cpp:

(jscmain):

  • runtime/Options.h:
  • runtime/TestRunnerUtils.h:
12:31 PM Changeset in webkit [186604] by timothy_horton@apple.com
  • 9 edits in trunk/Tools

Add a way to set the default URL from Minibrowser UI
https://bugs.webkit.org/show_bug.cgi?id=146780

Reviewed by Simon Fraser.

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate didChangeSettings]):

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController fetch:]):
(-[BrowserWindowController reload:]):
(-[BrowserWindowController forceRepaint:]):
(-[BrowserWindowController goBack:]):
(-[BrowserWindowController goForward:]):
(-[BrowserWindowController showHideWebView:]):
(-[BrowserWindowController removeReinsertWebView:]):
(-[BrowserWindowController zoomIn:]):
(-[BrowserWindowController zoomOut:]):
(-[BrowserWindowController resetZoom:]):
(-[BrowserWindowController canZoomIn]):
(-[BrowserWindowController canZoomOut]):
(-[BrowserWindowController canResetZoom]):
(-[BrowserWindowController toggleZoomMode:]):
(-[BrowserWindowController setScale:]):
(-[BrowserWindowController toggleShrinkToFit:]):
(-[BrowserWindowController dumpSourceToConsole:]):
(-[BrowserWindowController find:]):
(-[BrowserWindowController didChangeSettings]):
(-[BrowserWindowController currentURL]):
Get rid of the BrowserController protocol. It was a bad idea and confused
Interface Builder more than I thought possible.

  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController setDefaultURLToCurrentURL:]):
If we have a BrowserWindowController, grab its URL and set the relevant default.

  • MiniBrowser/mac/WK1BrowserWindowController.h:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController currentURL]):

  • MiniBrowser/mac/WK2BrowserWindowController.h:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController currentURL]):
Retrieve the current URL from the WKView/WebView.

12:30 PM Changeset in webkit [186603] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Increase MiniBrowser location bar maximum width
https://bugs.webkit.org/show_bug.cgi?id=146779

Reviewed by Simon Fraser.

  • MiniBrowser/mac/BrowserWindow.xib:

Have an enormous maximum width on the location bar, so that it doesn't
stop expanding with the window at 800px.

12:25 PM Changeset in webkit [186602] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Checkbox disappears when unchecking CSS background style
https://bugs.webkit.org/show_bug.cgi?id=146776

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers): Now uses _createCommentedCheckboxMarker.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createCommentedCheckboxMarker):
Scans the content of the given lineHandle for any commented text and adds an unselected checkbox to
the beginning of that lineHandle's line.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent): Now adds commented checkbox markers.

12:16 PM Changeset in webkit [186601] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Align slider knobs in the color picker
https://bugs.webkit.org/show_bug.cgi?id=146778

Also:

  • Use half pixel borders on retina
  • Remove one pixel white outline to match native OS X color picker more closely

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ColorPicker.css:

(.color-picker > .slider > img):

  • UserInterface/Views/Slider.css:

(.slider):
(@media (-webkit-min-device-pixel-ratio: 2)):

11:48 AM Changeset in webkit [186600] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Exposed AVVideoCaptureSource's bounds
https://bugs.webkit.org/show_bug.cgi?id=146760
<rdar://problem/21736772>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-09
Reviewed by Brent Fulgham.

  • platform/mediastream/mac/AVVideoCaptureSource.h:

(WebCore::AVVideoCaptureSource::width): Needed access to video width
(WebCore::AVVideoCaptureSource::height): Needed access to video height

11:40 AM Changeset in webkit [186599] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] ClearType should be enabled on Cairo port
https://bugs.webkit.org/show_bug.cgi?id=145492

Patch by Karlen Simonyan <szkarlen@gmail.com> on 2015-07-09
Reviewed by Brent Fulgham.

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::FontPlatformData):
Use CAIRO_ANTIALIAS_BEST instead of CAIRO_ANTIALIAS_GRAY.

11:38 AM Changeset in webkit [186598] by Chris Fleizach
  • 9 edits in trunk

AX: <details> element should allow expand/close through AX API
https://bugs.webkit.org/show_bug.cgi?id=146549

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Allow AXExpanded to be writeable for <details> element, which, when set
will toggle the opening and closing of the element.
Post a notification when that happens as well.

Modified test: platform/mac/accessibility/details-summary.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::hierarchicalLevel):
(WebCore::AccessibilityNodeObject::setIsExpanded):
(WebCore::shouldUseAccessibilityObjectInnerText):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsPressAction):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::canSetExpandedAttribute):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::toggleOpen):

LayoutTests:

  • platform/mac/accessibility/details-summary-expected.txt:
  • platform/mac/accessibility/details-summary.html:
11:36 AM Changeset in webkit [186597] by achristensen@apple.com
  • 6 edits
    3 copies
    1 add in trunk

[Content Extensions] Prevent crashes with plugins.
https://bugs.webkit.org/show_bug.cgi?id=146705
rdar://problem/20855444

Reviewed by Brady Eidson.

Source/WebCore:

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::create):
Call addPlugInStreamLoader in ResourceLoader::willSendRequest to always add blocked loads.

  • loader/NetscapePlugInStreamLoader.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequest):
Removed unnecessary early returns.

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::isPlugInStreamLoader):

LayoutTests:

  • http/tests/contentextensions/plugin-doesnt-crash-expected.txt: Copied from http/tests/plugins/get-url-expected.txt.
  • http/tests/contentextensions/plugin-doesnt-crash.html: Copied from http/tests/plugins/get-url.html.
  • http/tests/contentextensions/plugin-doesnt-crash.html.json: Added.
  • http/tests/contentextensions/resources/load-me-1.txt: Copied from http/tests/plugins/resources/load-me-1.txt.
11:34 AM Changeset in webkit [186596] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip canvas/philip/tests/2d.text.draw.fontface.notinpage.html
https://bugs.webkit.org/show_bug.cgi?id=146795

  • platform/win/TestExpectations:
11:16 AM Changeset in webkit [186595] by Chris Fleizach
  • 2 edits in trunk/LayoutTests

AX: VoiceOver cannot get to any content in Yahoo Mail messages table
https://bugs.webkit.org/show_bug.cgi?id=146674

Unreviewed. Skip a test on windows that needs more WKTR and DRT implementations.

  • platform/win/TestExpectations:
11:09 AM Changeset in webkit [186594] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Win] Honor CACFLayer content scale factor
https://bugs.webkit.org/show_bug.cgi?id=146792

Reviewed by Dean Jackson.

  • AVFoundationSupport.py: Check for the CACFLayerSet/GetContentsScale
  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::PlatformCALayerWin): Use owner's scale factor (if
present).
(PlatformCALayerWin::contentsScale): Use CACFLayer API if present.
(PlatformCALayerWin::setContentsScale): Ditto.

  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::PlatformCALayerWinInternal): Use owner's scale
factor (if present).
(PlatformCALayerWinInternal::addTile): Use tile parent's scale factor.

9:26 AM Changeset in webkit [186593] by mrajca@apple.com
  • 5 edits in trunk/Source/WebCore

Media Session: report to chrome client 'hasActiveMediaElements' changes
https://bugs.webkit.org/show_bug.cgi?id=146745

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp: All updates to active media elements are now funneled through a helper method that will invoke the 'hasMediaSessionWithActiveMediaElementsDidChange' callback when necessary.

(WebCore::MediaSession::removeMediaElement):
(WebCore::MediaSession::changeActiveMediaElements):
(WebCore::MediaSession::addActiveMediaElement):
(WebCore::MediaSession::releaseSession):

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::hasActiveMediaElements):

  • Modules/mediasession/MediaSessionManager.h:
8:27 AM Changeset in webkit [186592] by Darin Adler
  • 3 edits in trunk/Source/WebCore

REGRESSION (r182866): repeated prompts for password on internal Apple website using workers
https://bugs.webkit.org/show_bug.cgi?id=146769

Reviewed by Sam Weinig.

Not sure how to make a regression test for this. Sure would be nice to have one though.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Added. Calls through to the
base class copy constructor to copy data members of the base class (the lack of this was
the bug). Also initializes all the data members of this class.
(WebCore::ThreadableLoaderOptions::isolatedCopy): Changed to call the constructor above.

  • loader/ThreadableLoader.h: Added new constructor.
7:41 AM Changeset in webkit [186591] by ddkilzer@apple.com
  • 12 edits
    1 copy in branches/safari-600.1.4.17-branch

Merged r184151, and a small part of r183813. rdar://problem/21716549

1:58 AM Changeset in webkit [186590] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Rendering Frame segment colors should match those used in original Timelines graph
https://bugs.webkit.org/show_bug.cgi?id=146777

Reviewed by Brian Burg.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration:last-child):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint):
Use same RGB values as TimelineRecordBar.

1:03 AM Changeset in webkit [186589] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: New JavaScript/Probe breakpoint action disappears when clicking continue checkbox
https://bugs.webkit.org/show_bug.cgi?id=146688

Reviewed by Brian Burg.

Delay removal of empty Evaluate and Probe actions until after the breakpoint popover has been dismissed. This
will make the breakpoint editing experience less jarring, by preventing actions from disappearing when clicking
other controls in the popover.

  • UserInterface/Models/Breakpoint.js:

(WebInspector.Breakpoint.prototype.didDismissPopover):
Clear empty Evaluate and Probe actions on popover dismissal.

  • UserInterface/Views/BreakpointActionView.js:

(WebInspector.BreakpointActionView.prototype._codeMirrorBlurred):
Don't remove actions with empty data on CodeMirror blur.

12:35 AM Changeset in webkit [186588] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: new breakpoint action dialog should reuse same action type
https://bugs.webkit.org/show_bug.cgi?id=137255

Reviewed by Brian Burg.

  • UserInterface/Views/BreakpointActionView.js:

(WebInspector.BreakpointActionView.prototype._appendActionButtonClicked):
Use the view's action type instead of the default.

12:31 AM Changeset in webkit [186587] by Chris Fleizach
  • 4 edits
    2 adds in trunk

AX: VoiceOver cannot get to any content in Yahoo Mail messages table
https://bugs.webkit.org/show_bug.cgi?id=146674

Reviewed by Darin Adler.

Source/WebCore:

A table row could have any number of parent elements in the render tree, but for the purposes
of accessibility we only want to report the AXTable as the parent so that it looks like a sane
data table.

Test: accessibility/aria-table-with-presentational-elements.html

  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::disclosedByRow):
(WebCore::AccessibilityARIAGridRow::parentObjectUnignored):
(WebCore::AccessibilityARIAGridRow::parentTable):

  • accessibility/AccessibilityARIAGridRow.h:

LayoutTests:

  • accessibility/aria-table-with-presentational-elements-expected.txt: Added.
  • accessibility/aria-table-with-presentational-elements.html: Added.
12:01 AM Changeset in webkit [186586] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

[Cocoa] Report the first paint after committing a load as a rendering progress event
https://bugs.webkit.org/show_bug.cgi?id=146765

Reviewed by Tim Horton.

  • Shared/API/Cocoa/_WKRenderingProgressEvents.h: Added _WKRenderingProgressEventFirstPaint.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]): If this is the first layer tree commit since the load
was committed, and the delegate is observing _WKRenderingProgressEventFirstPaint, call
NavigationState::didFirstPaint.

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::didFirstPaint): Added. Calls -_webView:renderingProgressDidChange:
with _WKRenderingProgressEventFirstPaint.

Jul 8, 2015:

11:41 PM Changeset in webkit [186585] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Copy Rule in the context menu copies hidden properties in the rule
https://bugs.webkit.org/show_bug.cgi?id=146775

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString):
Now only uses properties from the rule's visibleProperties list.

11:04 PM Changeset in webkit [186584] by commit-queue@webkit.org
  • 6 edits in trunk

Fix grammar issue in TypeError attempting to change an unconfigurable property
https://bugs.webkit.org/show_bug.cgi?id=146774

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-08
Reviewed by Brent Fulgham.

Source/JavaScriptCore:

  • runtime/JSFunction.cpp:

(JSC::JSFunction::defineOwnProperty):

  • runtime/JSObject.cpp:

(JSC::JSObject::defineOwnNonIndexProperty):

  • runtime/StringObject.cpp:

(JSC::StringObject::defineOwnProperty):

LayoutTests:

  • js/dom/Object-defineProperty-expected.txt:
11:01 PM Changeset in webkit [186583] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

[EFL] When closing inspector window, EwkView is not released properly.
https://bugs.webkit.org/show_bug.cgi?id=146716

Reviewed by Gyuyoung Kim.

It's because inspector window could not be deleted by remaining reference
from inspector view(evas object). This patch deletes the inspector window
after finishing the evas object smart call.

  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::destroyInspectorWindow):
(WebKit::WebInspectorProxy::platformDidClose):

10:52 PM Changeset in webkit [186582] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

[EFL] vibration/navigator-vibration.html failed after r186265
https://bugs.webkit.org/show_bug.cgi?id=146770

Reviewed by Gyuyoung Kim.

Update test LayoutTests/vibration/navigator-vibration.html and its expected result.

Following <http://trac.webkit.org/changeset/186265> extra arguments passed
to a Web IDL overloaded function are ignored per section "Interface object Call? method"
of the Web IDL spec, <http://www.w3.org/TR/2012/CR-WebIDL-20120419/> (19 April 2012).

  • vibration/navigator-vibration-expected.txt:
  • vibration/navigator-vibration.html:
10:50 PM Changeset in webkit [186581] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] The "Missing Plug-in" buttons are not showing up on some flash contents.
https://bugs.webkit.org/show_bug.cgi?id=146707

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-07-08
Reviewed by Martin Robinson.

Currently, WebKitGTK+ doesn't show the "Missing Plug-in" buttons if the plugin-related tags
don't have a "type" attribute. In such a case, WebCore tries to guess the MIME type from
the extensions by using MIMETypeRegistry::getMIMETypeForExtension(). For WebKitGTK+,
MIMETypeRegistry::getMIMETypeForExtension() goes through |extensionMap|, which is a simple
array of <extension, mime type>, looking for the mime type for the given extension.
But |extensionMap| in MIMETypeRegistryGtk.cpp doesn't have the information for ".swf",
so WebCore fails to guess the MIME type and regard the content type as ObjectContentFrame,
not ObjectContentNetscapePlugin.

  • platform/gtk/MIMETypeRegistryGtk.cpp:
10:47 PM Changeset in webkit [186580] by timothy@apple.com
  • 7 edits
    4 adds in trunk/Source/WebInspectorUI

Web Inspector: Add page weight and time back to the toolbar dashboard
https://bugs.webkit.org/show_bug.cgi?id=146755

Revert r183328 which removed the page weight and load time from the dashboard. We have space
in the dashboard, we can put these back since we didn't find a better home for them.

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Base/Main.js:

(WebInspector.showNetworkTab):

  • UserInterface/Images/Time.svg: Added.
  • UserInterface/Images/Weight.svg: Added.
  • UserInterface/Images/gtk/Time.svg: Added.
  • UserInterface/Images/gtk/Weight.svg: Added.
  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard):
(WebInspector.DefaultDashboard.prototype.get resourcesSize):
(WebInspector.DefaultDashboard.prototype.set resourcesSize):
(WebInspector.DefaultDashboard.prototype.get time):
(WebInspector.DefaultDashboard.prototype.set time):
(WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
(WebInspector.DefaultDashboard.prototype._capturingStopped):
(WebInspector.DefaultDashboard.prototype._startUpdatingTime):
(WebInspector.DefaultDashboard.prototype._stopUpdatingTime):
(WebInspector.DefaultDashboard.prototype._updateTime):

  • UserInterface/Views/DashboardContainerView.css:

(body.web .toolbar .dashboard-container):
(body.javascript .toolbar .dashboard-container):
(.toolbar.collapsed .dashboard-container):
(.toolbar .dashboard-container): Deleted.

  • UserInterface/Views/DefaultDashboardView.css:

(body.web .toolbar.collapsed .dashboard.default > :matches(.resourcesSize, .time, .logs)):
(body.javascript .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)):
(.toolbar .dashboard.default > .resourcesSize):
(.toolbar .dashboard.default > .time > img):
(.toolbar .dashboard.default > .resourcesSize > img):
(body.web .toolbar.collapsed .dashboard.default > .item.resourcesCount): Deleted.
(body.javascript .toolbar .dashboard.default > .item.resourcesCount): Deleted.

  • UserInterface/Views/DefaultDashboardView.js:

(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
(WebInspector.DefaultDashboardView.prototype._networkItemWasClicked):
(WebInspector.DefaultDashboardView.prototype._timelineItemWasClicked):

9:47 PM Changeset in webkit [186579] by beidson@apple.com
  • 4 edits
    1 add in trunk

Crash calling [WebView close] in didFinishLoadForFrame callback.
<rdar://problem/21690765> and https://bugs.webkit.org/show_bug.cgi?id=146773

Reviewed by David Kilzer.

Source/WebCore:

Added API Test "WebViewCloseInsideDidFinishLoadForFrame"

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame): After the delegate callback,

don't use the local Page* variable from earlier, but instead refetch it from m_frame.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/WebViewCloseInsideDidFinishLoadForFrame.mm: Added.

(-[WebViewCloseFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

9:31 PM Changeset in webkit [186578] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit/win

Attempt to fix the Apple Windows build after <https://trac.webkit.org/changeset/186566>
(https://bugs.webkit.org/show_bug.cgi?id=146591)

Update implementation of PluginView::create() to return a Ref<PluginView> object
instead of a PassRefPtr<PluginView> object.

  • Plugins/PluginView.cpp:

(WebCore::PluginView::create):

9:31 PM Changeset in webkit [186577] by Lucas Forschler
  • 5 edits
    2 copies in branches/safari-600.1.4.17-branch

Merged r186165. rdar://problem/21533207

9:20 PM Changeset in webkit [186576] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Style sidebar is showing incorrect strikethroughs
https://bugs.webkit.org/show_bug.cgi?id=146768

Reviewed by Timothy Hatcher.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype._markOverriddenProperties):
No longer sets the effective property as overridden if the overriding property is anonymous (not visible).

9:19 PM Changeset in webkit [186575] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-600.1.4.17-branch

Merged r185665. rdar://problem/21716515

9:10 PM Changeset in webkit [186574] by dbates@webkit.org
  • 5 edits in trunk/Source/WebCore

Cleanup: Make ContentSecurityPolicy::ReportingStatus an enum class
https://bugs.webkit.org/show_bug.cgi?id=146670

Reviewed by Darin Adler.

Make calling the ContentSecurityPolicy::allow* functions less error prone by making
ContentSecurityPolicy::ReportingStatus an enum class. Among other benefits this will
prevent a caller from inadvertently passing an enumerator of ContentSecurityPolicy::ReportingStatus
as the boolean argument overridingContentSecurityPolicy, which is taken by the various
ContentSecurityPolicy::allow* functions, by causing a compile-time error (since an enum class
enumerator cannot be implicitly converted to an integral type).

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::initScript):

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPDirectiveList::allowJavaScriptURLs):
(WebCore::CSPDirectiveList::allowInlineEventHandlers):
(WebCore::CSPDirectiveList::allowInlineScript):
(WebCore::CSPDirectiveList::allowInlineStyle):
(WebCore::CSPDirectiveList::allowEval):
(WebCore::CSPDirectiveList::allowPluginType):
(WebCore::CSPDirectiveList::allowScriptFromSource):
(WebCore::CSPDirectiveList::allowObjectFromSource):
(WebCore::CSPDirectiveList::allowChildFrameFromSource):
(WebCore::CSPDirectiveList::allowImageFromSource):
(WebCore::CSPDirectiveList::allowStyleFromSource):
(WebCore::CSPDirectiveList::allowFontFromSource):
(WebCore::CSPDirectiveList::allowMediaFromSource):
(WebCore::CSPDirectiveList::allowConnectToSource):
(WebCore::CSPDirectiveList::allowFormAction):
(WebCore::CSPDirectiveList::allowBaseURI):
(WebCore::ContentSecurityPolicy::didReceiveHeader):
(WebCore::ContentSecurityPolicy::evalDisabledErrorMessage):

  • page/ContentSecurityPolicy.h:
  • page/DOMSecurityPolicy.cpp:

(WebCore::DOMSecurityPolicy::allowsEval):

8:55 PM Changeset in webkit [186573] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Activate DOMURLMediaStream
https://bugs.webkit.org/show_bug.cgi?id=146764
<rdar://problem/21738101>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-08
Reviewed by Eric Carlson.

  • DerivedSources.make: Added DOMURLMediaStream.idl to list
  • WebCore.xcodeproj/project.pbxproj: Added DOMURLMediaStream.cpp and

DOMURLMediaStream.h to compile

8:51 PM Changeset in webkit [186572] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Make sure MediaStream uses blob protocol
https://bugs.webkit.org/show_bug.cgi?id=146752
<rdar://problem/21736057>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-08
Reviewed by Eric Carlson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild): Added MediaStream
blob protocol

8:37 PM Changeset in webkit [186571] by Lucas Forschler
  • 6 edits
    2 copies in branches/safari-600.1.4.17-branch

Merged r185392. rdar://problem/21716560

8:33 PM Changeset in webkit [186570] by commit-queue@webkit.org
  • 4 edits in trunk

Fix ASSERTION FAILED: !m_pendingNavigationID in WebPage::reload().
https://bugs.webkit.org/show_bug.cgi?id=146546

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-07-08
Reviewed by Darin Adler.

We did't reset pendingNavigationID value when request url is empty.
Hence we need to ignore ASSERT check in this case.

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reload):

Tools:

  • TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp:

(TestWebKitAPI::TEST):

8:28 PM Changeset in webkit [186569] by akling@apple.com
  • 6 edits in trunk

Videos on apple.com don't show up when restored from page cache.
<https://webkit.org/b/146766>
<rdar://problem/21712311>

Reviewed by Darin Adler.

Source/WebCore:

Break out most of HTMLMediaElement::stop() (override of ActiveDOMObject::stop(), to be clear)
into a stopWithoutDestroyingMediaPlayer() function that both stop() and suspend() can call.

Before this change, suspend() would call stop() when moving into the page cache, killing the
internal MediaPlayer object which caused the video to disappear from the page.

Test: LayoutTests/media/restore-from-page-cache.html (amended)

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::suspend):

  • html/HTMLMediaElement.h:

LayoutTests:

Tweaked an existing media element page caching test to dump out the video height
after restoring from page cache. Failure to restore the video player would result
in incorrect geometry (it falls back to RenderReplaced's default 300x150.)

  • media/restore-from-page-cache-expected.txt:
  • media/restore-from-page-cache.html:
8:01 PM Changeset in webkit [186568] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.17-branch/Tools

Merged r184975. rdar://problem/21716564

7:52 PM Changeset in webkit [186567] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merged r184965. rdar://problem/21716564

7:31 PM Changeset in webkit [186566] by Gyuyoung Kim
  • 90 edits in trunk/Source

Use Ref/RefPtr instead of PassRefPtr in WebKit2 - 2
https://bugs.webkit.org/show_bug.cgi?id=146591

Reviewed by Darin Adler.

Following patch in order to reduce use of PassRefPtr.

  • Shared/BlobDataFileReferenceWithSandboxExtension.h:
  • Shared/Cocoa/CompletionHandlerCallChecker.h:
  • Shared/Cocoa/CompletionHandlerCallChecker.mm:

(WebKit::CompletionHandlerCallChecker::create):

  • Shared/Downloads/DownloadAuthenticationClient.h:

(WebKit::DownloadAuthenticationClient::create):

  • Shared/SandboxExtension.h:
  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::create):

  • Shared/ShareableResource.h:
  • Shared/mac/ObjCObjectGraph.h:

(WebKit::ObjCObjectGraph::create):

  • Shared/mac/SandboxExtensionMac.mm:

(WebKit::SandboxExtension::create):

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(getInjectedBundleInitializationUserData):

  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::create):

  • UIProcess/WebPreferences.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(WKBundlePageOverlayCreate):

  • WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:

(WKBundlePageBannerCreateBannerWithCALayer):

  • WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:

(WebKit::InjectedBundleDOMWindowExtension::create):

  • WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.h:
  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:

(WebKit::InjectedBundleHitTestResult::create):

  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::InjectedBundleNavigationAction::create):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:
  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:

(WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):
(WebKit::InjectedBundlePageContextMenuClient::prepareForImmediateAction):

  • WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:

(WebKit::InjectedBundleScriptWorld::create):

  • WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::create):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::create):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:

(WebKit::NotificationPermissionRequestManager::create):

  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::create):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Netscape/NetscapePluginStream.h:

(WebKit::NetscapePluginStream::create):

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::create):

  • WebProcess/Plugins/PDF/PDFPluginAnnotation.h:

(WebKit::PDFPluginAnnotation::PDFPluginAnnotationEventListener::create):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h:
  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::create):

  • WebProcess/Plugins/PDF/PDFPluginPasswordField.h:
  • WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:

(WebKit::PDFPluginPasswordField::create):

  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:

(WebKit::PDFPluginTextAnnotation::create):

  • WebProcess/Plugins/PluginProcessConnection.h:

(WebKit::PluginProcessConnection::create):

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::create):

  • WebProcess/Plugins/PluginProcessConnectionManager.h:
  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::create):

  • WebProcess/Plugins/PluginProxy.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::URLRequest::create):
(WebKit::PluginView::Stream::create):
(WebKit::PluginView::create):

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/Scrolling/RemoteScrollingCoordinator.h:

(WebKit::RemoteScrollingCoordinator::create):

  • WebProcess/Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::create):

  • WebProcess/Storage/StorageAreaImpl.h:
  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::create):

  • WebProcess/Storage/StorageAreaMap.h:
  • WebProcess/WebConnectionToUIProcess.cpp:

(WebKit::WebConnectionToUIProcess::create):

  • WebProcess/WebConnectionToUIProcess.h:
  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::create):

  • WebProcess/WebCoreSupport/WebPopupMenu.h:
  • WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:

(WebKit::WebSearchPopupMenu::create):

  • WebProcess/WebCoreSupport/WebSearchPopupMenu.h:
  • WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.h:
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:

(WebKit::WebFrameNetworkingContext::create):

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:

(WebKit::WebFrameNetworkingContext::create):

  • WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::create):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::create):

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::create):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::create):

  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/PageBanner.h:
  • WebProcess/WebPage/WebBackForwardListProxy.h:

(WebKit::WebBackForwardListProxy::create):

  • WebProcess/WebPage/WebContextMenu.h:

(WebKit::WebContextMenu::create):

  • WebProcess/WebPage/WebDocumentLoader.h:

(WebKit::WebDocumentLoader::create):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::create):

  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::create):

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebOpenPanelResultListener.cpp:

(WebKit::WebOpenPanelResultListener::create):

  • WebProcess/WebPage/WebOpenPanelResultListener.h:
  • WebProcess/WebPage/WebPageOverlay.cpp:

(WebKit::WebPageOverlay::create):

  • WebProcess/WebPage/WebPageOverlay.h:
  • WebProcess/WebPage/WebUndoStep.cpp:

(WebKit::WebUndoStep::create):

  • WebProcess/WebPage/WebUndoStep.h:
  • WebProcess/WebPage/mac/PageBannerMac.mm:

(WebKit::PageBanner::create):

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::create):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):

  • WebProcess/ios/WebVideoFullscreenManager.h:
  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::create):

7:27 PM Changeset in webkit [186565] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Make MediaStream conform to its private client like MediaSource does
https://bugs.webkit.org/show_bug.cgi?id=146756
<rdar://problem/21736457>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-08
Reviewed by Brent Fulgham.

MediaStream should be inheriting its PrivateClient's getters and
setters for RefCounted, not inheriting its own.

  • Modules/mediastream/MediaStream.h: Changed MediaStream's inherit

statements

  • platform/mediastream/MediaStreamPrivate.h: Changed

MediaStreamPrivateClient to inherit RefCounted<MediaStreamPrivateClient>

7:23 PM Changeset in webkit [186564] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Made AVMediaCaptureSource's session accessor public
https://bugs.webkit.org/show_bug.cgi?id=146758
<rdar://problem/21736651>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-08
Reviewed by Brent Fulgham.

  • platform/mediastream/mac/AVMediaCaptureSource.h:

(WebCore::AVMediaCaptureSource::session): Changed to public

6:22 PM Changeset in webkit [186563] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Make sure MediaStream engine loaded for interpreting MediaStreams
https://bugs.webkit.org/show_bug.cgi?id=146748
<rdar://problem/21735416>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-08
Reviewed by Brent Fulgham.

Prevent the MediaSource engine from being used to process
MediaStreams, since they are not compatible

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
Changed MediaStream to never be loaded

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
Changed MediaStream to never be loaded

6:17 PM Changeset in webkit [186562] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Color swatches show up in color names in comments
https://bugs.webkit.org/show_bug.cgi?id=146757

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CodeMirrorAdditions.js: Color markers now only appear if the color is in a keyword.
6:14 PM Changeset in webkit [186561] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Only record a timeline when the Timelines tab is showing
https://bugs.webkit.org/show_bug.cgi?id=146759

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.get autoCaptureOnPageLoad):
(WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WebInspector.TimelineManager.prototype._startAutoCapturing):

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView.prototype.shown):
(WebInspector.TimelineTabContentView.prototype.hidden):

6:03 PM Changeset in webkit [186560] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-600.1.4.17-branch

Merge r184653. rdar://problem/21716528

6:03 PM Changeset in webkit [186559] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.1.4.17-branch/Source/WebKit2

Merge r183861. rdar://problem/21716677

6:03 PM Changeset in webkit [186558] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merge r183838. rdar://problem/21716569

6:03 PM Changeset in webkit [186557] by matthew_hanson@apple.com
  • 6 edits
    4 adds in branches/safari-600.1.4.17-branch

Merge r183436. rdar://problem/21716524

6:03 PM Changeset in webkit [186556] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merge r183398. rdar://problem/21716555

6:03 PM Changeset in webkit [186555] by matthew_hanson@apple.com
  • 2 edits
    1 add in branches/safari-600.1.4.17-branch/Source/JavaScriptCore

Merge r183128. rdar://problem/21716620

6:03 PM Changeset in webkit [186554] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merge r182918. rdar://problem/21716544

6:03 PM Changeset in webkit [186553] by matthew_hanson@apple.com
  • 7 edits
    1 move
    3 adds in branches/safari-600.1.4.17-branch

Merge r182829. rdar://problem/21716511

6:03 PM Changeset in webkit [186552] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merge r180280. rdar://problem/21716555

6:03 PM Changeset in webkit [186551] by matthew_hanson@apple.com
  • 11 edits in branches/safari-600.1.4.17-branch

Merge r180020. rdar://problem/21716511

5:52 PM Changeset in webkit [186550] by benjamin@webkit.org
  • 5 edits
    6 adds in trunk

[Content Extensions] Fuse undistinguishable actions as much as possible
https://bugs.webkit.org/show_bug.cgi?id=146762

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-08
Reviewed by Alex Christensen.

Source/WebCore:

Our previous code that fused actions was based on test lists that were
grouping similar actions in the input.

The input we get from developers is more distributed. It is very common to
have trigger flags all over the place, and "css-display-none" mixed with "block".

This patch refines the merging code to merge those cases as much as possible.

The size taken by the actions is negligible, but having different actions make
nodes unkillable by the Minimizer. By merging many more actions, the minimizer
no longer see those subtrees as distinguishable and can do a better job.

On a large test list, this cuts the bytecode size by 2 megabytes.

Tests: http/tests/contentextensions/css-display-none-after-ignore-previous-rules.html

http/tests/contentextensions/single-css-display-none.html

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::resolvePendingDisplayNoneActions):
(WebCore::ContentExtensions::serializeActions):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

Test that combinations and flags still work as expected.

LayoutTests:

Make sure the last CSS rule is not ignored.

  • http/tests/contentextensions/css-display-none-after-ignore-previous-rules-expected.txt: Added.
  • http/tests/contentextensions/css-display-none-after-ignore-previous-rules.html: Added.
  • http/tests/contentextensions/css-display-none-after-ignore-previous-rules.html.json: Added.
  • http/tests/contentextensions/single-css-display-none-expected.txt: Added.
  • http/tests/contentextensions/single-css-display-none.html: Added.
  • http/tests/contentextensions/single-css-display-none.html.json: Added.
5:41 PM Changeset in webkit [186549] by dburkart@apple.com
  • 1 copy in tags/Safari-600.8.1

Tag for submission.

5:41 PM Changeset in webkit [186548] by dburkart@apple.com
  • 1 delete in tags/Safari-600.8.1

Removing erroneous tag so we can re-tag.

5:24 PM Changeset in webkit [186547] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

WKSecurityOrigin.h has wrong availability info
https://bugs.webkit.org/show_bug.cgi?id=146761
rdar://problem/21735802

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKSecurityOrigin.h:
5:19 PM Changeset in webkit [186546] by akling@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] Scrolling is laggy when the keyboard is up and a form element is focused.
<https://webkit.org/b/146735>
<rdar://problem/21151033>

Reviewed by Enrica Casucci.

Every touch on the page causes us to call elementDidFocus(), since we may need to bring
up a keyboard if the node had previously been programmatically focused. This was causing
little lag spikes during scrolling every time you'd put your finger to the screen.

Have WebPage::elementDidFocus() return early if the node already has focus, and we've
started an input session in response to non-programmatic focus already.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::elementDidFocus):
(WebKit::WebPage::elementDidBlur):

5:17 PM Changeset in webkit [186545] by commit-queue@webkit.org
  • 6 edits in trunk/LayoutTests

Fix asynchronous function calls for scroll snap animation tests
https://bugs.webkit.org/show_bug.cgi?id=146753

Patch by Wenson Hsieh <whsieh@berkeley.edu> on 2015-07-08
Reviewed by Brent Fulgham.

Fixes unintended use of setTimeout in several scroll snap tests.

  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html: Fixed asynchronous Javascript invocations.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html: See above.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html: See above.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html: See above.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html: See above.
5:16 PM Changeset in webkit [186544] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleared contentMIMETypes for MediaStreams
https://bugs.webkit.org/show_bug.cgi?id=146750
<rdar://problem/21735678>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-08
Reviewed by Brent Fulgham.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load): Needed to clear contentMIMETypes

5:11 PM Changeset in webkit [186543] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

Audio elements with controls force their enclosing stacking context to composite
https://bugs.webkit.org/show_bug.cgi?id=146751
<rdar://problem/21466572>

Reviewed by Simon Fraser.

There were a number of issues with audio controls, on both iOS and OS X.

  • they used a blurry background which was not the intended design
  • they cause the page to composite, which causes a degradation in text rendering quality
  • they inserted 20px of padding above every audio element, which could break existing page designs.

Removing the need for compositing and blending means that the
colors used for control tints need to be adjusted for the non-blended
case. Wherever I could, I kept as much as possible in a shared
rule and made specific changes for audio or video.

The controls were also unintentionally relying on the compositing
to create stacking contexts and control the rendering order. Without
them, I needed to add some explicit stacking.

I also made some drive-by whitespace clean-ups.

  • Modules/mediacontrols/mediaControlsApple.css: Remove as much compositing

as possible in audio controls.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.drawTimelineBackground): Use specific colors for audio.

  • Modules/mediacontrols/mediaControlsiOS.css: Remove as much need for compositing

as possible.

5:04 PM Changeset in webkit [186542] by beidson@apple.com
  • 4 edits in trunk/LayoutTests

Now that PingLoaders work in the NetworkProcess, re-enable http/tests/navigation/ping-cookie.html
https://bugs.webkit.org/show_bug.cgi?id=146747

Reviewed by Tim Horton.

  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:56 PM Changeset in webkit [186541] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Crash when appending an SVG <use> element dynamically which has animated SVG <path> element
https://bugs.webkit.org/show_bug.cgi?id=146690
<rdar://problem/20790376>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-07-08
Reviewed by Dean Jackson.

Source/WebCore:

Test: svg/animations/insert-animate-use-path-while-animation.svg

The crashing call stack shows that
SVGAnimatedListPropertyTearOff<SVGPathSegList>::m_animVal is null when
trying to access it in synchronizeWrappersIfNeeded(). This happens because
animationStarted() was not called for this animatedType.

SVGAnimateElementBase::resetAnimatedType() calls
SVGAnimatedPathAnimator::startAnimValAnimation() at the beginning of the
animation. For the target element and all its instances, this function calls
SVGAnimatedPathSegListPropertyTearOff::animationStarted() which calls
SVGAnimatedListPropertyTearOff<SVGPathSegList>::animationStarted(). This
last function allocates the member m_animVal when calling
SVGAnimatedListPropertyTearOff<SVGPathSegList>::animVal().

When adding a new instance of the same animating target element,
SVGAnimateElementBase::resetAnimatedType() just keeps calling
SVGAnimatedPathAnimator::animValDidChange() for all the instances of the
targetElement without ensuring that all of them have started their
animations.

The fix is to make SVGAnimatedPathAnimator::resetAnimValToBaseVal() ensure
that animationStarted() is called for the targetElement and all its instances.

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation): Move resetting
the animation value and starting the animatedTypes code to a new overriding
function which is named resetAnimValToBaseVal().

(WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal): Call the overriding
function which calls buildSVGPathByteStreamFromSVGPathSegList() as before
and ensure that all the animatedTypes have started their animations.

  • svg/SVGAnimatedPath.h:

LayoutTests:

When adding dynamically a new <use> element which references an animated
SVG path after the animation starts, ensure that WebKit is not crashing.

  • svg/animations/insert-animate-use-path-while-animation-expected.txt: Added.
  • svg/animations/insert-animate-use-path-while-animation.svg: Added.
4:54 PM Changeset in webkit [186540] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Details sidebar doesn't activate on first selected resource in Network tab
https://bugs.webkit.org/show_bug.cgi?id=146691

Make sure the SelectionPathComponentsDidChange event is dispatched when the tree elements are selected.
Selecting in the DataGrid selects the TreeElements, but onselect is not fired to avoid an inifinte loop.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView): Hook up _treeElementSelected.
(WebInspector.NetworkGridContentView.prototype._treeElementSelected): Added. Moved from
NetworkSidebarPanel and added dispatch of SelectionPathComponentsDidChange event.

  • UserInterface/Views/NetworkSidebarPanel.js:

(WebInspector.NetworkSidebarPanel): Removed _treeElementSelected.
(WebInspector.NetworkSidebarPanel.prototype.canShowDifferentContentView): Renamed from _canShowDifferentContentView.
(WebInspector.NetworkSidebarPanel.prototype._canShowDifferentContentView): Deleted.
(WebInspector.NetworkSidebarPanel.prototype._treeElementSelected): Moved to NetworkGridContentView.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.treeElementSelected): Dispatch SelectionPathComponentsDidChange event.

4:50 PM Changeset in webkit [186539] by Lucas Forschler
  • 16 edits in branches/safari-600.1.4.17-branch

Merged r186232. rdar://problem/9091261

4:46 PM Changeset in webkit [186538] by mrajca@apple.com
  • 9 edits in trunk/Source

Media Session: indicate to clients whether a media session has active media elements
https://bugs.webkit.org/show_bug.cgi?id=146742

Reviewed by Tim Horton.

  • UIProcess/API/C/WKPage.cpp:

(WKPageHasMediaSessionWithActiveMediaElements):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::hasMediaSessionWithActiveMediaElementsDidChange):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::hasMediaSessionWithActiveMediaElementsDidChange):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::hasMediaSessionWithActiveMediaElementsDidChange):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
4:46 PM Changeset in webkit [186537] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Confusingly crossed out properties in .sidebar > .panel.navigation.timeline > .title-bar
https://bugs.webkit.org/show_bug.cgi?id=146727

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
The properties map used for refreshing each property now holds a list of properties for each line to ensure that
if a duplicate property exists, it also gets refreshed.

4:44 PM Changeset in webkit [186536] by Devin Rousso
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't select last row in the timeline because it's covered by filter selector
https://bugs.webkit.org/show_bug.cgi?id=146603

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ScopeBar.js: Now adds a class to the scope bar if the default item is selected.
  • UserInterface/Views/LayoutTimelineView.js:
  • UserInterface/Views/NetworkTimelineView.js:
  • UserInterface/Views/TimelineDataGrid.css:

(.data-grid.timeline > .navigation-bar-container): Deleted.
(.data-grid.timeline.has-non-default-filter > .navigation-bar-container): Deleted.
(.data-grid.timeline:hover > .navigation-bar-container): Deleted.
(.data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted.
(body.window-inactive .data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid):
(WebInspector.TimelineDataGrid.createColumnScopeBar):
(WebInspector.TimelineDataGrid.prototype.updateLayout): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple path):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.set contentTreeOutlineScopeBar):
Clears the title bar scope element and adds the given element as a child node.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineScopeBar):
Returns the scope bar element of the current object if it exists.

4:43 PM Changeset in webkit [186535] by mrajca@apple.com
  • 4 edits in trunk/Source/WebKit2

Media Session: propagate artwork URL with metadata to UI clients
https://bugs.webkit.org/show_bug.cgi?id=146698

Reviewed by Tim Horton.

  • Shared/WebMediaSessionMetadata.h:

(WebKit::WebMediaSessionMetadata::artworkURL):

  • UIProcess/API/C/WKMediaSessionMetadata.cpp:

(WKMediaSessionMetadataCopyArtworkURL):

  • UIProcess/API/C/WKMediaSessionMetadata.h:
4:40 PM Changeset in webkit [186534] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Don't allow page scroll when previewing a link or image.
https://bugs.webkit.org/show_bug.cgi?id=146741
rdar://problem/21733053

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-08
Reviewed by Beth Dakin.

Don't let preview gesture and scroll panning gesture or zooming gesture recognize at the same time.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):

4:06 PM Changeset in webkit [186533] by Lucas Forschler
  • 8 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merge change for rdar://problem/21533232

2015-07-08 Zalan Bujtas <Alan Bujtas>

Do not crash when the descendant frame tree is destroyed during layout.
https://bugs.webkit.org/show_bug.cgi?id=144540
rdar://problem/20793184

Reviewed by Andreas Kling.

Widget::setFrameRect(), through WebHTMLView layout, could trigger a style recalc, which in turn
could initiate an onBeforeLoad callback.
If javascript happens to destroy the current iframe in the onBeforeLoad callback, we lose the descendant
render tree, including the child FrameView (the iframe element's view). However the RenderIFrame
object stays protected until after the layout is done. (see protectRenderWidgetUntilLayoutIsDone())

Climbing back on the callstack, we need to make sure that

  1. the root widget of the descendant render tree (FrameView) stays valid as long as it is needed.
  2. RenderFrameBase::layoutWithFlattening() can handle the case when the associated widget (child FrameView) is set to nullptr. (see RenderWidget::willBeDestroyed() -> setWidget(nullptr))

(and later, when layout is finished this (RenderIFrame) object gets destroyed too.)

Covered by fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

  • page/FrameView.cpp: (WebCore::FrameView::setFrameRect): (WebCore::FrameView::updateEmbeddedObject): (WebCore::FrameView::updateWidgetPositions):
  • platform/ScrollView.cpp: (WebCore::ScrollView::setFrameRect):
  • platform/mac/WidgetMac.mm: (WebCore::Widget::setFrameRect):
  • rendering/RenderFrameBase.cpp: (WebCore::RenderFrameBase::layoutWithFlattening): (WebCore::RenderFrameBase::childRenderView): (WebCore::RenderFrameBase::peformLayoutWithFlattening):
  • rendering/RenderFrameBase.h:
  • rendering/RenderWidget.cpp: (WebCore::RenderWidget::updateWidgetPosition):
  • rendering/RenderWidget.h:
4:03 PM Changeset in webkit [186532] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Snapshots can be misplaced when custom swipe views are offset from the window origin
https://bugs.webkit.org/show_bug.cgi?id=146744
<rdar://problem/20942120>

Reviewed by Dean Jackson.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
Keep swipeArea in window coordinates; it was already in window coordinates
when using custom swipe views, but not in the non-custom case.

Convert from window coordinates to parent-of-m_swipeLayer coordinates when
determining m_swipeLayer's frame.

4:02 PM Changeset in webkit [186531] by aestes@apple.com
  • 6 edits in trunk/Source/WebKit2

[iOS][WK2] Ignore synthetic clicks in subframes initiated on a previous page
https://bugs.webkit.org/show_bug.cgi?id=146712

Reviewed by Benjamin Poulain.

r178980 fixed an issue where, if a main frame navigation occurs in response to a touch event, a synthetic click
event could fire on the navigated-to page. This change extends this fix to apply to subframes.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::WebFrame):

  • WebProcess/WebPage/WebFrame.h:

(WebKit::WebFrame::firstLayerTreeTransactionIDAfterDidCommitLoad):
(WebKit::WebFrame::setFirstLayerTreeTransactionIDAfterDidCommitLoad):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad): Stored the next layer tree transaction ID, and called cancelPotentialTapInFrame(), for the committed frame.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleTap): Determined the first post-commit layer tree transaction ID from the tap target node's frame.
(WebKit::WebPage::commitPotentialTap): Ditto.
(WebKit::WebPage::cancelPotentialTap): Called cancelPotentialTapInFrame(), passing m_mainFrame.
(WebKit::WebPage::cancelPotentialTapInFrame): Taught to only cancel a potential tap whose target node is a descendant of the given frame.
(WebKit::WebPage::updateVisibleContentRects): Updated to use the main frame's first post-commit layer tree transaction ID.

3:53 PM Changeset in webkit [186530] by beidson@apple.com
  • 12 edits
    1 add in trunk/Source

Move PingLoaders to the NetworkingProcess.
<rdar://problem/18860263> and https://bugs.webkit.org/show_bug.cgi?id=146710

Reviewed by Tim Horton.

Source/WebCore:

No new tests.
There's no current solution for communicating back to a page that a ping load has reached its target.
Until we have such a solution, any attempt at a layout test will be fragile at best.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/LoaderStrategy.cpp:

(WebCore::LoaderStrategy::createPingHandle): Default implementation is create the PingHandle directly.

  • loader/LoaderStrategy.h:

PingLoader becomes a static class for now that crafts the ResourceRequest then passes it off
to the LoaderStrategy:

  • loader/PingLoader.cpp:

(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
(WebCore::PingLoader::startPingLoad):
(WebCore::PingLoader::createPingLoader): Deleted.
(WebCore::PingLoader::PingLoader): Deleted.
(WebCore::PingLoader::~PingLoader): Deleted.

  • loader/PingLoader.h:

(WebCore::PingLoader::timeoutTimerFired): Deleted.

PingHandle does what PingLoader used to - It's a basic ResourceHandleClient that simply waits
for any response/completion/failure and then deletes itself.

  • platform/network/PingHandle.h: Added.

(WebCore::PingHandle::PingHandle):
(WebCore::PingHandle::usesAsyncCallbacks):
(WebCore::PingHandle::timeoutTimerFired):
(WebCore::PingHandle::~PingHandle):

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::loadPing): Create a PingHandle and then return.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createPingHandle): If the Network process is enabled,

compile the appropriate load parameters and then message to it.
Otherwise, use the default in-process PingHandle.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
3:49 PM Changeset in webkit [186529] by dburkart@apple.com
  • 1 copy in tags/Safari-600.8.1

Tagging for submission.

2:38 PM Changeset in webkit [186528] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Add new sources to StyleAllInOne.cpp
https://bugs.webkit.org/show_bug.cgi?id=146584

Patch by Csaba Osztrogonác <Csaba Osztrogonác> on 2015-07-08
Reviewed by Brent Fulgham.

  • WebCore.vcxproj/WebCore.vcxproj:
  • rendering/style/StyleAllInOne.cpp:
2:15 PM Changeset in webkit [186527] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Only support image previews for clients that implement commitPreviewedImageWithURL
delegate
https://bugs.webkit.org/show_bug.cgi?id=146739
-and corresponding-
rdar://problem/21692929

Reviewed by Tim Horton.

We should only support image previews for clients that implement
commitPreviewedImageWithURL delegate since there is no default commit action.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewViewControllerForPosition:inSourceView:]):

2:11 PM Changeset in webkit [186526] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Add new sources to DOMAllInOne.cpp
https://bugs.webkit.org/show_bug.cgi?id=146587

Patch by Csaba Osztrogonác <Csaba Osztrogonác> on 2015-07-08
Reviewed by Brent Fulgham.

  • WebCore.vcxproj/WebCore.vcxproj:
  • dom/DOMAllInOne.cpp:
1:49 PM Changeset in webkit [186525] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Add new sources to AccessibilityAllInOne.cpp
https://bugs.webkit.org/show_bug.cgi?id=146582

Patch by Csaba Osztrogonác <Csaba Osztrogonác> on 2015-07-08
Reviewed by Brent Fulgham.

  • WebCore.vcxproj/WebCore.vcxproj:
  • accessibility/AccessibilityAllInOne.cpp:
1:40 PM Changeset in webkit [186524] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clicking style checkbox selects the property name while mouse down
https://bugs.webkit.org/show_bug.cgi?id=146728

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown):
Now returns if the click was not at the end of the line.

1:36 PM Changeset in webkit [186523] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit2

Make ApplicationStateTracker be per view instead of being a singleton
https://bugs.webkit.org/show_bug.cgi?id=146737

Reviewed by Andreas Kling.

  • UIProcess/ApplicationStateTracker.h:

Update to be per view instead of a singleton.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):
Change to take a view + selectors.

(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
Invalidate the state monitor and remove the listeners.

(WebKit::ApplicationStateTracker::applicationDidEnterBackground):
Just call the single background method.

(WebKit::ApplicationStateTracker::applicationWillEnterForeground):
Just call the single foreground method.

(WebKit::ApplicationStateTracker::singleton): Deleted.
(WebKit::ApplicationStateTracker::addListener): Deleted.
(WebKit::ApplicationStateTracker::invokeListeners): Deleted.
(WebKit::ApplicationStateTracker::pruneListeners): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
Create the ApplicationStateTracker here.

(-[WKContentView isBackground]):
Get the ivar instead of the singleton.

1:20 PM Changeset in webkit [186522] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

InteractionInformationAtPosition bounds seem wrong on many sites, affects
apple.com
https://bugs.webkit.org/show_bug.cgi?id=146736
-and corresponding-
rdar://problem/21655549

Reviewed by Tim Horton.

http://trac.webkit.org/changeset/186132/ changed the bounds for
InteractionInformationAtPosition. The image-related changes are good, but the
link-related changes feel wrong on many sites. We should revert the change for now
and just use the absoluteBoundingBoxRect() for non-images.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

1:09 PM Changeset in webkit [186521] by dbates@webkit.org
  • 59 edits
    1 move
    60 adds
    1 delete in branches/safari-600.1.4.17-branch

Merge r186388. rdar://problem/21708243

2015-07-06 Daniel Bates <dabates@apple.com>

Isolated worlds should respect Content Security Policy; User Agent Shadow DOM
should be exempt from Content Security Policy
https://bugs.webkit.org/show_bug.cgi?id=144830
<rdar://problem/18860261>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make scripts that run in an isolated world be subject to the Content Security Policy (CSP) of the page
and exempt features implemented using a user agent shadow DOM. As a side effect of this change,
Safari Content Extensions will respect the CSP policy of the page when loading subresources (e.g. an image).

Tests: http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html

http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-background.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-cursor.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-filter-on-image.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-webkit-image-set.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-embed-plugin.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-external-script.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-iframe.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-after-redirect.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-script.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-style.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-stylesheet.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-plugin.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-feimage-element.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-font.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-use-element.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-track.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/block-loading-user-agent-image-from-non-user-agent-content.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html
http/tests/security/isolatedWorld/image-load-should-not-bypass-main-world-csp.html

  • Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::connect): Pass shouldBypassMainWorldContentSecurityPolicy to ContentSecurityPolicy::allowConnectToSource().
  • css/CSSCanvasValue.h: (WebCore::CSSCanvasValue::loadSubimages): Modified to take argument ResourceLoaderOptions (unused).
  • css/CSSCrossfadeValue.cpp: (WebCore::CSSCrossfadeValue::fixedSize): Explicitly instantiate default ResourceLoaderOptions and pass pass it when requesting a cached image. Added FIXME comment to skip Content Security Policy check when the cross fade is applied to an element in a user agent shadow tree. (WebCore::CSSCrossfadeValue::loadSubimages): Take a ResourceLoaderOptions as an argument and passes it as appropriate. (WebCore::CSSCrossfadeValue::image): Explicitly instantiate default ResourceLoaderOptions and pass it when requesting a cached image. Added FIXME comment to skip Content Security Policy check when the cross fade is applied to an element in a user agent shadow tree.
  • css/CSSCrossfadeValue.h:
  • css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::cachedImage): Take a ResourceLoaderOptions as an argument and passes it as appropriate.
  • css/CSSCursorImageValue.h:
  • css/CSSFilterImageValue.cpp: (WebCore::CSSFilterImageValue::fixedSize): Explicitly instantiate default ResourceLoaderOptions and pass pass it when requesting a cached image. Added FIXME comment to skip Content Security Policy check when the cross fade is applied to an element in a user agent shadow tree. (WebCore::CSSFilterImageValue::loadSubimages): Take a ResourceLoaderOptions as an argument and passes it as appropriate. (WebCore::CSSFilterImageValue::loadSubimages): Explicitly instantiate default ResourceLoaderOptions and pass pass it when requesting a cached image. Added FIXME comment to skip Content Security Policy check when the cross fade is applied to an element in a user agent shadow tree. (WebCore::CSSFilterImageValue::image):
  • css/CSSFilterImageValue.h:
  • css/CSSFontFaceSrcValue.cpp: (WebCore::CSSFontFaceSrcValue::cachedFont): Take a boolean, isInitiatingElementInUserAgentShadowTree, so as to determine the appropriate CSP imposition. In particular, we skip the CSP check when the initiating element (e.g. SVG font-face element) is in a user agent shadow tree.
  • css/CSSFontFaceSrcValue.h:
  • css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::addFontFaceRule): Take a boolean, isInitiatingElementInUserAgentShadowTree, and passes it as appropriate.
  • css/CSSFontSelector.h:
  • css/CSSGradientValue.h: (WebCore::CSSGradientValue::loadSubimages): Take a ResourceLoaderOptions as an argument and passes it as appropriate.
  • css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::loadSubimages): Ditto. (WebCore::CSSImageGeneratorValue::cachedImageForCSSValue): Ditto.
  • css/CSSImageGeneratorValue.h:
  • css/CSSImageSetValue.cpp: (WebCore::CSSImageSetValue::cachedImageSet): Deleted.
  • css/CSSImageSetValue.h:
  • css/CSSImageValue.cpp: (WebCore::CSSImageValue::cachedImage): Deleted.
  • css/CSSImageValue.h:
  • css/RuleSet.cpp: (WebCore::RuleSet::addChildRules): Take a boolean, isInitiatingElementInUserAgentShadowTree, and passes it as appropriate. (WebCore::RuleSet::addRulesFromSheet): Added FIXME comment to skip Content Security Policy check when when stylesheet is in a user agent shadow tree.
  • css/RuleSet.h:
  • css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): Determine whether the SVG font-face element is in a user agent shadow tree and pass the appropriate value when calling CSSFontSelector::addFontFaceRule(). Also, modernized code; used C++11 range -based for-loop instead of const_iterator idiom. (WebCore::StyleResolver::loadPendingSVGDocuments): Skip CSP check when requesting subresources as a byproduct of resolving style for an element in a user agent shadow tree. (WebCore::StyleResolver::loadPendingImage): Ditto. (WebCore::StyleResolver::loadPendingShapeImage): Ditto.
  • css/StyleRuleImport.cpp: (WebCore::StyleRuleImport::requestStyleSheet): Added FIXME comment to skip Content Security Policy check when when stylesheet is in a user agent shadow tree.
  • dom/Element.h:
  • dom/InlineStyleSheetOwner.cpp: (WebCore::InlineStyleSheetOwner::createSheet): Skip CSP check for an inline <style> that is in a user agent shadow tree.
  • dom/Node.cpp: (WebCore::Node::isInUserAgentShadowTree): Added.
  • dom/Node.h:
  • dom/ScriptElement.cpp: (WebCore::ScriptElement::requestScript): Skip CSP check for an external JavaScript script in a user agent shadow tree. (WebCore::ScriptElement::executeScript): Skip CSP check for an inline JavaScript script that is in a user agent shadow tree.
  • dom/StyledElement.cpp: (WebCore::StyledElement::styleAttributeChanged): Skip CSP check when modifying the inline style of an element in a user agent shadow tree.
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::isSafeToLoadURL): Skip CSP check for a <audio>, <video> in a user agent shadow tree. (WebCore::HTMLMediaElement::outOfBandTrackSources): Ditto.
  • html/HTMLTrackElement.cpp: (WebCore::HTMLTrackElement::canLoadURL): Ditto.
  • html/track/LoadableTextTrack.cpp: (WebCore::LoadableTextTrack::loadTimerFired): Determine whether the <track> is in a user agent shadow tree and pass the appropriate value when calling TextTrackLoader::load().
  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::startLoadingMainResource): Do CSP check when loading a resource by default.
  • loader/ImageLoader.cpp: (WebCore::ImageLoader::updateFromElement): Skip CSP check for an image that is in a user agent shadow tree.
  • loader/MediaResourceLoader.cpp: (WebCore::MediaResourceLoader::start): Instantiate ResourceLoaderOptions passing placeholder value ContentSecurityPolicyImposition::DoPolicyCheck. This value does not affect the request because we do not check the Content Security Policy for raw resource requests.
  • loader/NetscapePlugInStreamLoader.cpp: (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader): Added FIXME comment to skip Content Security Policy check when when associated plugin element is in a user agent shadow tree.
  • loader/PolicyChecker.cpp: (WebCore::PolicyChecker::checkNavigationPolicy): Skip CSP check for a <iframe> in a user agent shadow tree.
  • loader/ResourceLoaderOptions.h: Defined enum class ContentSecurityPolicyImposition with explicit type uint8_t so as to provide a hint to the compiler (for better packing) when it computes the memory layout for struct that contains an instance of this class. (WebCore::ResourceLoaderOptions::ResourceLoaderOptions): Added argument contentSecurityPolicyImposition. (WebCore::ResourceLoaderOptions::contentSecurityPolicyImposition): Added. (WebCore::ResourceLoaderOptions::setContentSecurityPolicyImposition): Added.
  • loader/SubframeLoader.cpp: (WebCore::SubframeLoader::pluginIsLoadable): Skip CSP check for a plugin element that is in a user agent shadow tree. (WebCore::SubframeLoader::createJavaAppletWidget): Skip CSP check for an applet element that is in a user agent shadow tree.
  • loader/TextTrackLoader.cpp: (WebCore::TextTrackLoader::load): Take a boolean, isInitiatingElementInUserAgentShadowTree, and sets the appropriate Content Security Policy imposition for the text track request.
  • loader/TextTrackLoader.h:
  • loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Skip CSP check for a user-specified stylesheet. (WebCore::CachedResourceLoader::canRequest): Only check the CSP of the page if specified in the resource loader options for the request. (WebCore::CachedResourceLoader::defaultCachedResourceOptions): Add ContentSecurityPolicyImposition::DoPolicyCheck to the default resource loader options so that do check the CSP policy of the page before performing a resource request by default.
  • loader/cache/CachedSVGDocumentReference.cpp: (WebCore::CachedSVGDocumentReference::load): Take a ResourceLoaderOptions as an argument and passes it as appropriate.
  • loader/cache/CachedSVGDocumentReference.h:
  • loader/icon/IconLoader.cpp: (WebCore::IconLoader::startLoading): Instantiate ResourceLoaderOptions passing placeholder value ContentSecurityPolicyImposition::DoPolicyCheck. This value does not affect the request because we do not check the Content Security Policy for raw resource requests.
  • page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowJavaScriptURLs): Take an argument called overrideContentSecurityPolicy (defaults to false). When overrideContentSecurityPolicy := true, this function unconditionally returns true. (WebCore::ContentSecurityPolicy::allowInlineEventHandlers): Ditto. (WebCore::ContentSecurityPolicy::allowInlineScript): Ditto. (WebCore::ContentSecurityPolicy::allowInlineStyle): Ditto. (WebCore::ContentSecurityPolicy::allowEval): Ditto. (WebCore::ContentSecurityPolicy::allowPluginType): Ditto. (WebCore::ContentSecurityPolicy::allowScriptFromSource): Ditto. (WebCore::ContentSecurityPolicy::allowObjectFromSource): Ditto. (WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Ditto. (WebCore::ContentSecurityPolicy::allowImageFromSource): Ditto. (WebCore::ContentSecurityPolicy::allowStyleFromSource): Ditto. (WebCore::ContentSecurityPolicy::allowFontFromSource): Ditto. (WebCore::ContentSecurityPolicy::allowMediaFromSource): Ditto. (WebCore::ContentSecurityPolicy::allowConnectToSource): Ditto. (WebCore::ContentSecurityPolicy::allowFormAction): Ditto. (WebCore::ContentSecurityPolicy::allowBaseURI): Ditto.
  • page/ContentSecurityPolicy.h:
  • page/DOMSecurityPolicy.cpp:
  • page/EventSource.cpp: (WebCore::EventSource::create): Pass shouldBypassMainWorldContentSecurityPolicy to ContentSecurityPolicy::allowConnectToSource().
  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: (WebCore::WebCoreAVFResourceLoader::startLoading): Instantiate ResourceLoaderOptions passing placeholder value ContentSecurityPolicyImposition::DoPolicyCheck. This value does not affect the request because we do not check the Content Security Policy for raw resource requests.
  • svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::requestImageResource): Skip CSP check for a SVG FEImage element in a user agent shadow tree.
  • svg/SVGFontFaceUriElement.cpp: (WebCore::SVGFontFaceUriElement::loadFont): Skip CSP check for a SVG font-face-uri element in a user agent shadow tree.
  • svg/SVGUseElement.cpp: (WebCore::SVGUseElement::updateExternalDocument): Skip CSP check for a SVG use element in a user agent shadow tree.
  • testing/Internals.cpp: (WebCore::Internals::ensureUserAgentShadowRoot): Added.
  • testing/Internals.h:
  • testing/Internals.idl: Added declaration for ensureUserAgentShadowRoot().
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::open): Pass shouldBypassMainWorldContentSecurityPolicy to ContentSecurityPolicy::allowConnectToSource().

LayoutTests:

Add tests to ensure that we exempt nodes in a user agent shadow tree from the Content Security Policy (CSP) of the page.

Updated test LayoutTests/http/tests/security/isolatedWorld/bypass-main-world-csp.html to ensure that
we do not bypass the CSP of the page for a script that executes in an isolated world and renamed the
file image-load-should-not-bypass-main-world-csp.html.

  • http/tests/security/contentSecurityPolicy/resources/alert-pass-and-notify-done.js: Added.
  • http/tests/security/contentSecurityPolicy/resources/wait-until-done.js: Added. (alertAndDone):
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-background-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-background.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-cursor-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-cursor.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-filter-on-image-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-filter-on-image.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-webkit-image-set-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-webkit-image-set.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-embed-plugin-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-embed-plugin.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-external-script.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-iframe-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-iframe.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-after-redirect-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-after-redirect.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-script.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-style-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-style.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-stylesheet-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-stylesheet.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-plugin-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-plugin.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-feimage-element-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-feimage-element.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-font-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-font.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-use-element-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-use-element.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-track-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-track.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/block-loading-user-agent-image-from-non-user-agent-content-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/block-loading-user-agent-image-from-non-user-agent-content.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/resources/ABCFont.svg: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/resources/allow-inline-script.js: Added. (window.onload): (testPassed):
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/resources/floodGreenFilter.svg: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html: Added.
  • http/tests/security/isolatedWorld/image-load-should-not-bypass-main-world-csp-expected.txt: Renamed from LayoutTests/http/tests/security/isolatedWorld/bypass-main-world-csp-expected.txt.
  • http/tests/security/isolatedWorld/image-load-should-not-bypass-main-world-csp.html: Renamed from LayoutTests/http/tests/security/isolatedWorld/bypass-main-world-csp.html.
12:27 PM Changeset in webkit [186520] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r185629): Web Inspector: Filtering doesn't display any items if folders are used to organize the web page resources
https://bugs.webkit.org/show_bug.cgi?id=146675

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeElement.prototype.revealed): Added ignoreHidden parameter.
(WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip): Pass true to ignore hidden elements.
(WebInspector.TreeElement.prototype.traverseNextTreeElement): Populate up front like the old traverseNextTreeElement.
This is needed to traverse into lazy populated tree elements. Don't call shouldSkip in the loop.
(WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip): Pass true to ignore hidden elements.
(WebInspector.TreeElement.prototype.traversePreviousTreeElement): Add some newlines.

11:54 AM Changeset in webkit [186519] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

[Mac] Two clicks required to enable AirPlay at youtube.com
https://bugs.webkit.org/show_bug.cgi?id=146733
<rdar://problem/21556356>

Reviewed by Brent Fulgham.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::clientStateDidChange): Only log when state has changed.

Don't steal the route if another client is actively playing to the device.

(WebCore::WebMediaSessionManager::setPlaybackTarget): Set m_targetChanged.
(WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Don't consider the

requestedPicker flag until after a target change.

  • Modules/mediasession/WebMediaSessionManager.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Add logging.
(WebCore::HTMLMediaElement::setShouldPlayToPlaybackTarget): Ditto.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Always log.

11:52 AM Changeset in webkit [186518] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/xmlviewer/dumpAsText/svg.xml contains a typo that breaks the test with libxml2 v2.9.2

  • http/tests/xmlviewer/dumpAsText/svg.xml: Add missing space to

<svg:svg> tag make this test work with libxml2 v2.9.2.

11:36 AM Changeset in webkit [186517] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Pressing delete in the styles sidebar with no text causes text to become misaligned
https://bugs.webkit.org/show_bug.cgi?id=146715

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange):
Now returns if the change was in the first character of the first line.

11:34 AM Changeset in webkit [186516] by Chris Dumez
  • 6 edits
    4 adds in branches/safari-600.1.4.17-branch

Merge r185435. rdar://problem/21708253

10:58 AM Changeset in webkit [186515] by Beth Dakin
  • 6 edits in trunk/Source/WebKit2

Add actions to image previews
https://bugs.webkit.org/show_bug.cgi?id=146702
-and corresponding-
<rdar://problem/21642654>

Reviewed by Sam Weinig.

Add an array of actions and _WKActivatedElementInfo in order to properly invoke
the actions.

  • UIProcess/WKImagePreviewViewController.h:
  • UIProcess/WKImagePreviewViewController.mm:

(-[WKImagePreviewViewController loadView]):
(-[WKImagePreviewViewController initWithCGImage:defaultActions:elementInfo:]):
(_scaleSizeWithinSize):
(-[WKImagePreviewViewController initWithCGImage:]): Deleted.

Re-factor defaultActionsForImageSheet into a stand-alone function so that it can
be invoked for previews as well as for the action sheet.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet]):
(-[WKActionSheetAssistant defaultActionsForImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):

WKImagePreviewViewController initializer now takes the default actions and
_WKActivatedElementInfo.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewViewControllerForPosition:inSourceView:]):

10:48 AM Changeset in webkit [186514] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

<rdar://problem/21669397> [iOS] Keyboard shortcuts that take focus away from the web view end up typing a letter into the newly focused field
https://bugs.webkit.org/show_bug.cgi?id=146732

Reviewed by Sam Weinig.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]): Bail out if we are no longer the first
responder.

10:31 AM Changeset in webkit [186513] by clopez@igalia.com
  • 4 edits in trunk/LayoutTests

[GTK] Unreviewed GTK gardening after r186500.

  • platform/gtk/TestExpectations: Mark new failures and remove new passes

that were affected by the update of libraries inside the JHBuild.

  • platform/gtk/fast/css/input-search-padding-expected.png: Rebaseline test.
  • platform/gtk/fast/css/input-search-padding-expected.txt: Rebaseline test.
10:24 AM Changeset in webkit [186512] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Always begin a background task when needed, not just when we go into the background
https://bugs.webkit.org/show_bug.cgi?id=146704

Reviewed by Gavin Barraclough.

The system let background code run for the same amount of time regardless of whether the assertion was grabbed
when the app is in the foreground or being backgrounded, so remove the background/foreground tracking code.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager init]): Deleted.
(-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground]): Deleted.
(-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground]): Deleted.

10:18 AM Changeset in webkit [186511] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Network Cache: Don't open files in main thread
https://bugs.webkit.org/show_bug.cgi?id=146722

Follow-up.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::dispatchReadOperation):

Accessing m_bodyFilter is technically not thread safe so keep it in main thread.

10:02 AM Changeset in webkit [186510] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Network Cache: Don't open files in main thread
https://bugs.webkit.org/show_bug.cgi?id=146722

Reviewed by Chris Dumez.

While we use open() with O_NONBLOCK profiling indicates that we still may block up to 5ms under the syscall in some case.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::dispatchReadOperation):

Dispatch read operation to a concurrent queue.
With this we can also eliminate the separate dispatch() for body blob read.

9:48 AM Changeset in webkit [186509] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Do not waste window server memory for placeholder windows initiated by ThemeMac.
https://bugs.webkit.org/show_bug.cgi?id=146730
rdar://problem/20321222

Using defer:YES prevents us from wasting any window server resources for WebCoreThemeWindow(s).

Patch by Darin Adler.
Reviewed by Zalan Bujtas.

Not testable.

  • platform/mac/ThemeMac.mm:

(-[WebCoreThemeView window]):

9:41 AM Changeset in webkit [186508] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merge r186389. rdar://problem/21708243

9:41 AM Changeset in webkit [186507] by matthew_hanson@apple.com
  • 2 edits
    1 copy in branches/safari-600.1.4.17-branch/Source/WebCore

Merge r186384. rdar://problem/21708281

9:41 AM Changeset in webkit [186506] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merge r186380. rdar://problem/21708281

9:41 AM Changeset in webkit [186505] by matthew_hanson@apple.com
  • 4 edits
    6 adds in branches/safari-600.1.4.17-branch

Merge r185848. rdar://problem/21708274

9:41 AM Changeset in webkit [186504] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.1.4.17-branch

Merge r185838. rdar://problem/21708257

9:41 AM Changeset in webkit [186503] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-600.1.4.17-branch

Merge r184885. rdar://problem/21708260

9:41 AM Changeset in webkit [186502] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.1.4.17-branch

Merge r184577. rdar://problem/21708263

8:55 AM Changeset in webkit [186501] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/XFrameOptions/x-frame-options-{cached,deny-delete-frame-in-load-event}.html crash on Windows Debug bots

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-cached.html>
<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-deny-delete-frame-in-load-event.html>

  • platform/win/TestExpectations: Mark tests as crashing:
  • http/tests/security/XFrameOptions/x-frame-options-cached.html
  • http/tests/security/XFrameOptions/x-frame-options-deny-delete-frame-in-load-event.html
7:00 AM Changeset in webkit [186500] by clopez@igalia.com
  • 3 edits
    3 deletes in trunk/Tools

[GTK] [Wayland] Allow building and testing the Wayland target with the default JHBuild moduleset.
https://bugs.webkit.org/show_bug.cgi?id=146056

Reviewed by Martin Robinson.

  • gtk/install-dependencies: libepoxy is now required for building GTK+.
  • gtk/jhbuild-wayland.modules: Removed. Not longer needed.
  • gtk/jhbuild.modules: Upgrade GTK+ (3.16.4) and required dependencies for building:

Cairo (1.14.2), Gdk-Pixbuf (2.30.8) and GLib (2.44.1).

  • gtk/patches/cairo-1.12.8-add_disable-lto.patch: Removed. Not longer needed.

Cairo removed support for LTO on (1.14). Upstream commit: c7ff9bb.

  • gtk/patches/gtk-3.6-do-not-shutdown-accessibility.patch: Removed. Not longer needed.

GTK+ merged this patch on GTK+-3.10. Upstream commit: 8d83d98.

6:43 AM Changeset in webkit [186499] by clopez@igalia.com
  • 8 edits
    2 adds
    1 delete in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Report and mark new failing tests.
  • platform/gtk/editing/pasteboard/onpaste-text-html-expected.txt: Rebaseline after r186191.
  • platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Added. Rebaseline after r185166.
  • platform/gtk/fast/images/gif-loop-count-expected.png: Removed. Remove unneded expected image result after 185310.
  • platform/gtk/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Rebaseline after r185533.
  • platform/gtk/media/media-controls-clone-expected.png: Rebaseline after r184932.
  • platform/gtk/media/media-controls-clone-expected.txt: Rebaseline after r184932.
  • platform/gtk/media/video-controls-rendering-expected.png: Rebaseline after r184932.
  • platform/gtk/media/video-controls-rendering-expected.txt: Rebaseline after r184932.
5:19 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
5:07 AM Changeset in webkit [186498] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.8.4

WebKitGTK+ 2.8.4

5:06 AM Changeset in webkit [186497] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.8.4 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.8.4.
3:34 AM Changeset in webkit [186496] by calvaris@igalia.com
  • 6 edits in trunk/Source/WebCore

[GTK] Deactivate GObject bindings for static methods
https://bugs.webkit.org/show_bug.cgi?id=146717

Reviewed by Carlos Garcia Campos.

Static methods are currently not supported by GObject bindings so we deactivate them from the generation.

Current tests suffice. Expectations updated.

  • bindings/scripts/CodeGeneratorGObject.pm:

(SkipFunction): Skip isStatic functions.

  • bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
  • bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:

(webkit_dom_test_interface_implements_method4): Deleted.
(webkit_dom_test_interface_supplemental_method4): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_class_method): Deleted.
(webkit_dom_test_obj_class_method_with_optional): Deleted.
(webkit_dom_test_obj_overloaded_method1): Deleted.

3:28 AM Changeset in webkit [186495] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Unix] Remove unused local variable from Connection::sendOutgoingMessage().
https://bugs.webkit.org/show_bug.cgi?id=146713

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-07-08
Reviewed by Csaba Osztrogonác.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::sendOutgoingMessage):

3:25 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
2:11 AM Changeset in webkit [186494] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.8

Merge r186486 - Crash when parent iframe is set to display none and the child frame is mutated the same time.
https://bugs.webkit.org/show_bug.cgi?id=146699
rdar://problem/16207881

Reviewed by Andreas Kling.

When the parent iframe is set to display: none, we destroy the associated renderer (RenderIFrame).
However if the child frame is mutated the same time, during layout we try to access this RenderIFrame
to check whether it needs frame flattening.
This patch checks whether the parent render widget is still valid.

Source/WebCore:

Test: fast/frames/crash-display-none-iframe-during-onbeforeload.html

  • page/FrameView.cpp:

(WebCore::FrameView::isInChildFrameWithFrameFlattening): rearrange early returns.

LayoutTests:

  • fast/frames/crash-display-none-iframe-during-onbeforeload-expected.txt: Added.
  • fast/frames/crash-display-none-iframe-during-onbeforeload.html: Added.
  • fast/frames/resources/displaynone-this-during-object-beforeload.html: Added.
1:42 AM Changeset in webkit [186493] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r186461 - REGRESSION(r183706): HTMLImageElement sometimes fails to register as document named item.
<https://webkit.org/b/146679>
<rdar://problem/21613839>

Reviewed by Antti Koivisto.

Source/WebCore:

After r183706, Element::hasName() no longer returns outdated information when called
inside a parseAttribute() override. HTMLImageElement was relying on this to check
if it *used* to have a name attribute before the currently parsing one was set.

Since parseAttribute() only shows subclasses the new attribute value, I'm adding a
flag to HTMLImageElement that remembers whether we had a name attribute or not.

Test: fast/dom/HTMLImageElement/remove-img-with-name-from-document-crash.html

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):

  • html/HTMLImageElement.h:

LayoutTests:

Add a test that would assert when removing a named HTMLImageElement from the DOM
after having failed to register it as a document named item.

  • fast/dom/HTMLImageElement/remove-img-with-name-from-document-crash-expected.txt: Added.
  • fast/dom/HTMLImageElement/remove-img-with-name-from-document-crash.html: Added.

Jul 7, 2015:

11:27 PM Changeset in webkit [186492] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Use "hairline" borders on retina screen
https://bugs.webkit.org/show_bug.cgi?id=146619

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section):
(.style-declaration-section.locked):
(.style-declaration-section:not(.locked)):
(.style-declaration-section.last-in-group):
(.style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group + .style-declaration-section):
(@media (-webkit-min-device-pixel-ratio: 2)):

  • UserInterface/Views/DetailsSection.css:

(.details-section .details-section):
(.details-section > .content > .group:nth-child(even)):
(@media (-webkit-min-device-pixel-ratio: 2)):

  • UserInterface/Views/DividerNavigationItem.css:

(@media (-webkit-min-device-pixel-ratio: 2)):

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label):
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section):
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .label):
(@media (-webkit-min-device-pixel-ratio: 2)):

10:44 PM Changeset in webkit [186491] by benjamin@webkit.org
  • 8 edits in trunk/Source/WebCore

Remove the overflow checks from the important vectors used by the content extensions machines
https://bugs.webkit.org/show_bug.cgi?id=146703

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-07
Reviewed by Andreas Kling.

Most of the overflow checks cannot be eliminated by clang. Removing them
explicitly removes 400 ms from the compile time of a very large test list.

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.h:
  • contentextensions/DFACombiner.cpp:
  • contentextensions/DFAMinimizer.cpp:
  • contentextensions/ImmutableNFA.h:
  • contentextensions/MutableRangeList.h:
  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::epsilonClosureExcludingSelf):
(WebCore::ContentExtensions::resolveEpsilonClosures):
(WebCore::ContentExtensions::extendSetWithClosure):
(WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert):
(WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend):
(WebCore::ContentExtensions::createCombinedTransition):
(WebCore::ContentExtensions::getOrCreateDFANode):
(WebCore::ContentExtensions::NFAToDFA::convert):

10:27 PM Changeset in webkit [186490] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Pressing tab on a comment in the styles sidebar doesn't highlight the comment
https://bugs.webkit.org/show_bug.cgi?id=146709

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._textAtCursorIsComment):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine):
Determines if the text at the given cursor position in the given line is a comment.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey):

10:24 PM Changeset in webkit [186489] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: spacebar should pause/resume timeline recording when timelines are open
https://bugs.webkit.org/show_bug.cgi?id=143267

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineSidebarPanel): Added two new keyboard shortcuts: space and shift-space.
(WebInspector.TimelineSidebarPanel.prototype.shown): Enables the keyboard shortcuts.
(WebInspector.TimelineSidebarPanel.prototype.hidden): Disables the keyboard shortcuts.
(WebInspector.TimelineSidebarPanel.prototype._toggleRecordingOnSpacebar):
(WebInspector.TimelineSidebarPanel.prototype._toggleNewRecordingOnSpacebar):
(WebInspector.TimelineSidebarPanel.prototype._toggleRecording): Starts/stops recording.

10:23 PM Changeset in webkit [186488] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve names for unprefixed animation events
https://bugs.webkit.org/show_bug.cgi?id=146708

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-07
Reviewed by Timothy Hatcher.

  • UserInterface/Models/ScriptTimelineRecord.js:
7:19 PM Changeset in webkit [186487] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] MediaControls: Start Play and Can't Play buttons need to be cutout and blurred
https://bugs.webkit.org/show_bug.cgi?id=146226

Reviewed by Simon Fraser.

This patch takes what Said Abou-Hallawa posted in an earlier revision and
makes a few tweaks to workaround the bugs he's listed.

Replicate the iOS System blur backdrop in pure CSS, so that the large
start button looks more correct. Also add artwork for a failure state.

  • Modules/mediacontrols/mediaControlsiOS.css: New style rules for the start

button, which now is a collection of elements rather than a <button>.
(video::-webkit-media-controls-start-playback-button):
(video::-webkit-media-controls-start-playback-background):
(video::-webkit-media-controls-start-playback-tint):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.createBase): Replace the <button> with the hierarchy of
elements to replicate the blur. Give some of them a class attribute, so they
can match selectors (see the bugs Said filed in the original bugzilla).
(ControllerIOS.prototype.handleStartPlaybackButtonTouchStart): Toggle classes on
the hierarchy as needed.
(ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Ditto.
(ControllerIOS.prototype.updateStatusDisplay): Ditto.

6:53 PM Changeset in webkit [186486] by Alan Bujtas
  • 3 edits
    3 adds in trunk

Crash when parent iframe is set to display none and the child frame is mutated the same time.
https://bugs.webkit.org/show_bug.cgi?id=146699
rdar://problem/16207881

Reviewed by Andreas Kling.

When the parent iframe is set to display: none, we destroy the associated renderer (RenderIFrame).
However if the child frame is mutated the same time, during layout we try to access this RenderIFrame
to check whether it needs frame flattening.
This patch checks whether the parent render widget is still valid.

Source/WebCore:

Test: fast/frames/crash-display-none-iframe-during-onbeforeload.html

  • page/FrameView.cpp:

(WebCore::FrameView::isInChildFrameWithFrameFlattening): rearrange early returns.

LayoutTests:

  • fast/frames/crash-display-none-iframe-during-onbeforeload-expected.txt: Added.
  • fast/frames/crash-display-none-iframe-during-onbeforeload.html: Added.
  • fast/frames/resources/displaynone-this-during-object-beforeload.html: Added.
4:54 PM Changeset in webkit [186485] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Occasional null deref in the CA callback in flushLayers()
https://bugs.webkit.org/show_bug.cgi?id=146700
<rdar://problem/21668754>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Make sure we keep the WebPage alive, and null-check the potentially null
WebCore objects (Page and Frame).

4:52 PM Changeset in webkit [186484] by mrajca@apple.com
  • 12 edits
    4 adds in trunk

Media Session: propagate metadata changes to UI clients
https://bugs.webkit.org/show_bug.cgi?id=146660

Reviewed by Tim Horton.

  • CMakeLists.txt: Added WebMediaSessionMetadata and WKMediaSessionMetadata.
  • Shared/API/APIObject.h: Added a media session metadata type.
  • Shared/API/c/WKBase.h:
  • Shared/WebMediaSessionMetadata.cpp: Added API adapter for WebCore::MediaSessionMetadata.

(WebKit::WebMediaSessionMetadata::create):
(WebKit::WebMediaSessionMetadata::WebMediaSessionMetadata):
(WebKit::WebMediaSessionMetadata::~WebMediaSessionMetadata):

  • Shared/WebMediaSessionMetadata.h: Added API adapter for WebCore::MediaSessionMetadata.

(WebKit::WebMediaSessionMetadata::title):
(WebKit::WebMediaSessionMetadata::artist):
(WebKit::WebMediaSessionMetadata::album):

  • UIProcess/API/APIUIClient.h: Added 'mediaSessionMetadataDidChange' interface.

(API::UIClient::mediaSessionMetadataDidChange):

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKMediaSessionMetadata.cpp: Added C wrapper for WebMediaSessionMetadata.

(WKMediaSessionMetadataGetTypeID):
(WKMediaSessionMetadataCopyTitle):
(WKMediaSessionMetadataCopyArtist):
(WKMediaSessionMetadataCopyAlbum):

  • UIProcess/API/C/WKMediaSessionMetadata.h: Added C wrapper for WebMediaSessionMetadata.
  • UIProcess/API/C/WKPage.cpp: Forward 'mediaSessionMetadataDidChange' to client.

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h: Added 'mediaSessionMetadataDidChange' callback.
  • UIProcess/WebPageProxy.cpp: Forward 'mediaSessionMetadataDidChange' to UI client.

(WebKit::WebPageProxy::mediaSessionMetadataDidChange):

  • WebKit2.xcodeproj/project.pbxproj: Added WebMediaSessionMetadata and WKMediaSessionMetadata.
4:25 PM Changeset in webkit [186483] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test skip after r186476.

  • platform/win/TestExpectations:
4:00 PM Changeset in webkit [186482] by mrajca@apple.com
  • 3 edits in trunk/Source/WebCore

Media Session: remove seek forward/backward attributes
https://bugs.webkit.org/show_bug.cgi?id=146645

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaRemoteControls.h:
  • Modules/mediasession/MediaRemoteControls.idl:
3:57 PM Changeset in webkit [186481] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline record bars are not white when the row is selected from the sidebar
https://bugs.webkit.org/show_bug.cgi?id=146694

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineRecordBar.css:

(:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment):
(:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive):
(:matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):

3:32 PM Changeset in webkit [186480] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION (r183133-r183138): Secondary clicking in whitespace selects preceding word
https://bugs.webkit.org/show_bug.cgi?id=146695
<rdar://problem/21441466>

Reviewed by Tim Horton.

When we would currently use dictionary lookup to decide on our text selection, first check if we
are targeting an editable field. If we are, use the original selection behavior. Otherwise, use
the new "dictionary lookup" selection.

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectClosestContextualWordOrLinkFromMouseEvent): Only use dictionary lookup
when our target node is not editable.

3:26 PM Changeset in webkit [186479] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Another attempt to fix CURL/Soup builds after r186476

Reviewed by NOBODY.

  • platform/network/curl/SocketStreamHandle.h:
  • platform/network/soup/SocketStreamHandle.h:
2:37 PM Changeset in webkit [186478] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Attempt to fix CURL/Soup builds after r186476

Reviewed by NOBODY.

  • platform/network/curl/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/soup/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

2:21 PM Changeset in webkit [186477] by Devin Rousso
  • 3 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Unnecessary space added after -webkit- prefixed property values
https://bugs.webkit.org/show_bug.cgi?id=146671

Reviewed by Joseph Pecoraro.

  • Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value.css: Added.
  • Tools/PrettyPrinting/index.html:
  • UserInterface/Views/CodeMirrorFormatters.js: Now only adds a space if both the current and previous

tokens are a property, value, or atom.

2:13 PM Changeset in webkit [186476] by beidson@apple.com
  • 27 edits
    4 adds in trunk

HTTP Auth cached after disabling private browsing/reset.
<rdar://problem/8293055> and https://bugs.webkit.org/show_bug.cgi?id=146654

Reviewed by Tim Horton.

Source/WebCore:

Test: http/tests/security/private-browsing-http-auth.html

  • Change most static CredentialStorage methods to be instance methods instead.
  • Make a CredentialStorage objects be per-NetworkStorageSession.
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::connect): Only start the web socket load if a networking

context is available.

  • platform/network/CredentialStorage.cpp:

(WebCore::CredentialStorage::defaultCredentialStorage): Returns the credential storage

from the default NetworkStorageSession.

(WebCore::CredentialStorage::set):
(WebCore::CredentialStorage::get):
(WebCore::CredentialStorage::remove):
(WebCore::CredentialStorage::findDefaultProtectionSpaceForURL):
(WebCore::CredentialStorage::clearCredentials):
(WebCore::protectionSpaceToCredentialMap): Deleted.
(WebCore::originsWithCredentials): Deleted.
(WebCore::pathToDefaultProtectionSpaceMap): Deleted.
(WebCore::findDefaultProtectionSpaceForURL): Deleted.
(WebCore::CredentialStorage::setPrivateMode): Deleted. Was a no-op anyways.

  • platform/network/CredentialStorage.h:
  • platform/network/NetworkStorageSession.h:

(WebCore::NetworkStorageSession::credentialStorage):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):

  • platform/network/cf/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::getStoredCONNECTProxyCredentials):
(WebCore::getStoredCONNECTProxyCredentials): Deleted.

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::applyAuthenticationToRequest):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::applyAuthenticationToRequest):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):

Source/WebKit/mac:

  • Misc/WebCache.h:
  • Misc/WebCache.mm:

(+[WebCache clearCachedCredentials]): Clear the global CredentialStorage as well as the

storages belonging to each main frame of each WebView. This method is for DRT.

  • Misc/WebDownload.mm:

(-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]):

  • Plugins/WebBaseNetscapePluginView.mm:

(WebKit::getAuthenticationInfo):

  • WebView/WebView.mm:

(-[WebView _clearCredentials]): Clear the storage belonging to the current networking session

of the main frame of this WebView.

  • WebView/WebViewInternal.h:

Source/WebKit/win:

  • WebDownloadCFNet.cpp:

(WebDownload::didReceiveAuthenticationChallenge):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::getAuthenticationInfo):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting): Clear in-memory credentials in between test runs.

LayoutTests:

  • http/tests/security/private-browsing-http-auth-expected.txt: Added.
  • http/tests/security/private-browsing-http-auth.html: Added.
  • http/tests/security/resources/auth-echo.php: Added.
  • http/tests/security/resources/basic-auth.php: Added.
  • platform/wk2/TestExpectations:
1:16 PM Changeset in webkit [186475] by matthew_hanson@apple.com
  • 1 delete in branches/safari-600.7-branch/safari-600.7-branch

The safari-600.8-branch had already been created.

1:09 PM Changeset in webkit [186474] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION(169105): CSS Regions: renderer returns wrong selection root when it is inside a column flow.
https://bugs.webkit.org/show_bug.cgi?id=146529
rdar://problem/21613670

Reviewed by Mihnea Ovidenie and David Kilzer.

This patch ensures that RenderObject::selectionRoot() handles column flows properly while searching for the associated
selection root.
When the renderer is inside a column flow and the column flow is part of a named flow, we stop
traversing the ancestor chain, searching for the selection root, when we reach the column flow.
Since the column flow is not a selection root, we mistakenly fall back to the RenderView as selection root.
Instead, we should check if the column is inside a named flow and return the selection root accordingly.
Returning the wrong selection root confuses RenderView::splitSelectionBetweenSubtrees() logic and this particular
RenderObject could end up in multiple selection trees.

Source/WebCore:

Test: fast/regions/selection/crash-when-element-is-inside-column-and-the-containing-block-is-inside-flow.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::selectionRoot):

LayoutTests:

  • fast/regions/selection/crash-when-element-is-inside-column-and-the-containing-block-is-inside-flow-expected.txt: Added.
  • fast/regions/selection/crash-when-element-is-inside-column-and-the-containing-block-is-inside-flow.html: Added.
1:07 PM Changeset in webkit [186473] by matthew_hanson@apple.com
  • 1 copy in branches/safari-600.7-branch/safari-600.7-branch

New Branch.

1:03 PM Changeset in webkit [186472] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Mac] REGRESSION (r184794): Play/Pause control doesn't update state in full screen
https://bugs.webkit.org/show_bug.cgi?id=146689
<rdar://problem/21393490>

Reviewed by Dean Jackson.

The changes in r184794 did not take full screen mode into account. This needed to be corrected.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handlePanelTransitionEnd):
(Controller.prototype.setPlaying):
(Controller.prototype.showControls):

12:58 PM Changeset in webkit [186471] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Pad ruler selection area by 1px in the Rendering Frames timeline overview
https://bugs.webkit.org/show_bug.cgi?id=146248

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RenderingFrameTimelineOverview.js:

Enable duration pixel alignment.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview.frames > .timeline-ruler > .header > .divider):
(.timeline-overview.frames > .timeline-ruler > .selection-handle.right):
(.timeline-overview.frames > .timeline-ruler > .shaded-area.right):
Shift ruler elements 1 pixel to the right, so that selection boundaries and dividers are
positioned inside the gap between frame elements.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get pixelAlignDuration):
(WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
Added a property to force the overview graph to align duration units on the y-axis to pixel boundaries.
When enabled, frame elements are displayed in integer widths while zooming, preventing subpixel blurring
and maintaining a consistent 1 pixel gap between frames.

12:24 PM Changeset in webkit [186470] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Make sure to remove the download message receiver before freeing it
https://bugs.webkit.org/show_bug.cgi?id=146687

Reviewed by Simon Fraser.

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::downloadFinished):

12:12 PM Changeset in webkit [186469] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Snap point regions containing X and Y snap points should do a better job animating
https://bugs.webkit.org/show_bug.cgi?id=142523
<rdar://problem/20100753>

Patch by Wenson Hsieh <whsieh@berkeley.edu> on 2015-07-07
Reviewed by Brent Fulgham.

Source/WebCore:

Reimplemented snap point animations to use a single timer for both horizontal and
vertical axes to better support 2D snap scrolling. Instead of making velocity
dependent on progress to the snap point and handling 2D snapping with different
timer update functions, this implementation uses a fixed animation time to coordinate
the snapping animation across both axes.

Test: platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Refactored to use a single scroll snap timer.
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: See above.

(WebCore::ScrollingTreeFrameScrollingNodeMac::startScrollSnapTimer): See above.
(WebCore::ScrollingTreeFrameScrollingNodeMac::stopScrollSnapTimer): See above.

  • platform/cocoa/ScrollController.h: Refactored to use a single scroll snap timer and update function to handle

snapping in both axes. This entails removing the ScrollEventAxis parameter from various functions below. Also
removed methods that computed "snap" and "glide" offsets.

(WebCore::ScrollControllerClient::startScrollSnapTimer): See above.
(WebCore::ScrollControllerClient::stopScrollSnapTimer): See above.

  • platform/cocoa/ScrollController.mm: See above.

(WebCore::ScrollController::ScrollController): Added new constants used to compute animation offsets.
(WebCore::ScrollController::snapRubberBandTimerFired): Added a check to prevent the rubber band timer from firing

alongside the scroll snap timer. This results in scroll snapping taking precedence over rubber banding when
scrolling against the edge of a container in the case of 2D scrolling. We didn't run into this issue before
because snapping wasn't working properly at the edges of a 2D scrolling container. In the future, we may want
to unify both snap scrolling and rubber banding timers to solve this issue.

(WebCore::ScrollController::isScrollSnapInProgress): Refactored to use a single scroll snap timer.
(WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Fixed an issue where wheel deltas were being pushed

to the snap state incorrectly.

(WebCore::ScrollController::processWheelEventForScrollSnap): Fixed an issue with 2D snapping where scrolling in 2 axes

simultaneously would cause the vertical axis to override the horizontal axis. This is more like a sub-issue of fixing
2D scrolling, and is required for 2D snap animations to work properly.

(WebCore::ScrollController::startScrollSnapTimer): Refactored to use a single scroll snap timer.
(WebCore::ScrollController::stopScrollSnapTimer): See above.
(WebCore::ScrollController::scrollSnapTimerFired): This new method handles snap scroll updates on both axes.
(WebCore::ScrollController::beginScrollSnapAnimation): Refactored to account for single scroll snap timer.
(WebCore::ScrollController::endScrollSnapAnimation): See above.
(WebCore::ScrollController::initializeScrollSnapAnimationParameters): New method that initializes parameters used to

coordinate the animation state across horizontal and vertical axes.

(WebCore::ScrollController::isSnappingOnAxis): Checks whether or not a given axis is currently scroll snapping. This will

return true in the case of active 2D scroll snapping.

(WebCore::ScrollController::hasActiveScrollSnapTimerForAxis): Deleted.
(WebCore::ScrollController::horizontalScrollSnapTimerFired): Deleted.
(WebCore::ScrollController::verticalScrollSnapTimerFired): Deleted.
(WebCore::ScrollController::scrollSnapAnimationUpdate): Deleted.
(WebCore::ScrollController::initializeGlideParameters): Deleted.
(WebCore::snapProgress): Deleted.
(WebCore::clampedSnapMagnitude): Deleted.
(WebCore::ScrollController::computeSnapDelta): Deleted.
(WebCore::snapGlide): Deleted.
(WebCore::ScrollController::computeGlideDelta): Deleted.

  • platform/cocoa/ScrollSnapAnimatorState.h: Added a new datastructure, ScrollSnapAnimationCurveState, which tracks

the scroll snap animation state across both axes.

  • platform/cocoa/ScrollSnapAnimatorState.mm: Removed fields relevant to the former "gliding" model and renamed the

initial wheel delta variable to reflect this.

(WebCore::ScrollSnapAnimatorState::averageInitialWheelDelta): Fixed an issue where wheel deltas were being pushed

to the snap state incorrectly.

(WebCore::ScrollSnapAnimatorState::clearInitialWheelDeltaWindow): Tiny for loop incrementor style fix.
(WebCore::ScrollSnapAnimatorState::isSnapping): Checks whether this state is in either snapping or gliding mode.
(WebCore::ScrollSnapAnimatorState::canReachTargetWithCurrentInitialScrollDelta): Checks whether the scroll velocity is

consistent with the initial and target offsets.

(WebCore::ScrollSnapAnimatorState::interpolatedOffsetAtProgress): Interpolates the offset for a given progress value.
(WebCore::ScrollSnapAnimationCurveState::ScrollSnapAnimationCurveState): New constants.
(WebCore::ScrollSnapAnimationCurveState::initializeSnapProgressCurve): Abstracts out part of the initialization process.
(WebCore::ScrollSnapAnimationCurveState::initializeInterpolationCoefficientsIfNecessary): Abstracts out part of the

initialization process.

(WebCore::ScrollSnapAnimationCurveState::interpolatedPositionAtProgress): Abstracts out curve interpolation.
(WebCore::ScrollSnapAnimationCurveState::shouldCompleteSnapAnimationImmediatelyAtTime): Added.
(WebCore::ScrollSnapAnimationCurveState::animationProgressAtTime): Added.

LayoutTests:

Tests that snap points are honored when scrolling in a 2D overflow container.

  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html: Added.
11:28 AM Changeset in webkit [186468] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Tabbing in the styles sidebar doesn't highlight the next section of text
https://bugs.webkit.org/show_bug.cgi?id=146676

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue): Modified the logic to only search the
remaining text after the current cursor position.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Now only searches for matches before the colon.

10:28 AM Changeset in webkit [186467] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed, Fix non-Mac build after r186464.

  • UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:

(WebKit::CustomProtocolManagerProxy::~CustomProtocolManagerProxy):

10:25 AM Changeset in webkit [186466] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Option+Click not jumping to resource
https://bugs.webkit.org/show_bug.cgi?id=146498

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js: Always show the tab which contains the represented object.

(WebInspector._domNodeWasInspected):
(WebInspector._frameWasAdded):
(WebInspector.showConsoleTab):
(WebInspector.showRepresentedObject): Removed forceShowTab parameter.
(WebInspector.showMainFrameDOMTree):
(WebInspector.showContentFlowDOMTree):
(WebInspector.showSourceCodeForFrame):
(WebInspector.showSourceCode):
(WebInspector.showSourceCodeLocation):
(WebInspector.showOriginalUnformattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeTextRange):
(WebInspector.showResourceRequest):

  • UserInterface/Controllers/CodeMirrorTokenTrackingController.js:

(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseButtonWasReleasedOverEditor):

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.showMainResourceForFrame):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel):

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
(WebInspector.ObjectTreeBaseTreeElement):

10:22 AM Changeset in webkit [186465] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix iOS build.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setupFullscreen):

10:12 AM Changeset in webkit [186464] by andersca@apple.com
  • 14 edits in trunk/Source/WebKit2

Make sure to remove message receivers before they are deallocated
https://bugs.webkit.org/show_bug.cgi?id=146666
rdar://problem/21331118

Reviewed by Tim Horton.

Add code so we can assert that there are no message receiver maps pointing to a message receiver
when it's being destroyed. Fix all the assertions by calling removeMessageReceiver in the right places.

  • Platform/IPC/MessageReceiver.h:

(IPC::MessageReceiver::~MessageReceiver):
(IPC::MessageReceiver::willBeAddedToMessageReceiverMap):
(IPC::MessageReceiver::willBeRemovedFromMessageReceiverMap):

  • Platform/IPC/MessageReceiverMap.cpp:

(IPC::MessageReceiverMap::addMessageReceiver):
(IPC::MessageReceiverMap::removeMessageReceiver):
(IPC::MessageReceiverMap::invalidate):

  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::removeMessageReceiver):

  • Shared/ChildProcess.h:
  • Shared/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::removeMessageReceiver):

  • Shared/ChildProcessProxy.h:
  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController dealloc]):

  • UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
  • UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:

(WebKit::CustomProtocolManagerProxy::~CustomProtocolManagerProxy):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy):

  • UIProcess/WebConnectionToWebProcess.cpp:

(WebKit::WebConnectionToWebProcess::invalidate):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController dealloc]):

  • WebProcess/WebConnectionToUIProcess.cpp:

(WebKit::WebConnectionToUIProcess::invalidate):

10:11 AM Changeset in webkit [186463] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Regression: CSS autocompletion suggestion applies on pressing delete
https://bugs.webkit.org/show_bug.cgi?id=146672

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now returns if completions are showing.

9:25 AM Changeset in webkit [186462] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Properly align checkboxes in the styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=146673

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-lines input[type=checkbox]):

8:54 AM Changeset in webkit [186461] by akling@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION(r183706): HTMLImageElement sometimes fails to register as document named item.
<https://webkit.org/b/146679>
<rdar://problem/21613839>

Reviewed by Antti Koivisto.

Source/WebCore:

After r183706, Element::hasName() no longer returns outdated information when called
inside a parseAttribute() override. HTMLImageElement was relying on this to check
if it *used* to have a name attribute before the currently parsing one was set.

Since parseAttribute() only shows subclasses the new attribute value, I'm adding a
flag to HTMLImageElement that remembers whether we had a name attribute or not.

Test: fast/dom/HTMLImageElement/remove-img-with-name-from-document-crash.html

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):

  • html/HTMLImageElement.h:

LayoutTests:

Add a test that would assert when removing a named HTMLImageElement from the DOM
after having failed to register it as a document named item.

  • fast/dom/HTMLImageElement/remove-img-with-name-from-document-crash-expected.txt: Added.
  • fast/dom/HTMLImageElement/remove-img-with-name-from-document-crash.html: Added.
6:32 AM Changeset in webkit [186460] by Carlos Garcia Campos
  • 7 edits
    1 copy
    1 delete in releases/WebKitGTK/webkit-2.8

Merge r184954 - [CMake] Improve detection and usage of GL/GLES/EGL libraries.
https://bugs.webkit.org/show_bug.cgi?id=145408

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindEGL.cmake: Improve detection of EGL libraries.
  • Source/cmake/FindGLES.cmake: Removed. It was used by the EGL port.

Remove it and make the EGL port use the improved FindOpenGLES2.cmake
instead.

  • Source/cmake/FindOpenGL.cmake: Added. Add module to detect OpenGL

libraries. Detect also GLX libraries.

  • Source/cmake/FindOpenGLES2.cmake: Improve detection of OpenGLES-v2

libraries. Use find_path() to get the include path.

  • Source/cmake/OptionsEfl.cmake: Use now the improved FindOpenGLES2

module.

  • Source/cmake/OptionsGTK.cmake: Set default value for ENABLE_GLES2

depending on the libraries found on the system.
Move the detection of GLX (and the include of CMakePushCheckState)
to FindOpenGL.cmake.
Ensure that we only define USE_GLX when we build with OpenGL
(but not with GLESv2).

Source/WebCore:

No new tests, no behavior changes.

  • CMakeLists.txt: Ensure that we include the libraries and includes

for the GL/GLESv2/EGL libraries before including the ANGLE directories.
Define also any CFLAG that the system GL/GLESv2/EGL libraries may need.

  • PlatformEfl.cmake: Remove some includes that are now unneeded,

because we are including now the EGL libraries on CMakeLists.txt

  • PlatformGTK.cmake: Remove unneeded include (We are including the EGL

libraries now on CMakeLists.txt)

5:53 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
5:40 AM Changeset in webkit [186459] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

[GTK] DrawingBuffer.h used outside of include guard
https://bugs.webkit.org/show_bug.cgi?id=144559

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-05-07
Reviewed by Carlos Garcia Campos.

  • platform/graphics/cairo/DrawingBufferCairo.cpp: A header was

improperly included outside of an include guard, causing a build
failure with a particular combination of options.

5:38 AM Changeset in webkit [186458] by Carlos Garcia Campos
  • 2 edits
    1 add in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r183692 - Math.abs() returns negative
https://bugs.webkit.org/show_bug.cgi?id=137827

Reviewed by Michael Saboff.

Math.abs() on doubles was mistakenly assumed by the DFG AI to be the
identity function.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • tests/stress/math-abs-positive.js: Added, was previously failing.

(foo):

5:34 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
5:33 AM Changeset in webkit [186457] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r186393 - Crash when setting text direction via MakeTextWritingDirection* editing commands.
<https://webkit.org/b/146665>
<rdar://problem/20835477>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix two buggy clients of enclosingBlock(node) that would fail if the returned
element is the same as the node passed in.

Test: editing/style/change-text-direction-crash.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):

LayoutTests:

Add a test that covers some very simple MakeTextWritingDirection* command usage.

  • editing/style/change-text-direction-crash-expected.txt: Added.
  • editing/style/change-text-direction-crash.html: Added.
5:30 AM Changeset in webkit [186456] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r186384 - Memory corruption in WebGLRenderingContext::simulateVertexAttrib0
https://bugs.webkit.org/show_bug.cgi?id=146652
<rdar://problem/21567767>

Follow-up fix.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):

5:30 AM Changeset in webkit [186455] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r186380 - Memory corruption in WebGLRenderingContext::simulateVertexAttrib0
https://bugs.webkit.org/show_bug.cgi?id=146652
<rdar://problem/21567767>

Reviewed by Brent Fulgham.

The expression "(numVertex + 1) * 4 * sizeof(GC3Dfloat)" could potentially
overflow. Make it use checked arithmetic.

I couldn't make a test case that reliably exercised this.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0): Used Checked<GC3Dsizeiptr>
for calculating the size of the buffer.

5:28 AM Changeset in webkit [186454] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r186366 - Crash: LayoutState root's container is nullptr when the layout root is detached.
https://bugs.webkit.org/show_bug.cgi?id=146646
rdar://problem/21371544

Reviewed by Simon Fraser.

This is a speculative fix to ensure that when the root of the LayoutState is detached
we don't try to access its container (nullptr).
This is related to trac.webkit.org/r185484.

Not reproducible.

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/LayoutState.h:

(WebCore::LayoutState::LayoutState): Deleted.

5:25 AM Changeset in webkit [186453] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r186360 - Unreviewed, rolling out r185896.
https://bugs.webkit.org/show_bug.cgi?id=146647

Caused by a refcounting error in GTK+; it's actually legal for
the event to be null, just the gi annotations were wrong.
(Requested by mcatanzaro on #webkit).

Reverted changeset:

"[GTK] Crash performing drag-and-drop"
https://bugs.webkit.org/show_bug.cgi?id=146267
http://trac.webkit.org/changeset/185896

5:18 AM Changeset in webkit [186452] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r186296 - Crash when closing the web inspector
https://bugs.webkit.org/show_bug.cgi?id=146620

Reviewed by Darin Adler.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::closeWindow): Null check the connection, like it is
in other places where it is used.

5:17 AM Changeset in webkit [186451] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r186287 - [WK2] WebBackForwardListItems' pageState is not kept up-to-date
https://bugs.webkit.org/show_bug.cgi?id=146614
<rdar://problem/21585268>

Reviewed by Gavin Barraclough.

WebBackForwardListItems' pageState on UIProcess-side were not kept
up-to-date when it was updated on WebContent process side. This meant
that we were losing the scroll position (among other things) when
transferring the session state over from one view to another.

We now call notifyHistoryItemChanged(item) after saving the scroll
position and the view state on the HistoryItem. As a result, the
WebBackForwardListProxy will send the updated pageState to the
UIProcess.

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::notifyChanged):

  • history/HistoryItem.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

5:15 AM Changeset in webkit [186450] by Carlos Garcia Campos
  • 10 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r186275 - REGRESSION (r178097): HTMLSelectElement.add(option, undefined) prepends option to the list of options; should append to the end of the list of options
https://bugs.webkit.org/show_bug.cgi?id=146566
<rdar://problem/21663919>

Reviewed by Ryosuke Niwa.

Source/WebCore:

HTMLSelectElement.add(X, undefined) is supposed to be equivalent to
HTMLSelectElement.add(X) which should *append* X. The same is true
for HTMLOptionsCollection.add(X, undefined).

However, due to a bug in our bindings generator for overloaded
operations, the actual behavior was not the expected one. The
second overload would be chosen: add(X, index) and undefined would
be converted as 0-index, which would *prepend* X.

This patch fixes the bindings generator so that undefined is allowed
for optional parameters of an overload operation, when doing the
overload resolution.

Tests:

  • fast/dom/HTMLSelectElement/add.html
  • fast/dom/HTMLSelectElement/options-collection-add.html
  • http/tests/websocket/tests/hybi/undefined-protocol.html
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheckExpression):
Allow undefined value for optional parameters when doing the overload
resolution.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):

  • bindings/scripts/test/TestObj.idl:

Add bindings tests coverage and rebaseline.

LayoutTests:

  • fast/dom/HTMLSelectElement/add-expected.txt:
  • fast/dom/HTMLSelectElement/add.html:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add.html:

Update tests so that calling add(X, undefined) is expected to append X,
not prepend it.

  • http/tests/websocket/tests/hybi/undefined-protocol-expected.txt: Added.
  • http/tests/websocket/tests/hybi/undefined-protocol.html: Added.

Add test coverage for "new WebSocket(url, undefined)" as WebSocket is
using constructor overloads with optional parameters. Previously, calling
new WebSocket(url, undefined) was equivalent to calling
new WebSocket(url, "undefined") even though it is supposed to be
equivalent to calling new WebSocket(url).

4:55 AM Changeset in webkit [186449] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r186267 - Memory leak for a protected Element having pending events in ImageLoader.
https://bugs.webkit.org/show_bug.cgi?id=146538

Patch by Kyounga Ra <kyounga@alticast.com> on 2015-07-03
Reviewed by Brady Eidson.

If ImageLoader is destroyed before an active derefElementTimer is fired, protected element's refCount never be zero..

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::~ImageLoader):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::updateRenderer):
(WebCore::ImageLoader::updatedHasPendingEvent):
(WebCore::ImageLoader::timerFired):

  • loader/ImageLoader.h:
4:52 AM Changeset in webkit [186448] by Carlos Garcia Campos
  • 19 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r186265 - REGRESSION (r178097): JavaScript TypeError after clicking on compose button in Yahoo Mail
https://bugs.webkit.org/show_bug.cgi?id=146515
<rdar://problem/21348421>

Reviewed by Chris Dumez.

Source/WebCore:

Fixes an issue where extra arguments passed to a Web IDL overloaded function, whose implementation
is generated by the bindings generator script, are not ignored as per the note in section "Interface object Call method"
of the Web IDL spec, <http://www.w3.org/TR/2012/CR-WebIDL-20120419/> (19 April 2012).

Currently for an overloaded function the JavaScript bindings generator script emits code to
throw a TypeError when it cannot find a candidate function that takes the same number of
arguments as passed by a caller. Prior to the change made in bug #139179 (r178097), the
bindings code for HTMLSelectElement.add() was written by hand and ignored extra arguments
that were passed to it. Following this change, the bindings code for HTMLSelectElement.add()
is generated by the bindings generator script. Therefore, we throw a TypeError when Yahoo Mail
calls HTMLSelectElement.add() with extra arguments because the code emitted by the bindings
generator script does not ignore them.

  • bindings/scripts/CodeGeneratorJS.pm:

(LengthOfLongestFunctionParameterList): Added. Computes the length of longest overload parameter list.
(GenerateOverloadedFunction): Emit code that ignores more arguments than LengthOfLongestFunctionParameterList().
(GenerateOverloadedConstructorDefinition): Ditto.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12): Added; expected result for an overloaded
function that takes a variadic number of Blob elements.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod): Update expected result. The added
if-conditional expression for the IDL declaration overloadedMethod(Blob... blobArgs) is empty
because we do not support overloading of functions with variadic arguments.
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors5): Added; expected
result for an overloaded constructors that takes a variadic number of long arguments.
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors): Update expected
result. The added if-conditional expression for the IDL declaration Constructor(long... longArgs) is empty
because we do not support overloading of constructors with variadic arguments.

  • bindings/scripts/test/TestObj.idl: Added declaration overloadedMethod(Blob...). Also fixed

typo in license block text.

  • bindings/scripts/test/TestOverloadedConstructors.idl: Added declaration Constructor(long... longArgs).

Also fixed typo in license block text.

LayoutTests:

Add new sub-tests to LayoutTests/fast/dom/HTMLSelectElement/{add, options-collection-add}.html,
simplify existing test code, share common code, and update expected results.

Additionally, update results for tests in LayoutTests/fast/canvas now that we ignore extra
arguments passed to a Web IDL overloaded function whose implementation is generated by the
bindings generator script.

  • fast/canvas/canvas-overloads-drawImage-expected.txt:
  • fast/canvas/canvas-overloads-setFillColor-expected.txt:
  • fast/canvas/canvas-overloads-setShadow-expected.txt:
  • fast/canvas/canvas-overloads-setStrokeColor-expected.txt:
  • fast/canvas/script-tests/canvas-overloads-drawImage.js:
  • fast/canvas/script-tests/canvas-overloads-setFillColor.js:
  • fast/canvas/script-tests/canvas-overloads-setShadow.js:
  • fast/canvas/script-tests/canvas-overloads-setStrokeColor.js:
  • fast/dom/HTMLSelectElement/add-expected.txt:
  • fast/dom/HTMLSelectElement/add.html:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add.html:
  • fast/dom/HTMLSelectElement/resources/html-select-and-options-collection-utilities.js: Added.

(createSelectElementWithTestData):
(deepCopy):
(createOption):
(createGroup):

4:27 AM Changeset in webkit [186447] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186388): http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html always fails on Windows

  • platform/win/TestExpectations: Consolidate WebAudio skips.

Mark test as always failing:

  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html
4:27 AM Changeset in webkit [186446] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html crashes on Windows sometimes

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-deny-meta-tag-parent-same-origin-allow.html>

  • platform/win/TestExpectations: Mark test as crashing, too:
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html
4:21 AM Changeset in webkit [186445] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r186263 - Crash on xLarge memory allocation using bmalloc on 32bit systems
https://bugs.webkit.org/show_bug.cgi?id=146440

Reviewed by Gustavo Noronha Silva.

Disable the gcc's -ftree-sra optimization (automatically enabled
with -O1 and higher levels) for WebCore and 32bit Intel architectures,
as that causes the crash in bmalloc when allocating large amounts of
memory from the texture mapper's tiled backing store implementation.

  • CMakeLists.txt: Pass -fno-free-sra to gcc on 32bit Intel architectures.
4:11 AM Changeset in webkit [186444] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r186242 - bmalloc: Shrink the super chunk size
https://bugs.webkit.org/show_bug.cgi?id=146519

Reviewed by Andreas Kling.

We have lots of reports of crashing due to failed VM allocation on iOS.
(This VM limit on iOS is usually 1GB-2GB, and has been as low as 256MB.)

Shrink the super chunk size in case fragmentation is the reason for
VM allocation failure.

This has the downside that >= 2MB allocations will now be super slow,
but they are also super rare (as in never on most websites), so this
is probably an OK tradeoff.

  • bmalloc/Sizes.h:
4:09 AM Changeset in webkit [186443] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r186225 - [GTK] WebSQL doesn't work because openDatabase always fails with DOM Exception 18
https://bugs.webkit.org/show_bug.cgi?id=146234

Reviewed by Sergio Villar Senin.

Source/WebKit2:

This is because we don't provide any quota, and 0 is used by
default, so there's never enough quota and openDatabase fails. We
should expose this in the API, but for now, we could use a default
quota of 5MB like WTR does.

  • UIProcess/API/gtk/WebKitUIClient.cpp: Override

exceededDatabaseQuota and return always the default quota.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::exceededDatabaseQuota): Return the quota based on the
expected usage and current database usabe like mac does.
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Add
custom UI client to implement exceededDatabaseQuota.

4:07 AM Changeset in webkit [186442] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

El Capitan: Hangs caused by PDFs should be fixed

  • platform/mac-wk1/TestExpectations: Remove skipped tests as the

PDF hangs should be fixed.

4:07 AM Changeset in webkit [186441] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186391): css3/masking/mask-repeat-space-padding.html image-only failure on El Capitan WK1

  • platform/mac-wk1/TestExpectations: Mark as image-only failure:
  • css3/masking/mask-repeat-space-padding.html
4:07 AM Changeset in webkit [186440] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r186333 - [GTK] Accelerated Compositing stops working after a web process crash
https://bugs.webkit.org/show_bug.cgi?id=146508

Reviewed by Martin Robinson.

The problem is that we don't send the window ID again to the new
web process.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::didRelaunchProcess): Call
webkitWebViewBaseDidRelaunchWebProcess().

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDidRelaunchWebProcess): Set the window ID to
the new drawing area.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
4:04 AM Changeset in webkit [186439] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r186203 - bmalloc: realloc of an XLarge range can unmap adjacent VM ranges
https://bugs.webkit.org/show_bug.cgi?id=146535

Reviewed by Anders Carlsson.

This bug causes a crash when running fast/css/large-list-of-rules-crash.html
with the fix applied for https://bugs.webkit.org/show_bug.cgi?id=146519.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate): Start at object + newSize since starting
at object + oldSize means deleting the adjacent VM range.

4:00 AM Changeset in webkit [186438] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r186191 - REGRESSION (r179168): Characters overlap after resizing the font on the copy-pasted Japanese text
https://bugs.webkit.org/show_bug.cgi?id=146492

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by WebKit serializing the used line-height size (e.g. 18px) in the copied content
instead of string "normal" and removeStyleFromRulesAndContext failing to strip it down when text with
a font that influences the line height got pasted. This is because the used value of line-height
property of the context and the pasted content doesn't match when the context doesn't use the same font.

Fixed the bug by not considering line-height as a list of editing properties we try to preserve. This is
fine because we don't provide editing operations to directly manipulate line-height.

Test: editing/pasteboard/cjk-line-height.html

  • editing/EditingStyle.cpp:

(WebCore::editingProperties): Removed CSSPropertyLineHeight.

LayoutTests:

Added a regression test. Also reverted the bad rebaseline in r179168:
http://trac.webkit.org/changeset/179168/trunk/LayoutTests/editing/pasteboard/simplfiying-markup-should-not-strip-content-expected.txt

  • editing/pasteboard/cjk-line-height-expected.txt: Added.
  • editing/pasteboard/cjk-line-height.html: Added.
  • editing/pasteboard/simplfiying-markup-should-not-strip-content-expected.txt:
3:58 AM Changeset in webkit [186437] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.8

PNG mask images are loaded with Accept:image/svg+xml
https://bugs.webkit.org/show_bug.cgi?id=146509
Source/WebCore:

rdar://problem/21584740

Reviewed by Simon Fraser.

For some strange reason MaskImageOperation code loads all mask images, including non-SVG ones
using CachedSVGDocument. Resulting bad accept header may cause server to reject the request.

This is far from ideal but as a quick fix we can override the accept header for mask images to
allow any image type.

Test: http/tests/misc/mask-image-accept.html

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::acceptOverride):
(WebCore::CachedResourceRequest::setAcceptOverride):

  • loader/cache/CachedSVGDocumentReference.cpp:

(WebCore::CachedSVGDocumentReference::load):

  • loader/cache/CachedSVGDocumentReference.h:

(WebCore::CachedSVGDocumentReference::loadRequested):
(WebCore::CachedSVGDocumentReference::setAcceptsAnyImageType):
(WebCore::CachedSVGDocumentReference::document):

  • platform/graphics/MaskImageOperation.cpp:

(WebCore::MaskImageOperation::ensureCachedSVGDocumentReference):

LayoutTests:

Reviewed by Simon Fraser.

  • http/tests/misc/mask-image-accept-expected.html: Added.
  • http/tests/misc/mask-image-accept.html: Added.
3:49 AM Changeset in webkit [186436] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r186165 - Frame flattening: Hit-testing an iframe could end up destroying the associated inline tree context.
https://bugs.webkit.org/show_bug.cgi?id=146447
rdar://problem/20613501

Reviewed by Simon Fraser.

This patch ensures that the render tree associated with the document on which
the hit-test is initiated does not get laid out, unless it was directly mutated prior to the hittest.

Hit-test requirements:

  1. A clean the render tree before hit-testing gets propagated to the renderers.

Document::updateLayout() ensures it by calling both updateStyleIfNeeded() and layout() not only on the current tree, but also
on the ancestors if needed.

  1. No render tree mutation while hit-testing the renderers.

When an iframe is being hit-tested, this hit-test could bubble down to the child frame's render view.
In order to ensure #1, we call Document::updateLayout() on the current (subframe) document.
If updateStyleIfNeeded() mutates the render tree, we mark it dirty for layout(). However frame flattening also
marks the parent renderer (RenderIFrame) dirty.
While calling layout() to clean the current render tree, we end up laying out the parent tree too.
Laying out the parent tree could end up destroying the inline tree context from where the
hittest just bubbled down. (InlineFlowBox -> RenderWidget -> RenderView).

This patch protects the render tree from such unintentional inline tree mutation during hittesting.
After the initial layout we set a layout disallow flag on the frame view to defer subsequent layouts.
This patch only changes behavior when frame flattening is enabled, but in future we may always want to enable this.

Source/WebCore:

Test: fast/frames/flattening/hittest-iframe-while-style-changes-crash.html

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded): Deleted. -> Assertion in no longer valid.

  • page/FrameView.h:
  • rendering/RenderView.cpp:

(WebCore::FrameFlatteningLayoutDisallower::FrameFlatteningLayoutDisallower):
(WebCore::FrameFlatteningLayoutDisallower::~FrameFlatteningLayoutDisallower):
(WebCore::RenderView::hitTest): Protect the render tree from subsequent layouts.

LayoutTests:

  • fast/frames/flattening/hittest-iframe-while-style-changes-crash-expected.txt: Added.
  • fast/frames/flattening/hittest-iframe-while-style-changes-crash.html: Added.
3:42 AM Changeset in webkit [186435] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WTF

Merge r186151 - Errors in read() are not handled in WTF::cryptographicallyRandomValuesFromOS.
https://bugs.webkit.org/show_bug.cgi?id=146473

Patch by Keith Miller <keith_miller@apple.com> on 2015-06-30
Reviewed by Filip Pizlo.

We were not checking if errors occurred in WTF::cryptographicallyRandomValuesFromOS.
We now buffer the data until enough bits of entropy exist to fill the buffer
rather than crash. Additionally, added two crash functions so we can distinguish
between the two reasons why we crashed in traces.

  • wtf/OSRandomSource.cpp:

(WTF::crashUnableToOpenFD):
(WTF::crashUnableToReadFromFD):
(WTF::cryptographicallyRandomValuesFromOS):

3:33 AM Changeset in webkit [186434] by Carlos Garcia Campos
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.8

Merge r186049 - Crash: com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::CachedFrameBase::restore + 333
https://bugs.webkit.org/show_bug.cgi?id=146388
<rdar://problem/21567343>

Reviewed by Darin Adler.

Source/WebCore:

Pages that are currently loading are not supposed to go into the
PageCache. However, PageCache::canCache() only checks if the
FrameLoader's documentLoader is loading. If the subframe is in
provisional load stage, we would fail to detect that the frame is
actually loading because the FrameLoader active documentLoader would
be the provisional documentLoader, not the regular documentLoader.
Therefore, the page would get added to the PageCache and the frame
would keep loading while in the PageCache.

On http://www.audiusa.com/models, this is what was happening. It was
crashing because the subframe would finish loading while in the
PageCache, in which case we would fire the 'load' event and the
content 'load' event handler would then proceed to remove the iframe.
Upon restoring the PageCache entry, we would run into trouble as we
would have a CachedFrame whose Frame has been removed.

The solution proposed is to prevent page-caching if a subframe is in
provisional load stage.

Test: http/tests/navigation/page-cache-iframe-provisional-load.html

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::provisionalLoadKey):

  • page/DiagnosticLoggingKeys.h:

LayoutTests:

Add layout test to cover the case where a subframe is currently in
provisional load stage when checking if the page if page-cacheable.

The test also removes the iframe once loaded in order to cause a crash
if the frame were to finish loading while in the page cache.

  • http/tests/navigation/page-cache-iframe-provisional-load-expected.txt: Added.
  • http/tests/navigation/page-cache-iframe-provisional-load.html: Added.
  • http/tests/navigation/resources/page-cache-helper-slow.html: Added.
3:22 AM Changeset in webkit [186433] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185955 - Do not send touch events to the slider's thumb when it does not have a renderer.
https://bugs.webkit.org/show_bug.cgi?id=146307
rdar://problem/21539399

Reviewed by Simon Fraser.

Bail out early if either the touch target or the renderer() is null.

Source/WebCore:

Test: fast/events/touch/input-range-with-thumb-display-none-crash.html

  • html/shadow/SliderThumbElement.cpp:

(WebCore::findTouchWithIdentifier):
(WebCore::SliderThumbElement::handleTouchStart):
(WebCore::SliderThumbElement::handleTouchMove):
(WebCore::SliderThumbElement::handleTouchEndAndCancel):

LayoutTests:

  • fast/events/touch/input-range-with-thumb-display-none-crash-expected.txt: Added.
  • fast/events/touch/input-range-with-thumb-display-none-crash.html: Added.
3:20 AM Changeset in webkit [186432] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185948 - [GTK] Empty gtk-font-name setting causes WebProcess crash rendering pages
https://bugs.webkit.org/show_bug.cgi?id=146246

Reviewed by Sergio Villar Senin.

Return early if system font is empty.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::updateCachedSystemFontDescription):

3:13 AM Changeset in webkit [186431] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185927 - Null dereference in DocumentLoader::areAllLoadersPageCacheAcceptable()
https://bugs.webkit.org/show_bug.cgi?id=146286
<rdar://problem/21523788>

Reviewed by Sam Weinig.

Add null check for the Page in areAllLoadersPageCacheAcceptable()
to fix this top crasher until I can investigate how this can happen.

  • loader/DocumentLoader.cpp:

(WebCore::areAllLoadersPageCacheAcceptable):

3:11 AM Changeset in webkit [186430] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8

Merge r185916 - Subpixel rendering: roundToDevicePixel() snaps to wrong value.
https://bugs.webkit.org/show_bug.cgi?id=146273
rdar://problem/18509840

Reviewed by Simon Fraser.

Due to the floating point approximate representation, we can't always produce
the correct snap value. This patch addresses the issue by removing redundant kFixedPointDenominator multiplication
and by changing the rounding in roundToDevicePixel() from float to double.

Source/WebCore:

API test is added.

  • platform/LayoutUnit.h:

(WebCore::roundToDevicePixel):

Tools:

  • TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp:

(TestWebKitAPI::TEST):

2:44 AM Changeset in webkit [186429] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r185896 - [GTK] Crash performing drag-and-drop
https://bugs.webkit.org/show_bug.cgi?id=146267

Reviewed by Darin Adler.

Return early if gtk_get_current_event() returns null to avoid a crash. Note that this does
not fix drag-and-drop. Note also this prevents the web process from forcing the UI process
to crash by sending fake startDrag messages.

  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::startDrag):

2:43 AM Changeset in webkit [186428] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r185866 - [EFL][CustomProtocol] Do not add duplicated custom scheme
https://bugs.webkit.org/show_bug.cgi?id=146199

Reviewed by Carlos Garcia Campos.

WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol generates
a crash when duplicated scheme is registered on debug mode, or just registers it on release mode.
However application can register duplicate scheme by mistake or on purpose. Thus it would be good
if we don't register it instead of registering it or generating a crash when trying to regiseter
duplicated scheme.

EFL port want to allow user to change registered callback, thus EWK2ContextTest::ewk_context_url_scheme_register()
is modified to test it.

Test: ewk_context_url_scheme_register() in test_ewk2_context.cpp.

  • UIProcess/API/efl/ewk_context.h: Added a comment to replace registered callback.
  • UIProcess/API/efl/tests/test_ewk2_context.cpp:

(EWK2ContextTest::schemeRequestCallback1):
(EWK2ContextTest::schemeRequestCallback2):
(TEST_F):
(EWK2ContextTest::schemeRequestCallback): Deleted.

  • UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:

(WebKit::WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol):

2:17 AM Changeset in webkit [186427] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WTF

Merge r185863 - [WTF] Platform.h: use _ABI64 instead of _MIPS_SIM_ABI64 to determine MIPS N64
https://bugs.webkit.org/show_bug.cgi?id=145113

Patch by YunQiang Su <wzssyqa@gmail.com> on 2015-06-22
Reviewed by Csaba Osztrogonác.

  • wtf/Platform.h:
2:16 AM Changeset in webkit [186426] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185858 - ASSERT(!m_zOrderListsDirty) when mousing over web view with incremental rendering suppressed
https://bugs.webkit.org/show_bug.cgi?id=146225

Reviewed by Zalan Bujtas.

Update RenderLayer's z-order lists when hit testing. There's no guarantee that they've
been updated; this happens to work most of the time because painting updates them,
but if incremental rendering is suppressed, we may not have painted yet.

Easy to hit on webkit.org in MiniBrowser, but I wasn't able to make a reduced testcase.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::updateLayerListsIfNeeded): Flip the order of the tests, since checking
dirty bits is cheaper than calling isStackingContext().

2:13 AM Changeset in webkit [186425] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185838 - REGRESSION(r169105) Dangling renderer pointer in SelectionSubtreeRoot::SelectionSubtreeData.
https://bugs.webkit.org/show_bug.cgi?id=146116
rdar://problem/20959369

Reviewed by Brent Fulgham.

This patch ensures that we don't adjust the selection unless the visual selection still matches this subtree root.

When multiple selection roots are present we need to ensure that a RenderObject
only shows up in one of them.
RenderView::splitSelectionBetweenSubtrees(), as the name implies, splits the
selection and sets the selection range (start/end) on each selection root.
However, SelectionSubtreeRoot::adjustForVisibleSelection() later recomputes the range
based on visible selection and that could end up collecting renderers as selection start/end
from another selection subtree.
RenderObject's holds the last selection state (RenderObject::setSelectionState).
If we set a renderer first as "on selection border" and later "inside" using multiple selection roots,
we can't clean up selections properly when this object gets destroyed.
One of the roots ends up with a dangling RenderObject pointer.

Source/WebCore:

Test: fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees.html

  • rendering/SelectionSubtreeRoot.cpp:

(WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):

LayoutTests:

  • fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees-expected.txt: Added.
  • fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees.html: Added.
2:09 AM Changeset in webkit [186424] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r185824 - [WK2] ConnectionUnix should use FastMalloc to allocate on-heap resources
https://bugs.webkit.org/show_bug.cgi?id=146143

Reviewed by Carlos Garcia Campos.

IPC handling in Unix-specific IPC::Connection implementation should use
FastMalloc to allocate on-heap resources, instead of allocating via the
system allocator.

The AttachmentInfo class is marked as allocatable through FastMalloc.
That way it can be allocated through FastMalloc while still handled
through std::unique_ptr<>.

The char[] arrays in readBytesFromSocket() and Connection::sendOutgoingMessage()
are now handled through a MallocPtr<> object.

In Connection::sendOutgoingMessage(), both the AttachmentInfo[] and char[]
arrays are now only allocated if there are actual attachments contained
in the message. The code that's conditioned with a non-empty attachments
Vector is now also grouped together, in a single branch.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket):
(IPC::Connection::sendOutgoingMessage):

2:05 AM Changeset in webkit [186423] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185781 - Crash under WebCore::PageConsoleClient::addMessage attempting to log insecure content message in ImageDocument
https://bugs.webkit.org/show_bug.cgi?id=146096

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-19
Reviewed by Timothy Hatcher.

Was able to reproduce this using a user stylesheet with an http css font
on a pdf (ImageDocument) main document loaded over https. Was unable to
create a reliable test for this scenario.

  • page/PageConsoleClient.cpp:

(WebCore::getParserLocationForConsoleMessage):
The scriptableDocumentParser could be null, such as in an ImageDocument.

2:03 AM Changeset in webkit [186422] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r185770 - WebKit crash while loading nytimes at JavaScriptCore: JSC::ExecutableAllocator::allocate + 276
https://bugs.webkit.org/show_bug.cgi?id=146163
<rdar://problem/20392986>

Reviewed by Michael Saboff.

There's no good way to test this in our test harness because we don't
have a way to simulate executable memory pressure, and doing so would
cause the cases that still use JITCompilationMustSucceed to crash.

Instead, I tested by manually forcing all regexp JIT compilation to
fail and running the JavaScriptCore tests.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::compile): Allow compilation to fail. We can
fall back to the regexp interpreter if we need to.

2:02 AM Changeset in webkit [186421] by Carlos Garcia Campos
  • 8 edits
    8 adds in releases/WebKitGTK/webkit-2.8

Merge r185769 - Various assertion failures occur when executing script in the midst of DOM insertion
https://bugs.webkit.org/show_bug.cgi?id=132482

Reviewed by Darin Adler.

Source/WebCore:

Prior to this change, when an element containing a <script> child was inserted into a document, the script was
executed in ScriptElement::insertedInto(). That script can access nodes that follow it in the newly-inserted
hierarchy but are not yet fully inserted, leading to at least the following problems:

  • The script could remove a node that is not yet marked as in the document.
  • The script could remove a named <map> that has yet to be added to TreeScope::m_imageMapsByName.
  • The script could remove a form control that has yet to be added to FormController::m_formElementsWithState.

These scenarios all result in assertion failures. This change ensures that each node in the newly-inserted
hierarchy is fully inserted before executing any scripts.

Tests: fast/dom/element-removed-while-inserting-parent-crash.html

fast/dom/named-map-removed-while-inserting-parent-crash.html
fast/forms/form-control-removed-while-inserting-parent-crash.html
svg/dom/element-removed-while-inserting-parent-crash.html

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::shouldNotifySubtreeInsertions): Renamed from insertedInto().
Returned true in the case where insertedInto() would've called prepareScript().
(WebCore::ScriptElement::didNotifySubtreeInsertions): Called prepareScript().
(WebCore::ScriptElement::insertedInto): Renamed to shouldNotifySubtreeInsertions().

  • dom/ScriptElement.h:
  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::insertedInto): If shouldNotifySubtreeInsertions() is true, returned InsertionShouldCallDidNotifySubtreeInsertions.
Otherwise, returned InsertionDone.
(WebCore::HTMLScriptElement::didNotifySubtreeInsertions): Called ScriptElement::didNotifySubtreeInsertions().

  • html/HTMLScriptElement.h:
  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::insertedInto): Did the same as HTMLScriptElement::insertedInto().
(WebCore::SVGScriptElement::didNotifySubtreeInsertions): Called ScriptElement::didNotifySubtreeInsertions().

  • svg/SVGScriptElement.h:

LayoutTests:

Wrote named-map-removed-while-inserting-parent-crash.html by reducing the test case attached to bug 132482.
The remaining tests were taken from blink r132482.

  • fast/dom/element-removed-while-inserting-parent-crash-expected.txt: Added.
  • fast/dom/element-removed-while-inserting-parent-crash.html: Added.
  • fast/dom/named-map-removed-while-inserting-parent-crash-expected.txt: Added.
  • fast/dom/named-map-removed-while-inserting-parent-crash.html: Added.
  • fast/forms/form-control-removed-while-inserting-parent-crash-expected.txt: Added.
  • fast/forms/form-control-removed-while-inserting-parent-crash.html: Added.
  • svg/dom/element-removed-while-inserting-parent-crash-expected.txt: Added.
  • svg/dom/element-removed-while-inserting-parent-crash.html: Added.
1:59 AM Changeset in webkit [186420] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r185766 - All calls of ImageBuffer::create should null check the return value
https://bugs.webkit.org/show_bug.cgi?id=22132

Reviewed by Zalan Bujtas.

ImageBuffer::create returns nullptr for a number of reasons, and should be
expected to do so. We missed this check in a few places, resulting in
crashes on some systems. Likewise, ImageBuffer::copyImage may return nullptr
in normal use and should be checked.

Source/WebCore:

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern): Add nullptr check for create and copyImage. Remove
extra call to 'setImageObserver'.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::drawPattern): Add nullptr check for copyImage.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::drawPattern): Add nullptr checks for copyImage.

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware): Add nullptr check for copyImage.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::asImageBuffer): Add nullptr check for create.
(WebCore::FilterEffect::openCLImageToImageBuffer): Ditto.

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents): Add nullptr checks for create and copyImage.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer): Add nullptr check for copyImage.

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem): Add nullptr check
for copyImage.

1:51 AM Changeset in webkit [186419] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185719 - [CSS JIT][ARMv7] The pseudo element early exit trashes r6
https://bugs.webkit.org/show_bug.cgi?id=146078

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-18
Reviewed by Alex Christensen.

The pseudo element early failure runs before we generate the prologue.
The reason is that we can often exit immediately on function entry, before
we even touch any memory.

On ARMv7, we don't have many spare registers so the MacroAssembler
uses r6 as a scratch register and the client code is expected to save
it.

In the early failure case, we were not pushing r6 before using the MacroAssembler
and its value could be trashed.

This patch push the macro assembler registers separately from the prologue.

For restoring the registers, a new function generateFunctionEnding() encapsulate
the pop() and ret().

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::pushMacroAssemblerRegisters):
(WebCore::SelectorCompiler::SelectorCodeGenerator::popMacroAssemblerRegisters):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/StackAllocator.h:

(WebCore::StackAllocator::operator=):
We have a new case for the stack allocator: some stack changes are conditional
at compile time instead of runtime. This is easy to deal with by overriding
the stack if a path is not taken at compile time.

1:45 AM Changeset in webkit [186418] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185712 - Crash under WebCore::DOMWindow::dispatchMessageEventWithOriginCheck attempting to log console message
https://bugs.webkit.org/show_bug.cgi?id=146093

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-18
Reviewed by Timothy Hatcher.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
The console could be null so null check its use.

1:42 AM Changeset in webkit [186417] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185666 - REGRESSION (r173283-r173296): Amazon.com front page has no caret in the search field
https://bugs.webkit.org/show_bug.cgi?id=146073
rdar://problem/21022203

Reviewed by Tim Horton.

Source/WebCore:

Text controls (text inputs and textareas) need backing store even when empty, because
they need to be able to paint a caret.

Test: compositing/backing/form-controls-backing.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):

LayoutTests:

Dump layers for composited text inputs and textareas.

  • compositing/backing/form-controls-backing-expected.txt: Added.
  • compositing/backing/form-controls-backing.html: Added.
1:39 AM Changeset in webkit [186416] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WTF

Merge r185663 - SegmentedVector should waste less memory.
<https://webkit.org/b/146069>

Reviewed by Anders Carlsson.

We were wasting sizeof(Vector) on every segment in SegmentVector.
The segments were using inline capacity, and would never go beyond it,
so all the size/capacity/out-of-line-buffer metadata was useless.

Change the internal representation to Vector<T[SegmentSize]> instead.
This saves 16 bytes per segment, so lower SegmentSize -> bigger savings!

  • wtf/SegmentedVector.h:

(WTF::SegmentedVectorIterator::operator*):
(WTF::SegmentedVectorIterator::operator->):
(WTF::SegmentedVectorIterator::operator++):
(WTF::SegmentedVectorIterator::operator==):
(WTF::SegmentedVectorIterator::operator!=):
(WTF::SegmentedVectorIterator::SegmentedVectorIterator):
(WTF::SegmentedVector::at):
(WTF::SegmentedVector::append):
(WTF::SegmentedVector::removeLast):
(WTF::SegmentedVector::grow):
(WTF::SegmentedVector::begin):
(WTF::SegmentedVector::end):
(WTF::SegmentedVector::deleteAllSegments):
(WTF::SegmentedVector::ensureSegmentsFor):
(WTF::SegmentedVector::ensureSegment):
(WTF::SegmentedVector::allocateSegment):
(WTF::SegmentedVectorIterator::operator=): Deleted.
(WTF::SegmentedVector::SegmentedVector): Deleted.

1:19 AM Changeset in webkit [186415] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r185639 - Remove unused template parameter InlineCapacity from SegmentedVector.
<https://webkit.org/b/146044>

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

  • bytecode/ArrayProfile.h:
  • dfg/DFGCommonData.h:

Source/WTF:

  • wtf/SegmentedVector.h:

(WTF::SegmentedVectorIterator::operator=):
(WTF::SegmentedVectorIterator::SegmentedVectorIterator):
(WTF::SegmentedVector::at):

1:00 AM Changeset in webkit [186414] by youenn.fablet@crf.canon.fr
  • 12 edits in trunk

Source/WebCore:
[Streams API] Remove ReadableStreamReader.read() custom binding
https://bugs.webkit.org/show_bug.cgi?id=146643

Reviewed by Darin Adler.

Moved ReadableStreamReader.read handling from callbacks to promises.
Introduced DOMPromiseIteratorWithCallback for that purpose: it takes resolve() to resolve a promise with a not-ending iterator value,
resolveEnd() to resolve a promise with a terminating iterator value and reject().
Added template helper routine to convert typed values to JS iterator wrapping the value.
Removed ReadableStreamReader.read custom binding.

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp: Updated code to use DOMPromiseIteratorWithCallback API.

(WebCore::ReadableStream::releaseReader):
(WebCore::ReadableStream::changeStateToErrored):
(WebCore::ReadableStream::read):
(WebCore::ReadableStream::resolveReadCallback):

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::read):

  • Modules/streams/ReadableStreamReader.h:
  • Modules/streams/ReadableStreamReader.idl: Removed custom binding.
  • bindings/js/JSDOMBinding.h:

(WebCore::toJSIterator): create JS iterator from typed value.
(WebCore::toJSIteratorEnd): create JS end iterator.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::globalObject): Added globaObject getter and removed promise getter.

  • bindings/js/JSDOMPromise.h:

(WebCore::DOMPromiseIteratorWithCallback::DOMPromiseIteratorWithCallback):
(WebCore::Error>::resolve):
(WebCore::Error>::resolveEnd):
(WebCore::Error>::reject):

  • bindings/js/JSReadableStreamReaderCustom.cpp: Removed custom binding.

LayoutTests:
[Streams API] Remove ReadableStreamStream.read() custom binding
https://bugs.webkit.org/show_bug.cgi?id=146643

Reviewed by Darin Adler.

  • streams/reference-implementation/brand-checks-expected.txt:
12:55 AM Changeset in webkit [186413] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r185651 - [GTK] WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER doesn't disable memory cache when set before the web process is launched
https://bugs.webkit.org/show_bug.cgi?id=146053

Reviewed by Martin Robinson.

The cache is disabled in WebProcess::platformSetCacheModel() when
the cache model is CacheModelDocumentViewer, but it's enabled
again by WebProcess::setMemoryCacheDisabled() when
memoryCacheDisabled creation parameter is processed. We need to
make sure the cache model and memoryCacheDisabled parameters are consistent.

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Initialize
memoryCacheDisabled parameter to true if memory cache was
explicitly disabled or cache model is CacheModelDocumentViewer.

12:54 AM Changeset in webkit [186412] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185643 - WebProcess crashes after too many redirect error when there's an active NPAPI plugin
https://bugs.webkit.org/show_bug.cgi?id=146019

Reviewed by Darin Adler.

This happens with the GTK+ port after a navigation action ends up
in an infinite redirection and the ResourceHandle fails with too
many redirections error. I should actually happen after any error
is reported by the ResourceHnalder before the load is
committed. But tt only happens if there's an active NPAPI
plugin. The problem is that FrameLoader::receivedMainResourceError()
is called recursively because DocumentLoader::stopLoading() ends up
calling mainReceivedError() that calls FrameLoader::receivedMainResourceError()
again. DocumentLoader::stopLoading() checks if the document is
still loading, which can happen if the main resource is loading,
if there's any subresource loading or if there's a plugin
loading. So, in case of being loading, those cases are handled
individually to cancel the main resource, or set an error in the
document loader and cancel subresources and plugins, except for
this case of plugins, that mainReceivedError is called instead of
setting cancelled error on the document loader.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading): If the document is still
loading because there are active plugins, set the cancelled error
on the document instead of calling mainReceivedError again.

12:30 AM Changeset in webkit [186411] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185572 - RootInlineBox::m_lineBreakObj becomes invalid when a child renderer is removed and the line does not get marked dirty.
https://bugs.webkit.org/show_bug.cgi?id=145988
rdar://problem/20959137

Reviewed by David Hyatt.

This patch ensures that we find the right first inline box so that we can dirty the
the appropriate line boxes.
With marking the right line boxes dirty, now we can update RootInlineBox::m_lineBreakObj at the next layout.

Source/WebCore:

Test: fast/inline/crash-when-child-renderer-is-removed-and-line-stays-clean.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::culledInlineFirstLineBox):
(WebCore::RenderInline::culledInlineLastLineBox):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::setLineBreakInfo): Deleted. Remove misleading assert and comment.

LayoutTests:

  • fast/inline/crash-when-child-renderer-is-removed-and-line-stays-clean-expected.txt: Added.
  • fast/inline/crash-when-child-renderer-is-removed-and-line-stays-clean.html: Added.
12:28 AM Changeset in webkit [186410] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r185542 - [WK2] API::Navigation objects are leaked on history navigation to HistoryItems in PageCache
https://bugs.webkit.org/show_bug.cgi?id=145948

Reviewed by Darin Adler.

Source/WebCore:

API::Navigation objects were leaked on history navigation to
HistoryItems in PageCache. In such case, we would create 2 Navigation
objects instead of 1 and the first one would be leaked. The reason
we create the second one is because we fail to pass along the
navigationID from the UIProcess to the WebProcess and then back to the
UIProcess. On the IPC back to the UIProcess, the navigationID ends up
being 0 so the UIProcess creates a new Navigation object, thinking that
the load was triggered by the WebContent process.

We now pass along the navigationID, even if the HistoryItem is in the
PageCache and we end up reusing the cached DocumentLoader, instead of
creating a new one. A new updateCachedDocumentLoader() delegate is
added to the FrameLoaderClient, similarly to the pre-existing
createDocumentLoader() but for the case where the DocumentLoader gets
reused.

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoaderClient.h:

Source/WebKit/mac:

Add empty implementation for new
FrameLoaderClient::updatedCachedDocumentLoader().

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit/win:

Add empty implementation for new
FrameLoaderClient::updatedCachedDocumentLoader().

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

API::Navigation objects were leaked on history navigation to
HistoryItems in PageCache. In such case, we would create 2 Navigation
objects instead of 1 and the first one would be leaked. The reason
we create the second one is because we fail to pass along the
navigationID from the UIProcess to the WebProcess and then back to the
UIProcess. On the IPC back to the UIProcess, the navigationID ends up
being 0 so the UIProcess creates a new Navigation object, thinking that
the load was triggered by the WebContent process.

We now pass along the navigationID, even if the HistoryItem is in the
PageCache and we end up reusing the cached DocumentLoader, instead of
creating a new one. A new updateCachedDocumentLoader() delegate is
added to the FrameLoaderClient, similarly to the pre-existing
createDocumentLoader() but for the case where the DocumentLoader gets
reused.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::updateCachedDocumentLoader):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goForward):
(WebKit::WebPage::goBack):
(WebKit::WebPage::goToBackForwardItem):
(WebKit::WebPage::updateCachedDocumentLoader):

  • WebProcess/WebPage/WebPage.h:
12:21 AM Changeset in webkit [186409] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.8

Merge r185484 - Do not crash when the descendant frame tree is destroyed during layout.
https://bugs.webkit.org/show_bug.cgi?id=144540
rdar://problem/20793184

Reviewed by Andreas Kling.

Source/WebCore:

Widget::setFrameRect(), through WebHTMLView layout, could trigger a style recalc, which in turn
could initiate an onBeforeLoad callback.
If javascript happens to destroy the current iframe in the onBeforeLoad callback, we lose the descendant
render tree, including the child FrameView (the iframe element's view). However the RenderIFrame
object stays protected until after the layout is done. (see protectRenderWidgetUntilLayoutIsDone())

Climbing back on the callstack, we need to make sure that

  1. the root widget of the descendant render tree (FrameView) stays valid as long as it is needed.
  2. RenderFrameBase::layoutWithFlattening() can handle the case when the associated widget (child FrameView) is set to nullptr.

(see RenderWidget::willBeDestroyed() -> setWidget(nullptr))

(and later, when layout is finished this (RenderIFrame) object gets destroyed too.)

Covered by fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

  • page/FrameView.cpp:

(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::updateEmbeddedObject):
(WebCore::FrameView::updateWidgetPositions):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::setFrameRect):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::setFrameRect):

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::layoutWithFlattening):
(WebCore::RenderFrameBase::childRenderView):
(WebCore::RenderFrameBase::peformLayoutWithFlattening):

  • rendering/RenderFrameBase.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::updateWidgetPosition):

  • rendering/RenderWidget.h:

LayoutTests:

Unskip fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

12:07 AM Changeset in webkit [186408] by Carlos Garcia Campos
  • 6 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r185435 - ASSERT_WITH_SECURITY_IMPLICATION in WebCore::DocumentOrderedMap::getElementById
https://bugs.webkit.org/show_bug.cgi?id=145857
<rdar://problem/16798440>

Reviewed by Darin Adler.

Source/WebCore:

Make sure Node::insertedInto() gets called on the inserted node and its
descendants after its insertion into the tree but *before*
ContainerNode::childrenChanged() is called on the parent node. This is
needed so that the descendants know they've been inserted into the tree
(and their InDocumentFlag flag gets set) before the parent node does
anything with them in childrenChanged().

In the case of <rdar://problem/16798440>, executing HTMLScriptElement's
childrenChanged() after appending a child to a script element was causing
the script to be executed. The script would call getElementBy() which
would traverse the DOM tree and find a matching Element in the newly
inserted subtree. However, the matching Element's InDocumentFlag flag was
not set yet because the element's insertedInto() method has not been called
yet at this point. This would cause us to hit an assertion as
DocumentOrderedMap::getElementById() is only supposed to return elements
that are in a Document.

This patch is based on Blink r178976 by <esprehn@chromium.org>:
https://src.chromium.org/viewvc/blink?view=rev&revision=178976

Tests: fast/dom/script-getElementById-during-insertion.html

fast/dom/script-remove-child-id-map.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::notifyChildInserted):
(WebCore::ContainerNode::notifyChildRemoved):
(WebCore::ContainerNode::removeChildren):
(WebCore::ContainerNode::parserInsertBefore): Deleted.
(WebCore::ContainerNode::removeChild): Deleted.
(WebCore::ContainerNode::parserRemoveChild): Deleted.
(WebCore::ContainerNode::parserAppendChild): Deleted.
(WebCore::ContainerNode::childrenChanged): Deleted.
(WebCore::ContainerNode::setAttributeEventListener): Deleted.
(WebCore::ContainerNode::querySelector): Deleted.

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
(WebCore::ChildNodeInsertionNotifier::notify):
(WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument): Deleted.

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):

LayoutTests:

Add layout tests covering different crashes caused by the same bug.

  • fast/dom/script-getElementById-during-insertion-expected.txt: Added.
  • fast/dom/script-getElementById-during-insertion.html: Added.

Reduction test case for <rdar://problem/16798440>.

  • fast/dom/script-remove-child-id-map-expected.txt: Added.
  • fast/dom/script-remove-child-id-map.html: Added.

Test imported from Blink r178976.

12:04 AM Changeset in webkit [186407] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185423 - Drop unused argument for Node::didNotifySubtreeInsertions()
https://bugs.webkit.org/show_bug.cgi?id=145845

Reviewed by Andreas Kling.

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notify):

  • dom/Node.h:

(WebCore::Node::didNotifySubtreeInsertions):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions):

  • html/HTMLFrameElementBase.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::didNotifySubtreeInsertions):

  • svg/SVGFEImageElement.h:
  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::didNotifySubtreeInsertions):

  • svg/SVGMPathElement.h:
  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::didNotifySubtreeInsertions):

  • svg/SVGTRefElement.h:
  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::didNotifySubtreeInsertions):

  • svg/SVGTextPathElement.h:
  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::didNotifySubtreeInsertions):

  • svg/animation/SVGSMILElement.h:

Jul 6, 2015:

11:38 PM Changeset in webkit [186406] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185434 - [Web Timing] Fix flaky test.
https://bugs.webkit.org/show_bug.cgi?id=145846

Patch by Alex Christensen <achristensen@webkit.org> on 2015-06-10
Reviewed by Alexey Proskuryakov.

The timing data is gathered in ResourceHandle::getConnectionTimingData as
millisecond deltas from the fetch start time, not the navigation start time.
The difference between navigation and fetch start time is usually so small that
it only caused one flaky test, but this should fix that flakiness. This patch
corrects how the millisecond deltas are used.

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::domainLookupStart):
(WebCore::PerformanceTiming::domainLookupEnd):
(WebCore::PerformanceTiming::connectStart):
(WebCore::PerformanceTiming::connectEnd):
(WebCore::PerformanceTiming::secureConnectionStart):
(WebCore::PerformanceTiming::requestStart):
(WebCore::PerformanceTiming::responseStart):
(WebCore::PerformanceTiming::responseEnd):
(WebCore::PerformanceTiming::documentLoadTiming):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToFetchStart):
(WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Deleted.

  • page/PerformanceTiming.h:
11:35 PM Changeset in webkit [186405] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185403 - Protect FrameView from being destroyed in Document::recalcStyle()
https://bugs.webkit.org/show_bug.cgi?id=143033
rdar://problem/20326871

Reviewed by Andreas Kling.

This patch ensures that FrameView stays valid in Document::recalcStyle().
It follows the defensive pattern we use to deal with the refcounted FrameView (see EventDispatcher::dispatchEvent)

When the iframe destroys itself in the onBeforeLoad callback (as the result of
PostResolutionCallbackDisabler -> HTMLObjectElement::updateWidget -> guardedDispatchBeforeLoadEvent),
we detach the frame and release the FrameView. However Document::recalcStyle() expects
the FrameView to stay valid.

Covered by fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

11:33 PM Changeset in webkit [186404] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185396 - GraphicsContext state stack wasting lots of memory when empty.
<https://webkit.org/b/145817>

Reviewed by Geoffrey Garen.

Give the GraphicsContextState stack an inline capacity of 1, and make sure
to free any heap-allocated backing store when the stack goes empty.

The 1 is because HTMLCanvasElement keeps one "save" on the underlying
GraphicsContext at all times, and this prevents those canvases from always
sitting on an empty stack with 16 capacity.

This saves ~520 kB on cnet.com video pages.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::restore):

  • platform/graphics/GraphicsContext.h:
11:27 PM Changeset in webkit [186403] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185395 - SVG Fragment is not rendered if it is the css background image of an HTML element
https://bugs.webkit.org/show_bug.cgi?id=91790

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-09
Reviewed by Darin Adler.

Source/WebCore:

To show an SVG fragment, the SVGImage has to scrollToFragment() using
the resource url. The changes http://trac.webkit.org/changeset/164804
and http://trac.webkit.org/changeset/164983 set the url of SVGImage to
to be used later in SVGImage::draw(). The problem is the SVGImage url
is only set when it is the src of an <img> tag. We did not do the same
thing when the SVGImage is the css background image of an HTML element.

The fix is to set the url of the SVGImage always when it's created by
the CachedImage. The CachedImage must have a valid url when the SVGImage
is created.

Test: svg/css/svg-resource-fragment-identifier-background.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::load):
(WebCore::CachedImage::checkShouldPaintBrokenImage):
Replace the calls resourceRequest().url() and m_resourceRequest.url() by
calling url() since they are all the same.

(WebCore::CachedImage::createImage): Pass the resource url to SVGImage
and change ImageObserver& by ImageObserver*, since null is not legal.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::SVGImage):

  • svg/graphics/SVGImage.h: Add a url parameter to SVGImage constructor.
  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::findImageForRenderer): Add a new helper function.

(WebCore::SVGImageCache::imageSizeForRenderer):
(WebCore::SVGImageCache::imageForRenderer): Code clean up.

  • svg/graphics/SVGImageCache.h: Make imageForRenderer() const.
  • svg/graphics/SVGImageForContainer.cpp: Remove unneeded header file.

LayoutTests:

  • svg/css/svg-resource-fragment-identifier-background-expected.html: Added.
  • svg/css/svg-resource-fragment-identifier-background.html: Added.

Ensure that the SVG fragment is displayed correctly when it's used as a
css background image.

11:21 PM Changeset in webkit [186402] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185392 - feComposite filter does not clip the paint rect to its effect rect when the operator is 'in' or 'atop'
https://bugs.webkit.org/show_bug.cgi?id=137856

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-09
Reviewed by Darin Adler.

Source/WebCore:

There was bug in calculating the absolutePaintRect of the feComposite filter
when the operator is equal to 'in' or 'atop'. The absolutePaintRect was set
to the absolutePaintRect of the background FilterEffect which is correct.
What was missing is clipping this rectangle to the maxEffectRect of the
filter which we do for other operators.

Tests: svg/filters/feComposite-background-rect-control-operators.svg

  • platform/graphics/IntRect.h:

(WebCore::operator-=):
(WebCore::operator-): Add new operators to IntRect.

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::determineAbsolutePaintRect): Make sure the filter
absolutePaintRect is clipped to maxEffectRect for all operators.

(WebCore::FEComposite::platformApplySoftware): Code clean-up.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::determineAbsolutePaintRect): Move the clipping
part to a separate function.

(WebCore::FilterEffect::clipAbsolutePaintRect): Clip the absolutePaintRect
to the maxEffectRect of the filter.

  • platform/graphics/filters/FilterEffect.h:

LayoutTests:

  • svg/filters/feComposite-background-rect-control-operators-expected.svg: Added.
  • svg/filters/feComposite-background-rect-control-operators.svg: Added.

Ensure the painting rect of the feComposite filter with operator 'in' or
'atop' is clipped to its bounding rectangle

10:56 PM Changeset in webkit [186401] by Carlos Garcia Campos
  • 7 edits
    3 adds
    2 deletes in releases/WebKitGTK/webkit-2.8

Merge r185310 - REGRESSION (r181720): Unnecessary layout triggered any time animated GIF advances to a new frame
https://bugs.webkit.org/show_bug.cgi?id=145733

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/images/animated-gif-no-layout.html

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::styleDidChange): Correctly pass ImageSizeChangeNone in cases
where we don't need to report a change in intrinsic size that happened outside the
repaintOrMarkForLayout function.
(WebCore::RenderImage::repaintOrMarkForLayout): Move work that should only be done
when size changed inside the if statement.

  • testing/Internals.cpp:

(WebCore::Internals::layoutCount): Added.

  • testing/Internals.h: Added layoutCount.
  • testing/Internals.idl: Ditto.

LayoutTests:

old one I am fixing and the one new one I am adding) because they don't yet work
under DumpRenderTree.

  • fast/images/animated-gif-no-layout-expected.html: Added.
  • fast/images/animated-gif-no-layout.html: Added.
  • fast/images/gif-loop-count-expected.html: Added. This test was worthless as a render

tree dump test, and only valuable as a pixel test. And that hid the fact that it was
failing under WebKit1. Changing it to a reference test makes it a valuable test again.

  • fast/images/gif-loop-count-expected.png: Removed.
  • fast/images/gif-loop-count-expected.txt: Removed.
  • platform/wk2/TestExpectations: Expect successes on these two tests.
10:37 PM Changeset in webkit [186400] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185287 - Typing is slow in Gmail on iPads
https://bugs.webkit.org/show_bug.cgi?id=145686

Reviewed by Enrica Casucci.

The bug was caused by nextCandidate and nextVisuallyDistinctCandidate traversing through each character
in a text node without a renderer. Skip any node that doesn't have a renderer in both of those functions
and corresponding previous* functions.

It's fine to skip unrendered nodes in PositionIterator because only other clients of PositionIterator
are Position::upstream and Position::downstream and they don't care about un-rendered nodes either.

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::increment):
(WebCore::PositionIterator::decrement):

  • editing/htmlediting.cpp:

(WebCore::nextVisuallyDistinctCandidate):
(WebCore::previousVisuallyDistinctCandidate):

10:04 PM Changeset in webkit [186399] by Alan Bujtas
  • 4 edits in trunk

REGRESSION: Slider thumb does not render properly (image tests with <input type="range">)
https://bugs.webkit.org/show_bug.cgi?id=146669
rdar://problem/21677831

Reviewed by Simon Fraser.

Draw NSSliderCell's knob only when slider's thumb paint is requested.

Covered by existing tests.

Source/WebCore:

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSliderThumb):

LayoutTests:

  • platform/mac/TestExpectations: Unskip slider tests.
9:27 PM Changeset in webkit [186398] by Csaba Osztrogonác
  • 4 edits in trunk/Source/WebCore

Move shouldIgnoreAttributeCase inline function to Element.h
https://bugs.webkit.org/show_bug.cgi?id=146588

Reviewed by Andreas Kling.

  • dom/Element.cpp:

(WebCore::shouldIgnoreAttributeCase): Deleted.

  • dom/Element.h:

(WebCore::shouldIgnoreAttributeCase):

  • dom/NamedNodeMap.cpp:

(WebCore::shouldIgnoreAttributeCase): Deleted.

9:20 PM Changeset in webkit [186397] by Csaba Osztrogonác
  • 9 edits
    1 delete in trunk/Source/JavaScriptCore

Remove the unused HeapBlock.h
https://bugs.webkit.org/show_bug.cgi?id=146580

Reviewed by Andreas Kling.

  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/CopiedBlock.h:
  • heap/CopiedSpace.h:
  • heap/CopiedSpaceInlines.h:
  • heap/HandleBlock.h:
  • heap/HeapBlock.h: Removed.
  • heap/MarkedBlock.h:
8:40 PM Changeset in webkit [186396] by Brent Fulgham
  • 10 edits in trunk/Source

Ensure media playback is stopped during page close
https://bugs.webkit.org/show_bug.cgi?id=146554
<rdar://problem/18033944>

Reviewed by Brady Eidson.

Source/WebCore:

  • Modules/webaudio/AudioContext.cpp:

(WebCore::WebAudio::hostingDocument): Added.

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::hostingDocument): Added.

  • dom/Document.cpp:

(WebCore::Document::~Document): Call new 'stopAllMediaPlaybackForDocument' at destruction time.

  • platform/audio/PlatformMediaSession.h:

Made PlatformMediaSessionManager a friend so it can access the protected 'client' accessor.
Updated PlatformMediaSessionClient to require clients to have a "hostingDocument" member.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForDocument): Added. Only pauses
playback on elements that match the provided document.
(WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForProcess): Added. Pauses playback
on all elements in the current process.

  • platform/audio/PlatformMediaSessionManager.h:

Source/WebKit2:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didClose): Make sure to clean up any running media sessions when
the process is being shut down.

8:12 PM Changeset in webkit [186395] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Isolated worlds should respect Content Security Policy; User Agent Shadow DOM
should be exempt from Content Security Policy
https://bugs.webkit.org/show_bug.cgi?id=144830
<rdar://problem/18860261>

Inadvertently omitted argument overrideContentSecurityPolicy in calls to ContentSecurityPolicy::allowEval()
that explicitly specified a report status. And the report status, which is an enum, was being implicitly
converted to bool.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::initScript):

  • page/DOMSecurityPolicy.cpp:

(WebCore::DOMSecurityPolicy::allowsEval):

6:42 PM Changeset in webkit [186394] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Unreviewed, rolling out r186385.
https://bugs.webkit.org/show_bug.cgi?id=146668

crashes 3 webaudio tests in debug builds (Requested by
alexchristensen on #webkit).

Reverted changeset:

"Ensure media playback is stopped during page close"
https://bugs.webkit.org/show_bug.cgi?id=146554
http://trac.webkit.org/changeset/186385

6:37 PM Changeset in webkit [186393] by akling@apple.com
  • 3 edits
    2 adds in trunk

Crash when setting text direction via MakeTextWritingDirection* editing commands.
<https://webkit.org/b/146665>
<rdar://problem/20835477>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix two buggy clients of enclosingBlock(node) that would fail if the returned
element is the same as the node passed in.

Test: editing/style/change-text-direction-crash.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):

LayoutTests:

Add a test that covers some very simple MakeTextWritingDirection* command usage.

  • editing/style/change-text-direction-crash-expected.txt: Added.
  • editing/style/change-text-direction-crash.html: Added.
6:16 PM Changeset in webkit [186392] by Simon Fraser
  • 33 edits
    5 deletes in trunk/Source/WebCore

Revert use of SVG <mask> elements for -webkit-mask-image (r176798, r177494)
https://bugs.webkit.org/show_bug.cgi?id=146653

Reviewed by Dean Jackson.

Fixes rdar://problem/21435233.

r177494 caused a number of regressions (bugs 141857, 146509, 146561), added new layering violations, and
was not being maintained, so revert it.

This patch reverts r176798.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSValue.cpp:

(WebCore::CSSValue::cssText): Deleted.
(WebCore::CSSValue::destroy): Deleted.

  • css/CSSValue.h:

(WebCore::CSSValue::isWebKitCSSResourceValue): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::maskImageValueFromIterator): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::maskImagesWithPendingSVGDocuments): Deleted.

  • css/WebKitCSSResourceValue.cpp: Removed.
  • css/WebKitCSSResourceValue.h: Removed.
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::addCachedResource): Deleted.

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::finishLoading):
(WebCore::CachedSVGDocument::CachedSVGDocument): Deleted.

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedSVGDocumentReference.cpp:

(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::load):

  • loader/cache/CachedSVGDocumentReference.h:
  • page/FrameView.cpp:

(WebCore::FrameView::containsSVGDocument): Deleted.

  • page/FrameView.h:
  • page/Page.cpp:

(WebCore::Page::createPageFromBuffer): Deleted.

  • page/Page.h:
  • platform/ScrollView.h:

(WebCore::ScrollView::containsSVGDocument): Deleted.

  • platform/graphics/MaskImageOperation.cpp: Removed.
  • platform/graphics/MaskImageOperation.h: Removed.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerFilterInfo.cpp:
  • rendering/RenderLayerFilterInfo.h:
  • rendering/RenderLayerMaskImageInfo.h: Removed.
  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::operator==):
(WebCore::FillLayer::cullEmptyLayers):
(WebCore::layerImagesIdentical):
(WebCore::FillLayer::FillLayer): Deleted.
(WebCore::FillLayer::operator=): Deleted.
(WebCore::FillLayer::hasNonEmptyMaskImage): Deleted.
(WebCore::FillLayer::imagesAreLoaded): Deleted.

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::maskImage): Deleted.
(WebCore::FillLayer::imageOrMaskImage): Deleted.
(WebCore::FillLayer::setMaskImage): Deleted.
(WebCore::FillLayer::clearMaskImage): Deleted.
(WebCore::FillLayer::hasMaskImage): Deleted.

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::applySVGMask): Deleted.
(WebCore::RenderSVGResourceMasker::drawMaskForRenderer): Deleted.

  • rendering/svg/RenderSVGResourceMasker.h:
  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::createElementRenderer):
(WebCore::SVGMaskElement::addClientRenderLayer): Deleted.
(WebCore::SVGMaskElement::removeClientRenderLayer): Deleted.

  • svg/SVGMaskElement.h:
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateExternalDocument):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

6:15 PM Changeset in webkit [186391] by Simon Fraser
  • 27 edits
    25 deletes in trunk

Revert use of SVG <mask> elements for -webkit-mask-image (r176798, r177494, r186180)
https://bugs.webkit.org/show_bug.cgi?id=146653

Reviewed by Dean Jackson.

Fixes rdar://problem/21435233.

r177494 caused a number of regressions (bugs 141857, 146509, 146561), added new layering violations, and
was not being maintained, so revert it.

This patch reverts r177494.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::parseMaskImage): Deleted.

  • css/CSSParser.h:
  • css/CSSPropertyNames.in:
  • css/CSSValue.h:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertMaskImageOperations): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::loadPendingImages):
(WebCore::StyleResolver::adjustStyleForMaskImages): Deleted.
(WebCore::StyleResolver::applyMatchedProperties): Deleted.

  • css/StyleResolver.h:
  • page/FrameView.cpp:

(WebCore::FrameView::containsSVGDocument):

  • page/FrameView.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::blendFunc): Deleted.
(WebCore::MaskImagePropertyWrapper::MaskImagePropertyWrapper): Deleted.
(WebCore::MaskImagePropertyWrapper::equals): Deleted.

  • platform/ScrollView.h:

(WebCore::ScrollView::containsSVGDocument):

  • platform/graphics/MaskImageOperation.cpp:

(WebCore::MaskImageOperation::~MaskImageOperation): Deleted.
(WebCore::MaskImageOperation::operator==): Deleted.

  • platform/graphics/MaskImageOperation.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::maskClipRect):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::updateFillImages):
(WebCore::RenderElement::~RenderElement): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::~RenderLayer): Deleted.
(WebCore::RenderLayer::calculateClipRects): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerMaskImageInfo.cpp: Removed.
  • rendering/style/FillLayer.h:

(WebCore::FillLayer::image):
(WebCore::FillLayer::imageOrMaskImage):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setMaskImage): Deleted.

  • rendering/style/RenderStyle.h:

LayoutTests:

  • css3/masking/mask-base64-expected.html: Removed.
  • css3/masking/mask-base64.html: Removed.
  • css3/masking/mask-multiple-values-expected.html: Removed.
  • css3/masking/mask-multiple-values.html: Removed.
  • css3/masking/mask-repeat-space-padding-expected.html:
  • css3/masking/mask-repeat-space-padding.html:
  • css3/masking/mask-svg-clipped-fragmentId-expected.html: Removed.
  • css3/masking/mask-svg-clipped-fragmentId.html: Removed.
  • css3/masking/mask-svg-fragmentId-expected.html: Removed.
  • css3/masking/mask-svg-fragmentId.html: Removed.
  • css3/masking/mask-svg-inline-fragmentId-expected.html: Removed.
  • css3/masking/mask-svg-inline-fragmentId.html: Removed.
  • css3/masking/mask-svg-inline-invalid-fragmentId-expected.html: Removed.
  • css3/masking/mask-svg-inline-invalid-fragmentId.html: Removed.
  • css3/masking/mask-svg-invalid-fragmentId-expected.html: Removed.
  • css3/masking/mask-svg-invalid-fragmentId.html: Removed.
  • css3/masking/mask-svg-no-fragmentId-expected.html: Removed.
  • css3/masking/mask-svg-no-fragmentId-tiled-expected.html: Removed.
  • css3/masking/mask-svg-no-fragmentId-tiled.html: Removed.
  • css3/masking/mask-svg-no-fragmentId.html: Removed.
  • css3/masking/mask-svg-script-entire-svg-to-mask-expected.html: Removed.
  • css3/masking/mask-svg-script-entire-svg-to-mask.html: Removed.
  • css3/masking/mask-svg-script-mask-to-entire-svg-expected.html: Removed.
  • css3/masking/mask-svg-script-mask-to-entire-svg.html: Removed.
  • css3/masking/mask-svg-script-mask-to-none-expected.html: Removed.
  • css3/masking/mask-svg-script-mask-to-none.html: Removed.
  • css3/masking/mask-svg-script-mask-to-png-expected.html: Removed.
  • css3/masking/mask-svg-script-mask-to-png.html: Removed.
  • css3/masking/mask-svg-script-none-to-mask-expected.html: Removed.
  • css3/masking/mask-svg-script-none-to-mask.html: Removed.
  • css3/masking/mask-svg-script-none-to-png-expected.html: Removed.
  • css3/masking/mask-svg-script-none-to-png.html: Removed.
  • css3/masking/mask-svg-script-png-to-mask-expected.html: Removed.
  • css3/masking/mask-svg-script-png-to-mask.html: Removed.
  • css3/masking/mask-svg-script-png-to-none-expected.html: Removed.
  • css3/masking/mask-svg-script-png-to-none.html: Removed.
  • css3/masking/resources/masks.svg: Removed.
6:11 PM Changeset in webkit [186390] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Revert use of SVG <mask> elements for -webkit-mask-image (r176798, r177494, r186180)
https://bugs.webkit.org/show_bug.cgi?id=146653

Fixes rdar://problem/21435233.

This patch reverts r186180, but keeps the layout test.

This feature caused a number of regressions (bugs 141857, 146509, 146561), added new layering violations, and
was not being maintained, so revert it.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource): Deleted.

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::acceptOverride): Deleted.
(WebCore::CachedResourceRequest::setAcceptOverride): Deleted.

  • loader/cache/CachedSVGDocumentReference.cpp:

(WebCore::CachedSVGDocumentReference::load): Deleted.

  • loader/cache/CachedSVGDocumentReference.h:

(WebCore::CachedSVGDocumentReference::setAcceptsAnyImageType): Deleted.

  • platform/graphics/MaskImageOperation.cpp:

(WebCore::MaskImageOperation::ensureCachedSVGDocumentReference):
(WebCore::MaskImageOperation::notifyFinished):

6:05 PM Changeset in webkit [186389] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the Windows build following <https://trac.webkit.org/changeset/186388>
(https://bugs.webkit.org/show_bug.cgi?id=144830)

As we for for Mac in WebCoreAVFResourceLoader::startLoading(), instantiate ResourceLoaderOptions
with ContentSecurityPolicyImposition::DoPolicyCheck.

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::startLoading):

5:42 PM Changeset in webkit [186388] by dbates@webkit.org
  • 59 edits
    2 moves
    59 adds in trunk

Isolated worlds should respect Content Security Policy; User Agent Shadow DOM
should be exempt from Content Security Policy
https://bugs.webkit.org/show_bug.cgi?id=144830
<rdar://problem/18860261>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make scripts that run in an isolated world be subject to the Content Security Policy (CSP) of the page
and exempt features implemented using a user agent shadow DOM. As a side effect of this change,
Safari Content Extensions will respect the CSP policy of the page when loading subresources (e.g. an image).

Tests: http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html

http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-background.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-cursor.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-filter-on-image.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-webkit-image-set.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-embed-plugin.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-external-script.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-iframe.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-after-redirect.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-script.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-style.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-stylesheet.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-plugin.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-feimage-element.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-font.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-use-element.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-track.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/block-loading-user-agent-image-from-non-user-agent-content.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3.html
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html
http/tests/security/isolatedWorld/image-load-should-not-bypass-main-world-csp.html

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): Pass shouldBypassMainWorldContentSecurityPolicy to ContentSecurityPolicy::allowConnectToSource().

  • css/CSSCanvasValue.h:

(WebCore::CSSCanvasValue::loadSubimages): Modified to take argument ResourceLoaderOptions (unused).

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::fixedSize): Explicitly instantiate default ResourceLoaderOptions and pass
pass it when requesting a cached image. Added FIXME comment to skip Content Security Policy check when
the cross fade is applied to an element in a user agent shadow tree.
(WebCore::CSSCrossfadeValue::loadSubimages): Take a ResourceLoaderOptions as an argument and passes it
as appropriate.
(WebCore::CSSCrossfadeValue::image): Explicitly instantiate default ResourceLoaderOptions and pass it
when requesting a cached image. Added FIXME comment to skip Content Security Policy check when the cross
fade is applied to an element in a user agent shadow tree.

  • css/CSSCrossfadeValue.h:
  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::cachedImage): Take a ResourceLoaderOptions as an argument and passes it
as appropriate.

  • css/CSSCursorImageValue.h:
  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::fixedSize): Explicitly instantiate default ResourceLoaderOptions and pass
pass it when requesting a cached image. Added FIXME comment to skip Content Security Policy check when
the cross fade is applied to an element in a user agent shadow tree.
(WebCore::CSSFilterImageValue::loadSubimages): Take a ResourceLoaderOptions as an argument and passes it
as appropriate.
(WebCore::CSSFilterImageValue::loadSubimages): Explicitly instantiate default ResourceLoaderOptions and pass
pass it when requesting a cached image. Added FIXME comment to skip Content Security Policy check when
the cross fade is applied to an element in a user agent shadow tree.
(WebCore::CSSFilterImageValue::image):

  • css/CSSFilterImageValue.h:
  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::cachedFont): Take a boolean, isInitiatingElementInUserAgentShadowTree,
so as to determine the appropriate CSP imposition. In particular, we skip the CSP check when the initiating element
(e.g. SVG font-face element) is in a user agent shadow tree.

  • css/CSSFontFaceSrcValue.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule): Take a boolean, isInitiatingElementInUserAgentShadowTree, and passes
it as appropriate.

  • css/CSSFontSelector.h:
  • css/CSSGradientValue.h:

(WebCore::CSSGradientValue::loadSubimages): Take a ResourceLoaderOptions as an argument and passes it
as appropriate.

  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::loadSubimages): Ditto.
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue): Ditto.

  • css/CSSImageGeneratorValue.h:
  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet): Deleted.

  • css/CSSImageSetValue.h:
  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::cachedImage): Deleted.

  • css/CSSImageValue.h:
  • css/RuleSet.cpp:

(WebCore::RuleSet::addChildRules): Take a boolean, isInitiatingElementInUserAgentShadowTree, and passes
it as appropriate.
(WebCore::RuleSet::addRulesFromSheet): Added FIXME comment to skip Content Security Policy check when
when stylesheet is in a user agent shadow tree.

  • css/RuleSet.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver): Determine whether the SVG font-face element is in a user agent shadow tree
and pass the appropriate value when calling CSSFontSelector::addFontFaceRule(). Also, modernized code; used C++11 range
-based for-loop instead of const_iterator idiom.
(WebCore::StyleResolver::loadPendingSVGDocuments): Skip CSP check when requesting subresources as a byproduct of
resolving style for an element in a user agent shadow tree.
(WebCore::StyleResolver::loadPendingImage): Ditto.
(WebCore::StyleResolver::loadPendingShapeImage): Ditto.

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::requestStyleSheet): Added FIXME comment to skip Content Security Policy check when
when stylesheet is in a user agent shadow tree.

  • dom/Element.h:
  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet): Skip CSP check for an inline <style> that is in a user agent shadow tree.

  • dom/Node.cpp:

(WebCore::Node::isInUserAgentShadowTree): Added.

  • dom/Node.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript): Skip CSP check for an external JavaScript script in a user agent shadow tree.
(WebCore::ScriptElement::executeScript): Skip CSP check for an inline JavaScript script that is in a user agent shadow tree.

  • dom/StyledElement.cpp:

(WebCore::StyledElement::styleAttributeChanged): Skip CSP check when modifying the inline style of an element in a user
agent shadow tree.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isSafeToLoadURL): Skip CSP check for a <audio>, <video> in a user agent shadow tree.
(WebCore::HTMLMediaElement::outOfBandTrackSources): Ditto.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::canLoadURL): Ditto.

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::loadTimerFired): Determine whether the <track> is in a user agent shadow tree
and pass the appropriate value when calling TextTrackLoader::load().

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): Do CSP check when loading a resource by default.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement): Skip CSP check for an image that is in a user agent shadow tree.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::start): Instantiate ResourceLoaderOptions passing placeholder value ContentSecurityPolicyImposition::DoPolicyCheck.
This value does not affect the request because we do not check the Content Security Policy for raw resource requests.

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader): Added FIXME comment to skip Content Security Policy check
when when associated plugin element is in a user agent shadow tree.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Skip CSP check for a <iframe> in a user agent shadow tree.

  • loader/ResourceLoaderOptions.h: Defined enum class ContentSecurityPolicyImposition with explicit type uint8_t so

as to provide a hint to the compiler (for better packing) when it computes the memory layout for struct that
contains an instance of this class.
(WebCore::ResourceLoaderOptions::ResourceLoaderOptions): Added argument contentSecurityPolicyImposition.
(WebCore::ResourceLoaderOptions::contentSecurityPolicyImposition): Added.
(WebCore::ResourceLoaderOptions::setContentSecurityPolicyImposition): Added.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::pluginIsLoadable): Skip CSP check for a plugin element that is in a user agent shadow tree.
(WebCore::SubframeLoader::createJavaAppletWidget): Skip CSP check for an applet element that is in a user agent shadow tree.

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load): Take a boolean, isInitiatingElementInUserAgentShadowTree, and sets the appropriate
Content Security Policy imposition for the text track request.

  • loader/TextTrackLoader.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Skip CSP check for a user-specified stylesheet.
(WebCore::CachedResourceLoader::canRequest): Only check the CSP of the page if specified in the resource loader options for the request.
(WebCore::CachedResourceLoader::defaultCachedResourceOptions): Add ContentSecurityPolicyImposition::DoPolicyCheck to the default
resource loader options so that do check the CSP policy of the page before performing a resource request by default.

  • loader/cache/CachedSVGDocumentReference.cpp:

(WebCore::CachedSVGDocumentReference::load): Take a ResourceLoaderOptions as an argument and passes it as appropriate.

  • loader/cache/CachedSVGDocumentReference.h:
  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading): Instantiate ResourceLoaderOptions passing placeholder value ContentSecurityPolicyImposition::DoPolicyCheck.
This value does not affect the request because we do not check the Content Security Policy for raw resource requests.

  • page/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowJavaScriptURLs): Take an argument called overrideContentSecurityPolicy (defaults to false). When
overrideContentSecurityPolicy := true, this function unconditionally returns true.
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers): Ditto.
(WebCore::ContentSecurityPolicy::allowInlineScript): Ditto.
(WebCore::ContentSecurityPolicy::allowInlineStyle): Ditto.
(WebCore::ContentSecurityPolicy::allowEval): Ditto.
(WebCore::ContentSecurityPolicy::allowPluginType): Ditto.
(WebCore::ContentSecurityPolicy::allowScriptFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowObjectFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowImageFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowStyleFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFontFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowMediaFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowConnectToSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFormAction): Ditto.
(WebCore::ContentSecurityPolicy::allowBaseURI): Ditto.

  • page/ContentSecurityPolicy.h:
  • page/DOMSecurityPolicy.cpp:
  • page/EventSource.cpp:

(WebCore::EventSource::create): Pass shouldBypassMainWorldContentSecurityPolicy to ContentSecurityPolicy::allowConnectToSource().

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading): Instantiate ResourceLoaderOptions passing placeholder value ContentSecurityPolicyImposition::DoPolicyCheck.
This value does not affect the request because we do not check the Content Security Policy for raw resource requests.

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::requestImageResource): Skip CSP check for a SVG FEImage element in a user agent shadow tree.

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::loadFont): Skip CSP check for a SVG font-face-uri element in a user agent shadow tree.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateExternalDocument): Skip CSP check for a SVG use element in a user agent shadow tree.

  • testing/Internals.cpp:

(WebCore::Internals::ensureUserAgentShadowRoot): Added.

  • testing/Internals.h:
  • testing/Internals.idl: Added declaration for ensureUserAgentShadowRoot().
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open): Pass shouldBypassMainWorldContentSecurityPolicy to ContentSecurityPolicy::allowConnectToSource().

LayoutTests:

Add tests to ensure that we exempt nodes in a user agent shadow tree from the Content Security Policy (CSP) of the page.

Updated test LayoutTests/http/tests/security/isolatedWorld/bypass-main-world-csp.html to ensure that
we do not bypass the CSP of the page for a script that executes in an isolated world and renamed the
file image-load-should-not-bypass-main-world-csp.html.

  • http/tests/security/contentSecurityPolicy/resources/alert-pass-and-notify-done.js: Added.
  • http/tests/security/contentSecurityPolicy/resources/wait-until-done.js: Added.

(alertAndDone):

  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-background-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-background.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-cursor-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-cursor.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-filter-on-image-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-filter-on-image.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-webkit-image-set-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-css-webkit-image-set.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-embed-plugin-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-embed-plugin.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-external-script.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-iframe-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-iframe.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-after-redirect-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-after-redirect.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-script.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-style-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-style.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-stylesheet-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-inline-stylesheet.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-plugin-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object-plugin.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-object.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-feimage-element-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-feimage-element.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-font-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-font.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-use-element-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-svg-use-element.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-track-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-track.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/block-loading-user-agent-image-from-non-user-agent-content-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/block-loading-user-agent-image-from-non-user-agent-content.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3.html: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/resources/ABCFont.svg: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/resources/allow-inline-script.js: Added.

(window.onload):
(testPassed):

  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/resources/floodGreenFilter.svg: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html: Added.
  • http/tests/security/isolatedWorld/image-load-should-not-bypass-main-world-csp-expected.txt: Renamed from LayoutTests/http/tests/security/isolatedWorld/bypass-main-world-csp-expected.txt.
  • http/tests/security/isolatedWorld/image-load-should-not-bypass-main-world-csp.html: Renamed from LayoutTests/http/tests/security/isolatedWorld/bypass-main-world-csp.html.
5:23 PM Changeset in webkit [186387] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Rendering Frame bars appear misaligned and contain gaps when displaying small task segments
https://bugs.webkit.org/show_bug.cgi?id=146475

Reviewed by Timothy Hatcher.

Displaying all task segments within a frame in the Rendering Frames graph is impossible, as very short tasks
would result in a bar with a height of less than 1 pixel. Consecutive small tasks, each less than a visible
pixel, appear as gaps in the frame bar. This patch addresses these shortcomings by introducing a minimum
displayable frame height (3 pixels), and setting the height of every frame to a multiple of the minimum height.

  • UserInterface/Base/Utilities.js:

(.value):
Added Math.roundTo to simplify rounding to arbitrary intervals.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame):
(.timeline-record-frame > .frame > .duration):
Enforce 3px min height for frames & segments. TimelineRenderingFrame's segment height calculator
creates segments that are always at least 3px, this is just a precaution.

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.updateDurationRemainder):
(WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.pushCurrentSegment):
(WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.invisibleSegments.forEach):
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement): Deleted.
Added algorithm for calculating frame segment heights, rather than simply dividing each task's
duration by the frame duration. Results are cached so the segment heights aren't needlessly
recalculated on every scroll/zoom.

5:21 PM Changeset in webkit [186386] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Force show Console tab when supportsSplitContentBrowser is false
https://bugs.webkit.org/show_bug.cgi?id=146661

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.showConsoleTab):

4:41 PM Changeset in webkit [186385] by Brent Fulgham
  • 9 edits in trunk/Source

Ensure media playback is stopped during page close
https://bugs.webkit.org/show_bug.cgi?id=146554
<rdar://problem/18033944>

Reviewed by Brady Eidson.

Source/WebCore:

  • Modules/webaudio/AudioContext.h:

(WebCore::WebAudio::hostingDocument): Added.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::hostingDocument): Added.

  • dom/Document.cpp:

(WebCore::Document::~Document): Call new 'stopAllMediaPlaybackForDocument' at destruction time.

  • platform/audio/PlatformMediaSession.h:

Made PlatformMediaSessionManager a friend so it can access the protected 'client' accessor.
Updated PlatformMediaSessionClient to require clients to have a "hostingDocument" member.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForDocument): Added. Only pauses
playback on elements that match the provided document.
(WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForProcess): Added. Pauses playback
on all elements in the current process.

  • platform/audio/PlatformMediaSessionManager.h:

Source/WebKit2:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didClose): Make sure to clean up any running media sessions when
the process is being shut down.

4:27 PM Changeset in webkit [186384] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Memory corruption in WebGLRenderingContext::simulateVertexAttrib0
https://bugs.webkit.org/show_bug.cgi?id=146652
<rdar://problem/21567767>

Follow-up fix.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):

4:26 PM Changeset in webkit [186383] by achristensen@apple.com
  • 10 edits in trunk

[Content Extensions] Remove memory page reporting
https://bugs.webkit.org/show_bug.cgi?id=146659

Reviewed by Benjamin Poulain.

Source/WebCore:

  • contentextensions/CompiledContentExtension.cpp:

(WebCore::ContentExtensions::CompiledContentExtension::~CompiledContentExtension):
(WebCore::ContentExtensions::CompiledContentExtension::globalDisplayNoneSelectors):

  • contentextensions/CompiledContentExtension.h:
  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::globalDisplayNoneStyleSheet):

  • contentextensions/ContentExtension.h:

(WebCore::ContentExtensions::ContentExtension::compiledExtension):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::getBits):
(WebCore::ContentExtensions::getInstruction):
(WebCore::ContentExtensions::jumpSizeInBytes):
(WebCore::ContentExtensions::getJumpSize):
(WebCore::ContentExtensions::getJumpDistance):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsForDefaultStylesheetFromDFARoot):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):

  • contentextensions/DFABytecodeInterpreter.h:

Don't keep track of memory page usage. It wasn't even correct anyways.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

4:06 PM Changeset in webkit [186382] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-601.1.38.1/Source

Versioning.

4:01 PM Changeset in webkit [186381] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Content Extensions] Increase maxNFASize
https://bugs.webkit.org/show_bug.cgi?id=146656

Reviewed by Benjamin Poulain.

Because of memory improvements in r186375, r186374, and r186079,
we can now increase the maximum number of NFA nodes in order to avoid
long compile times of some large, complicated content blockers.
This also improves the interpreting time of content blockers.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):
Increase maxNFASize to 75000 to avoid long compile times.

3:34 PM Changeset in webkit [186380] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Memory corruption in WebGLRenderingContext::simulateVertexAttrib0
https://bugs.webkit.org/show_bug.cgi?id=146652
<rdar://problem/21567767>

Reviewed by Brent Fulgham.

The expression "(numVertex + 1) * 4 * sizeof(GC3Dfloat)" could potentially
overflow. Make it use checked arithmetic.

I couldn't make a test case that reliably exercised this.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0): Used Checked<GC3Dsizeiptr>
for calculating the size of the buffer.

3:18 PM Changeset in webkit [186379] by saambarati1@gmail.com
  • 8 edits
    3 adds in trunk

JSC's parser should follow the ES6 spec with respect to parsing Declarations
https://bugs.webkit.org/show_bug.cgi?id=146621

Reviewed by Mark Lam.

Source/JavaScriptCore:

There were a few locations where JSC would allow declaration statements
in incorrect ways. JSC didn't distinguish between 'Statement' and
'StatementListItem' grammar productions. The relevant grammar is here:
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-statements

From the ECMA Script 6.0 spec:

  1. Section 13.6 The if Statement (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-if-statement) says that IfStatements only takes Statements for the "then-else" clauses, not StatementListItems. (Same with 'while/for/do-while' loop bodies).
  2. Section 13 ECMAScript Language: Statements and Declarations (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-ecmascript-language-statements-and-declarations) defines the syntax of Statements, and they do not include ClassDeclarations and LexicalDeclarations (const, let, see 13.3.1 Let and Const Declarations). Declarations can only be in the “then-else” clauses when embedded in a StatementListItem in a BlockStatement (see 13.2).

Hence, the following style of declarations are no longer allowed:

'if/for/while (condition) const x = 40;'
'if/for/while (condition) class C { }'

Instead, we mandate such declaration constructs are within a StatementList

(which is the production that JSC's Parser::parseSourceElements function parses):

'if/for/while (condition) { const x = 40; }'
'if/for/while (condition) { class C { } }'

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVarDeclaration):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseExpressionStatement):

  • parser/Parser.h:

(JSC::Parser::getLabel):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/const.js:

(with1):
(with2):

  • js/script-tests/parser-syntax-check.js:
  • js/script-tests/statement-list-item-syntax-errors.js: Added.

(testSyntax):
(runTests):

  • js/statement-list-item-syntax-errors-expected.txt: Added.
  • js/statement-list-item-syntax-errors.html: Added.
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.5-expected.txt:
3:03 PM Changeset in webkit [186378] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html crashes on Windows sometimes

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-deny-meta-tag.html>

  • platform/win/TestExpectations: Mark test as crashing, too:
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html
2:31 PM Changeset in webkit [186377] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit2

Allow UIDelegate to customize link actions in preview.
https://bugs.webkit.org/show_bug.cgi?id=146567

Add a new UIDelegate method to pass the defaultActions and elementInfo to client to allow
the client customize the actions based on the element. Also add a new SPI runActionWithElementInfo:
to _WKElementAction and make it aware of the WKActionSheetAssistant that creates it, so that
the client can run the action without knowing WKActionSheetAssistant.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-06
Reviewed by Beth Dakin.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add delegate method _webView:previewViewControllerForURL:defaultActions:elementInfo:.
  • UIProcess/API/Cocoa/_WKElementAction.h: Add a SPI runActionWithElementInfo:.
  • UIProcess/API/Cocoa/_WKElementAction.mm:

(-[_WKElementAction _initWithTitle:actionHandler:type:assistant:]): Modified initializer, also initialize _defaultActionSheetAssistant

iVar if the caller provides that.

(+[_WKElementAction elementActionWithTitle:actionHandler:]): Use the new initializer.
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]): A new helper method to create _WKElementAction with assistant.
(+[_WKElementAction _elementActionWithType:assistant:]):
(+[_WKElementAction elementActionWithType:customTitle:]):
(-[_WKElementAction runActionWithElementInfo:]):

  • UIProcess/API/Cocoa/_WKElementActionInternal.h:
  • UIProcess/ios/WKActionSheetAssistant.h: Add a method defaultActionsForLinkSheet.
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant defaultActionsForLinkSheet]): Get default actions for current link that is activated.
(-[WKActionSheetAssistant showLinkSheet]): Use defaultActionsForLinkSheet.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewViewControllerForPosition:inSourceView:]): Pass defaultActions and elementInfo to UIDelegate when querying

for preview view controller.

(-[WKContentView didDismissPreviewViewController:committing:]):

2:11 PM Changeset in webkit [186376] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Mac] REGRESSION: (r181403) Enter/Exit full screen on 1x secondary display plugged into 2x Mac displays WebView as 1/4 size during transition
https://bugs.webkit.org/show_bug.cgi?id=146651

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-07-06
Reviewed by Simon Fraser.

  • platform/mac/WebCoreFullScreenPlaceholderView.mm: set layerContentsPlacement

to NSViewLayerContentsPlacementScaleProportionallyToFit so AppKit resizes the
content CALayer to fit in the WebView.

2:07 PM Changeset in webkit [186375] by benjamin@webkit.org
  • 5 edits
    2 copies in trunk/Source/WebCore

Reduce the memory usage of the prefix tree
https://bugs.webkit.org/show_bug.cgi?id=146615

Reviewed by Sam Weinig.

This patch introduces two little changes that reduces the size
of the prefix tree by about 40%.

First, the Terms are interned. The new class CombinedFiltersAlphabet
takes care of keeping a unique version of each term for use
by the CombinedURLFilters.

Since each Term is fairly big but we have a small number of
unique term, we significantly reduce the edge size.

Second, the actions are no longer stored on each Vertex.
They are now stored on the side, in a HashMap indexed by
their Vertex.

This works well because the Actions are sparse over the tree.
Typically, only the leaves have actions. Internal vertices
sometime get actions but that's uncommon.

---

The next step to reduce the memory footprint would be to
make PrefixTreeVertex into a custom packed structure instead
of using a Vector.

Such change is very invasive and more error prone so I decided
against it for this patch.

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/CombinedFiltersAlphabet.cpp: Copied from Source/WebCore/contentextensions/CombinedURLFilters.h.

(WebCore::ContentExtensions::TermCreatorTranslator::hash):
(WebCore::ContentExtensions::TermCreatorTranslator::equal):
(WebCore::ContentExtensions::TermCreatorTranslator::translate):
(WebCore::ContentExtensions::CombinedFiltersAlphabet::interned):
(WebCore::ContentExtensions::CombinedFiltersAlphabet::memoryUsed):

  • contentextensions/CombinedFiltersAlphabet.h: Copied from Source/WebCore/contentextensions/CombinedURLFilters.h.

(WebCore::ContentExtensions::CombinedFiltersAlphabet::TermPointerHash::hash):
(WebCore::ContentExtensions::CombinedFiltersAlphabet::TermPointerHash::equal):

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::memoryUsed):
(WebCore::ContentExtensions::prefixTreeVertexToString):
(WebCore::ContentExtensions::recursivePrint):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):

  • contentextensions/CombinedURLFilters.h:
  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::isValid):
(WebCore::ContentExtensions::Term::destroy):
(WebCore::ContentExtensions::Term::memoryUsed):
(WebCore::ContentExtensions::Term::toString): Deleted.
(WebCore::ContentExtensions::TermHash::hash): Deleted.
(WebCore::ContentExtensions::TermHash::equal): Deleted.
(WebCore::ContentExtensions::Term::Term): Deleted.
(WebCore::ContentExtensions::Term::isKnownToMatchAnyString): Deleted.
(WebCore::ContentExtensions::Term::hasFixedLength): Deleted.
(WebCore::ContentExtensions::Term::operator==): Deleted.
(WebCore::ContentExtensions::Term::hash): Deleted.
(WebCore::ContentExtensions::Term::isDeletedValue): Deleted.
(WebCore::ContentExtensions::Term::isUniversalTransition): Deleted.
(WebCore::ContentExtensions::Term::generateSubgraphForAtom): Deleted.

2:06 PM Changeset in webkit [186374] by achristensen@apple.com
  • 16 edits
    1 add in trunk

[Content Extensions] Make the DFA transitions ranges instead of characters
https://bugs.webkit.org/show_bug.cgi?id=146575

Patch by Benjamin Poulain <benjamin@webkit.org> on 2015-07-06
Reviewed by Alex Christensen.

Source/WebCore:

This patch changes the DFA and code using the DFA to use ranges
to represent the transitions between any two nodes.

This patch builds on top of the tools introduced in r186079.

The DFA structure is basically the same as ImmutableNFA but without
any epsilon transitions.

This patch introduces a transition iterator to make the DFA
compatible with the existing algorithms.

---

The DFA combiner is rebuilt on top of MutableRangeList. Combining the transitions
of two nodes is one by merging the range list of each not into a common
MutableRangeList.
The data converter takes care of creating the signature of the combination.

The code got simpler since MutableRangeList does most of the work now. It is also
much faster.

---

The minimizer is more intersting.

With the current algorithm, we cannot resolve overlaps between ranges. On the other
hand, the minimizer does not care about the symbol of the transitions if we are careful
to partition transitions of the same symbol together.

What I did was to turn the minimizer into a pure transition based one, BUT each
"symbol" is actually an unbreakable range.

The first step is to go over all the transitions of all the nodes and find the largest
ranges such that the alphabet of interest is covered but there is not a single intersection
between any two nodes (what I called "singular transitions" in the code).

This can be done efficiently with MutableRangeList.
A little trick there is that I also used the converter to count how many real transition
overlaps any singular transition.

Those singular transitions become the alphabet of our minimizer. The "symbol" of our alphabet
is simply the position of the singular transition in the list.

The partition of transition is created by populating each set with all the transition that
overlaps the symbols.
Note that since the partition is created on the fly, the Transition structure used for
repartitioning only contains the source of the transitions.

Once our transition parition has been carefuly created, we can completely forget about
the symbols and only work with subsets.

Since the singular transitions have no overlap (unlike fallback transitions), this new minimizer
will find the minimial solution for well formed input.

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::memoryUsed):
(WebCore::ContentExtensions::printTransitions):
(WebCore::ContentExtensions::DFANode::actions): Deleted.
(WebCore::ContentExtensions::DFANode::transitions): Deleted.
(WebCore::ContentExtensions::DFANode::fallbackTransitionDestination): Deleted.
(WebCore::ContentExtensions::DFANode::changeFallbackTransition): Deleted.
(WebCore::ContentExtensions::DFANode::addFallbackTransition): Deleted.
(WebCore::ContentExtensions::DFANode::containsTransition): Deleted.
(WebCore::ContentExtensions::DFANode::kill): Deleted.
(WebCore::ContentExtensions::DFA::debugPrintDot): Deleted.

  • contentextensions/DFA.h:

(WebCore::ContentExtensions::DFANode::ConstRangeIterator::range):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::target):
(WebCore::ContentExtensions::DFANode::RangeIterator::range):
(WebCore::ContentExtensions::DFANode::RangeIterator::target):
(WebCore::ContentExtensions::DFANode::RangeIterator::resetTarget):

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::DFABytecodeCompiler::ranges):
(WebCore::ContentExtensions::DFABytecodeCompiler::nodeTransitionsMaxBytecodeSize):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNodeTransitions):

  • contentextensions/DFACombiner.cpp:

(WebCore::ContentExtensions::DFAMerger::TargetConverter::convert):
(WebCore::ContentExtensions::DFAMerger::TargetConverter::extend):
(WebCore::ContentExtensions::DFAMerger::TargetConverter::setHalfSignature):
(WebCore::ContentExtensions::DFAMerger::merge):
(WebCore::ContentExtensions::DFAMerger::getOrCreateCombinedNode):
(WebCore::ContentExtensions::DFAMerger::setHalfSignature): Deleted.
(WebCore::ContentExtensions::DFAMerger::populateTransitions): Deleted.
(WebCore::ContentExtensions::DFAMerger::populateFromFallbackTransitions): Deleted.
(WebCore::ContentExtensions::DFAMerger::createTransitions): Deleted.
(WebCore::ContentExtensions::DFAMerger::createFallbackTransitionIfNeeded): Deleted.

  • contentextensions/DFAMinimizer.cpp:

(WebCore::ContentExtensions::DFAMinimizer::minimize):

  • contentextensions/DFANode.cpp: Added.

(WebCore::ContentExtensions::DFANode::actions):
(WebCore::ContentExtensions::DFANode::containsTransition):
(WebCore::ContentExtensions::DFANode::kill):
(WebCore::ContentExtensions::DFANode::canUseFallbackTransition):
(WebCore::ContentExtensions::DFANode::bestFallbackTarget):

  • contentextensions/DFANode.h:

(WebCore::ContentExtensions::CharRange::size):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator*):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator==):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator!=):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator++):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::first):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::last):
(WebCore::ContentExtensions::DFANode::ConstRangeIterator::data):
(WebCore::ContentExtensions::DFANode::IterableConstRange::begin):
(WebCore::ContentExtensions::DFANode::IterableConstRange::end):
(WebCore::ContentExtensions::DFANode::transitions):
(WebCore::ContentExtensions::DFANode::RangeIterator::operator*):
(WebCore::ContentExtensions::DFANode::RangeIterator::operator==):
(WebCore::ContentExtensions::DFANode::RangeIterator::operator!=):
(WebCore::ContentExtensions::DFANode::RangeIterator::operator++):
(WebCore::ContentExtensions::DFANode::RangeIterator::first):
(WebCore::ContentExtensions::DFANode::RangeIterator::last):
(WebCore::ContentExtensions::DFANode::RangeIterator::data):
(WebCore::ContentExtensions::DFANode::IterableRange::begin):
(WebCore::ContentExtensions::DFANode::IterableRange::end):
(WebCore::ContentExtensions::DFANode::hasFallbackTransition): Deleted.
(WebCore::ContentExtensions::DFANode::transitionsLength): Deleted.
(WebCore::ContentExtensions::DFANode::transitionsStart): Deleted.
(WebCore::ContentExtensions::DFANode::resetTransitions): Deleted.
(WebCore::ContentExtensions::DFANode::setHasFallbackTransitionWithoutChangingDFA): Deleted.

  • contentextensions/ImmutableNFA.h:

(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::first):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::last):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::range):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): Deleted.

  • contentextensions/ImmutableNFANodeBuilder.h:

(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::first):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::last):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator*): Deleted.
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator->): Deleted.

  • contentextensions/MutableRange.h:

(WebCore::ContentExtensions::MutableRange::size): Deleted.

  • contentextensions/MutableRangeList.h:

(WebCore::ContentExtensions::MutableRangeList::ConstIterator::first):
(WebCore::ContentExtensions::MutableRangeList::ConstIterator::last):
(WebCore::ContentExtensions::MutableRangeList::ConstIterator::data):
(WebCore::ContentExtensions::MutableRangeList::extend):
(WebCore::ContentExtensions::MutableRangeList::size):
(WebCore::ContentExtensions::MutableRangeList::initializeFrom):

  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::NFAToDFA::convert):
(WebCore::ContentExtensions::canUseFallbackTransition): Deleted.
(WebCore::ContentExtensions::findBestFallbackTarget): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

Since the minimizer is perfect, we get the minimal solution now,
which is really cool!

1:51 PM Changeset in webkit [186373] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html crashes on Windows sometimes

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-parent-same-origin-deny.html>

  • platform/win/TestExpectations: Mark test as crashing, too:
  • http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html
1:45 PM Changeset in webkit [186372] by timothy@apple.com
  • 2 edits in trunk/Source/WebCore

Fix ASSERT causing crashes in Inspector tests on the bots.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::enable): Reset stopwatch before starting it.

1:14 PM Changeset in webkit [186371] by beidson@apple.com
  • 5 edits in trunk

ShouldOpenExternalURLsPolicy should default to "Allow" for WK2 API loads.
<rdar://problem/21640050> and https://bugs.webkit.org/show_bug.cgi?id=146563

Reviewed by Geoff Garen.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadRequest:]): Move _loadRequest:withOptions: logic back here, just without options.
(-[WKWebView _loadRequest:withOptions:]): This SPI is now unneeded, but must remain inactive.

  • UIProcess/WebPageProxy.h:

Tools:

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke): For testing purposes, all pages should start with the

ShouldOpenExternalURLsPolicy set to "ShouldNotAllow"

12:55 PM Changeset in webkit [186370] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clearing the console does not remove the unread message icon
https://bugs.webkit.org/show_bug.cgi?id=146649

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._clearLog): Removes the "unread" class from all scope bar items.

12:45 PM Changeset in webkit [186369] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Remove unused "m_isPrivate" flag on NetworkStorageSession.
https://bugs.webkit.org/show_bug.cgi?id=146648

Reviewed by Alex Christensen.

No new tests (No behavior change).

  • platform/network/NetworkStorageSession.h:

(WebCore::NetworkStorageSession::isPrivateBrowsingSession): Deleted.

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession): Deleted.
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession): Deleted.
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.

12:44 PM Changeset in webkit [186368] by timothy@apple.com
  • 12 edits
    6 adds in trunk/Source

Web Inspector: Add a dedicated Network tab that is always live
https://bugs.webkit.org/show_bug.cgi?id=146568

Source/WebCore:

Make sure the executionStopwatch is always started and never stops so resource loads
always get timestamps, even when Timeline is not recording.

Reviewed by Joseph Pecoraro.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::enable): Start executionStopwatch.
(WebCore::InspectorPageAgent::frameStartedLoading): Reset and start executionStopwatch.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStart): Removed executionStopwatch code.
(WebCore::InspectorTimelineAgent::internalStop): Ditto.

Source/WebInspectorUI:

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._updateNewTabButtonState):
Add NetworkTabContentView to the right places.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.get persistentNetworkTimeline):
(WebInspector.TimelineManager.prototype._mainResourceDidChange):
(WebInspector.TimelineManager.prototype._resourceWasAdded):
Add a persistent network timeline that always has all resources.

  • UserInterface/Images/Network.svg: Added.
  • UserInterface/Main.html: Added new files.
  • UserInterface/Views/NavigationSidebarPanel.css:

(.sidebar > .panel.navigation > .content):
Drive-by fix. The bottom was off by one. This caused misalignment between sidebar and content view when
scrolled all the way to the bottom of the content view.

  • UserInterface/Views/NetworkGridContentView.css: Added.

(.content-view.network-grid > .data-grid):
(.content-view.network-grid > .data-grid th):
(.content-view.network-grid > .data-grid td):
(.content-view.network-grid > .data-grid table.data):
Mostly copied from TimelineView.css and NetworkTimelineView.css.

  • UserInterface/Views/NetworkGridContentView.js: Added.

(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.get navigationSidebarTreeOutline):
(WebInspector.NetworkGridContentView.prototype.get selectionPathComponents):
(WebInspector.NetworkGridContentView.prototype.get zeroTime):
(WebInspector.NetworkGridContentView.prototype.shown):
(WebInspector.NetworkGridContentView.prototype.hidden):
(WebInspector.NetworkGridContentView.prototype.closed):
(WebInspector.NetworkGridContentView.prototype.updateLayout):
(WebInspector.NetworkGridContentView.prototype.needsLayout):
(WebInspector.NetworkGridContentView.prototype.reset):
(WebInspector.NetworkGridContentView.prototype._processPendingRecords):
(WebInspector.NetworkGridContentView.prototype._networkTimelineReset):
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
(WebInspector.NetworkGridContentView.prototype._treeElementPathComponentSelected):
(WebInspector.NetworkGridContentView.prototype._dataGridNodeSelected):
Mostly copied from NetworkTimelineView.

  • UserInterface/Views/NetworkSidebarPanel.css: Added.

(.sidebar > .panel.navigation.network > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.network > .navigation-bar):
(.sidebar > .panel.navigation.network > .title-bar):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content):
(.sidebar > .panel.navigation.network .item:hover:not(.selected) .status .close.status-button):
(.sidebar > .panel.navigation.network:not(.network-grid-content-view-showing) .status .go-to-arrow.status-button):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing .status .close.status-button):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing .navigation-sidebar-panel-content-tree-outline.network-grid .item .subtitle):
(.sidebar > .panel.navigation.network > .content > .navigation-sidebar-panel-content-tree-outline):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
Mostly copied from TimelineSidebarPanel.css and NetworkTimelineView.css.

  • UserInterface/Views/NetworkSidebarPanel.js: Added.

(WebInspector.NetworkSidebarPanel):
(WebInspector.NetworkSidebarPanel.prototype.closed):
(WebInspector.NetworkSidebarPanel.prototype.showDefaultContentView):
(WebInspector.NetworkSidebarPanel.prototype.saveStateToCookie):
(WebInspector.NetworkSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.NetworkSidebarPanel.prototype.hasCustomFilters):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset):
(WebInspector.NetworkSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
(WebInspector.NetworkSidebarPanel.prototype._treeElementGoToArrowWasClicked):
(WebInspector.NetworkSidebarPanel.prototype._treeElementCloseButtonClicked):
(WebInspector.NetworkSidebarPanel.prototype._canShowDifferentContentView):
(WebInspector.NetworkSidebarPanel.prototype._treeElementSelected):
(WebInspector.NetworkSidebarPanel.prototype._scopeBarSelectionDidChange):
A hybrid of ResourceSidebarPanel and TimelineSidebarPanel.

  • UserInterface/Views/NetworkTabContentView.js: Added.

(WebInspector.NetworkTabContentView):
(WebInspector.NetworkTabContentView.prototype.get type):
(WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView): Add Network tab and sort the tabs by their localized name.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype._handleNewTabClick):
Drive-by fix. Don't fire the click event if the new tab button is disabled.

12:44 PM Changeset in webkit [186367] by timothy@apple.com
  • 2 edits in trunk/Source/WebCore

Update the localized strings file.

  • English.lproj/Localizable.strings: Updated with the script.
12:37 PM Changeset in webkit [186366] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Crash: LayoutState root's container is nullptr when the layout root is detached.
https://bugs.webkit.org/show_bug.cgi?id=146646
rdar://problem/21371544

Reviewed by Simon Fraser.

This is a speculative fix to ensure that when the root of the LayoutState is detached
we don't try to access its container (nullptr).
This is related to trac.webkit.org/r185484.

Not reproducible.

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/LayoutState.h:

(WebCore::LayoutState::LayoutState): Deleted.

12:19 PM Changeset in webkit [186365] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

URTBF after r186357 to fix non Cocoa platforms.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData):

11:36 AM Changeset in webkit [186364] by matthew_hanson@apple.com
  • 6 edits in tags/Safari-601.1.38.1/Source/WebKit2

Merge r186148. rdar://problem/20655729

11:14 AM Changeset in webkit [186363] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed debug build fix after r186358.

  • runtime/JSArray.cpp:

(JSC::JSArray::fastConcatWith):
Pass vm parameter to fastConcatType.

11:04 AM Changeset in webkit [186362] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

With multipart/replaced (e.g. motion JPEG), m_bufferedDataForCache grows unbounded in Networking process
https://bugs.webkit.org/show_bug.cgi?id=146630
<rdar://problem/21677340>

Follow-up.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveBuffer):

Typo 1014 -> 1024

11:04 AM Changeset in webkit [186361] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[Mac] Inactive AirPlay route should automatically timeout
https://bugs.webkit.org/show_bug.cgi?id=146642
<rdar://problem/21602955>

Automatically clear a media element's AirPlay connection after it has been paused
for 60 minutes, or after 8 minutes if it played to the end before pausing.

Reviewed by Brent Fulgham.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::WebMediaSessionManager): Initialize m_watchdogTimer.
(WebCore::WebMediaSessionManager::clientStateDidChange): Schedule watchdog timer configuration

if the client started playing or paused.

(WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Schedule watchdog timer configuration.
(WebCore::WebMediaSessionManager::toString): Print watchdog configuration flag.
(WebCore::WebMediaSessionManager::taskTimerFired): Call configureWatchdogTimer.
(WebCore::WebMediaSessionManager::configureWatchdogTimer): New, start or stop watchdog timer.
(WebCore::WebMediaSessionManager::watchdogTimerFired): Stop monitoring for targets, which

clears the route.

  • Modules/mediasession/WebMediaSessionManager.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): Set DidPlayToEnd when appropriate.

  • page/MediaProducer.h: Add DidPlayToEnd.
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac): Clear m_client, call

stopMonitoringPlaybackTargets.

(WebCore::MediaPlaybackTargetPickerMac::pendingActionTimerFired): Send a neutered

MediaPlaybackTarget when m_outputDeviceMenuController is NULL.

(WebCore::MediaPlaybackTargetPickerMac::devicePicker): Add logging.
(WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets): Clear the menu

controller to cancel the route.

10:59 AM Changeset in webkit [186360] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed, rolling out r185896.
https://bugs.webkit.org/show_bug.cgi?id=146647

Caused by a refcounting error in GTK+; it's actually legal for
the event to be null, just the gi annotations were wrong.
(Requested by mcatanzaro on #webkit).

Reverted changeset:

"[GTK] Crash performing drag-and-drop"
https://bugs.webkit.org/show_bug.cgi?id=146267
http://trac.webkit.org/changeset/185896

10:58 AM Changeset in webkit [186359] by Lucas Forschler
  • 1 copy in tags/Safari-601.1.38.1

New Tag.

10:45 AM Changeset in webkit [186358] by rniwa@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Array.concat should be fast for integer or double arrays
https://bugs.webkit.org/show_bug.cgi?id=146260

Reviewed by Darin Adler.

Added a fast path to Array.prototype.concat. When concatenating two Int32, Double, or Contiguous
arrays, simply memcopy the arrays into a new uninitialized buffer.

This improves huffman encoding in CompressionBench by 3.7x on a Mid 2014 MacBookPro.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncConcat):

  • runtime/JSArray.cpp:

(JSC::JSArray::fastConcatWith): Added.

  • runtime/JSArray.h:

(JSC::JSArray::fastConcatType): Added. Returns the resultant array's indexing type if we can use
the fact path. Returns NonArray otherwise.

10:42 AM Changeset in webkit [186357] by andersca@apple.com
  • 9 edits in trunk/Source/WebKit2

Provide API to clear the HSTS cache
https://bugs.webkit.org/show_bug.cgi?id=146565
rdar://problem/20023805

Reviewed by Tim Horton.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::clearHSTSCache):

  • Shared/WebsiteData/WebsiteDataTypes.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeNetworkProcessAccessTypeForDataRemoval):

10:10 AM Changeset in webkit [186356] by dbates@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r170639.

Broke using webkit-patch apply-attachment to apply an
attachment from a security bug. The patch incorrectly assumed
that Bugzilla returns a non-HTTP 200 status code in its HTTP
response when authentication is required.

Reverted changeset:

"webkit-patch apply-from-bug / apply-attachment should not ask
for credentials if none are required"
https://bugs.webkit.org/show_bug.cgi?id=40095
http://trac.webkit.org/changeset/170639

9:44 AM Changeset in webkit [186355] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

With multipart/replaced (e.g. motion JPEG), m_bufferedDataForCache grows unbounded in Networking process
https://bugs.webkit.org/show_bug.cgi?id=146630
<rdar://problem/21677340>

Reviewed by Chris Dumez.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponseAsync):

Don't buffer multipart/x-mixed-replace. We never want to cache these.

(WebKit::NetworkResourceLoader::didReceiveBuffer):

Limit the maximum size of the cache buffer to 10MB. This prevents unbounded memory growth if the resource
keeps streaming. It also prevents giant entries from pushing other data out of the cache.

(WebKit::NetworkResourceLoader::didFinishLoading):

8:08 AM Changeset in webkit [186354] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Mark console filters that have unseen messages by colored dots
https://bugs.webkit.org/show_bug.cgi?id=146616

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.log-scope-bar > li.unread::before):
(.log-scope-bar > li.unread:hover::before):
(.log-scope-bar > li.unread.errors::before):
(.log-scope-bar > li.unread.warnings::before):
(.log-scope-bar > li.unread.logs::before):
(@keyframes unread-background-pulse):

7:03 AM Changeset in webkit [186353] by Carlos Garcia Campos
  • 13 edits
    15 deletes in releases/WebKitGTK/webkit-2.8

Merge r185269 - Regression(r176212): Broke app switching on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=145708
<rdar://problem/21235277>

Reviewed by Simon Fraser.

Source/WebCore:

Roll out r176212 and follow-up fixes for now, to fix iCloud.com.
We can reconsider later how to do this in a safer way.

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Deleted.

  • dom/Element.cpp:
  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::~ElementRareData): Deleted.

  • dom/Node.cpp:

(WebCore::Node::materializeRareData):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.

  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::scriptMadeNonUserObservableChanges): Deleted.
(WebCore::DOMTimerFireState::scriptMadeUserObservableChanges): Deleted.
(WebCore::NestedTimersMap::instanceForContext): Deleted.
(WebCore::DOMTimer::install): Deleted.
(WebCore::DOMTimer::fired): Deleted.
(WebCore::DOMTimer::alignedFireTime): Deleted.
(WebCore::DOMTimer::activeDOMObjectName): Deleted.

  • page/DOMTimer.h:
  • page/FrameView.cpp:

(WebCore::FrameView::reset): Deleted.
(WebCore::FrameView::viewportContentsChanged): Deleted.
(WebCore::FrameView::autoSizeIfEnabled): Deleted.

  • page/FrameView.h:

LayoutTests:

Remove layout tests covering DOM Timer throttling.

  • fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt: Removed.
  • fast/canvas/canvas-outside-viewport-timer-throttling.html: Removed.
  • fast/dom/nested-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/nested-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling.html: Removed.
  • fast/dom/resources/timer-throttling-iframe.html: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away.html: Removed.
  • fast/dom/timer-unthrottle-on-layout-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-layout.html: Removed.
  • fast/dom/timer-unthrottle-on-scroll-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-scroll.html: Removed.
6:52 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
6:40 AM Changeset in webkit [186352] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185256 - Underlines too close in vertical Chinese text.
https://bugs.webkit.org/show_bug.cgi?id=145651
<rdar://problem/11105920>

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/decorations-vertical-underline.html

  • style/InlineTextBoxStyle.cpp:

(WebCore::computeUnderlineOffset):
Make sure the to map text-underline-position: auto to under when a line has an ideographic baseline.

LayoutTests:

  • fast/text/decorations-vertical-underline-expected.html: Added.
  • fast/text/decorations-vertical-underline.html: Added.
6:36 AM Changeset in webkit [186351] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185232 - Crash in EventDispatcher::dispatchEvent entering a location on Google Maps
https://bugs.webkit.org/show_bug.cgi?id=145677
rdar://problem/20698280

Reviewed by Dean Jackson.

If a transition is running on a pseudo-element, and the host element is removed
from the DOM just as the transition ends, and there is a transition event listener,
then we'd crash with a null dereference in event dispatch code.

AnimationController tries to clean up running animations when renderers are destroyed,
but omitted to remove the element from two vectors that store element references.
Elements are only added to these vectors briefly on animation end, before firing
events, but failure to remove the vector entries could result in attempting
to fire an event on a pseudo-element with no host element.

Also convert EventDispatcher code to be more robust to potentially null event
targets, since it's not clear that eventTargetRespectingTargetRules() can always
manage to return a non-null node.

Hard to make a test because this is timing sensitive.

  • dom/EventDispatcher.cpp:

(WebCore::eventTargetRespectingTargetRules):
(WebCore::EventDispatcher::dispatchScopedEvent):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventPath::EventPath):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::clear):

6:32 AM Changeset in webkit [186350] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185195 - Shrink the ArabicCharShapingMode enum in SVGGlyph.cpp
https://bugs.webkit.org/show_bug.cgi?id=145564

Reviewed by Darin Adler.

Shrink the ArabicCharShapingMode enum to just one byte.
This drops the size of the static s_arabicCharShapingMode
array of ArabicCharShapingMode values from 888 bytes to 222.

  • platform/graphics/SVGGlyph.cpp:

(WebCore::processArabicFormDetection):

6:29 AM Changeset in webkit [186349] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185152 - Subpixel rendering: Composited layer with subpixel gap does not get painted properly when its position changes.
https://bugs.webkit.org/show_bug.cgi?id=145587

Reviewed by Simon Fraser.

The composited layer always snaps to an enclosing device pixel (floors) while the renderer rounds.
At certain positions (for example 0.5px on a 1x display), a gap is formed between the layer(0px) and its renderer(1px).
In such cases, when the the renderer moves to a position (1.1px) where the gap is closed, we need to issue repaint on the layer
in order to get the renderering right.

Source/WebCore:

Test: compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::devicePixelFractionGapFromRendererChanged):
(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerBacking.h:

LayoutTests:

  • compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves-expected.html: Added.
  • compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html: Added.
5:55 AM Changeset in webkit [186348] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r185093 - REGRESSION (179771): zooming on facebook images covers image
https://bugs.webkit.org/show_bug.cgi?id=145485

Reviewed by Simon Fraser.

Scaling an infinite rect should always produce an infinite rect.
(Based on Simon Fraser's patch)

Source/WebCore:

Test: compositing/layer-creation/zoomed-clip-intersection.html

  • platform/graphics/LayoutRect.cpp:

(WebCore::LayoutRect::scale):

LayoutTests:

  • compositing/layer-creation/zoomed-clip-intersection-expected.txt: Added.
  • compositing/layer-creation/zoomed-clip-intersection.html: Added.
5:34 AM Changeset in webkit [186347] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r185084 - Crash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::revertCall + 24
https://bugs.webkit.org/show_bug.cgi?id=145527

Reviewed by Filip Pizlo.

If a CallLinkInfo is GC'ed, we need to notify any PolymorphicCallNode's that reference it.
Added plumbling to clear the m_callLinkInfo of a PolymorphicCallNode when that CallLinkInfo
is going away.

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::~CallLinkInfo):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallNode::unlink):
(JSC::PolymorphicCallNode::clearCallLinkInfo):
(JSC::PolymorphicCallCase::dump):
(JSC::PolymorphicCallStubRoutine::edges):
(JSC::PolymorphicCallStubRoutine::clearCallNodesFor):
(JSC::PolymorphicCallStubRoutine::visitWeak):

  • jit/PolymorphicCallStubRoutine.h:

(JSC::PolymorphicCallNode::hasCallLinkInfo):

5:28 AM Changeset in webkit [186346] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185071 - [CSS JIT] Fail to compile when we are out of executable memory
https://bugs.webkit.org/show_bug.cgi?id=145483
rdar://problem/21166612

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-01
Reviewed by Andreas Kling.

We should use a soft failure when the Linker fails to allocate
executable memory for the CSS JIT. We will just fallback to slow
code when that happen, better slow CSS than crashing.

Credit to Chris for finding this problem.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

5:23 AM Changeset in webkit [186345] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r185030 - Web Inspector: Crash closing a related tab with Web Inspector open while page is refreshing
https://bugs.webkit.org/show_bug.cgi?id=145488

Reviewed by Alexey Proskuryakov.

  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::~WebInspector):
Ensure, no matter how we close, that we have invalidated the
frontend connection of which we are the client.

(WebKit::WebInspector::createInspectorPage):
This member variable will never be null.

5:20 AM Changeset in webkit [186344] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r185019 - Text disappears shortly after page load on Nexus 7 site.
https://bugs.webkit.org/show_bug.cgi?id=145467
rdar://problem/18327239

Reviewed by Simon Fraser.

This patch ensures that overlap testing for composited layers works properly when the sibling
layer gets composited through its child.

When a layer gets composited through its child content, the recursive overlap testing should build up the
overlapmap stack so that sibling content is intersected both against the child and its parent bounds.

Source/WebCore:

Tests: compositing/sibling-layer-does-not-get-composited-overflow-hidden-case.html

compositing/sibling-layer-does-not-get-composited-transform-case.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::OverlapMap::contains): Deleted.

LayoutTests:

  • compositing/sibling-layer-does-not-get-composited-overflow-hidden-case-expected.html: Added.
  • compositing/sibling-layer-does-not-get-composited-overflow-hidden-case.html: Added.
  • compositing/sibling-layer-does-not-get-composited-transform-case-expected.html: Added.
  • compositing/sibling-layer-does-not-get-composited-transform-case.html: Added.
5:17 AM Changeset in webkit [186343] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185018 - Review feedback followup for r185003.
https://bugs.webkit.org/show_bug.cgi?id=145463

Reviewed by Darin Adler.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::overrideUnauthorizedFunctions): static const one thing, c++-style cast another.

5:16 AM Changeset in webkit [186342] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r186005 - Prevent new loads while in PageCache (or being added to PageCache)
https://bugs.webkit.org/show_bug.cgi?id=146299
<rdar://problem/21523788>

Reviewed by Darin Adler.

Generalize the change in r185337 to prevent new loads while in the
PageCache (or being added to the PageCache), instead of merely
preventing new loads in pagehide event handlers. We should never
have any pages that are still loading inside the PageCache.

The fix in r185337 was apparently insufficient to address the
problem so generalizing the check / policy will hopefully catch
more cases where content is able to start loads while being added
to the PageCache. This patch also removes some of the complexity
added in r185337 as it is no longer needed.

No new tests, already covered by:
http/tests/navigation/image-load-in-pagehide-handler.html
http/tests/navigation/subframe-pagehide-handler-starts-load.html
http/tests/navigation/subframe-pagehide-handler-starts-load2.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::handleBeforeUnloadEvent):
(WebCore::FrameLoader::FrameLoader): Deleted.

  • loader/FrameLoader.h:

(WebCore::FrameLoader::pageDismissalEventBeingDispatched):

  • loader/ImageLoader.cpp:

(WebCore::pageIsBeingDismissed):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage):

  • page/Page.cpp:

(WebCore::Page::inPageCache):

  • page/Page.h:

(WebCore::Page::group): Deleted.

4:27 AM Changeset in webkit [186341] by Carlos Garcia Campos
  • 12 edits
    10 adds in releases/WebKitGTK/webkit-2.8

Merge r185337 - WebContent crash in WebCore::Page::sessionID() const + 0 (Page.cpp:1660)
https://bugs.webkit.org/show_bug.cgi?id=145748
<rdar://problem/21226577>

Reviewed by Brady Eidson.

Source/WebCore:

We would sometimes crash when pruning the PageCache because it was
possible for frames to still be loading while in the PageCache and
we would try to stop the load when the CachedFrame is destroyed. This
code path was not supposed to be exercised as we were not supposed to
have pages still loading inside the PageCache.

r185017 made sure we don't insert into the PageCache pages that are
still loading. However, nothing was preventing content from starting
new loads in their 'pagehide' event handlers, *after* the decision
to put the page in the PageCache was made.

This patch prevents content from starting loads from a 'pagehide'
event handler so that we can no longer have content that is loading
inside the PageCache. 'ping' image loads still go through though as
these are specially handled and use PingLoaders.

Tests: http/tests/navigation/image-load-in-pagehide-handler.html

http/tests/navigation/subframe-pagehide-handler-starts-load.html
http/tests/navigation/subframe-pagehide-handler-starts-load2.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::handleBeforeUnloadEvent):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::pageDismissalEventBeingDispatched):
(WebCore::FrameLoader::PageDismissalEventType::PageDismissalEventType):
(WebCore::FrameLoader::PageDismissalEventType::operator Page::DismissalType):

Add wrapper class for m_pageDismissalEventBeingDispatched member type.
The wrapper takes care of updating the m_dismissalEventBeingDispatched
member on the Page every time the member on FrameLoader is updated. We
now cache this information on the Page so that clients can cheaply
query if a dismissal event is being dispatched in any of the Page's
frame, without having to traverse the frame tree.

  • loader/ImageLoader.cpp:

(WebCore::pageIsBeingDismissed):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

Abort the load early if we are currently dispatching a 'pagehide'
event. We don't allow new loads at such point because we've already
made the decision to add the Page to the PageCache.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage):

  • page/Chrome.cpp:

(WebCore::Chrome::runModal): Deleted.
(WebCore::Chrome::setToolbarsVisible): Deleted.
(WebCore::Chrome::toolbarsVisible): Deleted.
(WebCore::Chrome::runJavaScriptConfirm): Deleted.
(WebCore::Chrome::runJavaScriptPrompt): Deleted.
(WebCore::Chrome::shouldInterruptJavaScript): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::canShowModalDialogNow):

Drop ChromeClient::shouldRunModalDialogDuringPageDismissal() and code
using it as it is unused and I did not think it was worth updating
this code.

  • page/Page.h:

(WebCore::Page::dismissalEventBeingDispatched):
(WebCore::Page::setDismissalEventBeingDispatched):

Add a m_dismissalEventBeingDispatched member to the Page so that we can
easily query if a dismissal event is being dispatched in any of the
frames, without having to traverse the frame tree. I suspect more call
sites of FrameLoader::pageDismissalEventBeingDispatched() may actually
want this but I did not make such change in this patch. It is important
to check all the frames and not simply the current one because a frame's
pagehide event handler may trigger a load in another frame.

LayoutTests:

  • http/tests/navigation/image-load-in-pagehide-handler-expected.txt: Added.
  • http/tests/navigation/image-load-in-pagehide-handler.html: Added.
  • http/tests/navigation/resources/image-load-in-pagehide-handler-2.html: Added.

Add layout test to make sure that ping loads in 'pagehide' handlers are
still going through after this change.

  • http/tests/navigation/resources/frame-do-load.html: Added.
  • http/tests/navigation/resources/frame-pagehide-starts-load-in-subframe.html: Added.
  • http/tests/navigation/resources/frame-pagehide-starts-load.html: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load-expected.txt: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load.html: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load2-expected.txt: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load2.html: Added.

Add layout tests to make sure we don't crash if a frame starts an XHR load
from the 'pagehide' event handler. One of the tests covers the case where a
frame's pagehide handler starts a load in a subframe as this case is
requires a bit more handling.

4:13 AM Changeset in webkit [186340] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185017 - WebContent crash in WebCore::Page::sessionID() const + 0 (Page.cpp:1660)
https://bugs.webkit.org/show_bug.cgi?id=145422
<rdar://problem/20613631>

Reviewed by Brady Eidson.

We sometimes crash when destroying a PageCache CachedFrame because its
DocumentLoader is still loading. This should never happen as we are not
supposed to let pages are still have pending loads into the PageCache.

However, we were using DocumentLoader::isLoadingInAPISense() as check
in PageCache::canCachePageContainingThisFrame() which is not exactly
what we want. isLoadingInAPISense() no longer considers subresource
loads once the frame as loaded. This means if the JS triggers a new
load in a subframe after it has been loaded, then isLoadingInAPISense()
will return false, despite the pending load.

This patch replaces the isLoadingInAPISense() check with isLoading()
as this will consider all pending loads, even after the frame is
loaded.

In most cases, using isLoadingInAPISense() was not an issue because
we call DocumentLoader::stopLoading() in all subframes before starting
a provisional load. However, nothing seems to prevent JS from
triggering a new load after that and before the new load gets committed
(which is when we save the page into PageCache).

No new test as we don't have a reliable reproduction case and the
issue is timing related.

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::isLoading):
(WebCore::DiagnosticLoggingKeys::loadingAPISenseKey): Deleted.

  • page/DiagnosticLoggingKeys.h:
4:08 AM Changeset in webkit [186339] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r185003 - WebSQL default functions can bypass authorizer.
<rdar://problem/21048994> and https://bugs.webkit.org/show_bug.cgi?id=145463

Reviewed by Sam Weinig and Alexey Proskuryakov.

No new tests yet.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::unauthorizedSQLFunction): Function to install into SQLite to override some built-in functions.
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::overrideUnauthorizedFunctions): Install function overrides for functions that

take arbitrary input that are also meant to be disabled by virtue of them not being whitelisted.

  • platform/sql/SQLiteDatabase.h:
4:03 AM Changeset in webkit [186338] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r184970 - Subpixel rendering: Pixel crack in text selection of simple text in <textarea>.
https://bugs.webkit.org/show_bug.cgi?id=145393
rdar://problem/19918941

Reviewed by Darin Adler.

Float to LayoutUnit conversion is lossy. To ensure that selection
painting always lines up (snaps) properly, the calculated width needs to
be adjusted by ceiling the float to the next LayoutUnit value.

Source/WebCore:

Test: fast/text/hidpi-text-selection-gap-between-words.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::adjustSelectionRectForSimpleText):

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::adjustSelectionRectForComplexText):

LayoutTests:

  • fast/text/hidpi-text-selection-gap-between-words-expected.html: Added.
  • fast/text/hidpi-text-selection-gap-between-words.html: Added.
  • platform/mac/platform/mac/editing/input/caret-primary-bidi-expected.txt:
4:01 AM Changeset in webkit [186337] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184965 - Crash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test-5.html
https://bugs.webkit.org/show_bug.cgi?id=145429
<rdar://problem/20992218>

Reviewed by Alexey Proskuryakov.

WebKit uses some strings which contain the lower 8-bits of UTF-16 (thereby saving space). However,
ICU doesn't understand this encoding. When we want to use ICU functions with strings in this encoding,
we create a UTextProvider which converts our encoded strings to UTF-16 for ICU, one chunk at a time.
This object contains a vtable which we populate to perform the conversion.

The WebKit function which actually returns the UTF-16 chunks has two relevant arguments: an index into
the encoded string which ICU is requesting, and a direction from that index which ICU is interested
in. This function populates a "chunk" which is characterized by a pointer to a buffer, the length of
the populated data in the buffer, and an offset into the chunk which represents the index that the
requested character was put into.

When ICU requests data going backward, we fill in the chunk accordingly, with the requested character
all the way at the end. We then set the offset equal to the length of the buffer. However, this length
value is stale from the previous time the function ran. Therefore, ICU was reading the wrong index in
the chunk when expecting the requested character.

Covered by editing/selection/move-by-word-visually-crash-test-5.html.

  • platform/text/icu/UTextProviderLatin1.cpp:

(WebCore::uTextLatin1Access):

3:05 AM Changeset in webkit [186336] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r184885 - Overhanging float sets are not cleaned up properly when floating renderer is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=145323
rdar://problem/20980628

Reviewed by Dave Hyatt.

This patch ensures when an overhanging float renderer is destroyed,
all the sibling containers' floating object set(m_floatingObjects) gets properly cleaned up.

When an overhanging float is present, we cache the renderer on the parent and on the affected
sibling containers too. (RenderBlockFlow::m_floatingObjects) These caches(sets) get cleared and repopulated
during ::layout(). In order to have a float renderer removed from a set, a layout needs to be initiated on the container.
This is normally done through RenderBlockFlow::markSiblingsWithFloatsForLayout() and RenderBlockFlow::markAllDescendantsWithFloatsForLayout().
However, when the float container's parent's writing direction changes (and we promote the children containers to new formatting contexts),
the layout propagation through siblings does not work anymore.

The avoidsFloats() check in RenderBlockFlow::markSiblingsWithFloatsForLayout() has very little performance gain, but it prevents us
from propagating layout to siblings when certain properties of the parent container changes.

Source/WebCore:

Test: fast/block/float/crash-when-floating-object-is-removed.xhtml

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout):

  • rendering/RenderBox.cpp:

(WebCore::outermostBlockContainingFloatingObject):
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
(WebCore::RenderBox::outermostBlockContainingFloatingObject): Deleted.

  • rendering/RenderBox.h:

LayoutTests:

  • fast/block/float/crash-when-floating-object-is-removed-expected.txt: Added.
  • fast/block/float/crash-when-floating-object-is-removed.xhtml: Added.
2:56 AM Changeset in webkit [186335] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r184883 - Integer overflow in XLarge allocation (due to unchecked roundUpToMultipleOf)
https://bugs.webkit.org/show_bug.cgi?id=145385

Reviewed by Andreas Kling.

Added some checking to verify that round-up operations will not overflow
a size_t.

The simplest way to do this was to introduce a notion of xLargeMax, like
we have for smallMax, mediumMax, and largeMax. It's a bit surprising at
first to think that there is an xLargeMax, since xLarge is what we use
to handle the biggest things. But computers have limits, so it makes sense.

FWIW, TCMalloc used to have an xLargeMax too, which it called kMaxValidPages.

No test because this bug was found by code inspection and I don't know
of a practical way to convince WebKit to make an allocation this large.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocate):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase): Check against xLargeMax to avoid
overflow when rounding up.

  • bmalloc/BAssert.h: Added support for explicit crashing.
  • bmalloc/Sizes.h:
2:55 AM Changeset in webkit [186334] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r184874 - SVG fragment identifier rendering issue
https://bugs.webkit.org/show_bug.cgi?id=137328

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-26
Reviewed by Darin Adler.

Source/WebCore:

This is a follow up for http://trac.webkit.org/changeset/164983. In this
changeset, scrolling to the fragment should have been added before the
the paint to guarantee setting the proper display position for the SVG
fragment.

Test: svg/css/svg-resource-fragment-identifier-order.html

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::draw): Move view->scrollToFragment() before calling
view->paint().

LayoutTests:

  • svg/css/svg-resource-fragment-identifier-order-expected.html: Added.
  • svg/css/svg-resource-fragment-identifier-order.html: Added.

Ensure the SVG fragment is drawn correctly when the same SVG image is
referenced multiple times.

2:48 AM Changeset in webkit [186333] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK] Guard X11-specific code in webkitWebViewBaseDidRelaunchWebProcess()
https://bugs.webkit.org/show_bug.cgi?id=146627

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDidRelaunchWebProcess):
Guard calls to DrawingAreaImpl::setNativeSurfaceHandleForCompositing()
that pass in an X11 Window ID with the PLATFORM(X11) build guards.

2:46 AM Changeset in webkit [186332] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184857 - [ARM] Build SVGPathElement.cpp with -O2 due to a GCC bug
https://bugs.webkit.org/show_bug.cgi?id=145377

Reviewed by Carlos Garcia Campos.

  • CMakeLists.txt:
2:44 AM Changeset in webkit [186331] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.8

Merge r184846 - Crash when using a removed ScriptMessageHandler
<rdar://problem/20888499>
https://bugs.webkit.org/show_bug.cgi?id=145359

Reviewed by Dan Bernstein.

Source/WebCore:

Added tests:

WKUserContentController.ScriptMessageHandlerBasicRemove
WKUserContentController.ScriptMessageHandlerCallRemovedHandler

  • page/UserMessageHandler.cpp:

(WebCore::UserMessageHandler::~UserMessageHandler):
(WebCore::UserMessageHandler::postMessage):
(WebCore::UserMessageHandler::name):

  • page/UserMessageHandler.h:

(WebCore::UserMessageHandler::create):

  • page/UserMessageHandler.idl:
  • page/UserMessageHandlerDescriptor.cpp:

(WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):

  • page/UserMessageHandlerDescriptor.h:

(WebCore::UserMessageHandlerDescriptor::client):
(WebCore::UserMessageHandlerDescriptor::invalidateClient):
Add support for invalidating the descriptor and throw an exception if someone tries
to post a message using an invalidated descriptor.

  • page/UserMessageHandlersNamespace.cpp:

(WebCore::UserMessageHandlersNamespace::handler):
Add logic to remove message handlers if their descriptor has been invalidated.

Source/WebKit2:

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy):
Invalidate the descriptor when the message handler client (as implemented by WebUserMessageHandlerDescriptorProxy)
goes away. This will happen if a script message handler is removed at the API level or the WebUserContentController
is destroyed (which will happen if all the pages get destroyed).

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:

Add tests for removing script message handlers.

2:41 AM Changeset in webkit [186330] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[GTK] Fix build errors with OpenGL ES
https://bugs.webkit.org/show_bug.cgi?id=146626

Reviewed by Carlos Garcia Campos.

  • platform/graphics/ANGLEWebKitBridge.h: Include <GLES2/gl2.h>

when building with OpenGL ES 2 support enabled.
(WebCore::ANGLEShaderSymbol::isSampler): Don't test for
OpenGL-specific GL_SAMPLER_2D_RECT_ARB value when OpenGL ES 2
support is enabled.

2:33 AM Changeset in webkit [186329] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184816 - Document::ensurePlugInsInjectedScript() should evaluate the injected script on its own frame.
https://bugs.webkit.org/show_bug.cgi?id=145328

Reviewed by Jon Lee.

trac.webkit.org/r184329 fixed HTMLPlugInImageElement::didAddUserAgentShadowRoot()
to use the document's frame instead of the page's main frame. However,
Document::ensurePlugInsInjectedScript() is still evaluating the injected script on
the main frame.

As a result, HTMLPlugInImageElement::didAddUserAgentShadowRoot()'s attempt to get
the injected createOverlay function from the document frame's global object will
fail. Fixing Document::ensurePlugInsInjectedScript() to evaluating the injected
script on the document's frame fixes the issue.

No new tests.

  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):

2:30 AM Changeset in webkit [186328] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184793 - [CG] Regression(r78652): Partially decoded images are not properly removed from MemoryCache when pruning
https://bugs.webkit.org/show_bug.cgi?id=145310

Reviewed by Antti Koivisto.

r78652 added partially decoded images to the MemoryCache's list of live
decoded resources so that they can be pruned on memory pressure. This
was needed because CG decodes part of the image to determine its
properties (e.g. its size). On memory pressure, we call
BitmapImage::destroyDecodedData() which clears the ImageSource and
frees up this extra decoded data.

However, we would fail to remove such partially decoded images from the
MemoryCache's list of live resources when pruning. This is because
BitmapImage::destroyMetadataAndNotify() fails to take into account the
decoded properties size when no frame has been cleared. We would thus
fail to detect a decoded size change and not call
CachedImage::decodedSizeChanged(). As a result, the CachedImage's
decoded size is not reset to 0 and we don't remove it from live decoded
resources.

This patch updates BitmapImage::destroyMetadataAndNotify() to account
for m_decodedPropertiesSize even if frameBytesCleared is 0. This way,
images for which we have't decoded any frames yet will correctly report
that we cleared the decoded data used to determine the image properties
and their decoded size will be properly reset to 0. As a result, these
will be removed from the MemoryCache's list of live decoded resources.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::destroyMetadataAndNotify):
(WebCore::BitmapImage::dataChanged):

  • platform/graphics/BitmapImage.h:
2:27 AM Changeset in webkit [186327] by Carlos Garcia Campos
  • 1 edit
    1 add in releases/WebKitGTK/webkit-2.8/Source/WebCore/platform/gtk/po

Merge r184766 - [l10n] Add Catalan translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=142928

Patch by Jordi Mas <jmas@softcatala.org> on 2015-05-22
Reviewed by Carlos Garcia Campos.

  • ca.po: Added.
2:21 AM Changeset in webkit [186326] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r184719 - SVG as image uses very tiny default font-size
https://bugs.webkit.org/show_bug.cgi?id=68090

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-21
Reviewed by Darin Adler.

Source/WebCore:

When loading a document, WebKit creates a Page object and then changes its setting
from the browser's preferences. This is true for interactive resources also, such as a
stand-alone SVG or an SVG embedded in an <object> tag for example. For non-interactive
resources, like an SVG embedded in an <img> tag for example, this function is called
after loading the resource is finished. This function creates an artificial page and
fabricates a scoped settings for it. This turns out to be problematic for cases like
the default font size because its initial value is zero. We cannot go from WebCore to
WebKit to ask for the global settings. But we can inherit the global settings from the
the master page. This is not the best solution because of two reasons. (1) Once the
resource is cached and the styles for the text elements are calculated, nothing can
change the values of styles except removing the resource itself from the cache if the
browser's preferences change. Also there is no mechanism to notify this artificial
page if the browser's preferences change. (2) An image like a non-interactive SVG,
should be displayed the same way regardless of the browser's preferences. A user may
be able to change the default font size for other text. But this should not affect
images even if they are vector images like SVG. An easy and more agreeable solution
is to hard-code the default font size for this case and do not depend on the global
settings at all.

Test: svg/text/text-default-font-size.html

  • page/Settings.in: Set the initial value of the setting defaultFontSize to be 16.

LayoutTests:

  • svg/text/text-default-font-size-expected.html: Added.
  • svg/text/text-default-font-size.html: Added.

Ensure the default font size for non-interactive SVG images is not zero.

2:08 AM Changeset in webkit [186325] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r184692 - dispatchViewStateChange should not wait for sync reply if the page isn't visible
https://bugs.webkit.org/show_bug.cgi?id=145242
<rdar://problem/20967937>

Reviewed by Ben Poulain.

This is particularly problematic on iOS, since if the page isn't visible the process is likely suspended.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchViewStateChange):
(WebKit::WebPageProxy::waitForDidUpdateViewState):

2:04 AM Changeset in webkit [186324] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r184675 - REGRESSION (r172591): Can no longer style <optgroup> with colors (LayoutTests/fast/forms/select/optgroup-rendering.html)
https://bugs.webkit.org/show_bug.cgi?id=145227
Source/WebCore:

rdar://problem/20967472

Reviewed by Darin Adler.

Test: fast/forms/select/select-painting.html

Use computedStyle() consistently for option and optgroup items.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):

We can always use computedStyle() and it can't be null. If there was renderer style it would return that.

  • rendering/RenderMenuList.cpp:

(RenderMenuList::itemStyle):
(RenderMenuList::getItemBackgroundColor):

LayoutTests:

Reviewed by Darin Adler.

Add ref test for select painting.

  • fast/forms/select/select-painting-expected.html: Added.
  • fast/forms/select/select-painting.html: Added.
2:02 AM Changeset in webkit [186323] by youenn.fablet@crf.canon.fr
  • 13 edits in trunk/Source

[Streams API] Remove ReadableStream custom constructor
https://bugs.webkit.org/show_bug.cgi?id=146547

Reviewed by Darin Adler.

Source/JavaScriptCore:

Adding helper function to throw range errors.

  • runtime/Error.h:

(JSC::throwRangeError):
(JSC::throwVMRangeError):

Source/WebCore:

Removed custom binding.
Made use of Dictionary in lieu of JSObject to reduce readable stream constructor parameter parsing.
Added support for passing ExecState to construtor within binding generator.

No change in behavior.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::create):

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::create):

  • Modules/streams/ReadableStream.idl:
  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDictionary.h:
  • bindings/js/JSReadableStreamCustom.cpp:
  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::create):
(WebCore::ReadableJSStream::ReadableJSStream):

  • bindings/js/ReadableJSStream.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):

  • bindings/scripts/IDLAttributes.txt:
2:01 AM Changeset in webkit [186322] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184657 - ThreadableLoaderOptions::isolatedCopy() doesn't produce a copy that is safe for sending to another thread
https://bugs.webkit.org/show_bug.cgi?id=145217

Reviewed by Anders Carlsson.

Caught by existing tests, rarely. I don't know how to catch such bugs more reliably.

  • loader/ThreadableLoader.cpp: (WebCore::ThreadableLoaderOptions::isolatedCopy):
  • loader/ThreadableLoader.h:
1:55 AM Changeset in webkit [186321] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r184638 - [GTK] Add some documentation to WebKitWebExtension
https://bugs.webkit.org/show_bug.cgi?id=142786

Patch by Marcos Chavarría Teijeiro <mchavarria@igalia.com> on 2015-05-20
Reviewed by Carlos Garcia Campos.

WebKitWebExtension API documentation lacks of some details and the information
available is in some contributors blog posts. I add the section
documentation with a small guide about how to use WebExtensions.

The code examples were taken from Carlos García and Adrián Pérez blog
posts.

  • WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
1:53 AM Changeset in webkit [186320] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184615 - Crash under WebCore::invalidateStyleRecursively
https://bugs.webkit.org/show_bug.cgi?id=145186
rdar://problem/19736838

Reviewed by Andreas Kling

We have seen crashes where we run out of stack under invalidateStyleRecursively in StyleInvalidationAnalysis
on some devices.

Switch to iterative algorithm.

  • css/StyleInvalidationAnalysis.cpp:

(WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
(WebCore::invalidateIfNeeded):
(WebCore::invalidateStyleForTree):
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
(WebCore::invalidateStyleRecursively): Deleted.

1:47 AM Changeset in webkit [186319] by Carlos Garcia Campos
  • 13 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r184598 - X-Frame-Options headers not respected when loading from application cache.
<rdar://problem/14877623> and https://bugs.webkit.org/show_bug.cgi?id=131800

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: http/tests/appcache/x-frame-options-prevents-framing.php

This patch updates SubstituteData to hold on to a ResourceResponse instead of just a URL.

It also updates all users of SubstituteData to reflect this.

Finally it updates ApplicationCacheHost to put the full response (including x-frame-options header)
in the SubstituteData so they can be checked at the appropriate times.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::handleSubstituteDataLoadNow):
(WebCore::DocumentLoader::responseReceived): Update an ASSERT to reflect that it's okay to not have

a main resource as long as you have a substitute identifier for it.

(WebCore::DocumentLoader::documentURL):
(WebCore::DocumentLoader::contentFilterDidDecide):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::defaultSubstituteDataForURL):

  • loader/SubstituteData.h:

(WebCore::SubstituteData::SubstituteData):
(WebCore::SubstituteData::shouldRevealToSessionHistory):
(WebCore::SubstituteData::mimeType):
(WebCore::SubstituteData::textEncoding):
(WebCore::SubstituteData::response):
(WebCore::SubstituteData::responseURL): Deleted.

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadMainResource): Put the full ResourceResponse here, which

includes x-frame-options headers sent back when the resources was initially loaded from the network.

  • platform/network/ResourceResponseBase.h:

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):

Source/WebKit/win:

  • WebFrame.cpp:

(WebFrame::loadData):

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadDataImpl):

LayoutTests:

  • http/tests/appcache/resources/x-frame-options-prevents-framing-test.html: Added.
  • http/tests/appcache/resources/x-frame-options-prevents-framing.manifest: Added.
  • http/tests/appcache/x-frame-options-prevents-framing-expected.txt: Added.
  • http/tests/appcache/x-frame-options-prevents-framing.php: Added.
1:31 AM Changeset in webkit [186318] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r184581 - Fix the build of a universal binary with ARMv7k of JavaScriptCore.
https://bugs.webkit.org/show_bug.cgi?id=145143

Reviewed by Geoffrey Garen.

The offlineasm works in 3 phases:

Phase 1:

Parse the llint asm files for config options and desired offsets.
Let's say the offlineasm discovers C unique options and O unique offsets.
The offlineasm will then generate a LLIntDesiredOffsets.h file with
C x C build configurations, each with a set of O offsets.

Each of these build configurations is given a unique configuration index number.

Phase 2:

Compile the LLIntDesiredOffsets.h file into a JSCLLIntOffsetsExtractor binary.

If we're building a fat binary with 2 configurations: armv7, and armv7k,
then the fat binary will contain 2 blobs of offsets, one for each of these
build configurations.

Phase 3:

Parse the llint asm files and emit asm code using the offsets that are
extracted from the JSCLLIntOffsetsExtractor binary for the corresponding
configuration index number.

In the pre-existing code, there are no "if ARMv7k" statements in the llint asm
source. As a result, OFFLINE_ASM_ARMv7k is not one of the config options in
the set of C unique options.

For armv7k builds, OFFLINE_ASM_ARMv7 is also true. As a result, for an armv7k
target, we will end up building armv7 source. In general, this is fine except:

  1. armv7k has different alignment requirements from armv7. Hence, their offset values (in JSCLLIntOffsetsExtractor) will be different.
  1. The offlineasm was never told that it needed to make a different configuration for armv7k builds. Hence, the armv7k build of LLIntDesiredOffsets.h will build the armv7 configuration, and consequently, the armv7k blob of offsets in JSCLLIntOffsetsExtractor will have the same configuration index number as the armv7 blob of offsets.

In phase 3, when the offlineasm parses the JSCLLIntOffsetsExtractor fat binary
looking for the armv7 build's configuration index number, it discovers the
armv7k blob which has the same configuration number. As a result, it
erroneously thinks the armv7k offsets are appropriate for emitting armv7 code.
Needless to say, armv7 code using armv7k offsets will lead to incorrect behavior
and all round badness.

The fix is to add a simple "if ARMv7k" statement to the llint asm files. While
the if statement has no body, it does make the offlineasm aware of the need for
ARMv7k as a configuration option. As a result, it will generate an armv7k
variant configuration in the LLIntDesiredOffsets.h file with its own unique
configuration index number. With that, the JSCLLIntOffsetsExtractor fat binary
will no longer have duplicate configuration index numbers for the armv7 and
armv7k blobs of offsets, and the issue is resolved.

  • llint/LLIntOfflineAsmConfig.h:
  • llint/LowLevelInterpreter.asm:
1:29 AM Changeset in webkit [186317] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r184577 - Merged anonymous blocks should invalidate simple line layout path.
https://bugs.webkit.org/show_bug.cgi?id=145104
rdar://problem/20980930

Reviewed by Antti Koivisto.

When anonymous blocks are merged together, it's not guaranteed that the final block can use simple line layout.
This patch ensures that the flow block, where the other block's content gets moved to, is no longer on simple line layout path.
Whether the final flow block ends up using inline boxes or simple line layout will be determined during the next layout.

Source/WebCore:

Test: fast/block/crash-when-anonymous-blocks-are-merged-with-simple-line-layout.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertChildInternal):

LayoutTests:

  • fast/block/crash-when-anonymous-blocks-are-merged-with-simple-line-layout-expected.txt: Added.
  • fast/block/crash-when-anonymous-blocks-are-merged-with-simple-line-layout.html: Added.
1:27 AM Changeset in webkit [186316] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184576 - Crash in WebCore::RenderLayer::updateScrollbarsAfterLayout
https://bugs.webkit.org/show_bug.cgi?id=145142

Reviewed by Simon Fraser.

I have not been able to reproduce this crash, but according to symbolication
m_vBar is null. It seems like this crash was probably caused by
http://trac.webkit.org/changeset/173668 which made it so that overflow:scroll
behaves like overflow:auto when the scrollbars are overlay. I can see how you
could encounter this crash with that change if the layout caused
styleRequiresScrollbar() to return true when it used to return false. Then this
code, by failing to null-check the scrollbars, assumes that
styleRequiresScrollbar() could not have changed based on a layout. But it could
change if the css changed the scrollbars to be custom or if the user managed
switch to legacy style scrollbars at just the wrong time. Or I suppose it could
also happen if the user has legacy scrollbars and the style switched from auto to
scroll during the layout.

Anyway, we should null-check the scrollbars. This is a speculative fix.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateScrollbarsAfterLayout):

1:26 AM Changeset in webkit [186315] by Carlos Garcia Campos
  • 32 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r184555 - Mark static variables as const when possible
https://bugs.webkit.org/show_bug.cgi?id=145161

Reviewed by Andreas Kling.

Source/WebCore:

  • Modules/mediasession/WebMediaSessionManager.cpp:
  • Modules/mediasource/SourceBuffer.cpp:
  • Modules/webdatabase/SQLException.cpp:
  • dom/DOMCoreException.cpp:
  • inspector/NetworkResourcesData.cpp:
  • loader/icon/IconDatabase.cpp:

(WebCore::urlForLogging):

  • page/AutoscrollController.cpp:
  • page/Page.cpp:
  • platform/RuntimeApplicationChecksIOS.mm:

(WebCore::applicationIsAdSheet):
(WebCore::applicationIsMobileMail):
(WebCore::applicationIsMobileSafari):
(WebCore::applicationIsDumpRenderTree):
(WebCore::applicationIsWebApp):
(WebCore::applicationIsOkCupid):
(WebCore::applicationIsFacebook):
(WebCore::applicationIsEpicurious):
(WebCore::applicationIsDaijisenDictionary):
(WebCore::applicationIsNASAHD):
(WebCore::applicationIsMASH):
(WebCore::applicationIsTheEconomistOnIPhone):
(WebCore::applicationIsWebProcess):
(WebCore::applicationIsIBooksOnIOS):

  • platform/audio/HRTFElevation.cpp:
  • platform/audio/mac/AudioHardwareListenerMac.cpp:

(WebCore::processIsRunningPropertyDescriptor):
(WebCore::outputDevicePropertyDescriptor):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::toCoreTextFontWeight):
(WebCore::toAppKitFontWeight):
(WebCore::toNSFontWeight):

  • platform/mac/ScrollAnimatorMac.mm:

(supportsUIStateTransitionProgress):
(supportsExpansionTransitionProgress):
(supportsContentAreaScrolledInDirection):

  • platform/mac/ScrollbarThemeMac.mm:
  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::dataForURLComponentType):

  • platform/mock/ScrollbarThemeMock.cpp:
  • platform/text/icu/UTextProviderLatin1.cpp:
  • platform/text/ios/LocalizedDateCache.mm:

(WebCore::LocalizedDateCache::calculateMaximumWidth):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::matchedEndLine):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):

  • rendering/RenderFrameBase.cpp:

(WebCore::shouldExpandFrame):

  • rendering/RenderTableSection.cpp:
  • rendering/RenderThemeIOS.mm:

(WebCore::getInsetGradient):
(WebCore::getShineGradient):
(WebCore::getShadeGradient):
(WebCore::getConvexGradient):
(WebCore::getConcaveGradient):
(WebCore::getSliderTrackGradient):
(WebCore::getReadonlySliderTrackGradient):
(WebCore::getSliderThumbOpaquePressedGradient):
(WebCore::RenderThemeIOS::paintCheckboxDecorations):
(WebCore::RenderThemeIOS::paintRadioDecorations):

  • rendering/RenderThemeMac.mm:

(WebCore::toFontWeight):
(WebCore::TopGradientInterpolate):
(WebCore::BottomGradientInterpolate):
(WebCore::MainGradientInterpolate):
(WebCore::TrackGradientInterpolate):

Source/WebKit2:

  • Platform/IPC/MessageEncoder.cpp:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::networkProcessLatencyQOS):
(WebKit::networkProcessThroughputQOS):
(WebKit::webProcessLatencyQOS):
(WebKit::webProcessThroughputQOS):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::pluginNeedsExecutableHeap):
(WebKit::pluginProcessLatencyQOS):
(WebKit::pluginProcessThroughputQOS):

  • WebProcess/WebPage/WebPage.cpp:

Source/WTF:

  • wtf/dtoa.cpp:

(WTF::pow5mult):

1:17 AM Changeset in webkit [186314] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r184501 - [JSC] Speed up URL encode/decode by using bitmaps instead of strchr().
<https://webkit.org/b/145115>

Reviewed by Anders Carlsson.

We were calling strchr() for every character when doing URL encoding/decoding and it stood out
like a sore O(n) thumb in Instruments. Optimize this by using a Bitmap<256> instead.

5.5% progression on Kraken/stanford-crypto-sha256-iterative.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::makeCharacterBitmap):
(JSC::encode):
(JSC::decode):
(JSC::globalFuncDecodeURI):
(JSC::globalFuncDecodeURIComponent):
(JSC::globalFuncEncodeURI):
(JSC::globalFuncEncodeURIComponent):
(JSC::globalFuncEscape):

1:13 AM Changeset in webkit [186313] by Carlos Garcia Campos
  • 7 edits
    2 deletes in releases/WebKitGTK/webkit-2.8/Source

Merge r180968 - Remove unused compression code
https://bugs.webkit.org/show_bug.cgi?id=142237

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • bytecode/UnlinkedCodeBlock.h:

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Compression.cpp: Removed.
  • wtf/Compression.h: Removed.
1:10 AM Changeset in webkit [186312] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk

Promise-returning functions should reject promises if the callee is not of the expected type
https://bugs.webkit.org/show_bug.cgi?id=146585

Reviewed by Darin Adler.

Source/WebCore:

Updated binding generator to reject promise in case the casting of the thisValue is not working properly
(i.e. the callee is not wrapping a DOM object of the expected class.

Covered by rebased test and binding expectations.

  • bindings/js/JSDOMPromise.h:

(WebCore::callPromiseFunction): Removed wrapper class parameter.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestObj.cpp: Updated binding expectations.

(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgument):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithException):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgument):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):

LayoutTests:

  • streams/reference-implementation/brand-checks-expected.txt:
1:08 AM Changeset in webkit [186311] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r184448 - Do not use fastMallocGoodSize anywhere
https://bugs.webkit.org/show_bug.cgi?id=145103

Reviewed by Michael Saboff.

Source/JavaScriptCore:

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::grow):

Source/WTF:

It is silly we see fastMallocGoodSize in profiles, it does absolutely nothing.

This patch keeps fastMallocGoodSize() around for older code linking
with newer WebKit, but remove any use of it inside WebKit.

  • wtf/FastMalloc.cpp:

(WTF::fastMallocGoodSize):

  • wtf/FastMalloc.h:
  • wtf/Vector.h:

(WTF::VectorBufferBase::allocateBuffer):
(WTF::VectorBufferBase::tryAllocateBuffer):
(WTF::VectorBufferBase::reallocateBuffer):

12:42 AM Changeset in webkit [186310] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184443 - Crash when uploading huge files to YouTube or Google Drive
https://bugs.webkit.org/show_bug.cgi?id=145083
rdar://problem/15468529

Reviewed by Darin Adler.

This fixes the crash, but uploading will fail.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): Tell SubresourceLoader to not store a copy of
all received data, FileReaderLoader has its own buffer.
(WebCore::FileReaderLoader::didReceiveResponse): Fixed a bounds check - not every
64-bit value that doesn't fit into 32 bits is negative. With this, FileReader fails
on huge files right away, as intended.
(WebCore::FileReaderLoader::didReceiveData): Fixed multiple bugs in code that's
executed when size is not available upfront. This is the code that used to crash,
but with the above fix, it's not executed by YouTube.
Not only overflow was handled incorrectly, but even simply growing a buffer for
append was buggy.

12:41 AM Changeset in webkit [186309] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r184440 - REGRESSION (Subpixel): Dashed underline is missing when box is positioned at subpixels.
https://bugs.webkit.org/show_bug.cgi?id=145097
rdar://problem/18588415

Reviewed by Simon Fraser.

Dashed and dotted border painting needs clipping in order to properly display corners.
Similarly to solid border's quad calculation, we pixelsnap the border positions before computing the clipping quad values.

Source/WebCore:

Test: fast/borders/dashed-border-on-subpixel-position.html

fast/borders/dotted-border-on-subpixel-position.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::clipBorderSidePolygon):

LayoutTests:

  • fast/borders/dashed-border-on-subpixel-position-expected.html: Added.
  • fast/borders/dashed-border-on-subpixel-position.html: Added.
  • fast/borders/dotted-border-on-subpixel-position-expected.html: Added.
  • fast/borders/dotted-border-on-subpixel-position.html: Added.
12:40 AM Changeset in webkit [186308] by Carlos Garcia Campos
  • 11 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r184434 - When redirecting to data URL use HTTP response for same origin policy checks
https://bugs.webkit.org/show_bug.cgi?id=145054
rdar://problem/20299050

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: http/tests/security/canvas-remote-read-data-url-image-redirect.html

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::notifyFinished):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::sanitizeScriptError):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::wouldTaintOrigin):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::notifyFinished):

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::responseReceived):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::notifyFinished):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::isOriginClean):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::passesAccessControlCheck):
(WebCore::CachedResource::passesSameOriginPolicyCheck):

Factor repeatedly used same origin policy test into a function.

(WebCore::CachedResource::redirectReceived):

When redirecting to a data URL save the redirect response.

(WebCore::CachedResource::responseForSameOriginPolicyChecks):

In case we got redirected to data use that response instead of the final data response for policy checks.

  • loader/cache/CachedResource.h:

LayoutTests:

  • http/tests/security/canvas-remote-read-data-url-image-redirect-expected.txt: Added.
  • http/tests/security/canvas-remote-read-data-url-image-redirect.html: Added.
12:19 AM Changeset in webkit [186307] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r184414 - [ARM64] Do not fail branchConvertDoubleToInt32 when the result is zero and not negative zero
https://bugs.webkit.org/show_bug.cgi?id=144976

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-05-15
Reviewed by Michael Saboff.

Failing the conversion on zero is pretty dangerous as we discovered on x86.

This patch does not really impact performance significantly because
r184220 removed the zero checks from Kraken. This patch is just to be
on the safe side for cases not covered by existing benchmarks.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchConvertDoubleToInt32):

12:13 AM Changeset in webkit [186306] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Exceptions in Network timeline when resource updates and filters are applied
https://bugs.webkit.org/show_bug.cgi?id=146609

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.insertChild):
(WebInspector.DataGrid.prototype.removeChild):
(WebInspector.DataGridNode.prototype.savePosition):
Convert exceptions to asserts and early returns.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes): Add some asserts and checks.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline.prototype.appendChild):
(WebInspector.TreeOutline.prototype.insertChild):
(WebInspector.TreeOutline.prototype.removeChildAtIndex):
(WebInspector.TreeOutline.prototype.removeChild):
Convert exceptions to asserts and early returns.

12:02 AM Changeset in webkit [186305] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r184394 - Crash in RenderFlowThread::popFlowThreadLayoutState() due to mismatched push/pop count
https://bugs.webkit.org/show_bug.cgi?id=145042

Reviewed by David Hyatt.

RenderFlowThread previously used a ListHashSet to store its stack of active objects. This
is problematic because, if the same object is pushed twice, only a single entry of that
object is added to the stack. After this occurs, a matching number of pushes will pop too
many items off the stack, causing a crash when popping a stack with zero items. This
specifically happens in FrameView::layout(), which will push its root renderer on the stack
of active items, and then ask the root to layout(), which will attempt to push itself on the
stack of active items.

Instead of a ListHashSet, use a Vector, which has similar memory characteristics and no
uniqueness requirements.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::pushFlowThreadLayoutState):
(WebCore::RenderFlowThread::popFlowThreadLayoutState):

  • rendering/RenderFlowThread.h:

Jul 5, 2015:

11:32 PM Changeset in webkit [186304] by Chris Dumez
  • 5 edits in trunk/Source

[WK2] Current page's scroll position is lost when transferring sessionState from one view to another
https://bugs.webkit.org/show_bug.cgi?id=146625
<rdar://problem/21585268>

Reviewed by Gavin Barraclough.

Source/WebCore:

Export HistoryController:saveScrollPositionAndViewStateToItem()
so that it can be called from WebKit2.

  • loader/HistoryController.h:

Source/WebKit2:

The current page's scroll position was lost when transferring the
sessionState from one view to another. This is because we only update
the current WebBackForwardListItem after navigating away.
However, when the client swaps WebViews for navigating, we don't detect
this as navigating away and the current WebBackForwardListItem is not
updated with the current page's state (including the scroll position).
This means that the information is not transferred via the sessionState
and the scroll position (among other things) ends up being lost when
navigating back in the new WebView.

Retrieving the session state is a synchronous API and we want to avoid
doing a synchronous IPC between the UIProcess and the WebProcess to
retrieve the current page's state. Therefore, the approach chosen in
this patch is to detect when the user is done scrolling the main frame
(using a HystererisActivity) and then update the scroll position on the
current HistoryItem. This way, the current WebBackForwardListItem
normally has an up-to-date scroll position for the main frame when the
sessionState is queried by the client.

The solution is not perfect as we don't keep the whole page state
up-to-date for the current WebBackForwardListItem, only the main frame
state. However, the proposed solution is cheap, avoid synchronous IPC
and provides a much better user experience in most cases.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::pageDidScroll):
(WebKit::WebPage::pageStoppedScrolling):

  • WebProcess/WebPage/WebPage.h:
11:26 PM Changeset in webkit [186303] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cached resources are missing startTime and size in Network timeline
https://bugs.webkit.org/show_bug.cgi?id=146607

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache): Pass elapsedTime in the right argument order.
Add missing calls to Resource.increaseSize and Resource.increaseTransferSize.
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse): Pass elapsedTime in the right argument order.

11:23 PM Changeset in webkit [186302] by timothy@apple.com
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Dim more borders when the window is inactive
https://bugs.webkit.org/show_bug.cgi?id=146608

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.css:

(body.window-inactive .data-grid th):
(body.window-inactive .data-grid :matches(th, td):not(:last-child)):

  • UserInterface/Views/NavigationSidebarPanel.css:

(body.window-inactive .sidebar > .panel.navigation > .overflow-shadow):

  • UserInterface/Views/OverviewTimelineView.css:

(body.window-inactive .timeline-view.overview > .timeline-ruler > .header):

  • UserInterface/Views/TimelineDataGrid.css:

(body.window-inactive .data-grid.timeline th):
(body.window-inactive .data-grid.timeline > .navigation-bar-container > .navigation-bar):

  • UserInterface/Views/TimelineRuler.css:

(body.window-inactive .timeline-ruler > .header):
(body.window-inactive .timeline-ruler > .header > .divider):

  • UserInterface/Views/TimelineSidebarPanel.css:

(body.window-inactive .sidebar > .panel.navigation.timeline > .status-bar):
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar):
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):

11:20 PM Changeset in webkit [186301] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline row selection should have same background color in sidebar and data grid
https://bugs.webkit.org/show_bug.cgi?id=146606

Support a force-focus class name that TreeOutlineDataGridSynchronizer applies when one of the
elements is focused, so the other can look focused too.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.css:

(.data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)):
(.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before):
(.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before):
(.data-grid:matches(:focus, .force-focus) tr.selected):
(.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):

  • UserInterface/Views/Main.css:

(:matches(:focus, .force-focus) .selected .go-to-arrow):
(:matches(:focus, .force-focus) .selected .go-to-arrow:active):

  • UserInterface/Views/NavigationSidebarPanel.css:

(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .subtitle):

  • UserInterface/Views/TreeElementStatusButton.css:

(:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .filled):
(:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .stroked):

  • UserInterface/Views/TreeOutlineDataGridSynchronizer.js:

(WebInspector.TreeOutlineDataGridSynchronizer):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridGainedFocus): Added.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridLostFocus): Added.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineGainedFocus): Added.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineLostFocus): Added.

9:36 PM Changeset in webkit [186300] by Yusuke Suzuki
  • 3 edits in trunk/LayoutTests

Update toLength / toInteger names in control profiler test results
https://bugs.webkit.org/show_bug.cgi?id=146229

Reviewed by Simon Fraser.

ToLength / ToInteger are renamed to toLength / toInteger.
Update the names in the test results for control profiler.

  • fast/profiler/built-in-function-calls-anonymous-expected.txt:
  • fast/profiler/built-in-function-calls-user-defined-function-expected.txt:
9:29 PM Changeset in webkit [186299] by Simon Fraser
  • 5 edits
    2 adds in trunk

REGRESSION (r180582): background-attachment: local; does not scroll the background image when scrolling the the element's contents
https://bugs.webkit.org/show_bug.cgi?id=146623

Reviewed by Zalan Bujtas.

Source/WebCore:

r180582 erroneously asserted that m_destOrigin in BackgroundImageGeometry was unused.
However, it is needed to compute the correct phase when the destination rect is
altered by clipping.

Test: fast/backgrounds/background-attachment-local.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

  • rendering/RenderBoxModelObject.h:

(WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::relativePhase):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::drawMaskForRenderer):

LayoutTests:

Ref test for background-attachment: local.

  • fast/backgrounds/background-attachment-local-expected.html: Added.
  • fast/backgrounds/background-attachment-local.html: Added.
7:01 PM Changeset in webkit [186298] by Yusuke Suzuki
  • 23 edits
    2 moves
    4 adds
    2 deletes in trunk

[ES6] Implement the latest Promise spec in JS
https://bugs.webkit.org/show_bug.cgi?id=146229

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Updated the Promise implementation to meet to the ES6 spec.
This patch

  1. Implement ES6 Promise and related abstract operations in builtins JS
  2. Expose @enqueueJob private function to JS world to post the microtask

Updated implementation has one-on-one correspondence to the ES6 spec description.
And keep the JSPromiseDeferred because it is the interface used from the WebCore.

(reduce):
(reduceRight):
(every):
(forEach):
(filter):
(map):
(some):
(fill):
(find):
(findIndex):
(includes):
(copyWithin):
ToInteger / ToLength are renamed to toInteger and toLength.

  • builtins/ArrayConstructor.js:

(from):
ToInteger / ToLength are renamed to toInteger and toLength.

  • builtins/GlobalObject.js:

(toInteger):
(toLength):
(isObject):
(ToInteger): Deleted.
(ToLength): Deleted.
ToInteger / ToLength are renamed to toInteger and toLength.
Add new abstract operation, isObject.

  • builtins/Operations.Promise.js: Added.

(isPromise):
(newPromiseReaction):
(newPromiseDeferred):
(newPromiseCapability.executor):
(newPromiseCapability):
(triggerPromiseReactions):
(rejectPromise):
(fulfillPromise):
(createResolvingFunctions.resolve):
(createResolvingFunctions.reject):
(createResolvingFunctions):
(promiseReactionJob):
(promiseResolveThenableJob):
(initializePromise):
Added Promise related abstract operations.

  • builtins/Promise.prototype.js:

(catch):
(.onFulfilled):
(.onRejected):
(then):
Promise#then implementation in JS.

  • builtins/PromiseConstructor.js: Added.

(all.newResolveElement):
(all):
(race):
(reject):
(resolve):
Promise static functions implementations in JS.

  • builtins/StringConstructor.js:

(raw):
ToInteger / ToLength are renamed to toInteger and toLength.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::getInternalProperties):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::enqueueJob):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::initializePromiseFunction):
(JSC::JSGlobalObject::newPromiseDeferredFunction):

  • runtime/JSJob.cpp: Renamed from Source/JavaScriptCore/runtime/JSPromiseReaction.h.

(JSC::createJSJob):
(JSC::JSJobMicrotask::run):

  • runtime/JSJob.h: Renamed from Source/JavaScriptCore/runtime/JSPromiseFunctions.h.
  • runtime/JSPromise.cpp:

(JSC::JSPromise::create):
(JSC::JSPromise::JSPromise):
(JSC::JSPromise::finishCreation):
(JSC::JSPromise::result):
(JSC::JSPromise::destroy): Deleted.
(JSC::JSPromise::visitChildren): Deleted.
(JSC::JSPromise::reject): Deleted.
(JSC::JSPromise::resolve): Deleted.
(JSC::JSPromise::appendResolveReaction): Deleted.
(JSC::JSPromise::appendRejectReaction): Deleted.
(JSC::triggerPromiseReactions): Deleted.

  • runtime/JSPromise.h:

(JSC::JSPromise::status): Deleted.
(JSC::JSPromise::result): Deleted.
(JSC::JSPromise::constructor): Deleted.

  • runtime/JSPromiseConstructor.cpp:

(JSC::constructPromise):
(JSC::JSPromiseConstructorFuncResolve): Deleted.
(JSC::JSPromiseConstructorFuncReject): Deleted.
(JSC::performPromiseRaceLoop): Deleted.
(JSC::JSPromiseConstructorFuncRace): Deleted.
(JSC::performPromiseAll): Deleted.
(JSC::JSPromiseConstructorFuncAll): Deleted.

  • runtime/JSPromiseDeferred.cpp:

(JSC::JSPromiseDeferred::create):
(JSC::createJSPromiseDeferredFromConstructor): Deleted.
(JSC::updateDeferredFromPotentialThenable): Deleted.
(JSC::performDeferredResolve): Deleted.
(JSC::performDeferredReject): Deleted.
(JSC::abruptRejection): Deleted.

  • runtime/JSPromiseDeferred.h:
  • runtime/JSPromiseFunctions.cpp: Removed.

(JSC::deferredConstructionFunction): Deleted.
(JSC::createDeferredConstructionFunction): Deleted.
(JSC::identifyFunction): Deleted.
(JSC::createIdentifyFunction): Deleted.
(JSC::promiseAllCountdownFunction): Deleted.
(JSC::createPromiseAllCountdownFunction): Deleted.
(JSC::promiseResolutionHandlerFunction): Deleted.
(JSC::createPromiseResolutionHandlerFunction): Deleted.
(JSC::rejectPromiseFunction): Deleted.
(JSC::createRejectPromiseFunction): Deleted.
(JSC::resolvePromiseFunction): Deleted.
(JSC::createResolvePromiseFunction): Deleted.
(JSC::throwerFunction): Deleted.
(JSC::createThrowerFunction): Deleted.

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototypeFuncThen): Deleted.

  • runtime/JSPromiseReaction.cpp: Removed.

(JSC::createExecutePromiseReactionMicrotask): Deleted.
(JSC::ExecutePromiseReactionMicrotask::run): Deleted.
(JSC::JSPromiseReaction::create): Deleted.
(JSC::JSPromiseReaction::JSPromiseReaction): Deleted.
(JSC::JSPromiseReaction::finishCreation): Deleted.
(JSC::JSPromiseReaction::visitChildren): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:

LayoutTests:

Add a test to guarantee that Promise.resolve looks up then field synchronously.

  • js/dom/Promise-resolve-lookup-then-expected.txt: Added.
  • js/dom/Promise-resolve-lookup-then.html: Added.
5:04 PM WebKitGTK/2.8.x edited by Michael Catanzaro
Un-propose r185320, it got reverted (diff)
5:00 PM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose r186296 (diff)
4:09 PM Changeset in webkit [186297] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (El Capitan): Slider thumb of range input is rotated on reference tests

Fix tracked by <rdar://problem/21677831>.

  • platform/mac/TestExpectations: Mark tests as image-only failures:
  • css3/flexbox/flexitem-stretch-range.html
  • fast/forms/range/input-appearance-range-rtl.html
  • fast/forms/range/range-change-min-max.html
1:36 PM Changeset in webkit [186296] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash when closing the web inspector
https://bugs.webkit.org/show_bug.cgi?id=146620

Reviewed by Darin Adler.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::closeWindow): Null check the connection, like it is
in other places where it is used.

12:10 PM Changeset in webkit [186295] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186198): js/dom/global-constructors-attributes.html fails on El Capitan

  • platform/mac/js/dom/global-constructors-attributes-expected.txt:

Update results after r186198.

12:10 PM Changeset in webkit [186294] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/canvas/webgl/oes-texture-half-float-linear.html is flakey on Yosemite Release/Debug WK1/WK2

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Foes-texture-half-float-linear.html>

  • platform/mac/TestExpectations: Mark test as flaky:
  • fast/canvas/webgl/oes-texture-half-float-linear.html
12:10 PM Changeset in webkit [186293] by ddkilzer@apple.com
  • 4 edits in trunk/LayoutTests

fast/forms/textarea/textarea-state-restore.html is flaky on WK2

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fforms%2Ftextarea%2Ftextarea-state-restore.html>

Fix tracked by <http://webkit.org/b/90980>.

  • platform/efl/TestExpectations: Move expectation from here...
  • platform/gtk/TestExpectations: ...and here...
  • platform/wk2/TestExpectations: ...to here:
  • fast/forms/textarea/textarea-state-restore.html
12:10 PM Changeset in webkit [186292] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow.html crashes on Windows Debug

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-parent-same-origin-allow.html>

  • platform/win/TestExpectations: Mark as crashing:
  • http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow.html
12:10 PM Changeset in webkit [186291] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

webgl/1.0.2/conformance/more/functions/copyTexImage2DBadArgs.html fails due to truncated expected results on Yosemite Debug WK1

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=webgl%2F1.0.2%2Fconformance%2Fmore%2Ffunctions%2FcopyTexImage2DBadArgs.html>

Fix tracked by <http://webkit.org/b/146622>.

  • platform/mac-wk1/TestExpectations: Mark as flaky:
  • webgl/1.0.2/conformance/more/functions/copyTexImage2DBadArgs.html
12:10 PM Changeset in webkit [186290] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/preloader/document-write-2.html is flaky on WK2

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fpreloader%2Fdocument-write-2.html>

When the test fails, the first two lines are reversed:

@@ -1,2 +1,2 @@
+script1.js has MIME type text/javascript

document-write-plaintext.js has MIME type text/javascript

-script1.js has MIME type text/javascript

  • platform/wk2/TestExpectations: Mark test as flaky:
  • fast/preloader/document-write-2.html
11:46 AM Changeset in webkit [186289] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Deleting in the CSS sidebar causes the warning icon to appear mid-word
https://bugs.webkit.org/show_bug.cgi?id=146617

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now removes all marks whenever the user deletes.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): The invalid marker now calculates
it's position based off of where the semicolon is in the property text.

11:23 AM Changeset in webkit [186288] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS rule with 2 pseudo-selectors appears twice
https://bugs.webkit.org/show_bug.cgi?id=146576

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
Only adds pseudo-elements if the previous pseudo-element has a different selector.

1:15 AM Changeset in webkit [186287] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

[WK2] WebBackForwardListItems' pageState is not kept up-to-date
https://bugs.webkit.org/show_bug.cgi?id=146614
<rdar://problem/21585268>

Reviewed by Gavin Barraclough.

WebBackForwardListItems' pageState on UIProcess-side were not kept
up-to-date when it was updated on WebContent process side. This meant
that we were losing the scroll position (among other things) when
transferring the session state over from one view to another.

We now call notifyHistoryItemChanged(item) after saving the scroll
position and the view state on the HistoryItem. As a result, the
WebBackForwardListProxy will send the updated pageState to the
UIProcess.

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::notifyChanged):

  • history/HistoryItem.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

Jul 4, 2015:

2:51 PM Changeset in webkit [186286] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Wrong cursor position in styles panel when deleting a line break
https://bugs.webkit.org/show_bug.cgi?id=146577

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): If the change is a deletion at the beginning of a line,
remove all markers on that line to ensure that there is no blank space on the previous line after deleting.

2:49 PM Changeset in webkit [186285] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Pressing tab on a newline in the console should insert a tab character
https://bugs.webkit.org/show_bug.cgi?id=146612

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt.prototype._handleTabKey): Tabs can now be inserted at the beginning of newlines and before the first
non-space character on any other line.

2:48 PM Changeset in webkit [186284] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Pressing enter on a newline in the styles sidebar inserts a semicolon
https://bugs.webkit.org/show_bug.cgi?id=146611

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Now returns if the line is empty.

2:46 PM Changeset in webkit [186283] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Console should indicate if you have unseen messages in console due to filters
https://bugs.webkit.org/show_bug.cgi?id=143166

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.updatePreviousMessageRepeatCount): Now returns true/false depending on if
the message count was actually updated.

  • UserInterface/Views/LogContentView.css:

(.log-scope-bar > li.unread): Applies the unread-border-pulse keyframe animation.
(.log-scope-bar > li.unread.errors): The pulsing border is colored red.
(.log-scope-bar > li.unread.warnings): The pulsing border is colored yellow(ish).
(.log-scope-bar > li.unread.logs): The pulsing border is colored grey.
(@keyframes unread-border-pulse): Changes the color of the border from transparent to whatever is specificed.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._determineMessageLevel):
(WebInspector.LogContentView.prototype._pulseScopeBarItemBorder): Adds the class "unread" to the scope bar item whose panel
the newest message belongs to, but only if that panel or the All panel is not visible.
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
(WebInspector.LogContentView.prototype._scopeBarSelectionDidChange): Clears the "unread" class on the selected scope bar item.
(WebInspector.LogContentView.prototype._filterMessageElements):

  • UserInterface/Views/ScopeBar.js:

(WebInspector.ScopeBar.prototype.get items): Returns a list of all the items in the scope bar.

  • UserInterface/Views/ScopeBarItem.js:

(WebInspector.ScopeBarItem): Added another parameter to allow for a custom class name.

2:44 PM Changeset in webkit [186282] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Pseudo Styles Ordering and Media Queries
https://bugs.webkit.org/show_bug.cgi?id=145979

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)):
Fix filter label styling with pseudo selectors.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Pseudo-selector rules will now order directly after the last style that
matches the pseudo-selector without the pseudo-element. If no rules match, place the pseudo-selector rules above the first
inherited or UserAgent rule (whichever comes first).

2:41 PM Changeset in webkit [186281] by Devin Rousso
  • 3 edits
    6 adds in trunk/Source/WebInspectorUI

REGRESSION(r184000): Web Inspector: Multiline CSS in Styles Sidebar is marked as invalid
https://bugs.webkit.org/show_bug.cgi?id=146178

Reviewed by Timothy Hatcher.

First changes made by Tobias Reiss <tobi+webkit@basecode.de>

  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values.css: Added.
  • Tools/PrettyPrinting/index.html:

Add regression tests.

  • UserInterface/Views/CodeMirrorFormatters.js:

Remove newlines before values that belong in one line and add whitespace between values.

2:31 PM Changeset in webkit [186280] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed Windows build fix after r186279.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::destroyVideoLayer):

  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::CACFLayerTreeHost::destroyRenderer):

12:42 PM Changeset in webkit [186279] by Chris Dumez
  • 199 edits in trunk

Drop RefPtr::clear() method
https://bugs.webkit.org/show_bug.cgi?id=146556

Reviewed by Brady Eidson.

Source/JavaScriptCore:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

Source/WebCore:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

Source/WebKit:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

Source/WebKit/mac:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

Source/WebKit/win:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

Source/WebKit2:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

Source/WTF:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.
Also made the "= nullptr;" pattern as efficient as clear()
by providing a operator=(nullptr_t) overload. Local micro-
benchmarking showed that "= nullptr;" used to be ~1.7% slower
than clear().

Tools:

Drop RefPtr::clear() method in favor of "= nullptr;" pattern.

7:45 AM Changeset in webkit [186278] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: The arrow that appears for Web Inspector Layout & Rendering records overlaps the category switcher
https://bugs.webkit.org/show_bug.cgi?id=146605

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineDataGrid.css:

(.data-grid.timeline > .navigation-bar-container):

Jul 3, 2015:

9:13 PM Changeset in webkit [186277] by mitz@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Just give up on -Wunreachable-code in JavaScriptCore.

  • Configurations/Base.xcconfig:
  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

9:11 PM Changeset in webkit [186276] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the iOS 8 build.

  • editing/cocoa/HTMLConverter.mm:
8:56 PM Changeset in webkit [186275] by Chris Dumez
  • 10 edits
    2 adds in trunk

REGRESSION (r178097): HTMLSelectElement.add(option, undefined) prepends option to the list of options; should append to the end of the list of options
https://bugs.webkit.org/show_bug.cgi?id=146566
<rdar://problem/21663919>

Reviewed by Ryosuke Niwa.

Source/WebCore:

HTMLSelectElement.add(X, undefined) is supposed to be equivalent to
HTMLSelectElement.add(X) which should *append* X. The same is true
for HTMLOptionsCollection.add(X, undefined).

However, due to a bug in our bindings generator for overloaded
operations, the actual behavior was not the expected one. The
second overload would be chosen: add(X, index) and undefined would
be converted as 0-index, which would *prepend* X.

This patch fixes the bindings generator so that undefined is allowed
for optional parameters of an overload operation, when doing the
overload resolution.

Tests:

  • fast/dom/HTMLSelectElement/add.html
  • fast/dom/HTMLSelectElement/options-collection-add.html
  • http/tests/websocket/tests/hybi/undefined-protocol.html
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheckExpression):
Allow undefined value for optional parameters when doing the overload
resolution.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):

  • bindings/scripts/test/TestObj.idl:

Add bindings tests coverage and rebaseline.

LayoutTests:

  • fast/dom/HTMLSelectElement/add-expected.txt:
  • fast/dom/HTMLSelectElement/add.html:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add.html:

Update tests so that calling add(X, undefined) is expected to append X,
not prepend it.

  • http/tests/websocket/tests/hybi/undefined-protocol-expected.txt: Added.
  • http/tests/websocket/tests/hybi/undefined-protocol.html: Added.

Add test coverage for "new WebSocket(url, undefined)" as WebSocket is
using constructor overloads with optional parameters. Previously, calling
new WebSocket(url, undefined) was equivalent to calling
new WebSocket(url, "undefined") even though it is supposed to be
equivalent to calling new WebSocket(url).

8:12 PM Changeset in webkit [186274] by mitz@apple.com
  • 2 edits in trunk/Tools

Fixed the iOS build.

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController isSelectorExcludedFromWebScript:]):
(+[EventSendingController webScriptNameForSelector:]):

7:55 PM Changeset in webkit [186273] by mitz@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fixed the LLINT CLoop build.

  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

7:54 PM Changeset in webkit [186272] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the Mavericks build after r186236.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::url): Removed the export macro from this inline function.

6:41 PM Changeset in webkit [186271] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the iOS build.

  • bridge/objc/objc_class.mm:

(JSC::Bindings::ObjcClass::fieldNamed):

6:24 PM Changeset in webkit [186270] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the iOS build.

  • editing/cocoa/HTMLConverter.mm:
5:35 PM Changeset in webkit [186269] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the iOS build.

  • page/FrameView.cpp:

(WebCore::FrameView::calculateExtendedBackgroundMode):

2:58 PM Changeset in webkit [186268] by mitz@apple.com
  • 45 edits
    1 move in trunk

[Xcode] Update some build settings as recommended by Xcode 7
https://bugs.webkit.org/show_bug.cgi?id=146597

Reviewed by Sam Weinig.

Source/bmalloc:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE, GCC_NO_COMMON_BLOCKS,

and ENABLE_STRICT_OBJC_MSGSEND. Removed GCC_MODEL_TUNING.

  • bmalloc.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and

GCC_NO_COMMON_BLOCKS. Removed GCC_MODEL_TUNING.

  • dfg/DFGGraph.h: Tweaked the definition of DFG_CRASH to suppress unreachable code warnings.

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj: Enabled CLANG_WARN_BOOL_CONVERSION,

CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION, ENABLE_STRICT_OBJC_MSGSEND and
GCC_NO_COMMON_BLOCKS.

  • Configurations/Base.xcconfig: Updated LastUpgradeCheck.

Source/WebCore:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE,

GCC_WARN_UNDECLARED_SELECTOR, and GCC_NO_COMMON_BLOCKS. Removed GCC_MODEL_TUNING.

  • WebCore.xcodeproj/project.pbxproj: Updated LastUpgradeCheck. Disabled -Wunreachable-code

for two bison-generated source files. Updated for rename of WebScriptObject.h.

  • bindings/objc/WebScriptObject.mm:

(-[WebUndefined dealloc]): Removed unreachable code and suppressed warning about not calling
super.

  • bridge/objc/WebScriptObject.h: Renamed to WebScriptObjectProtocol.h to enabled inlcuding

the other WebScriptObject.h.

  • bridge/objc/WebScriptObjectProtocol.h: Renamed from WebScriptObject.h.
  • bridge/objc/objc_class.mm: Updated for rename and included WebScriptObject.h because we

use selectors declared in that file.

  • bridge/objc/objc_instance.mm: Ditto.

(ObjCRuntimeMethod::create): Resolved ambiguity between JSC::JSValue and the Objective-C
JSValue class.
(ObjCRuntimeMethod::createStructure): Ditto.
(ObjcInstance::invokeMethod): Ditto.
(ObjcInstance::invokeObjcMethod): Ditto.
(ObjcInstance::invokeDefaultMethod): Ditto.
(ObjcInstance::setValueOfUndefinedField): Ditto.
(ObjcInstance::getValueOfUndefinedField): Ditto.
(ObjcInstance::defaultValue): Ditto.
(ObjcInstance::stringValue): Ditto.
(ObjcInstance::numberValue): Ditto.
(ObjcInstance::booleanValue): Ditto.
(ObjcInstance::valueOf): Ditto,

  • bridge/objc/objc_runtime.h: Moved definition of isFallbackMethod() from here to the

implementation.

  • bridge/objc/objc_runtime.mm: Updated for rename and included WebScriptObject.h because we

use selectors declared in that file.
(JSC::Bindings::ObjcMethod::isFallbackMethod): Moved definition from the header to here.

  • bridge/objc/objc_utility.mm: Updated for rename.
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addScrollbarPseudoClassType): Removed unreachable code.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

Added declarations to the WebCoreMovieObserver interface.
(WebCore::MediaPlayerPrivateQTKit::disableUnsupportedTracks): Suppressed
-Wundeclared-selector around invocation of a selector that is not declared anywhere.

Source/WebInspectorUI:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and

GCC_NO_COMMON_BLOCKS.

  • WebInspectorUI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.

Source/WebKit/mac:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE,

GCC_WARN_UNDECLARED_SELECTOR and GCC_NO_COMMON_BLOCKS. Removed GCC_MODEL_TUNING.

Source/WebKit2:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and

GCC_NO_COMMON_BLOCKS. Removed GCC_MODEL_TUNING.

  • WebKit2.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.

Source/WTF:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and

GCC_NO_COMMON_BLOCKS. Removed GCC_MODEL_TUNING.

  • WTF.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
  • DumpRenderTree/mac/Configurations/Base.xcconfig: Enabled GCC_NO_COMMON_BLOCKS,

ENABLE_STRICT_OBJC_MSGSEND, CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_CONSTANT_CONVERSION,
CLANG_WARN_EMPTY_BODY, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION,
CLANG_WARN_UNREACHABLE_CODE, GCC_WARN_ABOUT_RETURN_TYPE,
GCC_WARN_UNINITIALIZED_AUTOS, and GCC_WARN_UNDECLARED_SELECTOR.

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController webScriptNameForSelector:]): Removed check for setDragMode:,
which was removed in r19101.

  • DumpRenderTree/mac/TextInputController.m:

(-[TextInputController interpretKeyEvents:withSender:]): Suppressed -Wundeclared-selector
around used of a selector not that is not declared anywhere.

  • MiniBrowser/Configurations/Base.xcconfig: Enabled GCC_NO_COMMON_BLOCKS.
  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
  • TestWebKitAPI/Configurations/Base.xcconfig: Enabled GCC_NO_COMMON_BLOCKS,

ENABLE_STRICT_OBJC_MSGSEND, CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_CONSTANT_CONVERSION,
CLANG_WARN_EMPTY_BODY, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION,
CLANG_WARN_UNREACHABLE_CODE, GCC_WARN_ABOUT_RETURN_TYPE,
GCC_WARN_UNINITIALIZED_AUTOS, and GCC_WARN_UNDECLARED_SELECTOR.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
2:55 PM Changeset in webkit [186267] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Memory leak for a protected Element having pending events in ImageLoader.
https://bugs.webkit.org/show_bug.cgi?id=146538

Patch by Kyounga Ra <kyounga@alticast.com> on 2015-07-03
Reviewed by Brady Eidson.

If ImageLoader is destroyed before an active derefElementTimer is fired, protected element's refCount never be zero..

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::~ImageLoader):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::updateRenderer):
(WebCore::ImageLoader::updatedHasPendingEvent):
(WebCore::ImageLoader::timerFired):

  • loader/ImageLoader.h:
2:55 PM Changeset in webkit [186266] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip http/tests/xmlhttprequest/cross-origin-cookie-storage.html on Windows.

Windows' DumpRenderTree does not implement testRunner.setAlwaysAcceptCookies().

  • platform/win/TestExpectations:
2:15 PM WebKitGTK/2.8.x edited by mario@webkit.org
(diff)
1:54 PM Changeset in webkit [186265] by dbates@webkit.org
  • 19 edits
    2 adds in trunk

REGRESSION (r178097): JavaScript TypeError after clicking on compose button in Yahoo Mail
https://bugs.webkit.org/show_bug.cgi?id=146515
<rdar://problem/21348421>

Reviewed by Chris Dumez.

Source/WebCore:

Fixes an issue where extra arguments passed to a Web IDL overloaded function, whose implementation
is generated by the bindings generator script, are not ignored as per the note in section "Interface object Call method"
of the Web IDL spec, <http://www.w3.org/TR/2012/CR-WebIDL-20120419/> (19 April 2012).

Currently for an overloaded function the JavaScript bindings generator script emits code to
throw a TypeError when it cannot find a candidate function that takes the same number of
arguments as passed by a caller. Prior to the change made in bug #139179 (r178097), the
bindings code for HTMLSelectElement.add() was written by hand and ignored extra arguments
that were passed to it. Following this change, the bindings code for HTMLSelectElement.add()
is generated by the bindings generator script. Therefore, we throw a TypeError when Yahoo Mail
calls HTMLSelectElement.add() with extra arguments because the code emitted by the bindings
generator script does not ignore them.

  • bindings/scripts/CodeGeneratorJS.pm:

(LengthOfLongestFunctionParameterList): Added. Computes the length of longest overload parameter list.
(GenerateOverloadedFunction): Emit code that ignores more arguments than LengthOfLongestFunctionParameterList().
(GenerateOverloadedConstructorDefinition): Ditto.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12): Added; expected result for an overloaded
function that takes a variadic number of Blob elements.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod): Update expected result. The added
if-conditional expression for the IDL declaration overloadedMethod(Blob... blobArgs) is empty
because we do not support overloading of functions with variadic arguments.
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors5): Added; expected
result for an overloaded constructors that takes a variadic number of long arguments.
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors): Update expected
result. The added if-conditional expression for the IDL declaration Constructor(long... longArgs) is empty
because we do not support overloading of constructors with variadic arguments.

  • bindings/scripts/test/TestObj.idl: Added declaration overloadedMethod(Blob...). Also fixed

typo in license block text.

  • bindings/scripts/test/TestOverloadedConstructors.idl: Added declaration Constructor(long... longArgs).

Also fixed typo in license block text.

LayoutTests:

Add new sub-tests to LayoutTests/fast/dom/HTMLSelectElement/{add, options-collection-add}.html,
simplify existing test code, share common code, and update expected results.

Additionally, update results for tests in LayoutTests/fast/canvas now that we ignore extra
arguments passed to a Web IDL overloaded function whose implementation is generated by the
bindings generator script.

  • fast/canvas/canvas-overloads-drawImage-expected.txt:
  • fast/canvas/canvas-overloads-setFillColor-expected.txt:
  • fast/canvas/canvas-overloads-setShadow-expected.txt:
  • fast/canvas/canvas-overloads-setStrokeColor-expected.txt:
  • fast/canvas/script-tests/canvas-overloads-drawImage.js:
  • fast/canvas/script-tests/canvas-overloads-setFillColor.js:
  • fast/canvas/script-tests/canvas-overloads-setShadow.js:
  • fast/canvas/script-tests/canvas-overloads-setStrokeColor.js:
  • fast/dom/HTMLSelectElement/add-expected.txt:
  • fast/dom/HTMLSelectElement/add.html:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add.html:
  • fast/dom/HTMLSelectElement/resources/html-select-and-options-collection-utilities.js: Added.

(createSelectElementWithTestData):
(deepCopy):
(createOption):
(createGroup):

1:50 PM Changeset in webkit [186264] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, tentative fix for flaky layout test introduced in r186256.

  • platform/mac/accessibility/selection-notification-focus-change-expected.txt:
  • platform/mac/accessibility/selection-notification-focus-change.html:
1:39 PM Changeset in webkit [186263] by mario@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash on xLarge memory allocation using bmalloc on 32bit systems
https://bugs.webkit.org/show_bug.cgi?id=146440

Reviewed by Gustavo Noronha Silva.

Disable the gcc's -ftree-sra optimization (automatically enabled
with -O1 and higher levels) for WebCore and 32bit Intel architectures,
as that causes the crash in bmalloc when allocating large amounts of
memory from the texture mapper's tiled backing store implementation.

  • CMakeLists.txt: Pass -fno-free-sra to gcc on 32bit Intel architectures.
11:45 AM Changeset in webkit [186262] by peavo@outlook.com
  • 4 edits in trunk/Source/ThirdParty/ANGLE

[WinCairo][WebGL] Enable HLSL.
https://bugs.webkit.org/show_bug.cgi?id=146559

Reviewed by Alex Christensen.

High Level Shader Language needs to be enabled for WebGL to work on Windows.

  • ANGLE.vcxproj/translatorCommon.props:
  • ANGLE.vcxproj/translator_hlsl.vcxproj:
  • ANGLE.vcxproj/translator_hlsl.vcxproj.filters:
11:41 AM Changeset in webkit [186261] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(VIDEO) build after r186054
https://bugs.webkit.org/show_bug.cgi?id=146592

Reviewed by Eric Carlson.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

10:38 AM Changeset in webkit [186260] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Relax builtin JS restriction about try-catch
https://bugs.webkit.org/show_bug.cgi?id=146555

Reviewed by Sam Weinig.

When retrieving the captured variables from the full activated scope,
it swapped the given vector with the stored declared variables vector.
This is because retrieving the captured variables are executed in the
last sequence of the parser, so declared variables are no longer used.
However, in builtins functions case, after retrieving the captured
variables, we check the variables by using declared variables vector.
So at that time, the declared variables vector becomes empty and it
raises assertion failures when the builtins function contains the full
activated scope. try-catch's catch scope requires the upper scope full
activated, so JS code in the builtins cannot use the try-catch.

This patch relaxes this restriction. When retrieving the captured
variables from the scope, just copy to the given vector.

  • parser/Parser.h:

(JSC::Scope::getCapturedVariables):

8:14 AM Changeset in webkit [186259] by Martin Robinson
  • 3 edits in trunk

[GTK] Forcefully disable gtk-doc and gobject-introspection when crossbuilding
https://bugs.webkit.org/show_bug.cgi?id=146590

Patch by Emanuele Aina <Emanuele Aina> on 2015-07-03
Reviewed by Martin Robinson.

  • Source/PlatformGTK.cmake: override the cached variables to

forcefully disable gtk-doc and gobject-introspection when
crosscompiling.

  • Source/cmake/OptionsGTK.cmake: avoid running gtk-doc to check the

documentation syntax when cross-building.

1:45 AM Changeset in webkit [186258] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r186025): [SOUP] NetworkCache gets blocked in traverse since r186025
https://bugs.webkit.org/show_bug.cgi?id=146545

Reviewed by Sergio Villar Senin.

In r186025 the readSync method used when traversing the cache
files was removed in favor of using parallel async reads to speed
up the traverse. The approach used doesn't work for soup, because
the IO operations are async, but run their callbacks in the
current thread. The network cache now runs up to 5 async reads in
the io work queue thread, and waits for them to finish, and those
asycn reads never finish for the soup backend because the thread
is blocked waiting for them. We need to use a different thread to
run those reads.

  • NetworkProcess/cache/NetworkCacheIOChannel.h: Add

readSyncInThread private method.

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::read): When not called in the
main thread, call readSyncInThread() instead.
(WebKit::NetworkCache::IOChannel::readSyncInThread): Run the read
operation synchronously in a different thread, since the current
thread might be blocked waiting for us.

12:28 AM Changeset in webkit [186257] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk/Source/WebCore

[Streams API] Remove ReadableStream and Reader cancel() custom binding
https://bugs.webkit.org/show_bug.cgi?id=146458

Reviewed by Darin Adler.

Removed stream and reader cancel custom binding.
Updated binding generator to correctly handle promise-based APIs with optional parameters.

No behavior changes.

  • Modules/streams/ReadableStream.idl: Removed custom
  • Modules/streams/ReadableStreamReader.idl: Ditto.
  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::JSReadableStream::cancel): Deleted.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::cancel): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm: Handling of promise parameter in case of optional arguments.

(GenerateParametersCheck):
(GenerateReturnParameters): Utility function to generate return parameters (exception and promise).

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgument):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):

  • bindings/scripts/test/TestObj.idl:

Jul 2, 2015:

8:34 PM Changeset in webkit [186256] by commit-queue@webkit.org
  • 16 edits
    2 adds in trunk

AX: Selection change as a result of focusing an element should include that
information in the intent
https://bugs.webkit.org/show_bug.cgi?id=146533

Patch by Doug Russell <d_russell@apple.com> on 2015-07-02
Reviewed by Chris Fleizach.

Added focusChange flag to AXTextStateChangeIntent.
Added intent support to selection logic called by Element::updateFocusAppearance().
Added NSAccessibilityTextSelectionChangedFocus to mac notifications.

Source/WebCore:

Test: platform/mac/accessibility/selection-notification-focus-change.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postTextStateChangeNotification):

  • accessibility/AXTextStateChangeIntent.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::setTextSelectionIntent):
(WebCore::AccessibilityRenderObject::setFocused):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

  • dom/Element.cpp:

(WebCore::Element::updateFocusAppearance):

  • dom/Element.h:

(WebCore::Element::defaultFocusTextStateChangeIntent):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectionByMouseIfDifferent):
(WebCore::FrameSelection::selectAll):

  • editing/FrameSelection.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateFocusAppearance):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::updateFocusAppearance):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::select):
(WebCore::HTMLTextFormControlElement::setSelectionRange):
(WebCore::HTMLTextFormControlElement::restoreCachedSelection):

  • html/HTMLTextFormControlElement.h:
  • page/EventHandler.cpp:

(WebCore::setInitialKeyboardSelection):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):

LayoutTests:

  • platform/mac/accessibility/selection-notification-focus-change-expected.txt: Added.
  • platform/mac/accessibility/selection-notification-focus-change.html: Added.
8:08 PM Changeset in webkit [186255] by commit-queue@webkit.org
  • 6 edits in trunk

[EFL] test_ewk2_application_cache_manager has been failed since r185527
https://bugs.webkit.org/show_bug.cgi?id=146016

Patch by Przemek Piorkowski <piorkowskiprzemyslaw@gmail.com> on 2015-07-02
Reviewed by Gyuyoung Kim.

In order to handle properly WebApplicationCacheManagerProxy implementation which use
.:

WebsiteDataRecord it is necessary to enable PUBLIC_SUFFIX_LIST for EFL.
Implementation of PUBLIC_SUFFIX_LIST already exists for soup so EFL can use it as well.

  • Source/cmake/OptionsEfl.cmake: set ENABLE_PUBLIC_SUFFIX_LIST to ON for EFL.

Source/WebCore:

WebsiteDataRecord it is necessary to enable PUBLIC_SUFFIX_LIST for EFL.
Implementation of PUBLIC_SUFFIX_LIST already exists for soup so EFL can use it as well.

  • PlatformEfl.cmake: PublicSuffixSoup.cpp added to source files.

Source/WebKit2:

WebsiteDataRecord it is necessary to enable PUBLIC_SUFFIX_LIST for EFL.
Implementation of PUBLIC_SUFFIX_LIST already exists for soup so EFL can use it as well.

  • UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:

(TEST_F): enable ewk_application_cache_manager as it is passing now.

7:40 PM Changeset in webkit [186254] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Unreviewed, rolling out r186251.
https://bugs.webkit.org/show_bug.cgi?id=146573

caused crashes in webaudio tests (Requested by cdumez on
#webkit).

Reverted changeset:

"Ensure media playback is stopped during page close"
https://bugs.webkit.org/show_bug.cgi?id=146554
http://trac.webkit.org/changeset/186251

Patch by Commit Queue <commit-queue@webkit.org> on 2015-07-02

7:35 PM Changeset in webkit [186253] by Chris Dumez
  • 9 edits in trunk/Source/WebKit2

Unreviewed, rolling out r186247 and r186250.
https://bugs.webkit.org/show_bug.cgi?id=146572

Broke the build on Mavericks bots (Requested by cdumez on
#webkit).

Reverted changesets:

"Provide API to clear the HSTS cache"
https://bugs.webkit.org/show_bug.cgi?id=146565
http://trac.webkit.org/changeset/186247

"Unreviewed build fix for non-COCOA ports after r186247."
http://trac.webkit.org/changeset/186250

Patch by Commit Queue <commit-queue@webkit.org> on 2015-07-02

6:48 PM Changeset in webkit [186252] by fpizlo@apple.com
  • 10 edits
    2 adds in trunk/Source/JavaScriptCore

DFG and FTL should have an OSR exit fuzzer
https://bugs.webkit.org/show_bug.cgi?id=146562

Reviewed by Benjamin Poulain.

Adds a basic OSR exit fuzzer to JSC. This isn't hooked into any test harnesses yet, but I
spot-checked it on v8-earley-boyer.js and so far found no bugs. I'd like to figure out how
to harness this after I land it.

Since it's turned off by default, it should have no effect on behavior.

(JSC::numberOfOSRExitFuzzChecks):

  • dfg/DFGOSRExitFuzz.h: Added.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitGetArgumentStart):
(JSC::DFG::SpeculativeJIT::emitOSRExitFuzzCheck):
(JSC::DFG::SpeculativeJIT::speculationCheck):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):

  • jsc.cpp:

(jscmain):

  • runtime/Options.h:
  • runtime/TestRunnerUtils.h:
6:44 PM Changeset in webkit [186251] by Brent Fulgham
  • 7 edits in trunk/Source/WebCore

Ensure media playback is stopped during page close
https://bugs.webkit.org/show_bug.cgi?id=146554
<rdar://problem/18033944>

Reviewed by Zalan Bujtas.

Add new method to Page class to stop all media playback. It just uses the process
MediaSessionManager singleton to inform all hosted in a particular document to stop.

  • Modules/webaudio/AudioContext.h:

(WebCore::WebAudio::hostingDocument): Added.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::hostingDocument): Added.

  • dom/Document.cpp:

(WebCore::Document::commonTeardown): Call the new PlatformMediaSessionManager::stopAllMediaPlaybackForDocument
method on document cleanup.

  • platform/audio/PlatformMediaSession.h:

Made PlatformMediaSessionManager a friend so it can access the protected 'client' accessor.
Updated PlatformMediaSessionClient to require clients to have a "hostingDocument" member.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForDocument): Added. Only pauses
playback on elements that match the provided document.

  • platform/audio/PlatformMediaSessionManager.h:
6:43 PM Changeset in webkit [186250] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix for non-COCOA ports after r186247.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData): Add PLATFORM(COCOA) guard.

6:27 PM Changeset in webkit [186249] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Tapping a video in Safari causes the video to flash gray for a quick moment
https://bugs.webkit.org/show_bug.cgi?id=146570
<rdar://problem/21325181>

Reviewed by Brent Fulgham.

On iOS, video elements should not show the tap highlight.

  • css/html.css:

(video):

5:53 PM Changeset in webkit [186248] by dbates@webkit.org
  • 4 edits
    2 adds in trunk

[iOS] Add WebKitSystemInterface for iOS 8.4
https://bugs.webkit.org/show_bug.cgi?id=146548

Rubber-stamped by Zalan Bujtas.

Tools:

  • Scripts/copy-webkitlibraries-to-product-directory:

WebKitLibraries:

  • WebKitSystemInterfaceIOS.h:
  • libWebKitSystemInterfaceIOSDevice8.4.a: Added.
  • libWebKitSystemInterfaceIOSSimulator8.4.a: Added.
5:08 PM Changeset in webkit [186247] by andersca@apple.com
  • 9 edits in trunk/Source/WebKit2

Provide API to clear the HSTS cache
https://bugs.webkit.org/show_bug.cgi?id=146565
rdar://problem/20023805

Reviewed by Tim Horton.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::clearHSTSCache):

  • Shared/WebsiteData/WebsiteDataTypes.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeNetworkProcessAccessTypeForDataRemoval):

4:53 PM Changeset in webkit [186246] by saambarati1@gmail.com
  • 16 edits
    4 moves
    2 adds
    2 deletes in trunk

Rename "Deconstruction" to "Destructuring" throughout JSC
https://bugs.webkit.org/show_bug.cgi?id=146100

Reviewed by Mark Lam.

Source/JavaScriptCore:

It is good to use the same naming conventions as the ES6
spec because it is the de facto way of speaking about these
language features. This also has the benefit of improving JSC's
hackability because it improves code readability for newcomers
to JSC or newcomers to this part of the code base.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeNextParameter):
(JSC::BytecodeGenerator::visibleNameForParameter):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::registerFor):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ForInNode::tryGetBoundLocal):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
(JSC::DestructuringAssignmentNode::emitBytecode):
(JSC::DestructuringPatternNode::~DestructuringPatternNode):
(JSC::ArrayPatternNode::collectBoundIdentifiers):
(JSC::DeconstructingAssignmentNode::emitBytecode): Deleted.
(JSC::DeconstructionPatternNode::~DeconstructionPatternNode): Deleted.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createElementList):
(JSC::ASTBuilder::createFormalParameterList):
(JSC::ASTBuilder::createClause):
(JSC::ASTBuilder::createClauseList):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::createForOfLoop):
(JSC::ASTBuilder::isBindingNode):
(JSC::ASTBuilder::isResolve):
(JSC::ASTBuilder::createDestructuringAssignment):
(JSC::ASTBuilder::createArrayPattern):
(JSC::ASTBuilder::appendArrayPatternSkipEntry):
(JSC::ASTBuilder::appendArrayPatternEntry):
(JSC::ASTBuilder::appendArrayPatternRestEntry):
(JSC::ASTBuilder::createObjectPattern):
(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::createDeconstructingAssignment): Deleted.

  • parser/NodeConstructors.h:

(JSC::TryNode::TryNode):
(JSC::ParameterNode::ParameterNode):
(JSC::ForOfNode::ForOfNode):
(JSC::DestructuringPatternNode::DestructuringPatternNode):
(JSC::ArrayPatternNode::ArrayPatternNode):
(JSC::ArrayPatternNode::create):
(JSC::ObjectPatternNode::ObjectPatternNode):
(JSC::BindingNode::create):
(JSC::BindingNode::BindingNode):
(JSC::DestructuringAssignmentNode::DestructuringAssignmentNode):
(JSC::DeconstructionPatternNode::DeconstructionPatternNode): Deleted.
(JSC::DeconstructingAssignmentNode::DeconstructingAssignmentNode): Deleted.

  • parser/Nodes.cpp:

(JSC::FunctionParameters::create):

  • parser/Nodes.h:

(JSC::ExpressionNode::isResolveNode):
(JSC::ExpressionNode::isBracketAccessorNode):
(JSC::ExpressionNode::isDotAccessorNode):
(JSC::ExpressionNode::isDestructuringNode):
(JSC::ExpressionNode::isFuncExprNode):
(JSC::ExpressionNode::isCommaNode):
(JSC::ExpressionNode::isSimpleArray):
(JSC::ParameterNode::pattern):
(JSC::ParameterNode::nextParam):
(JSC::FunctionParameters::size):
(JSC::FunctionParameters::at):
(JSC::FunctionParameters::patterns):
(JSC::DestructuringPatternNode::isBindingNode):
(JSC::DestructuringPatternNode::emitDirectBinding):
(JSC::ArrayPatternNode::appendIndex):
(JSC::ObjectPatternNode::appendEntry):
(JSC::BindingNode::boundProperty):
(JSC::DestructuringAssignmentNode::bindings):
(JSC::ExpressionNode::isDeconstructionNode): Deleted.
(JSC::DeconstructionPatternNode::isBindingNode): Deleted.
(JSC::DeconstructionPatternNode::emitDirectBinding): Deleted.
(JSC::DeconstructingAssignmentNode::bindings): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVarDeclaration):
(JSC::Parser<LexerType>::parseWhileStatement):
(JSC::Parser<LexerType>::parseVarDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::tryParseDestructuringPatternExpression):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseDefaultValueForDestructuringPattern):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::tryParseDeconstructionPatternExpression): Deleted.
(JSC::Parser<LexerType>::parseDeconstructionPattern): Deleted.
(JSC::Parser<LexerType>::parseDefaultValueForDeconstructionPattern): Deleted.

  • parser/Parser.h:

(JSC::isEvalNode):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createPropertyList):
(JSC::SyntaxChecker::createElementList):
(JSC::SyntaxChecker::createFormalParameterList):
(JSC::SyntaxChecker::createClause):
(JSC::SyntaxChecker::createClauseList):
(JSC::SyntaxChecker::operatorStackPop):

  • tests/stress/reserved-word-with-escape.js:
  • tests/stress/rest-elements.js:

LayoutTests:

  • js/deconstructing-parameters-should-be-locals-expected.txt: Removed.
  • js/deconstructing-parameters-should-be-locals.html: Removed.
  • js/destructuring-assignment-expected.txt:
  • js/destructuring-parameters-should-be-locals-expected.txt: Copied from LayoutTests/js/deconstructing-parameters-should-be-locals-expected.txt.
  • js/destructuring-parameters-should-be-locals.html: Copied from LayoutTests/js/deconstructing-parameters-should-be-locals.html.
  • js/regress/deconstructing-parameters-overridden-by-function-expected.txt: Removed.
  • js/regress/deconstructing-parameters-overridden-by-function.html: Removed.
  • js/regress/destructuring-parameters-overridden-by-function-expected.txt: Copied from LayoutTests/js/regress/deconstructing-parameters-overridden-by-function-expected.txt.
  • js/regress/destructuring-parameters-overridden-by-function.html: Copied from LayoutTests/js/regress/deconstructing-parameters-overridden-by-function.html.
  • js/regress/script-tests/deconstructing-parameters-overridden-by-function.js: Removed.
  • js/regress/script-tests/destructuring-parameters-overridden-by-function.js: Copied from LayoutTests/js/regress/script-tests/deconstructing-parameters-overridden-by-function.js.
  • js/script-tests/deconstructing-parameters-should-be-locals.js: Removed.
  • js/script-tests/destructuring-assignment.js:

(testDestructuredArgs):
(testDestructuredArgLength):
(testDeconstructArgs): Deleted.
(testDeconstructArgLength): Deleted.

  • js/script-tests/destructuring-parameters-should-be-locals.js: Copied from LayoutTests/js/script-tests/deconstructing-parameters-should-be-locals.js.

(description.value.string_appeared_here.readDestructuredParameter):
(overwriteDestructuredParameter):
(readCapturedDestructuredParameter):
(overwriteCapturedDestructuredParameter):
(description.value.string_appeared_here.readDeconstructedParameter): Deleted.
(overwriteDeconstructedParameter): Deleted.
(readCapturedDeconstructedParameter): Deleted.
(overwriteCapturedDeconstructedParameter): Deleted.

4:40 PM Changeset in webkit [186245] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/ios

iOS WebKitLegacy should match WebKit2's viewport behavior
https://bugs.webkit.org/show_bug.cgi?id=146564
<rdar://problem/20574017>

Reviewed by Brent Fulgham.

  • WebCoreSupport/WebChromeClientIOS.mm:

(dictionaryForViewportArguments):

4:34 PM Changeset in webkit [186244] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

WebKit should use 80% white background for PiP indicator
https://bugs.webkit.org/show_bug.cgi?id=146444
<rdar://problem/21555726>

Reviewed by Brent Fulgham.

The designers wanted 80% white, not 80% black (r186104).
I've also reverted the AirPlay background back to black.

  • Modules/mediacontrols/mediaControlsiOS.css:

(audio::-webkit-media-controls-wireless-playback-status):
(audio::-webkit-media-controls-wireless-playback-status.small):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):

4:32 PM Changeset in webkit [186243] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

Gardening: fix broken 32-bit build..
https://bugs.webkit.org/show_bug.cgi?id=146416

Not reviewed.

  • UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm:

(API::SerializedScriptValue::deserialize):

4:31 PM Changeset in webkit [186242] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

bmalloc: Shrink the super chunk size
https://bugs.webkit.org/show_bug.cgi?id=146519

Reviewed by Andreas Kling.

We have lots of reports of crashing due to failed VM allocation on iOS.
(This VM limit on iOS is usually 1GB-2GB, and has been as low as 256MB.)

Shrink the super chunk size in case fragmentation is the reason for
VM allocation failure.

This has the downside that >= 2MB allocations will now be super slow,
but they are also super rare (as in never on most websites), so this
is probably an OK tradeoff.

  • bmalloc/Sizes.h:
3:57 PM Changeset in webkit [186241] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Correct *another* typo in r186238.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Fix parameter name scrolView -> scrollView.
3:44 PM Changeset in webkit [186240] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fix the build.

Rubber-stamped by Brady Eidson.

  • WebView/WebView.mm:

(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Http, not HTTP, for settings generator reasons.

3:32 PM Changeset in webkit [186239] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Correct typo in r186238.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]):

3:31 PM Changeset in webkit [186238] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Clear current AirPlay source before setting another
https://bugs.webkit.org/show_bug.cgi?id=145959

Reviewed by Brent Fulgham.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::clientStateDidChange): Don't make a client begin playing

to the target just because it has paused.

(WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Always select a client that

requrested the picker, and never consider paused clients when choosing a client to begin
playing to the targer. Call setShouldPlayToPlaybackTarget(true) after all of the other
clients have been told to stop playing to the target.

3:17 PM Changeset in webkit [186237] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

Provide delegate SPI for clients to notify WebKit about content inset changes
https://bugs.webkit.org/show_bug.cgi?id=146482
<rdar://problem/21602741>

Reviewed by Darin Adler.

Provide a new SPI for WebKit client applications to use to inform WebKit of planned
adjustments to the edge insets of the view.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add new optional delegate method.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): If the new delegate
method exists, use the specified content insets, rather than the current state of the view.

3:10 PM Changeset in webkit [186236] by Beth Dakin
  • 8 edits in trunk/Source

Allow the UIDelegate to customize an image preview
https://bugs.webkit.org/show_bug.cgi?id=146557
-and corresponding-
rdar://problem/21657424

Reviewed by Tim Horton.

Source/WebCore:

Add WEBCORE_EXPORT to use this in WK2.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::url):

Source/WebKit2:

Add imageURL to InteractionInformationAtPosition.

  • Shared/InteractionInformationAtPosition.cpp:

(WebKit::InteractionInformationAtPosition::encode):
(WebKit::InteractionInformationAtPosition::decode):

  • Shared/InteractionInformationAtPosition.h:

Two new delegate methods.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

Call the delegate methods at the appropriate time.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewViewControllerForPosition:inSourceView:]):
(-[WKContentView commitPreviewViewController:]):

Include the imageURL in InteractionInformationAtPosition.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

2:39 PM Changeset in webkit [186235] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Instead of requiring ToT UIKIt, check that UI_WEB_TOUCH_EVENT_HAS_IS_POTENTIAL_TAP is defined to 1
https://bugs.webkit.org/show_bug.cgi?id=146558

Reviewed by Beth Dakin.

  • Shared/ios/NativeWebTouchEventIOS.mm:

(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):

1:47 PM Changeset in webkit [186234] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove change I accidentally committed in r186232

  • UIProcess/WebsiteData/WebsiteDataStore.h:
1:39 PM Changeset in webkit [186233] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix EWS build after r186182.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::userMediaPermissionRequestManager):
Don't export a function defined in a header, or it will generate a weak external symbol.

1:19 PM Changeset in webkit [186232] by beidson@apple.com
  • 17 edits in trunk

Add preference to disable all http-equiv.
<rdar://problem/9091261> and https://bugs.webkit.org/show_bug.cgi?id=146553

Reviewed by Sam Weinig.
Source/WebCore:

No new tests (Covered by existing test)

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv):

  • page/Settings.in:

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences setMetaRefreshEnabled:]): Still expose this SPI, but have it affect

the "httpEquivEnabled" setting.

(-[WebPreferences metaRefreshEnabled]): Ditto.
(-[WebPreferences setHTTPEquivEnabled:]):
(-[WebPreferences httpEquivEnabled]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView _preferencesChanged:]):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMetaRefreshEnabled): Still expose this SPI, but have it affect

the "httpEquivEnabled" setting.

(WKPreferencesGetMetaRefreshEnabled): Ditto
(WKPreferencesSetHTTPEquivEnabled):
(WKPreferencesGetHTTPEquivEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • loader/meta-refresh-disabled.html:
12:27 PM Changeset in webkit [186231] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk/Source/WebCore

[Streams API] Remove ReadableStreamController.enqueue() custom binding
https://bugs.webkit.org/show_bug.cgi?id=146455

Reviewed by Darin Adler.

Made enqueue not custom. Updated error to use Default=Undefined in IDL.

No change in behavior.

  • Modules/streams/ReadableStreamController.h:

(WebCore::ReadableStreamController::error): Removed unneeded variation of error.
(WebCore::ReadableStreamController::enqueue): Calling ReadableJSStream enqueue method.

  • Modules/streams/ReadableStreamController.idl: Updated error with Default=Undefined and made enqueue not custom.
  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException): Adding support for RangeError exceptions.

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::constructJSReadableStreamController): Deleted.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::error): Updated to pass error value as parameter.
(WebCore::ReadableJSStream::enqueue): Added exception throwing through ExceptionCode.
(WebCore::ReadableJSStream::retrieveChunkSize): Ditto.

  • bindings/js/ReadableJSStream.h:
  • dom/ExceptionCode.h: Adding RangeError.
11:44 AM Changeset in webkit [186230] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix for Win EWS bot.
https://bugs.webkit.org/show_bug.cgi?id=146551

Not reviewed.

  • tools/JSDollarVMPrototype.cpp:

(JSC::functionCrash):

11:38 AM Changeset in webkit [186229] by mark.lam@apple.com
  • 6 edits
    1 add in trunk/Source/WebKit2

WKWebView evaluateJavaScript:completionHandler: should reuse its JSContext instance.
https://bugs.webkit.org/show_bug.cgi?id=146416

Reviewed by Anders Carlsson.

The core issue here is that we need to be able to deserialized an
API::SerializedScriptValue instance into an ObjC object graph. We'll solve this
by introducing a API::SerializedScriptValue::deserialize() functions that does
the job. The deserialize() function will will use a SharedJSContext to provide
the needed JSContext for doing this work.

Also updated ScriptMessageHandlerDelegate::didPostMessage() to use this new
deserialize() function.

  • Shared/API/APISerializedScriptValue.h:

(API::SerializedScriptValue::deserialize):
(API::SerializedScriptValue::internalRepresentation):

  • Changed to return a WebCore::SerializedScriptValue*. This makes it friendlier to use in the 2 places that need it.
  • UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm: Added.

(API::SharedJSContext::SharedJSContext):
(API::SharedJSContext::ensureContext):
(API::SharedJSContext::releaseContext):
(API::SerializedScriptValue::deserialize):

  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView evaluateJavaScript:completionHandler:]):

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewRunJavaScriptCallback):

  • Removed a now unnecessary cast.
  • WebKit2.xcodeproj/project.pbxproj:
11:33 AM Changeset in webkit [186228] by beidson@apple.com
  • 3 edits
    3 adds in trunk

[Content Extensions] Block synchronous XMLHTTPRequest.
<rdar://problem/21573006> and https://bugs.webkit.org/show_bug.cgi?id=146271

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/contentextensions/sync-xhr-blocked.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously): If content blocked, set up an error, clear

the response, and clear the response data.

LayoutTests:

  • http/tests/contentextensions/sync-xhr-blocked-expected.txt: Added.
  • http/tests/contentextensions/sync-xhr-blocked.html: Added.
  • http/tests/contentextensions/sync-xhr-blocked.html.json: Added.
10:31 AM Changeset in webkit [186227] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Show suggest popover on Tab press even if it wasn't showing before
https://bugs.webkit.org/show_bug.cgi?id=146496

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will try to autocomplete before trying
to add an ending colon/semicolon or highlight the next section of text.

9:04 AM Changeset in webkit [186226] by mitz@apple.com
  • 4 edits in trunk/Source

<rdar://problem/21429613> [iOS] Stop making symlinks from PrivateFrameworks to Frameworks
https://bugs.webkit.org/show_bug.cgi?id=146542

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj: Removed the build phase that makes the symlink.

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj: Removed the build phase that makes the directory of

symlinks.

7:56 AM WebKitGTK/Gardening/Howto edited by clopez@igalia.com
(diff)
7:52 AM WebKitGTK/2.8.x edited by clopez@igalia.com
(diff)
7:45 AM WebKitGTK/2.8.x edited by clopez@igalia.com
(diff)
6:00 AM Changeset in webkit [186225] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK] WebSQL doesn't work because openDatabase always fails with DOM Exception 18
https://bugs.webkit.org/show_bug.cgi?id=146234

Reviewed by Sergio Villar Senin.

Source/WebKit2:

This is because we don't provide any quota, and 0 is used by
default, so there's never enough quota and openDatabase fails. We
should expose this in the API, but for now, we could use a default
quota of 5MB like WTR does.

  • UIProcess/API/gtk/WebKitUIClient.cpp: Override

exceededDatabaseQuota and return always the default quota.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::exceededDatabaseQuota): Return the quota based on the
expected usage and current database usabe like mac does.
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Add
custom UI client to implement exceededDatabaseQuota.

Tools:

Enable the WebSQL directory test that was disabled because of this bug.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(testWebContextConfiguration):

5:13 AM Changeset in webkit [186224] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit2

Unreviewed, rolling out r185704.
https://bugs.webkit.org/show_bug.cgi?id=146544

Didn't fix the problem (Requested by anttik on #webkit).

Reverted changeset:

"~4% Membuster regression after WebKit r185452"
https://bugs.webkit.org/show_bug.cgi?id=146112
http://trac.webkit.org/changeset/185704

12:36 AM Changeset in webkit [186223] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit

iOS WebKitLegacy should match WebKit2's viewport behavior
https://bugs.webkit.org/show_bug.cgi?id=146540
<rdar://problem/20574017>

Reviewed by Dan Bernstein.

A number of changes have been made to WebKit2's viewport behavior
to make it possible to scale "responsive" sites that misbehave (lay out
in a non-responsive way).

  • History/WebHistoryItem.mm:
  • History/WebHistoryItemPrivate.h:

Add the plumbing required to implement these new behaviors in WebKit1.

  • WebKit.iOS.exp:
12:27 AM Changeset in webkit [186222] by achristensen@apple.com
  • 4 edits in trunk/LayoutTests

Skip new web timing test on platforms without web timing.

  • platform/ios-sim-deprecated/Skipped:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
12:08 AM Changeset in webkit [186221] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[GTK] Accelerated Compositing stops working after a web process crash
https://bugs.webkit.org/show_bug.cgi?id=146508

Reviewed by Martin Robinson.

The problem is that we don't send the window ID again to the new
web process.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::didRelaunchProcess): Call
webkitWebViewBaseDidRelaunchWebProcess().

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDidRelaunchWebProcess): Set the window ID to
the new drawing area.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Jul 1, 2015:

11:59 PM Changeset in webkit [186220] by achristensen@apple.com
  • 8 edits in trunk/Source

Source/ThirdParty/ANGLE:
Re-enable WebGL on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=146537

Reviewed by Csaba Osztrogonác.

  • ANGLE.vcxproj/DirectX32.props:
  • ANGLE.vcxproj/DirectX64.props:
  • ANGLE.vcxproj/libGLESv2Common.props:

Update DirectX directories to use the Windows SDK instead of the June 2010 DirectX SDK.

Source/WebKit:
Re-enable WebGL on WinCairo.
https://bugs.webkit.org/show_bug.cgi?id=146537

Reviewed by Csaba Osztrogonác.

  • WebKit.vcxproj/WebKit.sln:

Build the ANGLE projects on WinCairo again.

Source/WTF:
Re-enable WebGL on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=146537

Reviewed by Csaba Osztrogonác.

  • wtf/FeatureDefines.h:

Enable WebGL on WinCairo again.

11:41 PM Changeset in webkit [186219] by achristensen@apple.com
  • 3 edits in trunk/LayoutTests

Fix test from r186208 and r186216.

  • http/tests/misc/webtiming-resolution-expected.txt:
  • http/tests/misc/webtiming-resolution.html:

Properly and explicitly test if the time delta is close to a multiple of the expected resolution.

9:46 PM Changeset in webkit [186218] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Web Inspector: Aggregate profile call information on the backend to drastically reduce profile sizes
https://bugs.webkit.org/show_bug.cgi?id=146536

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-01
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

Change a CPUProfile from sending a required "calls" param to sending a required
"callInfo" param which includes aggregated information about the calls.

Source/WebCore:

  • inspector/TimelineRecordFactory.cpp:

(WebCore::buildAggregateCallInfoInspectorObject):
(WebCore::buildInspectorObject):
Replace the array of Call objects with a single aggregated call info object.

Source/WebInspectorUI:

Since we still support legacy backends, the frontend documents where
it is handling legacy backends with compatibility comments.

  • UserInterface/Models/ProfileNode.js:

(WebInspector.ProfileNode):
(WebInspector.ProfileNode.prototype.get callInfo):
Handle a ProfileNode created with callInfo or calls. They are mutually exclusive.

  • UserInterface/Models/ScriptTimelineRecord.js:

(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
If the profile has per-call information, construct ProfileNodeCall objects, otherwise
just construct the ProfileNode with the aggregate callInfo value.

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.get data):
When we have aggregate call information we cannot easily partition a script,
so we instead treat the entire script as one large atomic unit in the timeline.
If the timeline range has any portion of the script, show the entire script.
Users used to be able to select a portion of a script and view the relevant
functions called in just that sliver, but this doesn't appear to be a well
known feature or commonly used. In fact, given the small ranges of time it
could be confusing for users.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters):
Treat as a discrete unit.

9:30 PM Changeset in webkit [186217] by Devin Rousso
  • 4 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: When autocompleting, pressing tab twice shouldn't insert a tab character
https://bugs.webkit.org/show_bug.cgi?id=145885

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/CodeMirrorCompletionController.js:

(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.updateCompletions): Resolves the promise as having completions.
(WebInspector.CodeMirrorCompletionController.prototype.hideCompletions): Resolves the promise as not having completions.
(WebInspector.CodeMirrorCompletionController.prototype.completeAtCurrentPositionIfNeeded): Returns a WrappedPromise that allows
callers of this function to determine if the autocomplete had any values or was instead not shown.
(WebInspector.CodeMirrorCompletionController.prototype._resolveUpdatePromise):

  • UserInterface/Main.html: Added WrappedPromise class.
  • UserInterface/Models/WrappedPromise.js: Added WrappedPromise object to expose resolve and reject functions.
  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt.prototype._handleTabKey): Attempts to find completions for current text. If there are none, beep.

9:01 PM Changeset in webkit [186216] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Reduce resolution of performance.now
https://bugs.webkit.org/show_bug.cgi?id=146531

Reviewed by Simon Fraser.

Make layout test introduced in r186208.

  • http/tests/misc/webtiming-resolution-expected.txt:
  • http/tests/misc/webtiming-resolution.html:
6:30 PM Changeset in webkit [186215] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

DFG::freezeFragile should register the frozen value's structure
https://bugs.webkit.org/show_bug.cgi?id=136055
rdar://problem/21042120

Reviewed by Mark Lam and Geoffrey Garen.

This fixes weird concurrency bugs where the constant folding phase tries to convert
something to a constant but then crashes because the constant's structure wasn't
registered. The AI was registering the structure of any value it saw, but constant folding
wasn't - and that's fine so long as there ain't no concurrency.

The best fix is to just make it impossible to introduce a constant into the IR without
registering its structure. That's what this change does. This is not only a great
concurrency fix - it also makes the compiler somewhat easier to hack on because it's one
less case of structure registering that you have to remember about.

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::setOSREntryValue): No need to register.
(JSC::DFG::AbstractValue::set): We still call register, but just to get the watchpoint state.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::freezeFragile): Register the structure.

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run): Assert that these are all registered.

5:51 PM Changeset in webkit [186214] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Web Inspector: [Mac] InspectorFrontendHost.beep() doesn't play a sound, sandbox warnings
https://bugs.webkit.org/show_bug.cgi?id=146525

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-01
Reviewed by Timothy Hatcher.

  • WebProcess/com.apple.WebProcess.sb.in:

Get NSBeep working without any sandbox warnings.

5:48 PM Changeset in webkit [186213] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.17-branch/Source

Versioning.

5:47 PM Changeset in webkit [186212] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Make the first click on a rule section create a newline for easy property addition
https://bugs.webkit.org/show_bug.cgi?id=146490

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Inserts a semicolon if the line is missing one.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown): If the user clicks on a property with the editor being
unfocused, the name/value containing the cursor will be highlighted. If instead the user clicks at the end of a line, the
cursor's position is saved for mouseUp.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp): If the mouseDown cursor position was saved and is equal
to the current cursor's position (the user did not drag), add a newline after the current line and place the cursor on that line.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue): Deleted.

5:40 PM Changeset in webkit [186211] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, rebaseline js/dom/global-constructors-attributes.html after r186198.

  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
5:36 PM Changeset in webkit [186210] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] REGRESSION (r185124) CACFLayer handling broken
https://bugs.webkit.org/show_bug.cgi?id=146530
<rdar://problem/21642241>

Reviewed by Tim Horton.

At some point in the past, the set of LayerChange flags
overflowed the default MSVC enum type of 'int'. This caused
Windows rendering code to not receive various update notifications.

Zalan's change moved the DebugIndicatorsChanged flag into that
overflow set, which made it obvious that something was wrong.

The fix is to tell the compiler to use a compatible base type
for the enum.

  • platform/graphics/ca/GraphicsLayerCA.h: Prevent overflow.
5:32 PM Changeset in webkit [186209] by bshafiei@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning.

5:29 PM Changeset in webkit [186208] by achristensen@apple.com
  • 3 edits
    2 adds in trunk

Reduce resolution of performance.now.
https://bugs.webkit.org/show_bug.cgi?id=146531
rdar://problem/20116796

Reviewed by Simon Fraser.

Source/WebCore:

Test: http/tests/misc/webtiming-resolution.html

  • page/Performance.cpp:

(WebCore::Performance::now):
Floor the time returned by performance.now to the nearest 5 microseconds.

LayoutTests:

  • http/tests/misc/webtiming-resolution-expected.txt: Added.
  • http/tests/misc/webtiming-resolution.html: Added.
5:07 PM Changeset in webkit [186207] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Ignore Visual Studio warning in SegmentedVector
https://bugs.webkit.org/show_bug.cgi?id=146514

Patch by Alex Christensen <achristensen@webkit.org> on 2015-07-01
Reviewed by Andreas Kling.

  • wtf/SegmentedVector.h:

(WTF::SegmentedVector::deleteAllSegments):
Use pragmas to ignore the 0 element array warning.

5:05 PM Changeset in webkit [186206] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[iOS] Build fix

Patch by Eric Carlson <eric.carlson@apple.com> on 2015-07-01
Reviewed by Brent Fulgham.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVVideoLayer enterPIPModeRedirectingVideoToLayer:]): Renamed from enterOptimizedFullScreenModeRedirectingVideoToLayer.
(-[WebAVVideoLayer leavePIPMode]): Renamed from leaveOptimizedFullScreenMode.
(-[WebAVVideoLayer enterOptimizedFullScreenModeRedirectingVideoToLayer:]): Deleted.
(-[WebAVVideoLayer leaveOptimizedFullScreenMode]): Deleted.

5:02 PM Changeset in webkit [186205] by mmaxfield@apple.com
  • 5 edits
    3 adds in trunk

[iOS] Support bold and thin italicized system fonts
https://bugs.webkit.org/show_bug.cgi?id=146463
<rdar://problem/20948885>

Reviewed by Darin Adler.

Source/WebCore:

Add the italicized attribute to font descriptors.

Test: fast/text/weighted-italicized-system-font.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::createCTFontWithFamilyNameAndWeight):

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::fontWithFamilySpecialCase):
(WebCore::fontWithFamily):

  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

  • fast/text/weighted-italicized-system-font-expected.html: Added.
  • fast/text/weighted-italicized-system-font.html: Added.
5:00 PM Changeset in webkit [186204] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove code to recompute rounded window corners
https://bugs.webkit.org/show_bug.cgi?id=146534

Reviewed by Simon Fraser.

This code is no longer needed since we're always layer-backed now.

  • UIProcess/API/mac/WKView.mm:

(-[WKView displayIfNeeded]): Deleted.
(-[WKView _cacheWindowBottomCornerRect]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
4:36 PM Changeset in webkit [186203] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

bmalloc: realloc of an XLarge range can unmap adjacent VM ranges
https://bugs.webkit.org/show_bug.cgi?id=146535

Reviewed by Anders Carlsson.

This bug causes a crash when running fast/css/large-list-of-rules-crash.html
with the fix applied for https://bugs.webkit.org/show_bug.cgi?id=146519.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate): Start at object + newSize since starting
at object + oldSize means deleting the adjacent VM range.

4:28 PM Changeset in webkit [186202] by mmirman@apple.com
  • 13 edits
    5 deletes in trunk

Unreviewed, rolling out r185889
https://bugs.webkit.org/show_bug.cgi?id=146528
rdar://problem/21573959

Patch breaks chromeexperiments.com

Reverted changeset:

Source/JavaScriptCore:

(.):

  • runtime/JSBoundSlotBaseFunction.cpp: Removed.
  • runtime/JSBoundSlotBaseFunction.h: Removed.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Deleted.
(JSC::JSGlobalObject::visitChildren): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::boundSlotBaseFunctionStructure): Deleted.

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::getBoundSlotBaseFunctionForGetterSetter): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:

LayoutTests:

  • inspector-protocol/runtime/getProperties-expected.txt:
  • js/dom/native-bindings-descriptors-expected.txt: Removed.
  • js/dom/native-bindings-descriptors.html: Removed.
  • js/dom/script-tests/native-bindings-descriptors.js: Removed.
4:26 PM Changeset in webkit [186201] by achristensen@apple.com
  • 17 edits
    1 delete in trunk/Source

Fix ANGLE Windows build after r186169.
https://bugs.webkit.org/show_bug.cgi?id=146532

Reviewed by Brent Fulgham.

Source/ThirdParty/ANGLE:

  • ANGLE.vcxproj/libEGL.vcxproj:
  • ANGLE.vcxproj/libEGL.vcxproj.filters:
  • ANGLE.vcxproj/libGLESv2.vcxproj:
  • ANGLE.vcxproj/libGLESv2.vcxproj.filters:
  • ANGLE.vcxproj/libGLESv2Common.props:
  • ANGLE.vcxproj/translator_common.vcxproj:
  • ANGLE.vcxproj/translator_common.vcxproj.filters:
  • ANGLE.vcxproj/translator_glsl.vcxproj:
  • ANGLE.vcxproj/translator_glsl.vcxproj.filters:
  • ANGLE.vcxproj/translator_hlsl.vcxproj:
  • ANGLE.vcxproj/translator_hlsl.vcxproj.filters:

Update Windows build to build new files.

Source/WebCore:

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:

Don't compile OpenGLShims.cpp or Extensions3DOpenGL.cpp on Windows
because Windows uses OpenGLES through ANGLE, not OpenGL.

  • platform/graphics/ANGLEWebKitBridge.h:

Use OpenGLESShims.h on Windows instead of OpenGLShims.h.

  • platform/graphics/OpenGLESShims.h:

Added needed definitions from OpenGL to compile successfully.

  • platform/graphics/win/GL/glext.h: Removed.
4:17 PM Changeset in webkit [186200] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Web page doesn't update its loading state when web process becomes suspended if there are pending network requests (XHR).
https://bugs.webkit.org/show_bug.cgi?id=146439

When web page is loading, we hold a background activity token in NavigationState and we release the token when the page done
loading. A web page can start loading subresources (like XHR) after the page is loaded, and WebPageProxy will update its
_networkRequestsInProgress state which will notify the client there is network actvity on-going. Since we don't hold
the background activity token after page is loaded, the WebContent process could become suspended without notifying the client
and the client will lose track of the loading state.

The first thought was to hold another background activity when _networkRequestsInProgress flag is set in NavigationState.
However, this could result in side-effect that a WebContent process can stay active for too long if there is a long lasting
XHR resquest.

This patch fix this by notifying the client that network activity is stopped when WebContent process is going to be suspended.
We also cache the networkRequestsInProgress state for suspended process, so that when it becomes foreground, we can tell
the client the correct state of network activity.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-01
Reviewed by Dan Bernstein.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Initialize m_hasNetworkRequestsOnSuspended.
(WebKit::WebPageProxy::processWillBecomeSuspended): If there is pending requests on suspend, cache the network activity state

and notify the client.

(WebKit::WebPageProxy::processWillBecomeForground): Restore the network activity state when the process becomes foreground.
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h: Add a data member m_hasNetworkRequestsOnSuspended to cache the network activity state on process

suspend.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didSetAssertionState):

4:09 PM Changeset in webkit [186199] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Turn off mediastreamaudiosourcenode.html test
https://bugs.webkit.org/show_bug.cgi?id=146527
<rdar://problem/21641223>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-01
Reviewed by Simon Fraser.

  • platform/mac/TestExpectations:
3:38 PM Changeset in webkit [186198] by dino@apple.com
  • 24 edits in trunk/Source

Disable the experimental WebGL2 implementation
https://bugs.webkit.org/show_bug.cgi?id=146526
<rdar://problem/21641235>

Reviewed by Myles Maxfield.

Source/JavaScriptCore:

Add (and disable) an ENABLE_WEBGL2 flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Add (and disable) an ENABLE_WEBGL2 flag. Also protect
anything that is specific to WebGL2.

Covered by running the WebGL 1.0.2 conformance suite
and our LayoutTests.

  • Configurations/FeatureDefines.xcconfig:
  • bindings/js/JSCanvasRenderingContextCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:
  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp:

(WebCore::toJS):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::is3dType):

  • html/canvas/WebGL2RenderingContext.cpp:
  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):

  • html/canvas/WebGLGetInfo.cpp:
  • html/canvas/WebGLGetInfo.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • html/canvas/WebGLVertexArrayObject.cpp:
  • html/canvas/WebGLVertexArrayObject.h:
  • html/canvas/WebGLVertexArrayObject.idl:

Source/WebKit/mac:

Add (and disable) an ENABLE_WEBGL2 flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Add (and disable) an ENABLE_WEBGL2 flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Add (and disable) an ENABLE_WEBGL2 flag.

  • wtf/FeatureDefines.h:
3:22 PM Changeset in webkit [186197] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Fix missing space.

  • platform/mac/TestExpectations:
2:54 PM Changeset in webkit [186196] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Never try to pass URLs to LaunchServices when they're the same domain as the current URL.
<rdar://problem/20731429> and https://bugs.webkit.org/show_bug.cgi?id=146521

Reviewed by Alex Christensen.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::tryAppLink): Compare the proposed URL to the current URL to see if they’re in the same domain.
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

2:52 PM Changeset in webkit [186195] by Chris Dumez
  • 7 edits
    2 adds in trunk

Regression(183998): Disqus comments take a very long time to load
https://bugs.webkit.org/show_bug.cgi?id=146522
<rdar://problem/21590601>

Reviewed by Simon Fraser.

Source/WebCore:

Stop throttling requestAnimationFrame() in iframes that are not visible
due to them being zero-sized or display:none. Those are usually utility
iframes and throttling them is risky.

Se still throttle requestAnimationFrame() in iframes that would be
visible in theory but are currently not noticeable because they are
outside the viewport.

Test:

  • fast/animation/request-animation-frame-throttle-subframe.html
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html
  • fast/animation/request-animation-frame-throttle-subframe-zero-size.html
  • page/FrameView.cpp:

(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):

LayoutTests:

  • fast/animation/request-animation-frame-throttle-subframe-display-none-expected.txt:
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html:

Update layout test as we changed behavior here. We no longer throttle display:none
iframes.

  • fast/animation/request-animation-frame-throttle-subframe-zero-size-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe-zero-size.html: Added.

Add layout test to check that we don't throttle RaF in iframes that are zero-sized.

  • fast/animation/resources/requestAnimationFrame-frame-2.html:
  • fast/animation/resources/requestAnimationFrame-frame.html:

Update use of requestAnimationFrame() to be more representative of real world usage.

2:34 PM Changeset in webkit [186194] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

WKWebView snapshots have the wrong scale after rotation
https://bugs.webkit.org/show_bug.cgi?id=146476
<rdar://problem/18345247>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
"Coordinate" -> "Coordinates".

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
Defer any snapshotting that happens during a resize until after
the resize completes. This will ensure that (in the case of an IOSurface
snapshot) the tiles are up to date, and (in the case of a software snapshot)
that our understanding of the scale and scroll offset of the WKContentView
are up to date, so that we can correctly convert from view to content coordinates
in the UI process.

(-[WKWebView _endAnimatedResize]):
Perform the deferred snapshotting after the resize completes.

2:21 PM Changeset in webkit [186193] by Simon Fraser
  • 2 edits in trunk/Source/WebKit/mac

Fix the iOS build.

  • WebCoreSupport/WebUserMediaClient.mm:

(-[WebUserMediaPolicyListener denyOnlyThisRequest]): Remove ASSERT_NOT_REACHED,
because it caused the compiler to warn about noreturn.

1:53 PM Changeset in webkit [186192] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Mark compositing/masks/compositing-clip-path-origin.html as being image-flakey.

  • platform/mac/TestExpectations:
1:31 PM Changeset in webkit [186191] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

REGRESSION (r179168): Characters overlap after resizing the font on the copy-pasted Japanese text
https://bugs.webkit.org/show_bug.cgi?id=146492

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by WebKit serializing the used line-height size (e.g. 18px) in the copied content
instead of string "normal" and removeStyleFromRulesAndContext failing to strip it down when text with
a font that influences the line height got pasted. This is because the used value of line-height
property of the context and the pasted content doesn't match when the context doesn't use the same font.

Fixed the bug by not considering line-height as a list of editing properties we try to preserve. This is
fine because we don't provide editing operations to directly manipulate line-height.

Test: editing/pasteboard/cjk-line-height.html

  • editing/EditingStyle.cpp:

(WebCore::editingProperties): Removed CSSPropertyLineHeight.

LayoutTests:

Added a regression test. Also reverted the bad rebaseline in r179168:
http://trac.webkit.org/changeset/179168/trunk/LayoutTests/editing/pasteboard/simplfiying-markup-should-not-strip-content-expected.txt

  • editing/pasteboard/cjk-line-height-expected.txt: Added.
  • editing/pasteboard/cjk-line-height.html: Added.
  • editing/pasteboard/simplfiying-markup-should-not-strip-content-expected.txt:
1:07 PM Changeset in webkit [186190] by bshafiei@apple.com
  • 1 copy in branches/safari-600.8-branch

New Branch.

1:07 PM Changeset in webkit [186189] by bshafiei@apple.com
  • 1 copy in branches/safari-600.1.4.17-branch

New Branch.

12:34 PM Changeset in webkit [186188] by bshafiei@apple.com
  • 5 edits
    1 copy
    1 delete in tags/Safari-601.1.38/Source/WebKit2

Roll out r185936. rdar://problem/21637235

12:33 PM Changeset in webkit [186187] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.38/Source

Roll out r185939. rdar://problem/21637235

12:32 PM Changeset in webkit [186186] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.38/Source/WebCore

Roll out r185951. rdar://problem/21637235

12:29 PM Changeset in webkit [186185] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

REGRESSION (r184296): View keeps scrolling upward
https://bugs.webkit.org/show_bug.cgi?id=146497
<rdar://problem/21524942>

Reviewed by Darin Adler.

Avoid improperly triggering the ScrollController wheel event handling
logic when the wheel event deltaX/deltaY are zero. On certain sites,
this caused a programmatic JavaScript scroll to be triggered unexpectedly,
scrolling the page back to some initial state.

This bug was introduced while trying to make sure scrollbars were notified
when the wheel event had come to an end. Revise that change so that we still
follow the right code path for non-stretchable regions. However, make sure
that for zero-delta wheel events we make sure to properly handle the wheel
event phase.

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::shouldForwardWheelEventsToParent): New helper function
to reduce the complexity of the logic in handleWheelEvent.
(WebCore::ScrollAnimatorMac::handleWheelEvent): When wheel events should be forwarded
to the parent scroll view, if the event was handled or has no change in position
trigger the 'handleWheelEventPhase' logic so that scrollbars are hidden, etc.

12:11 PM Changeset in webkit [186184] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

This is a quick follow-on to http://trac.webkit.org/changeset/186132

Rubber-stamped by Darin Adler.

Make this a one-liner.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

12:08 PM Changeset in webkit [186183] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Hide the inline controls when going into PiP
https://bugs.webkit.org/show_bug.cgi?id=146487
<rdar://problem/19881159>

Reviewed by Eric Carlson.

When the presentation mode is PiP, toggle a class
on the container element so that we can completely
hide the control toolbar. The placard should still
remain visible.

  • Modules/mediacontrols/mediaControlsiOS.css:

(video::-webkit-media-controls-panel-container.picture-in-picture): Add
a rule that hides the toolbar when PiP is active.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.showControls):
(ControllerIOS.prototype.handlePresentationModeChange): Toggle a
class. Also fix a bug I noticed where exiting from PiP was
not auto-hiding the controls until the user tapped.

11:44 AM Changeset in webkit [186182] by commit-queue@webkit.org
  • 30 edits in trunk

Source/JavaScriptCore:
Enable MEDIA_STREAM flag
https://bugs.webkit.org/show_bug.cgi?id=145947
<rdar://problem/21365829>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-01
Reviewed by Eric Carlson.

  • Configurations/FeatureDefines.xcconfig: Added MEDIA_STREAM flag

Source/WebCore:
Enable MEDIA_STREAM flag
https://bugs.webkit.org/show_bug.cgi?id=145947
<rdar://problem/21365829>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-01
Reviewed by Eric Carlson.

  • Configurations/FeatureDefines.xcconfig: Added MEDIA_STREAM flag
  • Modules/mediastream/MediaStreamTrack.h:
  • WebCore.xcodeproj/project.pbxproj: Changed project headers to

private headers

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVAudioCaptureSource.mm:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::refreshCaptureDeviceList): Deleted.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::startProducingData):
(WebCore::AVMediaCaptureSource::stopProducingData):

Source/WebKit/mac:
Enable MEDIA_STREAM flag
https://bugs.webkit.org/show_bug.cgi?id=145947
<rdar://problem/21365829>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-01
Reviewed by Eric Carlson.

  • Configurations/FeatureDefines.xcconfig: Added MEDIA_STREAM flag
  • WebCoreSupport/WebUserMediaClient.h: Changed signatures
  • WebCoreSupport/WebUserMediaClient.mm: Changed signatures

(WebUserMediaClient::requestPermission):
(WebUserMediaClient::cancelRequest):
(-[WebUserMediaPolicyListener denyOnlyThisRequest]):
(-[WebUserMediaPolicyListener shouldClearCache]):

Source/WebKit2:
Enable MEDIA_STREAM flag
https://bugs.webkit.org/show_bug.cgi?id=145947
<rdar://problem/21365829>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-01
Reviewed by Eric Carlson.

  • Configurations/FeatureDefines.xcconfig: Add MEDIA_STREAM flag
  • WebKit2.xcodeproj/project.pbxproj: Changed some project to private

declarations of headers

  • WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::userMediaPermissionRequestManager):

Tools:
Enabled MEDIA_STREAM flag
https://bugs.webkit.org/show_bug.cgi?id=145947
<rdar://problem/21365829>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-01
Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:

LayoutTests:
Enable MEDIA_STREAM flag
https://bugs.webkit.org/show_bug.cgi?id=145947
<rdar://problem/21365829>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-01
Reviewed by Eric Carlson.

*
platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
Added attributes to tests
*
platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
Ditto

  • platform/mac/js/dom/global-constructors-attributes-expected.txt:

Ditto

10:35 AM Changeset in webkit [186181] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION (r185016): Intermittent crash in WebCore::TextTrackList::remove
https://bugs.webkit.org/show_bug.cgi?id=146493
<rdar://problem/21511122>

Reviewed by Eric Carlson.

The m_textTracks member is frequently null checked during other operations, but
was not checked during track removal. This needs to be corrected.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::removeTextTrack): Check that m_textTracks is
not null before using it during track removal.

10:22 AM Changeset in webkit [186180] by Antti Koivisto
  • 7 edits
    2 adds in trunk

PNG mask images are loaded with Accept:image/svg+xml
https://bugs.webkit.org/show_bug.cgi?id=146509
Source/WebCore:

rdar://problem/21584740

Reviewed by Simon Fraser.

For some strange reason MaskImageOperation code loads all mask images, including non-SVG ones
using CachedSVGDocument. Resulting bad accept header may cause server to reject the request.

This is far from ideal but as a quick fix we can override the accept header for mask images to
allow any image type.

Test: http/tests/misc/mask-image-accept.html

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::acceptOverride):
(WebCore::CachedResourceRequest::setAcceptOverride):

  • loader/cache/CachedSVGDocumentReference.cpp:

(WebCore::CachedSVGDocumentReference::load):

  • loader/cache/CachedSVGDocumentReference.h:

(WebCore::CachedSVGDocumentReference::loadRequested):
(WebCore::CachedSVGDocumentReference::setAcceptsAnyImageType):
(WebCore::CachedSVGDocumentReference::document):

  • platform/graphics/MaskImageOperation.cpp:

(WebCore::MaskImageOperation::ensureCachedSVGDocumentReference):

LayoutTests:

Reviewed by Simon Fraser.

  • http/tests/misc/mask-image-accept-expected.html: Added.
  • http/tests/misc/mask-image-accept.html: Added.
10:13 AM Changeset in webkit [186179] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit/mac

REGRESSION (185319): Reproducible crash in WebHistoryItem launching FluidApp.
<rdar://problem/21598293> and https://bugs.webkit.org/show_bug.cgi?id=146494

Reviewed by Darin Adler.

  • History/WebHistoryItem.mm:

(-[WebHistoryItem initFromDictionaryRepresentation:]): Don’t reference members of a Vector

that don’t exist.

9:53 AM Changeset in webkit [186178] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Check shouldOpenExternalURLs instead of isProcessingUserGesture before passing URL to LaunchServices.
<rdar://problem/20577859> and https://bugs.webkit.org/show_bug.cgi?id=146513

Reviewed by Darin Adler.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::tryAppLink): The expected value of isProcessingUserGesture is lost over redirects.

shouldOpenExternalURLs actually fits this role perfectly.

8:54 AM Changeset in webkit [186177] by jer.noble@apple.com
  • 4 edits
    11 adds in trunk

[MSE] Failures on W3C media-source tests regarding MIME types
https://bugs.webkit.org/show_bug.cgi?id=146499

Reviewed by Eric Carlson.

Source/WebCore:

Tests: http/tests/media/media-source/SourceBuffer-abort-readyState.html

http/tests/media/media-source/SourceBuffer-abort-removed.html
http/tests/media/media-source/SourceBuffer-abort-updating.html
http/tests/media/media-source/SourceBuffer-abort.html

Multiple failures in the W3C media-source test suite due to two failures in isTypeSupported MIME type handling:

  • MIME types without codec strings were being rejected.
  • MIME types with codec strings which are rejected by the system are being reported as supported.

For the first, stop rejecting MIME types with non-existent codec strings. For MIME types which do have non-empty
codec strings, treat a "Maybe" response as unsupported.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::isTypeSupported):

LayoutTests:

Import four new tests from the w3c test suite <https://github.com/w3c/web-platform-tests.git>.

  • http/tests/media/media-source/SourceBuffer-abort-readyState.html: Added.
  • http/tests/media/media-source/SourceBuffer-abort-removed.html: Added.
  • http/tests/media/media-source/SourceBuffer-abort-updating.html: Added.
  • http/tests/media/media-source/SourceBuffer-abort.html: Added.
  • http/tests/media/white.mp4: Added.
  • http/tests/media/white.webm: Added.
  • platform/mac/TestExpectations:
  • platform/mac/http/tests/media/media-source/SourceBuffer-abort-expected.txt: Added.
  • platform/mac/http/tests/media/media-source/SourceBuffer-abort-readyState-expected.txt: Added.
  • platform/mac/http/tests/media/media-source/SourceBuffer-abort-removed-expected.txt: Added.
  • platform/mac/http/tests/media/media-source/SourceBuffer-abort-updating-expected.txt: Added.
  • platform/mac/http/tests/media/media-source/mediasource-is-type-supported-expected.txt: Added.
8:44 AM Changeset in webkit [186176] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] [Wayland] Build broken with ENABLE_WAYLAND_TARGET=ON
https://bugs.webkit.org/show_bug.cgi?id=146512

Unreviewed, fix build with ENABLE_WAYLAND_TARGET=ON after r185949.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCreateWebPage):

7:51 AM Changeset in webkit [186175] by Martin Robinson
  • 5 edits
    2 copies in trunk

[GTK] REGRESSION(r183936): Test /webkit2/WebKitWebContext/spell-checker fails since r183936
https://bugs.webkit.org/show_bug.cgi?id=144828

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Instead of setting spell checking languages unconditionally when building int
developer mode, add some C API that allows setting them in WebKitTestRunner.

  • PlatformGTK.cmake: Add the new C API file to the source list.
  • UIProcess/API/C/gtk/WKTextCheckerGtk.cpp:

(WKTextCheckerSetSpellCheckingLanguages): Added this function which allows settings
the spell checking languages from the C API.

  • UIProcess/API/C/gtk/WKTextCheckerGtk.h: Added.
  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::enchantTextChecker): Remove the hack which sets the spell checking languages automatically
for development builds.

Tools:

  • WebKitTestRunner/gtk/main.cpp:

(main): Use the new WKTextChecker API to set the spell checking languages
when the process is starting up.

1:55 AM Changeset in webkit [186174] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Mac] Numerous CGColor leaks in swipe gestures
https://bugs.webkit.org/show_bug.cgi?id=146501

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-01
Reviewed by Tim Horton.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::beginSwipeGesture):

1:51 AM Changeset in webkit [186173] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Mac] Confusing RetainPtr use in TiledCoreAnimationDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=146503

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-07-01
Reviewed by Tim Horton.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
Simplify adoption into a new RetainPtr.

Jun 30, 2015:

11:26 PM Changeset in webkit [186172] by achristensen@apple.com
  • 4 edits in trunk/Source

[Win] Unreviewed build fix after r186169.

Source/WebKit:

  • WebKit.vcxproj/WebKit.sln:

Temporarily don't build ANGLE projects on Windows.

Source/WTF:

  • wtf/FeatureDefines.h:

Temporarily disable WebGL on WinCairo. It was already temporarily disabled on AppleWin.

11:23 PM Changeset in webkit [186171] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:18 PM Changeset in webkit [186170] by bshafiei@apple.com
  • 6 edits in tags/Safari-601.1.38/Source/WebKit2

Roll out r186148. rdar://problem/20655729

11:17 PM Changeset in webkit [186169] by achristensen@apple.com
  • 160 edits
    541 adds
    85 deletes in trunk/Source

Update ANGLE to b11e2483742db884bd0af41f78f528240577356b.
https://bugs.webkit.org/show_bug.cgi?id=145010

Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

Huge list of source changes omitted.
ROLL DEPS!

Source/WebCore:

  • CMakeLists.txt:
  • platform/graphics/ANGLEWebKitBridge.cpp:

(WebCore::appendSymbol):
(WebCore::getStructInfo):
(WebCore::getSymbolInfo):
(WebCore::ANGLEWebKitBridge::cleanupCompilers):
(WebCore::ANGLEWebKitBridge::compileShaderSource):
(WebCore::getValidationResultValue): Deleted.

  • platform/graphics/ANGLEWebKitBridge.h:

(WebCore::ANGLEShaderSymbol::isSampler):

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo):

  • platform/graphics/mac/GraphicsContext3DMac.mm:
  • platform/graphics/opengl/Extensions3DOpenGL.cpp:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::checkVaryingsPacking):
(WebCore::GraphicsContext3D::precisionsMatch):
Update WebCore to reflect changes in ANGLE.

11:15 PM Changeset in webkit [186168] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.38

New tag.

11:08 PM Changeset in webkit [186167] by Gyuyoung Kim
  • 2 edits
    1 add in trunk/LayoutTests

[EFL] Unreviewed gardening.

Some tests are flaky or timeout after bumping Ubuntu version from 14.04 to 15.04.
Mark the tests to flaky or timeout.

  • platform/efl/TestExpectations:
  • platform/efl/compositing/tiling/rotated-tiled-clamped-expected.txt: Added.
10:59 PM Changeset in webkit [186166] by fpizlo@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, skip this test for now. We can unskip it when this feature is enabled.

  • js/script-tests/intl.js:
9:30 PM Changeset in webkit [186165] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Frame flattening: Hit-testing an iframe could end up destroying the associated inline tree context.
https://bugs.webkit.org/show_bug.cgi?id=146447
rdar://problem/20613501

Reviewed by Simon Fraser.

This patch ensures that the render tree associated with the document on which
the hit-test is initiated does not get laid out, unless it was directly mutated prior to the hittest.

Hit-test requirements:

  1. A clean the render tree before hit-testing gets propagated to the renderers.

Document::updateLayout() ensures it by calling both updateStyleIfNeeded() and layout() not only on the current tree, but also
on the ancestors if needed.

  1. No render tree mutation while hit-testing the renderers.

When an iframe is being hit-tested, this hit-test could bubble down to the child frame's render view.
In order to ensure #1, we call Document::updateLayout() on the current (subframe) document.
If updateStyleIfNeeded() mutates the render tree, we mark it dirty for layout(). However frame flattening also
marks the parent renderer (RenderIFrame) dirty.
While calling layout() to clean the current render tree, we end up laying out the parent tree too.
Laying out the parent tree could end up destroying the inline tree context from where the
hittest just bubbled down. (InlineFlowBox -> RenderWidget -> RenderView).

This patch protects the render tree from such unintentional inline tree mutation during hittesting.
After the initial layout we set a layout disallow flag on the frame view to defer subsequent layouts.
This patch only changes behavior when frame flattening is enabled, but in future we may always want to enable this.

Source/WebCore:

Test: fast/frames/flattening/hittest-iframe-while-style-changes-crash.html

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded): Deleted. -> Assertion in no longer valid.

  • page/FrameView.h:
  • rendering/RenderView.cpp:

(WebCore::FrameFlatteningLayoutDisallower::FrameFlatteningLayoutDisallower):
(WebCore::FrameFlatteningLayoutDisallower::~FrameFlatteningLayoutDisallower):
(WebCore::RenderView::hitTest): Protect the render tree from subsequent layouts.

LayoutTests:

  • fast/frames/flattening/hittest-iframe-while-style-changes-crash-expected.txt: Added.
  • fast/frames/flattening/hittest-iframe-while-style-changes-crash.html: Added.
7:39 PM Changeset in webkit [186164] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix CoordinatedGraphics.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):

7:07 PM Changeset in webkit [186163] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: add " = $0" hint after selected element in main DOMTreeOutline
https://bugs.webkit.org/show_bug.cgi?id=145739

Patch by Devin Rousso <Devin Rousso> on 2015-06-30
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeOutline.css: Adds a semi-opaque " = $0" to the selected element in the DOM tree.

(.dom-tree-outline li.selected > span::after):
(.dom-tree-outline:focus li.selected > span::after):

7:03 PM Changeset in webkit [186162] by Simon Fraser
  • 3 edits in trunk/Source/WebKit2

More Gtk/EFL fixing.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::flushPendingLayerChanges):

7:01 PM Changeset in webkit [186161] by commit-queue@webkit.org
  • 25 edits
    5 adds in trunk

Implement ECMAScript Internationalization API
https://bugs.webkit.org/show_bug.cgi?id=90906

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2015-06-30
Reviewed by Benjamin Poulain.

.:

Begin implementing the Intl apis behind ENABLE_INTL flag.
Create the base Intl namespace object.

  • Source/cmake/WebKitFeatures.cmake: add ENABLE_INTL flag

Source/JavaScriptCore:

  • CMakeLists.txt: add IntlObject.cpp
  • Configurations/FeatureDefines.xcconfig: add ENABLE_INTL flag
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: add IntlObject
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: add IntlObject
  • JavaScriptCore.xcodeproj/project.pbxproj: add IntlObject
  • runtime/CommonIdentifiers.h: add "Intl" name
  • runtime/IntlObject.cpp: Added.

(JSC::IntlObject::IntlObject):
(JSC::IntlObject::create):
(JSC::IntlObject::finishCreation):
(JSC::IntlObject::createStructure):

  • runtime/IntlObject.h: Added.
  • runtime/JSGlobalObject.cpp: Add global Intl

(JSC::JSGlobalObject::init):

Source/WebCore:

Test: js/intl.html

  • Configurations/FeatureDefines.xcconfig: add ENABLE_INTL flag

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: add ENABLE_INTL flag

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: add ENABLE_INTL flag

Source/WTF:

  • wtf/FeatureDefines.h: add ENABLE_INTL flag

Tools:

  • Scripts/webkitperl/FeatureList.pm: add ENABLE_INTL flag

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props: add ENABLE_INTL flag
  • win/tools/vsprops/FeatureDefinesCairo.props: add ENABLE_INTL flag

LayoutTests:

  • TestExpectations: Skip intl until enabled
  • js/intl-expected.txt: Added.
  • js/intl.html: Added.
  • js/script-tests/intl.js: Added.

(global):

6:51 PM Changeset in webkit [186160] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

scroll-snap-points do not work very well with mechanical scroll wheel events
https://bugs.webkit.org/show_bug.cgi?id=142501
<rdar://problem/20093511>

Patch by Wenson Hsieh <whsieh@berkeley.edu> on 2015-06-30
Reviewed by Brent Fulgham.

Source/WebCore:

Stateless scroll events generated by scrolling with a mechanical mouse wheel now trigger scroll
snapping after a fixed delay.

Test: platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html

  • platform/cocoa/ScrollController.h: Added member to track stateless scrolling.
  • platform/cocoa/ScrollController.mm: Added constant for delay for stateless scroll snapping.

(WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Triggers timer upon stateless scroll events.
(WebCore::ScrollController::horizontalScrollSnapTimerFired): Timer now handles stateless scrolling updates.
(WebCore::ScrollController::verticalScrollSnapTimerFired): See above.
(WebCore::ScrollController::beginScrollSnapAnimation): Handles stateless scroll snapping.

LayoutTests:

  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html: Added.
6:46 PM Changeset in webkit [186159] by Simon Fraser
  • 5 edits in trunk/Source

Fix Mac and Windows builds.

Source/WebKit/win:

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::flushPendingLayerChanges):

  • WebView.cpp:

(WebView::flushPendingGraphicsLayerChanges):

Source/WebKit2:

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):

6:33 PM Changeset in webkit [186158] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.37.1.2/Source

Versioning.

6:30 PM Changeset in webkit [186157] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.37.1.2

New tag.

6:15 PM Changeset in webkit [186156] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Try to fix Gtk and EFL builds.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerTextureMapper::flushCompositingState):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:

(WebCore::CompositingCoordinator::flushPendingLayerChanges):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingState):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
6:08 PM Changeset in webkit [186155] by Simon Fraser
  • 10 edits in trunk/Source

[iOS] Missing tiles inside position:fixed on scrolling
https://bugs.webkit.org/show_bug.cgi?id=146485
rdar://problem/21226861

Reviewed by Tim Horton.

Layer flushing adjusts the coverage rect for tiled layers, but does so at times
when position:fixed layers are moved around by the scrolling tree. The computed
coverage rect then doesn't reflect the layer's on-screen position, causing missing
tiles.

Fix by pushing the notion of being in a "stable state" onto FrameView, and passing
that state into the layer flush. When not in a stable state, flushing doesn't change
the visible and coverage rects for layers that are viewport-constrained.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::reset):

  • page/FrameView.h: Remove some velocity-related data members that were unused.
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::flushCompositingState):
(WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::flushCompositingState):
(WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): If this is a viewport-constrained
layer, and the viewport is not stable, don't touch the rects.
(WebCore::GraphicsLayerCA::recursiveCommitChanges):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::CommitState::CommitState):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

Source/WebKit2:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

6:01 PM Changeset in webkit [186154] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Rename GraphicsLayer's allowsBackingStoreDetachment to isViewportConstrained
https://bugs.webkit.org/show_bug.cgi?id=146483

Reviewed by Tim Horton.

What GraphicsLayer really needs to know is whether some other thread/process
is moving its platform layers around behind its back, and this is is better
expressed as "isViewportConstrained" rather than "allowsBackingStoreDetachment".

The sense of the flag is flipped, and boolean logic adjusted accordingly.

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setIsViewportConstrained):
(WebCore::GraphicsLayer::isViewportConstrained):
(WebCore::GraphicsLayer::setAllowsBackingStoreDetachment): Deleted.
(WebCore::GraphicsLayer::allowsBackingStoreDetachment): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setIsScrollCoordinatedWithViewportConstrainedRole):

5:46 PM Changeset in webkit [186153] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[EFL] Implement ewk_favicon_database_clear() API.
https://bugs.webkit.org/show_bug.cgi?id=146337

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-30
Reviewed by Gyuyoung Kim.

We need to provide way to clear favicon data.

  • UIProcess/API/efl/ewk_favicon_database.cpp:

(EwkFaviconDatabase::getIconSurfaceSynchronously):
(EwkFaviconDatabase::clearFaviconDatabase):
(EwkFaviconDatabase::iconDataReadyForPageURL):
(ewk_favicon_database_icon_change_callback_del):
(ewk_favicon_database_clear):

  • UIProcess/API/efl/ewk_favicon_database.h:
  • UIProcess/API/efl/ewk_favicon_database_private.h:
  • UIProcess/API/efl/tests/test_ewk2_favicon_database.cpp:

(TEST_F):

5:39 PM Changeset in webkit [186152] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Ignore viewport rect changes during zoom bouncing.
<https://webkit.org/b/146480>

Reviewed by Benjamin Poulain.

When the user has pinch-zoomed past the maximum zoom scale and lets go of the screen,
we animate a bounce back to the maximum scale.

Suppress viewport rect updates during this bounce animation since we don't need them
anyway. This fixes an issue where we'd sometimes get a weird rect during the animation
and if could send that to the web process, causing it to generate tiles for a part of
the page that's not actually exposed.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateVisibleContentRects]):

5:36 PM Changeset in webkit [186151] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Errors in read() are not handled in WTF::cryptographicallyRandomValuesFromOS.
https://bugs.webkit.org/show_bug.cgi?id=146473

Patch by Keith Miller <keith_miller@apple.com> on 2015-06-30
Reviewed by Filip Pizlo.

We were not checking if errors occurred in WTF::cryptographicallyRandomValuesFromOS.
We now buffer the data until enough bits of entropy exist to fill the buffer
rather than crash. Additionally, added two crash functions so we can distinguish
between the two reasons why we crashed in traces.

  • wtf/OSRandomSource.cpp:

(WTF::crashUnableToOpenFD):
(WTF::crashUnableToReadFromFD):
(WTF::cryptographicallyRandomValuesFromOS):

5:17 PM Changeset in webkit [186150] by Chris Dumez
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed, rebaseline editing/style/unbold-in-bold.html on WK2.

  • platform/mac-wk2/editing/style/unbold-in-bold-expected.txt: Added.
5:16 PM Changeset in webkit [186149] by Chris Dumez
  • 1 edit
    1 delete in trunk/LayoutTests

Unreviewed, revert bad wk2 baseline done in r186106.

  • platform/mac-wk2/editing/style: Removed.
5:08 PM Changeset in webkit [186148] by enrica@apple.com
  • 6 edits in trunk/Source/WebKit2

<rdar://problem/20655729> WebKit should heuristically exclude scrolling touch events from the user gesture category

Reviewed by Benjamin Poulain.

  • Platform/spi/ios/UIKitSPI.h:
  • Shared/WebEvent.h:

(WebKit::WebTouchEvent::WebTouchEvent):
(WebKit::WebTouchEvent::position):
(WebKit::WebTouchEvent::isPotentialTap):
(WebKit::WebTouchEvent::isGesture):
(WebKit::WebTouchEvent::gestureScale):
(WebKit::WebTouchEvent::gestureRotation):

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):

  • Shared/ios/NativeWebTouchEventIOS.mm:

(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):

  • Shared/ios/WebTouchEventIOS.cpp:

(WebKit::WebTouchEvent::encode):
(WebKit::WebTouchEvent::decode):
Pipe isPotentialTap through.

4:33 PM Changeset in webkit [186147] by bshafiei@apple.com
  • 5 edits
    1 copy
    1 delete in tags/Safari-601.1.37.0.1/Source/WebKit2

Roll out r185936. rdar://problem/21597179

4:30 PM Changeset in webkit [186146] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.37.0.1/Source

Roll out r185939. rdar://problem/21597179

4:27 PM Changeset in webkit [186145] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.37.0.1/Source/WebCore

Roll out r185951. rdar://problem/21597179

4:15 PM Changeset in webkit [186144] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.37.0.1/Source

Versioning.

4:10 PM Changeset in webkit [186143] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.37.0.1

New tag.

3:58 PM Changeset in webkit [186142] by fpizlo@apple.com
  • 3 edits in trunk/PerformanceTests

Update the JetStream documentation to reflect the recent changes
https://bugs.webkit.org/show_bug.cgi?id=146474

Reviewed by Geoffrey Garen.

  • JetStream/create.rb: Bump the version.
  • JetStream/in-depth-TEMPLATE.html: Add cdjs documentation. Remove cordic documentation. Change documentation for splay and mandreel.
3:58 PM Changeset in webkit [186141] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: ProfileNode cleanup
https://bugs.webkit.org/show_bug.cgi?id=146472

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-30
Reviewed by Timothy Hatcher.

  • UserInterface/Models/ProfileNode.js:

(WebInspector.ProfileNode):
Use Array.prototype.every instead of reduce.
Correct the name of a function to be what callers expect!

3:51 PM Changeset in webkit [186140] by clopez@igalia.com
  • 3 edits in trunk/Source/WebKit2

[GTK] [EFL] Unreviewed build fix after r186118.

Add if PLATFORM(COCOA) back.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired):

  • WebProcess/WebProcess.h:
3:21 PM Changeset in webkit [186139] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

CABackdropFilter should set windowServerAware to false
https://bugs.webkit.org/show_bug.cgi?id=146469
<rdar://problem/21618614>

Reviewed by Simon Fraser.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::PlatformCALayerCocoa): Set windowServerAware
to false on Mac (it's not available on iOS).

3:20 PM Changeset in webkit [186138] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: iOS 8: Profile Nodes not showing in JavaScript Timeline
https://bugs.webkit.org/show_bug.cgi?id=146471

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-30
Reviewed by Brian Burg.

  • UserInterface/Models/ScriptTimelineRecord.js:

(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload):
For legacy backends, convert the startTime to the proper timestamp type.

3:19 PM Changeset in webkit [186137] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Rolling out r175171
https://bugs.webkit.org/show_bug.cgi?id=146470
<rdar://problem/21349934>

Unreviewed, rolling out <http://trac.webkit.org/changeset/175171>. It
wasn't a huge win and Brady says it caused crash at
<rdar://problem/21349934>.

  • platform/network/cf/ResourceRequest.h:
  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):

3:19 PM Changeset in webkit [186136] by basile_clement@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Allow object allocation sinking through GetScope, GetExecutable and SkipScope nodes
https://bugs.webkit.org/show_bug.cgi?id=146431

Reviewed by Filip Pizlo.

  • dfg/DFGNode.h:

(JSC::DFG::Node::isFunctionAllocation):
(JSC::DFG::Node::isPhantomFunctionAllocation):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • dfg/DFGPromoteHeapAccess.h:

(JSC::DFG::promoteHeapAccess):

3:16 PM Changeset in webkit [186135] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, revert bad WK1 rebaseline done in r186106.

  • platform/mac/editing/style/unbold-in-bold-expected.txt:
3:00 PM Changeset in webkit [186134] by Simon Fraser
  • 4 edits in trunk/Source

Crash under _layoutForNodeHighlight: when inspecting espn.com
https://bugs.webkit.org/show_bug.cgi?id=146422

Reviewed by Joseph Pecoraro.
Source/WebKit/mac:

When inspecting espn.com, MobileSafari sometimes crashes, because
highlight.quads is empty. I was not able to quickly determine why.

Fix by bailing in this case.

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView _layoutForNodeHighlight:parent:]):

Source/WebKit2:

When inspecting espn.com, MobileSafari sometimes crashes, because
highlight.quads is empty. I was not able to quickly determine why.

Fix by bailing in this case.

  • UIProcess/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView _layoutForNodeHighlight:]):

2:45 PM Changeset in webkit [186133] by Matt Baker
  • 24 edits
    1 add in trunk/Source

Web Inspector: Reduce rendering frames "Other" time by instrumenting compositing
https://bugs.webkit.org/show_bug.cgi?id=146168

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

New timeline record type for compositing events.

Source/WebCore:

Added Inspector instrumentation for measuring CoreAnimation compositing time. We mark the start of a composite
event when the LayerFlushScheduler triggers a scheduled layer flush. InspectorController now exports a function
for marking the end of the composite event, which should be called during the CA transaction post-commit phase
(based on platform support). Lacking platform support, the event is considered complete after CoreAnimation
runloop observers have run.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::didComposite):

  • inspector/InspectorController.h:

New export for instrumentation in WebKit2.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willCompositeImpl):
(WebCore::InspectorInstrumentation::didCompositeImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willComposite):
(WebCore::InspectorInstrumentation::didComposite):
Plumbing for new instrumentation.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::InspectorTimelineAgent::willComposite):
(WebCore::InspectorTimelineAgent::didComposite):
(WebCore::toProtocol):

  • inspector/InspectorTimelineAgent.h:

New Composite event type and instrumentation.

  • page/FrameView.cpp:

(WebCore::FrameView::flushCompositingStateIncludingSubframes):
Hook for start of compositing.

  • platform/spi/cocoa/QuartzCoreSPI.h:

New header include and interface declaration.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._processRecord):
Added handling for new Composite record type. Paint records with a parent Composite record
are flagged to simplify processing after the event hierarchy is unpacked.

  • UserInterface/Images/TimelineRecordComposite.svg: Added.

New composite record icon.

  • UserInterface/Models/LayoutTimelineRecord.js:

(WebInspector.LayoutTimelineRecord):
(WebInspector.LayoutTimelineRecord.displayNameForEventType):
(WebInspector.LayoutTimelineRecord.prototype.get duringComposite): Added
Composite record support.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType):
Add compositing time when bucketing runloop tasks, ignoring Paint events that are
contained within a Composite event.

  • UserInterface/Views/LayoutTimelineOverviewGraph.js:

(WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
Add Composite records to paint timeline row.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
Small unrelated fix.

  • UserInterface/Views/TimelineIcons.css:

(.composite-record .icon):

  • UserInterface/Views/TimelineRecordBar.css:

(.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-composite > .segment):

  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement):
New styles and tree element icon.

Source/WebKit2:

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
Added CA transaction post-commit handlers to instrument end of composite.

2:40 PM Changeset in webkit [186132] by Beth Dakin
  • 4 edits in trunk/Source

The bounds on InteractionInformationAtPosition should be more precise
https://bugs.webkit.org/show_bug.cgi?id=146468
-and corresponding-
rdar://problem/20739834

Reviewed by Enrica Casucci and Simon Fraser.

Source/WebCore:

Export absoluteContentQuad().

  • rendering/RenderBox.h:

Source/WebKit2:

For links, get the TextQuads from the Range, and for images, look at the
absoluteContentQuad(). All other items can continue to use absoluteBoundingBox.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

2:37 PM Changeset in webkit [186131] by Jon Davis
  • 2 edits in trunk/Tools

Added myself, Jonathan Davis, as a committer.

2:01 PM Changeset in webkit [186130] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Added WebKit feature status page to navigation.

1:31 PM Changeset in webkit [186129] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Addressing post-review comments in r185756.

  • html/RubyTextElement.cpp:

(WebCore::RubyTextElement::createElementRenderer):

1:03 PM Changeset in webkit [186128] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Addressing post-review comments in r185916

  • platform/LayoutUnit.h:

(WebCore::roundToDevicePixel):

12:53 PM Changeset in webkit [186127] by mrajca@apple.com
  • 2 edits in trunk/Source/WebCore

MediaSession: Use setSessionInternal to set the default media session in HTMLMediaElement's constructor
https://bugs.webkit.org/show_bug.cgi?id=146465

Reviewed by Eric Carlson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):

12:48 PM Changeset in webkit [186126] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Disable Spintracer when getting the list of plug-ins
https://bugs.webkit.org/show_bug.cgi?id=146467
rdar://problem/21616640

Reviewed by Tim Horton.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::populatePluginCache):

12:12 PM Changeset in webkit [186125] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Java Plugin cannot launch JavaUpdater.app after renaming
https://bugs.webkit.org/show_bug.cgi?id=146464
rdar://problem/19747153

Reviewed by Tim Horton.

Check for both "JavaUpdater.app" and "Java Updater.app".

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::isJavaUpdaterURL):

11:26 AM Changeset in webkit [186124] by andersca@apple.com
  • 8 edits in trunk/Source/WebKit/mac

Remove the WK_ENABLE_FORMAL_DELEGATE_PROTOCOLS ifdefs now that this is always true
https://bugs.webkit.org/show_bug.cgi?id=146462

Reviewed by Dan Bernstein.

  • Misc/WebDownload.h:
  • WebView/WebFrameLoadDelegate.h:
  • WebView/WebPolicyDelegate.h:
  • WebView/WebResourceLoadDelegate.h:
  • WebView/WebUIDelegate.h:
  • WebView/WebView.h:
  • postprocess-headers.sh:
11:10 AM Changeset in webkit [186123] by mrajca@apple.com
  • 5 edits in trunk/Source/WebCore

Media Session: implement algorithm for updating a media element's session (6.1)
https://bugs.webkit.org/show_bug.cgi?id=146460

Reviewed by Darin Adler.

In addition to storing a pointer to the new media session, we now:

  • pause the media element if it is 'active' in the current media session
  • remove the media element from the current media session
  • release the current media session if there are no more active media elements
  • set the default media session if the new media session is null
  • update the 'kind' attribute to match the kind of the new media session
  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::isMediaElementActive):
(WebCore::MediaSession::hasActiveMediaElements):

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSession):
(WebCore::HTMLMediaElement::setSessionInternal):

  • html/HTMLMediaElement.h:
11:08 AM Changeset in webkit [186122] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

[WK2] Avoid taking a useless / blank navigation snapshot when navigating after restoring sessionState
https://bugs.webkit.org/show_bug.cgi?id=146446
<rdar://problem/21584231>

Reviewed by Darin Adler.

We currently take a useless / blank navigation snapshot when navigating
after restoring the back / forward list from a sessionState object.
This is because we get a current HistoryItem from the sessionState
which we have never really navigated to. We then take a navigation
snapshot for the current HistoryItem when navigating away as we usually
do. However, in this case, the HistoryItem was imported and there is
nothing to snapshot.

Taking this snapshot is not only wasteful, it can also potentially
overwrite the snapshot that was set by the client using
WKWebView._saveBackForwardSnapshotForItem() SPI.

To address the problem, this patch suppresses navigation snapshotting
after restoring the back / forward list from a session state and until
the next load is committed.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::recordNavigationSnapshot):
(WebKit::WebPageProxy::restoreFromSessionState):
(WebKit::WebPageProxy::didCommitLoadForFrame):

  • UIProcess/WebPageProxy.h:
10:32 AM Changeset in webkit [186121] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit/win

[Win] webViewAddMessageToConsole always gets 1 for isError
https://bugs.webkit.org/show_bug.cgi?id=146457
<rdar://problem/21606395>

Reviewed by Zalan Bujtas.

  • WebCoreSupport/WebChromeClient.cpp:

(messageIsError): Added.
(WebChromeClient::addMessageToConsole): Only pass true for
isError if the message is an error message.

10:20 AM Changeset in webkit [186120] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: iOS 8: Uncaught Exception expanding Object Prototype
https://bugs.webkit.org/show_bug.cgi?id=146427

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-30
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype._updateProperties):
We are supposed to receive value properties for proto properties
so that we can immediately start showing information about the property.
When that is not the case, which appeared to only be on legacy
backends for the top level prototype, just ignore it.

10:16 AM Changeset in webkit [186119] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Misc. Timeline cleanup
https://bugs.webkit.org/show_bug.cgi?id=146430

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-30
Reviewed by Timothy Hatcher.

  • UserInterface/Models/Timeline.js:

(WebInspector.Timeline.prototype.reset):
Nobody listens for this event. Just remove it.

  • UserInterface/Models/TimelineRecording.js:

Avoiding doing multiple lookups.

  • UserInterface/Views/TimelineDataGridNode.js:
  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._updateTimes):

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.updateLayout):
Eliminate some unnecessary deletes.

10:12 AM Changeset in webkit [186118] by andersca@apple.com
  • 13 edits in trunk/Source

Get rid of unused WKSI functions
https://bugs.webkit.org/show_bug.cgi?id=146443

Reviewed by Tim Horton.

Source/WebCore:

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::platformAddPathForRoundedRect):
Just call CGPathAddRoundedRect directly.

  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:
  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::destroyRenderingResources):

9:39 AM Changeset in webkit [186117] by Brent Fulgham
  • 2 edits in trunk/Tools

Unreviewed build fix.

  • Scripts/update-webkit-dependency: Try to build even if we cannot connect

to developer.apple.com to get update libraries.

9:31 AM Changeset in webkit [186116] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.37.1.1/Source

Versioning.

9:27 AM Changeset in webkit [186115] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.37.1.1

New tag.

4:26 AM Changeset in webkit [186114] by peavo@outlook.com
  • 3 edits in trunk/Source/WebKit/win

[WinCairo] Compile error, WebEditorClient::didApplyStyle() should not have any parameters.
https://bugs.webkit.org/show_bug.cgi?id=146450

Reviewed by Csaba Osztrogonác.

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::shouldApplyStyle):
(WebEditorClient::didApplyStyle):

  • WebCoreSupport/WebEditorClient.h:
2:53 AM Changeset in webkit [186113] by calvaris@igalia.com
  • 4 edits in trunk

[Streams API] Finish pulling must always be done asynchronously as it is the expected promise behavior (according to the spec)
https://bugs.webkit.org/show_bug.cgi?id=146408

Reviewed by Darin Adler.

Source/WebCore:

Current tests cover the case already.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::pull): Call finishPull() in a postTask to delay it and simulate the promise
resolution.

LayoutTests:

  • streams/reference-implementation/readable-stream-expected.txt: Updated expectation to PASS
2:27 AM Changeset in webkit [186112] by calvaris@igalia.com
  • 5 edits in trunk

[Streams API] Synced bad strategy test with reference implementation
https://bugs.webkit.org/show_bug.cgi?id=146411

Reviewed by Darin Adler.

Source/WebCore:

Current tests cover the case.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::retrieveChunkSize): Check for negative size then running the JavaScript function.

LayoutTests:

  • streams/reference-implementation/bad-strategies-expected.txt:
  • streams/reference-implementation/bad-strategies.html: There are three tests that are merged into one and a

fourth check is added. Updated expectations accordingly.

12:50 AM Changeset in webkit [186111] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk/Source/WebCore

[Streams API] Remove ReadableStream.getReader() custom binding
https://bugs.webkit.org/show_bug.cgi?id=146404

Reviewed by Darin Adler.

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::getReader): Updated to take an exception.

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStream.idl: Updated to remove custom binding.
  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::JSReadableStream::getReader): Deleted.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::constructJSReadableStreamReader): Updated to pass an exception to getReader.

12:17 AM Changeset in webkit [186110] by Philippe Normand
  • 2 edits in trunk

[CMake] Error when gst-plugins-base is missing is too confusing
https://bugs.webkit.org/show_bug.cgi?id=145682

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsGTK.cmake: Error out if the required

GStreamer libraries are not found on the host.

Jun 29, 2015:

11:47 PM Changeset in webkit [186109] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk/Source/WebCore

[Streams API] ReadableStreamReader.closed should use DOMPromise
https://bugs.webkit.org/show_bug.cgi?id=146406

Reviewed by Darin Adler.

Added storage of ClosedPromise as Optional of ReadableStream.
Updated code accordingly.

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::clearCallbacks):
(WebCore::ReadableStream::releaseReader):
(WebCore::ReadableStream::changeStateToErrored):
(WebCore::ReadableStream::closed):

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::closed):

  • Modules/streams/ReadableStreamReader.h:
  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed):

11:02 PM Changeset in webkit [186108] by Gyuyoung Kim
  • 3 edits in trunk/Source/WebKit2

[GTK] Unreviewed GTK build fix since r186088 and r186095.
https://bugs.webkit.org/show_bug.cgi?id=146449

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/PageClientImpl.h:
10:33 PM Changeset in webkit [186107] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

[iOS WK2] WKWebViews in Facebook app start off black
https://bugs.webkit.org/show_bug.cgi?id=146445
rdar://problem/21600433

Reviewed by Tim Horton.

If -isOpaque is toggled on a WKWebView, we failed to make the page tiles non-opaque
for a while. After r183775, RenderLayerCompositor::rootBackgroundTransparencyChanged() was called,
but only considered the computed document background color, and not the view transparency.

Fix by having rootBackgroundTransparencyChanged() simply use viewHasTransparentBackground(),
which checks the FrameView transparency. Now we just need to store a transparency bool rather
than the old color (we only checked its alpha anyway).

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged):

7:38 PM Changeset in webkit [186106] by rniwa@webkit.org
  • 2 edits
    1 copy in trunk/LayoutTests

Another rebaseline after r186086.
WebKit2 needs the original expected result.

  • platform/mac-wk2/editing/style: Copied from LayoutTests/platform/mac/editing/style/unbold-in-bold-expected.txt.
  • platform/mac/editing/style/unbold-in-bold-expected.txt:
7:05 PM Changeset in webkit [186105] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Rebaseline after r186086.

  • platform/mac/editing/style/unbold-in-bold-expected.txt:
6:26 PM Changeset in webkit [186104] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

WebKit should use 80% black background for PiP indicator
https://bugs.webkit.org/show_bug.cgi?id=146444
<rdar://problem/21555726>

Reviewed by Sam Weinig.

Change the black background to a slightly less black background.
This also involved making the placard artwork white, in order
to keep it visible against the new grey.

  • Modules/mediacontrols/mediaControlsiOS.css:

(audio::-webkit-media-controls-wireless-playback-status):
(audio::-webkit-media-controls-wireless-playback-status.small):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):

6:09 PM Changeset in webkit [186103] by Gyuyoung Kim
  • 3 edits in trunk/Source/WebKit2

Unreviewed EFL build fix since r186088 and r186095.

  • CMakeLists.txt: Remove ConnectionStack.cpp.
  • UIProcess/CoordinatedGraphics/WebView.h: Override virtual didFailLoadForMainFrame().
5:47 PM Changeset in webkit [186102] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Unable to select the text of an inline error message
https://bugs.webkit.org/show_bug.cgi?id=145813

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror-linewidget):

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.createWidgetForLine):

5:40 PM Changeset in webkit [186101] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove harmless error for not getting named flows
https://bugs.webkit.org/show_bug.cgi?id=146417

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-29
Reviewed by Darin Adler.

  • UserInterface/Controllers/DOMTreeManager.js:
5:37 PM Changeset in webkit [186100] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network errors (404) are missing location link in console messages
https://bugs.webkit.org/show_bug.cgi?id=146442

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-29
Reviewed by Darin Adler.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
Restore behavior of adding a location link for network messages with urls.

5:32 PM Changeset in webkit [186099] by beidson@apple.com
  • 6 edits in trunk/Source

Flag sync XHRs from the network process so they can be handled appropriately.
<rdar://problem/21579162> and https://bugs.webkit.org/show_bug.cgi?id=146441

Reviewed by Darin Adler.

Source/WebCore:

  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::loadingSynchronousXHR): Added so clients of asynchronous

loads can signal they should be treated like synchronous loads at the platform level.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::start): Adjust SchedulingBehavior based on the client.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::start): Adjust SchedulingBehavior based on the client.

Source/WebKit2:

  • NetworkProcess/NetworkResourceLoader.h:

(WebKit::NetworkResourceLoader::loadingSynchronousXHR): Return isSynchronous().

5:27 PM Changeset in webkit [186098] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: iOS 8: Resources Timeline Data does not show up
https://bugs.webkit.org/show_bug.cgi?id=146433

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-29
Reviewed by Timothy Hatcher.

There were a couple issues with initializing the legacy base timestamp
for attempting to dynamically compute monotonically increasing timestamps
for timeline events for legacy backends.

  • Sometimes legacy timestamps were in seconds since epochs, sometimes milliseconds. The frontend did not handle both.
  • On navigations, even while resetting the base timestamp for the first new record received, the main resource still had a will send request time computed from the previous page's time system. This patch re-uses the original timestamp for this main resource as the new base and all future records are computed relative to this.
  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):

  • UserInterface/Models/Resource.js:

(WebInspector.Resource):
(WebInspector.Resource.prototype.get originalRequestWillBeSentTimestamp):
For legacy timestamp calculations, save the original request will be sent
timestamp on the Resource in case it is needed.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._loadNewRecording):
When auto-starting a new recording for a navigation / reload, use the
main resource's request will be sent timestamp as the new base.

  • UserInterface/Models/TimelineRecording.js:

Address legacy timeline timestamps by handling both legacy timestamps
that may be seconds / milliseconds.

5:24 PM Changeset in webkit [186097] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: PlatformSpeechSynthesizer code doesn't catch Objective-C exceptions
https://bugs.webkit.org/show_bug.cgi?id=146419

Reviewed by Simon Fraser.

Make sure ObjC exception resulting from calling into the platform cause problems in WebKit.

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didStartSpeechUtterance:]):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::pause):

5:15 PM Changeset in webkit [186096] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove an empty group from the Xcode project.

  • WebKit2.xcodeproj/project.pbxproj:
4:46 PM Changeset in webkit [186095] by andersca@apple.com
  • 4 edits
    2 deletes in trunk/Source/WebKit2

Get rid of ConnectionStack
https://bugs.webkit.org/show_bug.cgi?id=146437

Reviewed by Andreas Kling.

Just use a TemporaryChange and a static variable instead.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::setGlobalException):
(WebKit::WebProcessConnection::didReceiveMessage):
(WebKit::WebProcessConnection::didReceiveSyncMessage):

  • Shared/ConnectionStack.cpp: Removed.

(WebKit::ConnectionStack::singleton): Deleted.

  • Shared/ConnectionStack.h: Removed.

(WebKit::ConnectionStack::current): Deleted.
(WebKit::ConnectionStack::CurrentConnectionPusher::CurrentConnectionPusher): Deleted.
(WebKit::ConnectionStack::CurrentConnectionPusher::~CurrentConnectionPusher): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
4:14 PM Changeset in webkit [186094] by mrajca@apple.com
  • 2 edits in trunk/Source/WebCore

Removing an element from a media session should also remove it from the sets of active participating elements
https://bugs.webkit.org/show_bug.cgi?id=146420

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::removeMediaElement):

4:08 PM Changeset in webkit [186093] by commit-queue@webkit.org
  • 2 edits in trunk/WebKitLibraries

[Win] Activate SSE support for 32-bit builds.
https://bugs.webkit.org/show_bug.cgi?id=144923

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-29
Reviewed by Brent Fulgham.

  • win/tools/vsprops/common.props:
4:01 PM Changeset in webkit [186092] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit2

Fix the build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didFailLoadForMainFrame]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didFailLoadForMainFrame):

3:59 PM Changeset in webkit [186091] by dino@apple.com
  • 12 edits in trunk

Temporarily disable PICTURE_SIZES
https://bugs.webkit.org/show_bug.cgi?id=146435
<rdar://problem/21087013>

Source/JavaScriptCore:

Reviewed by Tim Horton.

Temporarily disable PICTURE_SIZES because it causes problems with out
of date <picture> polyfills.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Reviewed by Tim Horton.

Temporarily disable PICTURE_SIZES because it causes problems with out
of date <picture> polyfills.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Reviewed by Tim Horton.

Temporarily disable PICTURE_SIZES because it causes problems with out
of date <picture> polyfills.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Temporarily disable PICTURE_SIZES because it causes problems with out
of date <picture> polyfills.

Temporarily disable PICTURE_SIZES until Safari branches.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Reviewed by Tim Horton.

Temporarily disable PICTURE_SIZES because it causes problems with out
of date <picture> polyfills.

  • wtf/FeatureDefines.h:

LayoutTests:

Reviewed by Tim Horton.

Skip HTMLImageElement.sizes tests.

3:42 PM Changeset in webkit [186090] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Fix the build.

  • editing/cocoa/HTMLConverter.mm:
  • platform/spi/cocoa/NSAttributedStringSPI.h:
3:35 PM Changeset in webkit [186089] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • platform/spi/cocoa/NSAttributedStringSPI.h:
3:07 PM Changeset in webkit [186088] by andersca@apple.com
  • 10 edits in trunk/Source/WebKit2

Don't try to access a possibly deallocated WebFrameProxy object
https://bugs.webkit.org/show_bug.cgi?id=146428
rdar://problem/21446364

Reviewed by Tim Horton.

Make sure to call isMainFrame before calling out to the client inside
WebPageProxy::didFailLoadForFrame, matching what we do for WebPageProxy::didFinishLoadForFrame.

Also, add a ViewGestureController::didFailLoadForMainFrame function and call that instead of
calling didFinishLoadForMainFrame in the failure case.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _didFailLoadForMainFrame]):

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailLoadForFrame):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState):
(WebKit::ViewGestureController::didFinishLoadForMainFrame): Deleted.

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didFailLoadForMainFrame):

  • UIProcess/mac/ViewGestureController.h:

(WebKit::ViewGestureController::didFinishLoadForMainFrame):
(WebKit::ViewGestureController::didFailLoadForMainFrame):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState):
(WebKit::ViewGestureController::didFinishLoadForMainFrame): Deleted.

2:56 PM Changeset in webkit [186087] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Disable default gesture recognizers on preview.
https://bugs.webkit.org/show_bug.cgi?id=146424
rdar://problem/21572828

We should disable default gesture recognizers on preview, to avoid activating links or
triggering touch events accidentally. We can enable them after preview finishes.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-06-29
Reviewed by Beth Dakin.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]):
(-[WKContentView didDismissPreviewViewController:committing:]):

2:38 PM Changeset in webkit [186086] by rniwa@webkit.org
  • 20 edits
    3 adds in trunk/Source

Font panel doesn't get updated when bolding text via cmd+b in Mail on OS X
https://bugs.webkit.org/show_bug.cgi?id=146379

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by WebKit not updating the font panel when the typing style changes.
There was also a bug that WebKit never updated font attributes on OS X.

Fixed the bugs by always updating the font panel after applying style instead of only
when the selection changes and setting the font attributes.

I tried really had to write a WebKit API test but I couldn't get it to work so there are
no new tests :(

  • WebCore.xcodeproj/project.pbxproj:
  • editing/Editor.cpp:

(WebCore::Editor::applyStyle):
(WebCore::Editor::shouldApplyStyle):
(WebCore::Editor::applyParagraphStyle):
(WebCore::Editor::applyStyleToSelection):
(WebCore::Editor::applyParagraphStyleToSelection):
(WebCore::Editor::selectionStartHasStyle):
(WebCore::Editor::document):
(WebCore::Editor::styleForSelectionStart): Deleted.

  • editing/Editor.h:
  • editing/cocoa/EditorCocoa.h: Added. Shares the declaration for NSUnderlineStyle in iOS.
  • editing/cocoa/EditorCocoa.mm: Added.

(WebCore::Editor::styleForSelectionStart): Moved from Editor.cpp
(WebCore::Editor::getTextDecorationAttributesRespectingTypingStyle): Extracted from iOS's
fontAttributesForSelectionStart implementation.

  • editing/cocoa/HTMLConverter.mm:
  • editing/ios/EditorIOS.mm:

(WebCore::Editor::fontAttributesForSelectionStart):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::fontAttributesForSelectionStart):

  • loader/EmptyClients.h:
  • page/EditorClient.h:

Source/WebKit/mac:

Update the font panel when newly added EditorClient::didApplyStyle is called. Also set the font attributes
in _updateFontPanel so that underline and strike through states will be reflected.

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::shouldApplyStyle):
(updateFontPanelIfNeeded): Extracted from respondToChangedContents.
(WebEditorClient::didApplyStyle): Added.
(WebEditorClient::respondToChangedContents):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateFontPanel]): Sets font attributes as well as font.

Source/WebKit/win:

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::didApplyStyle): Added.

  • WebCoreSupport/WebEditorClient.h:

Source/WebKit2:

Since font panel doesn't open in WebKit2 at the moment, just add an empty implementation of didApplyStyle

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::didApplyStyle):

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.h:
2:11 PM Changeset in webkit [186085] by jacob_nielsen@apple.com
  • 2 edits in trunk/Tools

Add timeout in run-webkit-tests for launching the simulator
https://bugs.webkit.org/show_bug.cgi?id=146371

Reviewed by Darin Adler.

Adds a default 5-minute timeout using the timeout class in webkitpy.benchmark_runner.utils
for the otherwise infinitely patient wait_until_device_is_in_state method.

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator.DeviceState):
(Simulator):
(Simulator.wait_until_device_is_in_state):
(Simulator.device_state):

2:01 PM Changeset in webkit [186084] by mrajca@apple.com
  • 3 edits in trunk/Source/WebCore

MediaSession: use a HashSet for the collection of participating elements
https://bugs.webkit.org/show_bug.cgi?id=146421

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::addMediaElement):
(WebCore::MediaSession::removeMediaElement):

  • Modules/mediasession/MediaSession.h:
1:53 PM Changeset in webkit [186083] by dino@apple.com
  • 14 edits in trunk/Source

Setting to enable/disable media controls sizing on page zoom
https://bugs.webkit.org/show_bug.cgi?id=146423
<rdar://problem/18379634>

Reviewed by Eric Carlson.

Add a new setting "MediaControlsScaleWithPageZoom" that can disable
the behaviour we currently implement on iOS, where the media controls
attempt to remain at a fixed size independent of page zoom.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor): Do not
set this value to true if the new setting is disabled.

  • page/Settings.cpp:
  • page/Settings.in: Add the new setting.

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Initialize to false on iOS, true otherwise.
(-[WebPreferences mediaControlsScaleWithPageZoom]):
(-[WebPreferences setMediaControlsScaleWithPageZoom:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h: Initialize to false on iOS, true otherwise.
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMediaControlsScaleWithPageZoom):
(WKPreferencesGetMediaControlsScaleWithPageZoom):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

12:56 PM Changeset in webkit [186082] by Chris Dumez
  • 10 edits in trunk/Source/WebKit2

[WK2][iOS] Swipe gesture snapshot stays up for 3 seconds when swiping back after top-hit navigation
https://bugs.webkit.org/show_bug.cgi?id=146415
<rdar://problem/21595801>

Reviewed by Tim Horton.

Swipe gesture snapshot previously stayed up for 3 seconds when swiping
back after a top-hit navigation. This is because we do not restore the
scroll position in this case and the ViewGestureController was waiting
for the scroll position to be restored before taking down the snapshot.

This patch adds a fail-safe mechanism so that the WebProcess can let
the UIProcess know (via a CouldNotRestorePageState IPC) that the page
state (including scroll position) could not be restored so that it can
let the ViewGestureController it should not wait for the scroll
position to be restored.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _couldNotRestorePageState]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::couldNotRestorePageState):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::couldNotRestorePageState):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::restorePageState):

12:52 PM Changeset in webkit [186081] by adam.bergkvist@ericsson.com
  • 32 edits
    10 adds
    2 deletes in trunk

WebRTC: Update the MediaStream API
https://bugs.webkit.org/show_bug.cgi?id=146313

Reviewed by Eric Carlson.

Source/WebCore:

Update the MediaStream API (MediaStream, MediaStreamTrack and
RealtimeMediaSource) to match the Media Capture and Stream
specification [1]. Notable changes:

Updated event handling to synchronously update corresponding
state/attributes as events are dispatched.

Removed 'new' state from MediaStreamTrack. A track is either 'live' or
'ended'. As a consequence 'started' event is also removed.

MediaStreamTrack always has a source (disconnected source concept was
removed from the spec). Therefore, more state can be kept at the source
without going away.

Calculate MediaStream.active internally, from the track set, instead of
setting it externally.

Updated RealtimeMediaSource Observer interface.

Replaced MediaStream's separate audio and video track lists with a
single track set (more aligned with spec).

Updated MediaStream constructor to adopt instead of clone track
arguments (or tracks from MediaStream argument).

Removed MediaStreamTrack.getSources() and corresponding test (removed
from spec).

Test status: 3 added, 8 existing enabled (some updated) and 1 removed.

[1] http://w3c.github.io/mediacapture-main/archives/20150523/getusermedia.html

Tests: fast/mediastream/MediaStreamTrack-clone.html

fast/mediastream/MediaStreamTrack-kind.html
fast/mediastream/MediaStreamTrack-stop.html

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::clone):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::getAudioTracks):
(WebCore::MediaStream::getVideoTracks):
(WebCore::MediaStream::getTracks):
(WebCore::MediaStream::contextDestroyed):
(WebCore::MediaStream::trackDidEnd):
(WebCore::MediaStream::activeStatusChanged):
(WebCore::MediaStream::didAddTrackToPrivate):
(WebCore::MediaStream::didRemoveTrackFromPrivate):
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):
(WebCore::MediaStream::scheduleActiveStateChange):
(WebCore::MediaStream::activityEventTimerFired):
(WebCore::MediaStream::trackVectorForType):
(WebCore::MediaStream::~MediaStream): Deleted.
(WebCore::MediaStream::registry): Deleted.
(WebCore::MediaStream::addObserver): Deleted.
(WebCore::MediaStream::removeObserver): Deleted.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::kind):
(WebCore::MediaStreamTrack::id):
(WebCore::MediaStreamTrack::label):
(WebCore::MediaStreamTrack::enabled):
(WebCore::MediaStreamTrack::setEnabled):
(WebCore::MediaStreamTrack::muted):
(WebCore::MediaStreamTrack::readonly):
(WebCore::MediaStreamTrack::remote):
(WebCore::MediaStreamTrack::readyState):
(WebCore::MediaStreamTrack::ended):
(WebCore::MediaStreamTrack::clone):
(WebCore::MediaStreamTrack::stopProducingData):
(WebCore::MediaStreamTrack::states):
(WebCore::MediaStreamTrack::getCapabilities):
(WebCore::MediaStreamTrack::applyConstraints):
(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::trackMutedChanged):
(WebCore::MediaStreamTrack::stop):
(WebCore::MediaStreamTrack::getConstraints): Deleted.
(WebCore::MediaStreamTrack::addObserver): Deleted.
(WebCore::MediaStreamTrack::removeObserver): Deleted.
(WebCore::MediaStreamTrack::configureTrackRendering): Deleted.
(WebCore::MediaStreamTrack::activeDOMObjectName): Deleted.
(WebCore::MediaStreamTrack::canSuspendForPageCache): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::didRemoveRemoteStream): Deleted.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::didCreateStream):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::create):
(WebCore::MediaStreamPrivate::MediaStreamPrivate):
(WebCore::MediaStreamPrivate::tracks):
(WebCore::MediaStreamPrivate::updateActiveState):
(WebCore::MediaStreamPrivate::addTrack):
(WebCore::MediaStreamPrivate::removeTrack):

  • platform/mediastream/MediaStreamPrivate.h:

(WebCore::MediaStreamPrivate::active): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::create):
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
(WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate):
(WebCore::MediaStreamTrackPrivate::label):
(WebCore::MediaStreamTrackPrivate::setEnabled):
(WebCore::MediaStreamTrackPrivate::endTrack):
(WebCore::MediaStreamTrackPrivate::clone):
(WebCore::MediaStreamTrackPrivate::type):
(WebCore::MediaStreamTrackPrivate::applyConstraints):
(WebCore::MediaStreamTrackPrivate::sourceStopped):
(WebCore::MediaStreamTrackPrivate::sourceMutedChanged):
(WebCore::MediaStreamTrackPrivate::preventSourceFromStopping):
(WebCore::MediaStreamTrackPrivate::muted): Deleted.
(WebCore::MediaStreamTrackPrivate::readonly): Deleted.
(WebCore::MediaStreamTrackPrivate::remote): Deleted.
(WebCore::MediaStreamTrackPrivate::constraints): Deleted.
(WebCore::MediaStreamTrackPrivate::states): Deleted.
(WebCore::MediaStreamTrackPrivate::capabilities): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::id):
(WebCore::MediaStreamTrackPrivate::ended):
(WebCore::MediaStreamTrackPrivate::enabled):
(WebCore::MediaStreamTrackPrivate::setClient):
(WebCore::MediaStreamTrackPrivate::source): Deleted.
(WebCore::MediaStreamTrackPrivate::client): Deleted.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::RealtimeMediaSource):
(WebCore::RealtimeMediaSource::reset):
(WebCore::RealtimeMediaSource::setMuted):
(WebCore::RealtimeMediaSource::readonly):
(WebCore::RealtimeMediaSource::stop):
(WebCore::RealtimeMediaSource::requestStop):
(WebCore::RealtimeMediaSource::addObserver): Deleted.
(WebCore::RealtimeMediaSource::removeObserver): Deleted.

  • platform/mediastream/RealtimeMediaSource.h:

(WebCore::RealtimeMediaSource::stopped):
(WebCore::RealtimeMediaSource::id): Deleted.
(WebCore::RealtimeMediaSource::muted): Deleted.
(WebCore::RealtimeMediaSource::setReadonly): Deleted.

  • platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:

(WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): Deleted.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::createMediaStream): Deleted.

LayoutTests:

Test status: 3 added, 8 existing enabled (some updated) and 1 removed.

  • TestExpectations:
  • fast/mediastream/MediaStream-add-ended-tracks-expected.txt:
  • fast/mediastream/MediaStream-add-ended-tracks.html:
  • fast/mediastream/MediaStream-add-remove-tracks-expected.txt:
  • fast/mediastream/MediaStream-add-remove-tracks.html:
  • fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html:
  • fast/mediastream/MediaStream-clone-expected.txt: Added.
  • fast/mediastream/MediaStream-clone.html:
  • fast/mediastream/MediaStream-construct-with-ended-tracks-expected.txt: Added.
  • fast/mediastream/MediaStream-construct-with-ended-tracks.html:
  • fast/mediastream/MediaStream-getTracks-expected.txt:
  • fast/mediastream/MediaStream-getTracks.html:
  • fast/mediastream/MediaStreamConstructor.html:
  • fast/mediastream/MediaStreamTrack-clone-expected.txt: Added.
  • fast/mediastream/MediaStreamTrack-clone.html: Added.
  • fast/mediastream/MediaStreamTrack-getSources-expected.txt: Removed.
  • fast/mediastream/MediaStreamTrack-getSources.html: Removed. Tested method removed from spec.
  • fast/mediastream/MediaStreamTrack-kind-expected.txt: Added.
  • fast/mediastream/MediaStreamTrack-kind.html: Added.
  • fast/mediastream/MediaStreamTrack-stop-expected.txt: Added.
  • fast/mediastream/MediaStreamTrack-stop.html: Added.
  • fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt:
  • fast/mediastream/MediaStreamTrackEvent-constructor.html:
  • fast/mediastream/resources/getUserMedia-helper.js: Added.

(.reject):
(getUserMedia):
(defaultRejectOrCatch):

  • platform/gtk/TestExpectations:
12:43 PM Changeset in webkit [186080] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: Jump to Definition is broken
https://bugs.webkit.org/show_bug.cgi?id=146376

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-29
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
Allow changing tabs when jumping to function definition.

12:40 PM Changeset in webkit [186079] by benjamin@webkit.org
  • 14 edits
    4 adds in trunk

Make the NFA transitions range-based
https://bugs.webkit.org/show_bug.cgi?id=146338

Reviewed by Alex Christensen.

Source/WebCore:

Change the NFA to use range based transition for any kind of transition.
The fallback transition is also absorbed as ranges.

Previously, the NFA would only have single transitions and a fallback
transition for all cases not covered by single transitions.

The problem with that design was that character ranges (e.g. [a-z]) were
extended as individual transitions. Something like [a] would cover
most of the alphabet with transitions.
When converting the NFA to DFA, the time is proportional to the number of states
multiplied by the number of transitions. With many individual transitions,
the run time was an order of magnitude higher than what we want.

This patch changes the NFA to only handle ranges of characters. A single transition
becomes a range with the character as first and last character in the range
('a' becomes 'a' to 'a').
Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition).

In the context of the state machines, ranges have identifies (the target of the transitions).
When two ranges collide, they have to be split such that each part retain its target
except the intersection that gets the union of the targets.

Handling the union of ranges efficiently is critical because we have to do
it for every NFA node in any subset when building the DFA. The helper
class that does that is MutableRange.

The union of ranges is done efficiently because of preconditions on our list of ranges:
-The ranges must be sorted.
-No range in a list can intersect any other range in the same list.

To merge two ranges, we can go over them in order and split them part by part.
It is easy to find what goes where because they are both sorted and we can
compare the characters of each to know how to move forward.
The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are
the number of ranges in each list.

Since taking the union of two lists usually create new ranges, we have to allocate
those somewhere efficiently. To do that, MutableRange support an inline capacity,
which is used for the NFAToDFA Convertion.

---

With ranges, the NFA-to-DFA conversion changes very little:
-Each NFA nodes contains a list of ranges and each range has a list of targets.
-The subset construction select any number of NFA nodes corresponding to

a single deterministic state.

-For the subset, we can use MutableRange to merge the ranges of every

NFA node in the set. The resulting list has rangeis with targets corresponding
to the union of all the transitions.

-We go over all the ranges the same way we used to go over the transitions.

Since the DFA does not support ranges, the ranges are spread as individual
transitions + fallback transition.

---

With the efficient merging solved, we still need the actual NFA to use ranges
instead of individual transitions.

I could have used MutableRange for that but it is not the most compact
way to represent ranges that do not need merging.

Instead, the NFA uses a custom structure: ImmutableNFA. It is basically
the same thing, but in that one you cannot change a list of range
after creating it.

Consequently, the sorted ranges in ImmutableNFA are also subsequent
in memory, which is really nice to go over them efficiently
when merging ranges in the NFA-to-DFA conversion. :)

When building the NFA, we don't know all the transitions when creating
each node, BUT we know that we have very few node "unfinished" at any
time. Since we build by going depth-first in the prefix-tree, we only
have the max-depth of live nodes in the worst case.

To help building the NFA out of the prefix tree, we have
ImmutableNFANodeBuilder. It keeps all the informations about a NFA node,
but in a non-compact, mutable form. When a ImmutableNFANodeBuilder
is destroyed, it serialize the information into the immutable NFA.

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::empty):

  • contentextensions/DFA.h:
  • contentextensions/ImmutableNFA.h: Added.

(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*):
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->):
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==):
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=):
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++):
(WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin):
(WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++):
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data):
(WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin):
(WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end):
(WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint):
(WebCore::ContentExtensions::ImmutableNFA::transitionsForNode):
(WebCore::ContentExtensions::ImmutableNFA::root):
(WebCore::ContentExtensions::ImmutableNFA::finalize):
(WebCore::ContentExtensions::ImmutableNFA::memoryUsed):

  • contentextensions/ImmutableNFANodeBuilder.h: Added.

(WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions):

  • contentextensions/MutableRange.h: Added.

(WebCore::ContentExtensions::MutableRange::MutableRange):
(WebCore::ContentExtensions::MutableRange::operator=):
(WebCore::ContentExtensions::MutableRange::size):

  • contentextensions/MutableRangeList.h: Added.

(WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*):
(WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->):
(WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==):
(WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=):
(WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++):
(WebCore::ContentExtensions::MutableRangeList::begin):
(WebCore::ContentExtensions::MutableRangeList::end):
(WebCore::ContentExtensions::MutableRangeList::appendRange):
(WebCore::ContentExtensions::MutableRangeList::extend):
(WebCore::ContentExtensions::MutableRangeList::isEmpty):
(WebCore::ContentExtensions::MutableRangeList::clear):
(WebCore::ContentExtensions::MutableRangeList::debugPrint):
(WebCore::ContentExtensions::MutableRangeList::insertBetween):
(WebCore::ContentExtensions::MutableRangeList::initializeFrom):

  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::debugPrintDot):
(WebCore::ContentExtensions::NFA::NFA): Deleted.
(WebCore::ContentExtensions::NFA::createNode): Deleted.
(WebCore::ContentExtensions::NFA::memoryUsed): Deleted.
(WebCore::ContentExtensions::NFA::addTransition): Deleted.
(WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted.
(WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted.
(WebCore::ContentExtensions::NFA::setActions): Deleted.
(WebCore::ContentExtensions::NFA::graphSize): Deleted.
(WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted.
(WebCore::ContentExtensions::printRange): Deleted.
(WebCore::ContentExtensions::printTransitions): Deleted.

  • contentextensions/NFA.h:

(WebCore::ContentExtensions::NFA::root): Deleted.
(WebCore::ContentExtensions::NFA::addRuleId): Deleted.

  • contentextensions/NFANode.h:
  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::epsilonClosureExcludingSelf):
(WebCore::ContentExtensions::resolveEpsilonClosures):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate):
(WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert):
(WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend):
(WebCore::ContentExtensions::createCombinedTransition):
(WebCore::ContentExtensions::canUseFallbackTransition):
(WebCore::ContentExtensions::findBestFallbackTarget):
(WebCore::ContentExtensions::getOrCreateDFANode):
(WebCore::ContentExtensions::NFAToDFA::convert):
(WebCore::ContentExtensions::populateTransitions): Deleted.

  • contentextensions/NFAToDFA.h:
  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::Term):
(WebCore::ContentExtensions::Term::generateGraph):
(WebCore::ContentExtensions::Term::generateSubgraphForAtom):
(WebCore::ContentExtensions::Term::Term::generateGraph): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

Test some new interesting cases.

12:12 PM Changeset in webkit [186078] by mrajca@apple.com
  • 2 edits
    2 adds in trunk/LayoutTests

Media Session: test session attribute of newly-created media elements
https://bugs.webkit.org/show_bug.cgi?id=146412

Reviewed by Eric Carlson.

  • media/session/default-session-expected.txt: Added.
  • media/session/default-session.html: Added.
  • platform/mac/TestExpectations: Media Session support is disabled by default.
12:08 PM Changeset in webkit [186077] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

[WK2][iOS] Add WKWebView private API to save a back/forward snapshot
https://bugs.webkit.org/show_bug.cgi?id=146398
<rdar://problem/21584231>

Reviewed by Dan Bernstein.

Add WKWebView private API to save a back/forward snapshot so that the
client can make sure a back/forward snapshot is available even when
swapping WKWebView upon navigation.

This matches the WKView.saveBackForwardSnapshotForItem API we have on
Mac.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView saveBackForwardSnapshotForItem:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
12:04 PM Changeset in webkit [186076] by youenn.fablet@crf.canon.fr
  • 10 edits in trunk/Source

Binding generator should allow using JSC::Value for "any" parameter in lieu of ScriptValue
https://bugs.webkit.org/show_bug.cgi?id=146403

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • bindings/ScriptValue.h: Added implicit conversion to JSC::JSValue.

Source/WebCore:

Covered by existing tests.

Enabling new APIs to use JSC::JSValue by using implicit case from ScriptValue to JSC::JSValue.
Updated binding generator to include ScruptValue header in the needed JSXX.cpp files.
Applied approach to ReadableStreamController.error.

  • Modules/streams/ReadableStreamController.h:

(WebCore::ReadableStreamController::error):

  • Modules/streams/ReadableStreamController.idl:
  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::constructJSReadableStreamController): Deleted.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::error):

  • bindings/js/ReadableJSStream.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(JSValueToNative):

  • bindings/scripts/test/JS/JSTestObj.cpp:
11:56 AM Changeset in webkit [186075] by andersca@apple.com
  • 10 edits
    1 delete in trunk/Source

Use DISPATCH_SOURCE_TYPE_MEMORYPRESSURE instead of DISPATCH_SOURCE_TYPE_MEMORYSTATUS
https://bugs.webkit.org/show_bug.cgi?id=146413
Source/WebCore:

rdar://problem/21295036

Reviewed by Andreas Kling.

Replace SPI with API.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::install):

  • platform/mac/WebCoreSystemInterface.h:
  • platform/spi/cocoa/DispatchSPI.h: Removed.

Source/WebKit/mac:

Reviewed by Andreas Kling.

Replace SPI with API.

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

  • WebView/WebView.mm:

(+[WebView registerForMemoryNotifications]):

Source/WebKit2:

Reviewed by Andreas Kling.

Replace SPI with API.

  • UIProcess/ios/WebMemoryPressureHandlerIOS.mm:

(WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

11:46 AM Changeset in webkit [186074] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Pausing a media element should discard buffered data immediately if under memory pressure.
<https://webkit.org/b/146410>
<rdar://problem/20366883>

Reviewed by Darin Adler.

When moving a media element into paused state, call purgeBufferedDataIfPossible()
right away if the system is under memory pressure.

This ensures that mediaserverd drops its forward-looking frame queue right
away instead of waiting for a new pressure notification.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pauseInternal):

10:43 AM Changeset in webkit [186073] by enrica@apple.com
  • 5 edits in trunk/Source/WebKit2

[iOS] Hardware Keyboard: All combinations of arrow keys and space key do not scroll the view.
https://bugs.webkit.org/show_bug.cgi?id=146290
rdar://problem/18466015

We don't normally get called by the keyboard to handle the event if we are not
interacting with editable content. In order to receive all the hardware keyboard events
we need to implement _handleKeyUIEvent which is called for every key event
when the view is first responder. This gives us the opportunity to send each keystroke
to the WebProcess to let any Javascript handler intercept it and then perform the default
action for the key combination.
Unfortunately this mechanism does not provide key repeat, which is implemented in the
keyboard layer. In order to have it at least for the arrow keys, we use the keyCommands
mechanism only for those.

Reviewed by Darin Adler.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollByOffset:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView keyCommands]):
(-[WKContentView _arrowKey:]):
(-[WKContentView _handleKeyUIEvent:]):
(-[WKContentView handleKeyEvent:]):
(-[WKContentView handleKeyWebEvent:]):
(-[WKContentView _interpretKeyEvent:isCharEvent:]):

10:33 AM Changeset in webkit [186072] by mrajca@apple.com
  • 3 edits in trunk/Source/WebCore

Media Session: Media elements should report a null session for Default sessions
https://bugs.webkit.org/show_bug.cgi?id=146373

Reviewed by Eric Carlson.

If a media element's current session is a 'Default' media session, its session property should report null in
the JavaScript API.

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::session):

10:18 AM Changeset in webkit [186071] by commit-queue@webkit.org
  • 4 edits in trunk

[Mac] Disable QTKit by default.
https://bugs.webkit.org/show_bug.cgi?id=146352

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-29
Reviewed by Darin Adler.
Source/WebCore:

Fix the the requirement for enabling QTKit and AVFoundation.

  • page/Settings.cpp:

(WebCore::invalidateAfterGenericFamilyChange): Remove the requirement
for enabling QTKit and AVFoundation. The initial state of QTKit should
be disabled on all OS X ports. And the initial state of AVFoundation
should be enabled on all OS X ports.

LayoutTests:

  • platform/mac/TestExpectations: Skip media tests which require QTKit on

all OS X ports.

9:50 AM Changeset in webkit [186070] by mrajca@apple.com
  • 2 edits
    3 adds in trunk/LayoutTests

Test existence of controls on MediaSession
https://bugs.webkit.org/show_bug.cgi?id=146356

Reviewed by Eric Carlson.

  • media/session/controls-existence-expected.txt: Added.
  • media/session/controls-existence.html: Added.
  • platform/mac/TestExpectations: Media Session support is disabled by default.
8:22 AM Changeset in webkit [186069] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/LayoutTests

Unreviewed EFL gardening on 29th Jun.
https://bugs.webkit.org/show_bug.cgi?id=146409

Remove the duplicated results and rebaseline the missing tests.

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-29

  • platform/efl/TestExpectations:
  • platform/efl/editing/execCommand/paste-1-expected.txt: Added.
  • platform/efl/printing/single-line-must-not-be-split-into-two-pages-expected.txt: Added.
3:09 AM Changeset in webkit [186068] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EFL] Purge unused favicons from IconDatabase after 30 days.
https://bugs.webkit.org/show_bug.cgi?id=146334

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-29
Reviewed by Gyuyoung Kim.

We need purge unused favicons from IconDatabase for database size control.

  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::performURLImport):

Jun 28, 2015:

11:51 PM Changeset in webkit [186067] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Fixed the iOS 8.x build after r186066.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::create):

11:43 PM Changeset in webkit [186066] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the iOS build after r186059.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
11:26 PM Changeset in webkit [186065] by Gyuyoung Kim
  • 2 edits
    27 adds in trunk/LayoutTests

[EFL] Unreviewed add new baseline for missing tests

Some tests need to have own test expectations for EFL port.

  • platform/efl/TestExpectations:
  • platform/efl/accessibility/auto-filled-value-expected.txt: Added.
  • platform/efl/accessibility/img-fallsback-to-title-expected.txt: Added.
  • platform/efl/accessibility/internal-link-anchors2-expected.txt: Added.
  • platform/efl/accessibility/math-multiscript-attributes-expected.txt: Added.
  • platform/efl/accessibility/meter-element-expected.txt: Added.
  • platform/efl/compositing/iframes/invisible-nested-iframe-show-expected.txt: Added.
  • platform/efl/compositing/iframes/resizer-expected.txt: Added.
  • platform/efl/compositing/layer-creation/fixed-position-scroll-expected.txt: Added.
  • platform/efl/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Added.
  • platform/efl/compositing/tiling/huge-layer-add-remove-child-expected.txt: Added.
  • platform/efl/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: Added.
  • platform/efl/css2.1/t1604-c542-letter-sp-00-b-a-expected.txt: Added.
  • platform/efl/css3/flexbox/flexbox-baseline-margins-expected.txt: Added.
  • platform/efl/editing/selection/contains-boundaries-expected.txt: Added.
  • platform/efl/editing/selection/mixed-editability-10-expected.txt: Added.
  • platform/efl/editing/selection/replaced-boundaries-3-expected.txt: Added.
  • platform/efl/editing/style/5065910-expected.txt: Added.
  • platform/efl/editing/style/font-family-with-space-expected.txt: Added.
  • platform/efl/fast/css/named-images-expected.txt: Added.
  • platform/efl/ietestcenter/css3/bordersbackgrounds/background-repeat-space-padding-box-expected.txt: Added.
  • platform/efl/ietestcenter/css3/text/textshadow-005-expected.txt: Added.
  • platform/efl/printing/media-queries-print-expected.txt: Added.
  • platform/efl/printing/setPrinting-expected.txt: Added.
  • platform/efl/printing/simultaneous-position-float-change-expected.txt: Added.
  • platform/efl/printing/width-overflow-expected.txt: Added.
  • platform/efl/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt: Added.
10:29 PM Changeset in webkit [186064] by mrajca@apple.com
  • 6 edits in trunk/Source/WebCore

Add support for 'Default' media session types
https://bugs.webkit.org/show_bug.cgi?id=146355

Reviewed by Darin Adler.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Added a new constructor for creating 'Default' media sessions.
(WebCore::MediaSession::kind): 'Default' media sessions are represented by an empty string.

  • Modules/mediasession/MediaSession.h:
  • dom/Document.cpp:

(WebCore::Document::defaultMediaSession): Lazily construct the default media session.

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): New media elements are assigned to the 'Default' media session.

10:05 PM Changeset in webkit [186063] by Chris Fleizach
  • 2 edits in trunk/Source/WebKit2

AX: iOS: Crash at accessibilityObjectForMainFramePlugin()
https://bugs.webkit.org/show_bug.cgi?id=146399

Reviewed by Darin Adler.

Could not reproduce issue, but the invalid address seems to indicate this is a nullptr access is happening when we try to get the plugin of the m_page variable when
it has not been initialized.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::accessibilityObjectForMainFramePlugin):

9:47 PM Changeset in webkit [186062] by jinwoo7.song@samsung.com
  • 1 edit
    16 adds in trunk/LayoutTests

[EFL] Unreviewed, gardening.

Add missing expectation results in fast/ directory.

  • platform/efl/fast/css/resize-corner-tracking-transformed-iframe-expected.txt: Added.
  • platform/efl/fast/forms/select-element-focus-ring-expected.txt: Added.
  • platform/efl/fast/regions/auto-size/autoheight-regions-mark-expected.txt: Added.
  • platform/efl/fast/regions/flows-dependency-dynamic-remove-expected.txt: Added.
  • platform/efl/fast/regions/flows-dependency-same-flow-expected.txt: Added.
  • platform/efl/fast/regions/multiple-directionality-changes-in-variable-width-regions-expected.txt: Added.
  • platform/efl/fast/regions/region-dynamic-after-before-expected.txt: Added.
  • platform/efl/fast/regions/region-generated-content-before-after-expected.txt: Added.
  • platform/efl/fast/regions/repaint/line-flow-with-floats-in-regions-expected.txt: Added.
  • platform/efl/fast/regions/repaint/overflow-flipped-writing-mode-block-in-regions-expected.txt: Added.
  • platform/efl/fast/regions/repaint/region-painting-invalidation-expected.txt: Added.
  • platform/efl/fast/regions/repaint/region-painting-via-layout-expected.txt: Added.
  • platform/efl/fast/regions/text-region-split-small-pagination-expected.txt: Added.
  • platform/efl/fast/repaint/block-selection-gap-in-table-cell-expected.txt: Added.
  • platform/efl/fast/ruby/select-ruby-expected.txt: Added.
8:18 PM Changeset in webkit [186061] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

ASAN crashes in js/regress-141098.html
<http://webkit.org/b/145007>

crashes with ASan enabled:

  • js/regress-141098.html
8:18 PM Changeset in webkit [186060] by Darin Adler
  • 2 edits in trunk/Source/WebKit/mac

[Mac] Remove redundant call to colorUsingColorSpaceName:
https://bugs.webkit.org/show_bug.cgi?id=146397

Reviewed by Alexey Proskuryakov.

  • WebView/WebHTMLView.mm:

(extractUnderlines): Remove call to the colorUsingColorSpaceName: method,
since colorFromNSColor already calls it. No need to do it twice.

6:19 PM Changeset in webkit [186059] by Gyuyoung Kim
  • 62 edits in trunk/Source/WebKit2

Use Ref/RefPtr instead of PassRefPtr in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=146190

Reviewed by Darin Adler.

As a step to remove PassRefPtr, this patch reduces use of PassRefPtr in WebKit2.

  • Shared/API/c/WKContextMenuItem.cpp:

(WKContextMenuItemCreateAsAction):
(WKContextMenuItemCreateAsCheckableAction):

  • Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:

(WebKit::WebCoordinatedSurface::create):

  • Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp:

(WebKit::ThreadSafeCoordinatedSurface::create):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • Shared/Plugins/NPRemoteObjectMap.cpp:

(WebKit::NPRemoteObjectMap::create):

  • Shared/Plugins/NPRemoteObjectMap.h:
  • Shared/WebBatteryStatus.h:

(WebKit::WebBatteryStatus::create):

  • Shared/WebCertificateInfo.h:

(WebKit::WebCertificateInfo::create):

  • Shared/WebContextMenuItem.h:

(WebKit::WebContextMenuItem::create):

  • Shared/WebRenderObject.cpp:

(WebKit::WebRenderObject::create):

  • Shared/WebRenderObject.h:

(WebKit::WebRenderObject::create):

  • UIProcess/API/APINavigationData.h:

(API::NavigationData::create):

  • UIProcess/API/APISession.cpp:

(API::Session::createEphemeral):

  • UIProcess/API/APISession.h:
  • UIProcess/API/APISessionState.cpp:

(API::SessionState::create):

  • UIProcess/API/APISessionState.h:
  • UIProcess/API/APIUserScript.h:
  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::createNonPersistentDataStore):
(API::WebsiteDataStore::create):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/C/WKCredential.cpp:

(WKCredentialCreate):
(WKCredentialCreateWithCertificateInfo):

  • UIProcess/API/C/WKPage.cpp:

(WKPageCopySessionState):
(WKPageSetPageContextMenuClient):

  • UIProcess/API/C/WKSessionStateRef.cpp:

(WKSessionStateCreateFromData):

  • UIProcess/API/C/WKUserScriptRef.cpp:

(WKUserScriptCreateWithSource):

  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:

(-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]):

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup _setAllowsSpecificHTTPSCertificate:forHost:]):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setAllowsSpecificHTTPSCertificate:forHost:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore nonPersistentDataStore]):

  • UIProcess/API/efl/ewk_auth_request_private.h:

(EwkAuthRequest::create):

  • UIProcess/API/efl/ewk_back_forward_list_item_private.h:

(EwkBackForwardListItem::create):

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::create):

  • UIProcess/API/efl/ewk_context_menu_private.h:

(EwkContextMenu::create):

  • UIProcess/API/efl/ewk_download_job_private.h:

(EwkDownloadJob::create):

  • UIProcess/API/efl/ewk_file_chooser_request_private.h:

(EwkFileChooserRequest::create):

  • UIProcess/API/efl/ewk_form_submission_request_private.h:

(EwkFormSubmissionRequest::create):

  • UIProcess/API/efl/ewk_navigation_data_private.h:

(EwkNavigationData::create):

  • UIProcess/API/efl/ewk_security_origin_private.h:

(EwkSecurityOrigin::create):

  • UIProcess/Authentication/AuthenticationChallengeProxy.h:

(WebKit::AuthenticationChallengeProxy::create):

  • UIProcess/Authentication/AuthenticationDecisionListener.h:

(WebKit::AuthenticationDecisionListener::create):

  • UIProcess/Authentication/WebCredential.h:

(WebKit::WebCredential::create):

  • UIProcess/Authentication/WebProtectionSpace.h:

(WebKit::WebProtectionSpace::create):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::HistoryClient::didNavigateWithNavigationData):

  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::DatabaseProcessProxy::create):

  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::create):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::create):

  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::create):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Scrolling/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::create):

  • UIProcess/Scrolling/RemoteScrollingTree.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::create):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):

  • UIProcess/efl/WebPopupMenuListenerEfl.h:

(WebKit::WebPopupMenuListenerEfl::create):

  • UIProcess/efl/WebViewEfl.cpp:

(WebKit::WebView::create):

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::create):

5:33 PM Changeset in webkit [186058] by mitz@apple.com
  • 3 edits
    2 deletes in trunk/Source/WebKit2

[Cocoa] Remove _WKSecurityOrigin.{h,mm}
https://bugs.webkit.org/show_bug.cgi?id=146402

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKSecurityOrigin.mm: Declare and define _WKSecurityOrigin here.

(-[WKSecurityOrigin methodSignatureForSelector:]): Moved into a WKBinaryCompatibility
category.
(-[WKSecurityOrigin forwardInvocation:]): Ditto.

  • UIProcess/API/Cocoa/_WKSecurityOrigin.h: Removed.
  • UIProcess/API/Cocoa/_WKSecurityOrigin.mm: Removed.
  • WebKit2.xcodeproj/project.pbxproj: Removed references to _WKSecurityOrigin.{h,mm}.
4:30 PM Changeset in webkit [186057] by mitz@apple.com
  • 2 edits in trunk/Tools

[Xcode] Use the same environment for command-line and IDE builds
https://bugs.webkit.org/show_bug.cgi?id=146401

Reviewed by Anders Carlsson.

  • Scripts/webkitdirs.pm:

(XcodeOptions): Set the UseSanitizedBuildSystemEnvironment user default to YES, which makes
xcodebuild use the same environment Xcode uses.

4:07 PM Changeset in webkit [186056] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Fix warning about duplicate test expectation: js/regress-141098.html

Fixes the following warning when running layout tests:

LayoutTests/TestExpectations:523 More specific entry for js/regress-141098.html on line LayoutTests/TestExpectations:523 overrides line LayoutTests/TestExpectations:519. js/regress-141098.html

3:51 PM Changeset in webkit [186055] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/tests/contentextensions/character-set-basic-support.html as flaky on mac-wk2

  • platform/mac-wk2/TestExpectations: Mark ask flaky:
  • http/tests/contentextensions/character-set-basic-support.html
3:16 PM Changeset in webkit [186054] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Drop buffered data in paused media elements on memory pressure.
<https://webkit.org/b/146369>
<rdar://problem/20366883>

Reviewed by Eric Carlson.

To avoid getting crushed under mediaserverd memory growth when viewing
a page with multiple media elements, add a step to the memory pressure
handler that drops buffered data from all media elements that are
not currently playing.

On a test page with a bunch of embedded YouTube videos, this pass frees
up ~4MB per paused video when the system memory pressure hits.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::allMediaElements):
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible):

  • html/HTMLMediaElement.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

1:36 PM Changeset in webkit [186053] by Lucas Forschler
  • 6 edits in tags/Safari-601.1.37.1

Merge r186046. rdar://problem/21581792

1:33 PM Changeset in webkit [186052] by Lucas Forschler
  • 5 edits in tags/Safari-601.1.37.1/Source

Versioning.

1:22 PM Changeset in webkit [186051] by Lucas Forschler
  • 1 copy in tags/Safari-601.1.37.1

New Tag.

12:09 PM Changeset in webkit [186050] by commit-queue@webkit.org
  • 2 edits in trunk

CairoGL should be checked unconditionally
https://bugs.webkit.org/show_bug.cgi?id=146390

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-06-28
Reviewed by Darin Adler.

  • Source/cmake/OptionsGTK.cmake: Move check for CairoGL so that

it is run unconditionally; this is necessary because its result
is used later on, outside of any conditions.

11:53 AM Changeset in webkit [186049] by Chris Dumez
  • 5 edits
    3 adds in trunk

Crash: com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::CachedFrameBase::restore + 333
https://bugs.webkit.org/show_bug.cgi?id=146388
<rdar://problem/21567343>

Reviewed by Darin Adler.

Source/WebCore:

Pages that are currently loading are not supposed to go into the
PageCache. However, PageCache::canCache() only checks if the
FrameLoader's documentLoader is loading. If the subframe is in
provisional load stage, we would fail to detect that the frame is
actually loading because the FrameLoader active documentLoader would
be the provisional documentLoader, not the regular documentLoader.
Therefore, the page would get added to the PageCache and the frame
would keep loading while in the PageCache.

On http://www.audiusa.com/models, this is what was happening. It was
crashing because the subframe would finish loading while in the
PageCache, in which case we would fire the 'load' event and the
content 'load' event handler would then proceed to remove the iframe.
Upon restoring the PageCache entry, we would run into trouble as we
would have a CachedFrame whose Frame has been removed.

The solution proposed is to prevent page-caching if a subframe is in
provisional load stage.

Test: http/tests/navigation/page-cache-iframe-provisional-load.html

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::provisionalLoadKey):

  • page/DiagnosticLoggingKeys.h:

LayoutTests:

Add layout test to cover the case where a subframe is currently in
provisional load stage when checking if the page if page-cacheable.

The test also removes the iframe once loaded in order to cause a crash
if the frame were to finish loading while in the page cache.

  • http/tests/navigation/page-cache-iframe-provisional-load-expected.txt: Added.
  • http/tests/navigation/page-cache-iframe-provisional-load.html: Added.
  • http/tests/navigation/resources/page-cache-helper-slow.html: Added.
10:57 AM Changeset in webkit [186048] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the EFL buid after r186046.

  • UIProcess/efl/PageUIClientEfl.cpp:

(WebKit::PageUIClientEfl::PageUIClientEfl):

9:18 AM Changeset in webkit [186047] by commit-queue@webkit.org
  • 5 edits in trunk

[ES6] Implement ES6 arrow function syntax. No Line terminator between function parameters and =>
https://bugs.webkit.org/show_bug.cgi?id=146394

Source/JavaScriptCore:

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-06-28
Reviewed by Yusuke Suzuki.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo):

LayoutTests:

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-06-28
Reviewed by Yusuke Suzuki.

  • js/arrowfunction-syntax-errors-expected.txt:
  • js/script-tests/arrowfunction-syntax-errors.js:
9:05 AM Changeset in webkit [186046] by mitz@apple.com
  • 6 edits in trunk

REGRESSION (r185915): Source-incompatible change in WKPageUIClient
https://bugs.webkit.org/show_bug.cgi?id=146396

Reviewed by Anders Carlsson.

Source/WebKit2:

  • UIProcess/API/C/WKPageUIClient.h: Renamed

runJavaScript{Alert,Confirm,Prompt}_deprecatedForUseWithV0 back to runJavaScript{Alert,Confirm,Prompt}
in client versions prior to V5.

Tools:

  • TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp:

(TestWebKitAPI::runJavaScriptAlert): Removed _deprecatedForUseWithV0 suffix from the name.
(TestWebKitAPI::TEST): Updated for renames.

  • TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm:

(runJavaScriptAlert): Removed suffix.
(TestWebKitAPI::FullscreenZoomInitialFrame::initializeView): Updated.

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:

(runJavaScriptAlert): Removed suffix.
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView): Updated.

8:33 AM Changeset in webkit [186045] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION: Page footers are displayed above the bottom of the WebView due to tiled scaling
https://bugs.webkit.org/show_bug.cgi?id=146393
<rdar://problem/21113217>

Reviewed by Sam Weinig.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):
Don't include the top content inset in the layout size.

5:39 AM Changeset in webkit [186044] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk

[Streams API] Add support for chunks with customized sizes
https://bugs.webkit.org/show_bug.cgi?id=146312

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased tests.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::read): Decrement totalQueueSize with the chunk specific size.
(WebCore::ReadableJSStream::enqueue): Calls retrieveSize, enqueue chunk with its size and increment totalQueueSize.
(WebCore::ReadableJSStream::retrieveChunkSize): Calls size JS callback and convert it to double.

  • bindings/js/ReadableJSStream.h:

LayoutTests:

  • streams/reference-implementation/bad-strategies-expected.txt:
5:16 AM Changeset in webkit [186043] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk/Source/WebCore

[Streams API]Remove ReadableStreamController.close custom binding
https://bugs.webkit.org/show_bug.cgi?id=146380

Reviewed by Darin Adler.

No change in behavior.

  • Modules/streams/ReadableStreamController.h:

(WebCore::ReadableStreamController::close): Calling ReadableJSStream close method.

  • Modules/streams/ReadableStreamController.idl: Removed Custom.
  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::close): Deleted.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::close): Moved custom binding code here.

  • bindings/js/ReadableJSStream.h:
12:43 AM Changeset in webkit [186042] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Wrong border color of console messages when filters are enabled
https://bugs.webkit.org/show_bug.cgi?id=146392

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):

Jun 27, 2015:

8:47 PM Changeset in webkit [186041] by fpizlo@apple.com
  • 4 edits in trunk/PerformanceTests

[JetStream] Raise the percentile of mandreel-latency and splay-latency
https://bugs.webkit.org/show_bug.cgi?id=146378

Reviewed by Mark Lam.

The current percentile is 95%. When I looked at the sample lists in our GC, it was
clear that the worst 5% samples completely amortize our GC pauses. Our GC pauses can
be quite bad. Clearly, splay-latency is meant to test whether we have an incremental
GC that ensures that you don't have bad worst-case pauses. But 95% is too small,
because it doesn't really capture those pauses. Raising the percentile to above 99%
appears to do the trick. 99.5% or more seems like a good bet. The trade-off there is
just that if we set it too high, then we won't have enough statistics. Doing this very
clearly rewards GCs that are incremental, and punishes GCs that aren't (like ours).
That's what we want, since in the future we want to use this test to guide any
improvements to the worst-case performance of our GC.

The way that the percentile is selected will also affect mandreel-latency. That's a
good thing, because 95% is probably too low for that test as well. That test ends up
with >10k samples. The goal of using 95% in the first place was to get enough samples
to have a stable average. But if we have >10k samples, we can push that percentile up
much higher and still get good statistics while achieving the effect we want - i.e.
getting the worst case.

I don't think that we need to do the same thing for cdjs. That test only takes 200
samples, so 95% means we report the average of the worst 10 samples. That's probably
good enough.

  • JetStream/Octane2/base.js: Raise the percentile as described above.

(BenchmarkSuite.prototype.RunSingleBenchmark):

  • JetStream/Reference.js: Tweak the reference times to bring the latency tests closer to 100ish on my machine.
  • JetStream/create.rb: Bump the version.
8:29 PM Changeset in webkit [186040] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/canvas/webgl/tex-*.html flakily timeout on Mavericks Debug WK1

  • platform/mac-wk1/TestExpectations: Change "Slow" to

"Pass Timeout" since the tests flakily time out and fail:

  • fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444.html
  • fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html
  • fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html
  • fast/canvas/webgl/tex-image-and-uniform-binding-bugs.html
8:29 PM Changeset in webkit [186039] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186038): accessibility/aria-roledescription.html fails on Windows

  • platform/win/TestExpectations: Mark as failing on Windows:
  • accessibility/aria-roledescription.html
4:02 PM Changeset in webkit [186038] by Chris Fleizach
  • 7 edits
    2 adds in trunk

AX: implement @aria-roledescription
https://bugs.webkit.org/show_bug.cgi?id=146274

Reviewed by Darin Adler.

Source/WebCore:

Add support for aria-roledescription.

Test: accessibility/aria-roledescription.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::hasHighlighting):
(WebCore::AccessibilityObject::roleDescription):
(WebCore::nodeHasPresentationRole):

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityMaxValue]):
(-[WebAccessibilityObjectWrapper accessibilityRoleDescription]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper roleDescription]):

LayoutTests:

  • accessibility/aria-roledescription-expected.txt: Added.
  • accessibility/aria-roledescription.html: Added.
3:53 PM Changeset in webkit [186037] by Darin Adler
  • 6 edits in trunk/Source/JavaScriptCore

Make converting JSString to StringView idiomatically safe
https://bugs.webkit.org/show_bug.cgi?id=146387

Reviewed by Anders Carlsson.

  • jsc.cpp:

(functionPrint): Add explicit call to SafeView::get, needed since there
is no StringView temporary.
(functionDebug): Ditto.

  • runtime/ArrayPrototype.cpp:

(JSC::holesMustForwardToPrototype): Refactored into helper function.
(JSC::join): Refactored so that StringView is a function argument, making
the lifetime simpler.
(JSC::arrayProtoFuncJoin): Ditto.
(JSC::arrayProtoFuncReverse): Use new holesMustForwardToPrototype helper.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode): Add explicit call to SafeView::get.

  • runtime/JSString.h: Moved declarations of functions to the top of the

file instead of mixing them in with the function definitions. Changed
return type of the view function to return a JSString::SafeView so that
the JSString's lifetime will last as long as the StringView does in
typical coding idioms.
(JSC::JSString::getIndex): Use unsafeView so we can index into the
view; could also have used view.get but here in this class this seems fine.
(JSC::JSRopeString::unsafeView): Renamed existing view function to this.
(JSC::JSString::unsafeView): Ditto.
(JSC::JSString::SafeView::SafeView): Contains reference to an ExecState
and a JSString. The ExecState is needed to create the StringView, and the
JSString needs to be kept alive as long as the StringView is.
(JSC::JSString::SafeView::operator StringView): Call unsafeView.
(JSC::JSString::SafeView::get): Convenience for when we want to call
StringView member functions.
(JSC::JSString::view): Added. Returns a SafeView.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncIndexOf): Add explicit call to SafeView::get.

3:52 PM Changeset in webkit [186036] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Fix the build.

  • platform/network/cf/ResourceErrorCF.cpp: (WebCore::ResourceError::cfError): Take out log statement. Add FIXME comment that explains part of the reason we may get null here.
  • platform/network/mac/ResourceErrorMac.mm: (WebCore::createNSErrorFromResourceErrorBase): Ditto.
2:38 PM Changeset in webkit [186035] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Crash in WebCore::ResourceError::cfError() after provisional load failed
<http://webkit.org/b/146384>

Reviewed by Darin Adler.

This is a speculative fix based on the crashing stack.

  • platform/network/cf/ResourceErrorCF.cpp:

(WebCore::ResourceError::cfError): Add NULL check.

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::createNSErrorFromResourceErrorBase): Add nil check in
case we ever turn off USE(CFNETWORK) for iOS.

2:37 PM Changeset in webkit [186034] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION (r186001): fast/text/han-generic-font-families.html always fails on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=146385

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-27

  • platform/mac-yosemite/fast/text/han-generic-font-families-expected.html:
  • platform/mac/TestExpectations:
2:31 PM Changeset in webkit [186033] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

build-requests should use conform to JSON API format
https://bugs.webkit.org/show_bug.cgi?id=146375

Reviewed by Stephanie Lewis.

Instead of returning single dictionary that maps root set id to a dictionary of repository names
to revisions, timestamps, simply return root sets and roots "rows" or "objects" as defined in
JSON API (http://jsonapi.org/). This API change makes it easier to resolve the bug 146374 and
matches what we do in /api/test-groups.

Also add the support for /api/build-requests/?id=<id> to fetch the build request with <id>.
This is useful for debugging purposes.

  • public/api/build-requests.php:

(main): Added the support for $_GETid. Also return "rootSets" and "roots".
(update_builds): Extracted from main.

  • public/include/build-requests-fetcher.php:

(BuildRequestFetcher::fetch_request): Added. Used for /api/build-requests/?id=<id>.
(BuildRequestFetcher::results_internal): Always call fetch_roots_for_set_if_needed.
(BuildRequestFetcher::fetch_roots_for_set_if_needed): Renamed from fetch_roots_for_set.
Moved the logic to exit early when the root set had already been fetched here.

  • public/v2/analysis.js:

(App.TestGroup._fetchTestResults): Fixed the bug that test groups without any successful results
won't be shown.

  • tools/pull-os-versions.py:

(main):
(setup_auth): Moved to util.py

  • tools/sync-with-buildbot.py:

(main): Replaced a bunch of perf dashboard related options by --server-config-json.
(update_and_fetch_build_requests): No longer takes build_request_auth since that's now taken care
of by setup_auth.
(organize_root_sets_by_id_and_repository_names): Added. Builds the old rootsSets directory based
on "roots" and "rootSets" dictionaries returned by /api/build-requests.
(config_for_request): Fixed a bug that the script blows up when the build request is missing
the repository specified in the configuration. This tolerance is necessary when a new repository
dependency is added but we want to run A/B tests for old builds without the dependency.
(fetch_json): No longer takes auth.

  • tools/util.py:

(setup_auth): Moved from pull-os-versions.py to be shared with sync-with-buildbot.py.

2:11 PM Changeset in webkit [186032] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac] Only flag a video element as eligible for auto-play to AppleTV one time
https://bugs.webkit.org/show_bug.cgi?id=146386

Reviewed by Brent Fulgham.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::removeAllPlaybackTargetPickerClients): Drive-by fix - early

return when there are no clients.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pendingActionTimerFired): Set m_failedToPlayToWirelessTarget if the

media engine is still unable to play to the wireless target.

(WebCore::HTMLMediaElement::prepareForLoad): Clear m_failedToPlayToWirelessTarget.
(WebCore::HTMLMediaElement::mediaState): Don't set the ExternalDeviceAutoPlayCandidate flag

if m_failedToPlayToWirelessTarget is true.

  • html/HTMLMediaElement.h:
10:59 AM Changeset in webkit [186031] by ddkilzer@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

REGRESSION (r186029): fast/text/justify-ideograph-{complex,simple,vertical}.html fail on Yosemite

The results replaced in r186029 were the Yosemite results, so
Yosemite started failing when they were rebaselined for
El Capitan.

  • platform/mac-yosemite/fast/text/justify-ideograph-complex-expected.txt: Copied from platform/mac/fast/text/justify-ideograph-complex-expected.txt in r186028.
  • platform/mac-yosemite/fast/text/justify-ideograph-simple-expected.txt: Copied from platform/mac/fast/text/justify-ideograph-simple-expected.txt in r186028.
  • platform/mac-yosemite/fast/text/justify-ideograph-vertical-expected.txt: Copied from platform/mac/fast/text/justify-ideograph-vertical-expected.txt in r186028.
10:04 AM Changeset in webkit [186030] by ddkilzer@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Add missing image results for platform/mac/platform/mac/fast/text/vertical-surrogate-pair.html

  • platform/mac/platform/mac/fast/text/vertical-surrogate-pair-expected.png: Added.
10:04 AM Changeset in webkit [186029] by ddkilzer@apple.com
  • 7 edits
    1 add in trunk/LayoutTests

Rebaseline El Capitan results for fast/text/justify-ideograph-{complex,simple,vertical}.html

  • platform/mac/TestExpectations: Removed expectations.
  • platform/mac/fast/text/justify-ideograph-complex-expected.png: Updated.
  • platform/mac/fast/text/justify-ideograph-complex-expected.txt: Updated.
  • platform/mac/fast/text/justify-ideograph-simple-expected.png: Updated.
  • platform/mac/fast/text/justify-ideograph-simple-expected.txt: Updated.
  • platform/mac/fast/text/justify-ideograph-vertical-expected.png: Added.
  • platform/mac/fast/text/justify-ideograph-vertical-expected.txt: Updated.
10:00 AM Changeset in webkit [186028] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Document more slow fast/canvas/webgl tests on Mavericks Debug WK1

See Flakiness Dashboard:
<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Ftex-image-and-sub-image-2d-with-video-rgba4444.html>
<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Ftex-image-and-sub-image-2d-with-video-rgba5551.html>

  • platform/mac-wk1/TestExpectations: Add slow expectations for:
  • fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444.html
  • fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html
8:54 AM Changeset in webkit [186027] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186001): fast/text/han-generic-font-families.html always fails on Yosemite

Fix tracked by: <http://webkit.org/b/146385>

  • platform/mac/TestExpectations: Mark as failing on Yosemite:
  • fast/text/han-generic-font-families.html
8:54 AM Changeset in webkit [186026] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

editing/undo/remove-css-property-and-remove-style.html is flaky on Debug WK2

As seen on Flakiness Dashboard:
<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=editing%2Fundo%2Fremove-css-property-and-remove-style.html>

  • platform/mac-wk2/TestExpectations: Add:
  • editing/undo/remove-css-property-and-remove-style.html
1:52 AM Changeset in webkit [186025] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

Make NetworkCache::traverse faster
https://bugs.webkit.org/show_bug.cgi?id=146354

Reviewed by Anders Carlsson.

  • NetworkProcess/cache/NetworkCacheIOChannel.h:

(WebKit::NetworkCache::IOChannel::path):
(WebKit::NetworkCache::IOChannel::type):

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::open):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):
(WebKit::NetworkCache::IOChannel::readSync): Deleted.

Not needed anymore.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):
(WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation):

Add TraverseOperation, similar to Read/Write.

(WebKit::NetworkCache::Storage::open):
(WebKit::NetworkCache::Storage::traverse):

Use async I/O.
Use condition variable to allow maximum 5 parallel file reads.

  • NetworkProcess/cache/NetworkCacheStorage.h:
1:04 AM Changeset in webkit [186024] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk

[Streams API] Implement ReadableStreamController.desiredSize property
https://bugs.webkit.org/show_bug.cgi?id=146311

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased tests.

  • Modules/streams/ReadableStreamController.h: Adding desiredSize getter.

(WebCore::ReadableStreamController::desiredSize): Ditto.

  • Modules/streams/ReadableStreamController.idl: Added desiredSize attribute.

LayoutTests:

  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:
12:45 AM Changeset in webkit [186023] by Carlos Garcia Campos
  • 6 edits
    2 adds in trunk

[GTK][SOUP] Implement WebCore::PublicSuffix for soup and enable PUBLIC_SUFFIX_LIST for GTK+
https://bugs.webkit.org/show_bug.cgi?id=146318

Reviewed by Sergio Villar Senin.

.:

Enable PUBLIC_SUFFIX_LIST for GTK+.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

This is covered by unit tests.

  • PlatformGTK.cmake:
  • platform/soup/PublicSuffixSoup.cpp: Added.

(WebCore::isPublicSuffix):
(WebCore::topPrivatelyControlledDomain):

Tools:

Copy mac PublicSuffix test to the common directory and add it to
the GTK+ build.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp: Added.

(TestWebKitAPI::TEST_F):

12:42 AM Changeset in webkit [186022] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[SOUP] NetworkCache: Make NetworkProcess::clearDiskCache actually clear the the resources depending on the date
https://bugs.webkit.org/show_bug.cgi?id=146316

Reviewed by Sergio Villar Senin.

And make sure the completion handler is called, as well. This
functionality is already implemented in Storage::clear(), so we
just need to pass the time point and completion handler to Cache::clear().

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::clearDiskCache):

Jun 26, 2015:

7:04 PM Changeset in webkit [186021] by mmaxfield@apple.com
  • 6 edits
    3 adds in trunk

[iOS] AppleGothic has been superseded by Apple SD Gothic Neo
https://bugs.webkit.org/show_bug.cgi?id=146372
<rdar://problem/21574004>

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/text/hangul-generic-font-families.html

  • page/mac/SettingsMac.mm:

(WebCore::Settings::initializeDefaultFontFamilies):

LayoutTests:

  • fast/text/hangul-generic-font-families.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/fast/text/hangul-generic-font-families-expected.html: Added.
  • platform/mac/fast/text/hangul-generic-font-families-expected.html: Added.
  • platform/win/TestExpectations:
6:43 PM Changeset in webkit [186020] by commit-queue@webkit.org
  • 15 edits
    3 adds in trunk

Supporting getStartDate and added tests
https://bugs.webkit.org/show_bug.cgi?id=145676
<rdar://problem/20876076>

Patch by Matt Daiter <mdaiter@apple.com> on 2015-06-26
Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/media/hls/video-controller-getStartDate.html

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsDateOrNaN):

  • bindings/js/JSDOMBinding.h:
  • bindings/scripts/CodeGeneratorJS.pm: Added features to return

NaN for Date

  • bindings/scripts/CodeGeneratorGObject.pm: Needed to add

type checking code for GObject (no date)
(NativeToJSValue):

  • bindings/scripts/IDLAttributes.txt:
  • html/HTMLMediaElement.cpp: Added getStartDate function

(WebCore::HTMLMediaElement::getStartDate):

  • html/HTMLMediaElement.h: Needed to add declarations
  • html/HTMLMediaElement.idl: Needed to modify for returning NaN
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::getStartDate):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: Added in Mac-specific platform

(WebCore::MediaPlayerPrivateInterface::getStartDate):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate):

LayoutTests:

  • http/tests/media/hls/video-controller-getStartDate-expected.txt: Added.
  • http/tests/media/hls/video-controller-getStartDate.html: Added.
  • http/tests/media/resources/hls/test-vod-date-time.m3u8: Added.
4:50 PM Changeset in webkit [186019] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Rubber-stamped by Tim Horton.

As Dan pointed out in https://bugs.webkit.org/show_bug.cgi?id=146350 , this way of
getting the screen size was problematic on multiple counts. Fixed here by using
UIScreen.

  • UIProcess/WKImagePreviewViewController.mm:

(-[WKImagePreviewViewController initWithCGImage:]):

4:48 PM Changeset in webkit [186018] by Beth Dakin
  • 4 edits in trunk/Source

WebPage::getPositionInformation() should not copy an image that is larger than the
screen
https://bugs.webkit.org/show_bug.cgi?id=146367

Reviewed by Tim Horton.

Source/WebCore:

Export the rect version of this function too.

  • platform/graphics/GraphicsContext.h:

Source/WebKit2:

Maintain aspectRatio, but scale down the buffer size if the image is larger than
the screen.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

4:46 PM Changeset in webkit [186017] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

Re-instating the #import and assertion removed in r186014.
https://bugs.webkit.org/show_bug.cgi?id=146358

Not reviewed.

  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • Speculative fix: should have used <wtf/MainThread.h> instead of <WTF/MainThread.h>.
4:33 PM Changeset in webkit [186016] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac] Muted videos should not automatically play to AppleTV
https://bugs.webkit.org/show_bug.cgi?id=146366

Reviewed by Dean Jackson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_initiallyMuted.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Support CheckMediaState.
(WebCore::HTMLMediaElement::setReadyState): Set m_initiallyMuted to true if the element is

muted or the volume is less than 5%.

(WebCore::HTMLMediaElement::setMuted): Update media state asynchronously so multiple state

changes can be coalesced.

(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): Ditto.
(WebCore::HTMLMediaElement::setPlaying): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Ditto.
(WebCore::HTMLMediaElement::removeEventListener): Ditto.
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Ditto.
(WebCore::HTMLMediaElement::updateMediaState): Update after a timer when passed UpdateMediaState::Asynchronously.
(WebCore::HTMLMediaElement::mediaState): Don't set the ExternalDeviceAutoPlayCandidate flag if

m_initiallyMuted is true.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElementEnums.h:
3:55 PM Changeset in webkit [186015] by dino@apple.com
  • 2 edits in trunk/LayoutTests

No audio on animated page with the attached fixed layout epub
https://bugs.webkit.org/show_bug.cgi?id=146365
<rdar://problem/21360354>

Updated results.

  • media/audio-playback-restriction-play-expected.txt:
3:47 PM Changeset in webkit [186014] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

Gardeining: remove an assertion and a #import to green the bot.
https://bugs.webkit.org/show_bug.cgi?id=146358

Not reviewed.

  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • Not sure why the <WTF/MainThread.h> cannot be found on some bots, but I'm removing it (and the assertion that needed it) for now while I investigate further.
3:28 PM Changeset in webkit [186013] by peavo@outlook.com
  • 2 edits in trunk/WebKitLibraries

[WinCairo] Enable WEB_TIMING.
https://bugs.webkit.org/show_bug.cgi?id=146357

Reviewed by Brent Fulgham.

  • win/tools/vsprops/FeatureDefinesCairo.props:
3:18 PM Changeset in webkit [186012] by dbates@webkit.org
  • 9 edits
    2 deletes in trunk

Rolling out r184660
https://bugs.webkit.org/show_bug.cgi?id=145200

Reverting r184660 because it caused a regression.

Source/WebCore:

  • English.lproj/Localizable.strings:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createAutoFillButton): Deleted.

  • platform/LocalizedStrings.cpp:

(WebCore::AXAutoFillButtonText): Deleted.

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXAutoFillButtonText): Deleted.

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXAutoFillButtonText): Deleted.

LayoutTests:

  • accessibility/input-auto-fill-button-expected.txt: Removed.
  • accessibility/input-auto-fill-button.html: Removed.
  • platform/win/TestExpectations:
3:18 PM Changeset in webkit [186011] by dbates@webkit.org
  • 6 edits
    7 deletes in trunk

Rolling out r185881
https://bugs.webkit.org/show_bug.cgi?id=146243
And
r185828
https://bugs.webkit.org/show_bug.cgi?id=145241

Reverting r185881 and r185828 because the latter caused a regression.

Source/WebCore:

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::accessibilityTextFieldDecorationHitTest): Deleted.
(WebCore::AccessibilityRenderObject::accessibilityHitTest): Deleted.

  • accessibility/AccessibilityRenderObject.h:

LayoutTests:

  • accessibility/hit-test-input-auto-fill-button-expected.txt: Removed.
  • accessibility/hit-test-input-auto-fill-button.html: Removed.
  • accessibility/hit-test-input-search-cancel-button-expected.txt: Removed.
  • accessibility/hit-test-input-search-cancel-button.html: Removed.
  • accessibility/input-search-cancel-button-expected.txt: Removed.
  • accessibility/input-search-cancel-button.html: Removed.
  • accessibility/resources/shouldBeAccessibleByCursor.js: Removed.
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
3:14 PM Changeset in webkit [186010] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

ScriptMessageHandlerDelegate::didPostMessage() should reuse its JSContext instance.
https://bugs.webkit.org/show_bug.cgi?id=146358

Reviewed by Anders Carlsson.

Currently, ScriptMessageHandlerDelegate::didPostMessage() creates a new JSContext each
time it is called. This JSContext is used only once to deserialized a JSON object
and then destroyed. We will change ScriptMessageHandlerDelegate to cache the JSContext
and reuse it in all subsequent calls to didPostMessage().

Also added a @autoreleasepool scope in didPostMessage() so that transient ObjC objects
will be release sooner.

  • UIProcess/API/Cocoa/WKUserContentController.mm:
2:33 PM Changeset in webkit [186009] by dino@apple.com
  • 4 edits in trunk

No audio on animated page with the attached fixed layout epub
https://bugs.webkit.org/show_bug.cgi?id=146365
Source/WebCore:

Reviewed by Eric Carlson.

The new restriction RequireUserGestureForAudioRateChange conflicted
with existing clients who expected RequireUserGestureForRateChange
to allow autoplaying audio. Update the logic to ensure that
RequireUserGestureForRateChange covers all media when set to
false.

This may require a revisit once we're using RequireUserGestureForAudioRateChange
in production, because the global setting will trump that, and
most clients have the global setting to false. We'll need to come
up with a way to allow legacy clients to preserve their behaviour.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Only restrict audio
if RequireUserGestureForRateChange is also false.

LayoutTests:

<rdar://problem/21360354>

Reviewed by Eric Carlson.

The test to ensure audio needs a user gesture now needs to also
restrict the general case.

  • media/audio-playback-restriction-play.html:
2:24 PM Changeset in webkit [186008] by Beth Dakin
  • 5 edits
    2 adds in trunk/Source/WebKit2

Add support for image previews
https://bugs.webkit.org/show_bug.cgi?id=146350
-and corresponding-
rdar://problem/20640234

Reviewed by Tim Horton.

For images, use the actual image instead of a snapshot.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

ViewController for image preview.

  • UIProcess/WKImagePreviewViewController.h: Added.
  • UIProcess/WKImagePreviewViewController.mm: Added.

(-[WKImagePreviewViewController loadView]):
(-[WKImagePreviewViewController initWithCGImage:]):
(-[WKImagePreviewViewController viewDidLayoutSubviews]):
(_scaleSizeWithinSize):

New enum and member variable to keep track of preview type.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

Only apply the http restriction to non-image links since we can still preview the
image of a non-http image link.
(-[WKContentView gestureRecognizerShouldBegin:]):

Handle links and images.
(-[WKContentView previewViewControllerForPosition:inSourceView:]):

Return early for non-link previews.
(-[WKContentView commitPreviewViewController:]):

New files.

  • WebKit2.xcodeproj/project.pbxproj:

Just use the actual image in the PositionInformation for image elements rather
than taking a screen shot.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

1:42 PM Changeset in webkit [186007] by andersca@apple.com
  • 9 edits
    1 delete in trunk/Source/WebCore

Get rid of ScrollbarThemeClient now that it's unused
https://bugs.webkit.org/show_bug.cgi?id=146327

Reviewed by Beth Dakin.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::scrollbarOverlayStyle): Deleted.
(WebCore::Scrollbar::isScrollableAreaActive): Deleted.
(WebCore::Scrollbar::isScrollViewScrollbar): Deleted.
(WebCore::Scrollbar::root): Deleted.

  • platform/Scrollbar.h:

(WebCore::Scrollbar::isCustomScrollbar):
(WebCore::Scrollbar::orientation):
(WebCore::Scrollbar::value):
(WebCore::Scrollbar::currentPos):
(WebCore::Scrollbar::visibleSize):
(WebCore::Scrollbar::totalSize):
(WebCore::Scrollbar::maximum):
(WebCore::Scrollbar::controlSize):
(WebCore::Scrollbar::lineStep):
(WebCore::Scrollbar::pageStep):
(WebCore::Scrollbar::pressedPart):
(WebCore::Scrollbar::hoveredPart):
(WebCore::Scrollbar::enabled):
(WebCore::Scrollbar::styleChanged):
(WebCore::Scrollbar::isAlphaLocked):
(WebCore::Scrollbar::setIsAlphaLocked):

  • platform/ScrollbarTheme.h:
  • platform/ScrollbarThemeClient.h: Removed.

(WebCore::ScrollbarThemeClient::~ScrollbarThemeClient): Deleted.

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):

  • rendering/RenderScrollbarTheme.cpp:
12:21 PM Changeset in webkit [186006] by Antti Koivisto
  • 3 edits
    1 add in trunk

Network process hangs fetching disk cache entries
https://bugs.webkit.org/show_bug.cgi?id=146348
<rdar://problem/21528072>

Reviewed by Anders Carlsson.

RunLoop::dispatch may deadlock if invoked with std::function that captures an object that calls RunLoop::dispatch in destructor.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::performWork):

Don't reuse std::function variable in loop. We may end up destroying previously held std::function in assignment
while holding the runloop mutex. With this change std::function is always destroyed with mutex unlocked.

11:26 AM Changeset in webkit [186005] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

Prevent new loads while in PageCache (or being added to PageCache)
https://bugs.webkit.org/show_bug.cgi?id=146299
<rdar://problem/21523788>

Reviewed by Darin Adler.

Generalize the change in r185337 to prevent new loads while in the
PageCache (or being added to the PageCache), instead of merely
preventing new loads in pagehide event handlers. We should never
have any pages that are still loading inside the PageCache.

The fix in r185337 was apparently insufficient to address the
problem so generalizing the check / policy will hopefully catch
more cases where content is able to start loads while being added
to the PageCache. This patch also removes some of the complexity
added in r185337 as it is no longer needed.

No new tests, already covered by:
http/tests/navigation/image-load-in-pagehide-handler.html
http/tests/navigation/subframe-pagehide-handler-starts-load.html
http/tests/navigation/subframe-pagehide-handler-starts-load2.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::handleBeforeUnloadEvent):
(WebCore::FrameLoader::FrameLoader): Deleted.

  • loader/FrameLoader.h:

(WebCore::FrameLoader::pageDismissalEventBeingDispatched):

  • loader/ImageLoader.cpp:

(WebCore::pageIsBeingDismissed):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage):

  • page/Page.cpp:

(WebCore::Page::inPageCache):

  • page/Page.h:

(WebCore::Page::group): Deleted.

11:23 AM Changeset in webkit [186004] by peavo@outlook.com
  • 9 edits
    2 adds in trunk

WinLauncher fails to download files.
https://bugs.webkit.org/show_bug.cgi?id=146242

Reviewed by Alex Christensen.

Source/WebKit/win:

Don't start download when there is no download delegate.

  • WebView.cpp:

(WebView::downloadURL):

Tools:

Added WinLauncher download delegate.

  • WinLauncher/Common.cpp:
  • WinLauncher/WebDownloadDelegate.cpp: Added.

(WebDownloadDelegate::WebDownloadDelegate):
(WebDownloadDelegate::~WebDownloadDelegate):
(WebDownloadDelegate::QueryInterface):
(WebDownloadDelegate::AddRef):
(WebDownloadDelegate::Release):
(WebDownloadDelegate::decideDestinationWithSuggestedFilename):
(WebDownloadDelegate::didCancelAuthenticationChallenge):
(WebDownloadDelegate::didCreateDestination):
(WebDownloadDelegate::didFailWithError):
(WebDownloadDelegate::didReceiveAuthenticationChallenge):
(WebDownloadDelegate::didReceiveDataOfLength):
(WebDownloadDelegate::didReceiveResponse):
(WebDownloadDelegate::shouldDecodeSourceDataOfMIMEType):
(WebDownloadDelegate::willResumeWithResponse):
(WebDownloadDelegate::willSendRequest):
(WebDownloadDelegate::didBegin):
(WebDownloadDelegate::didFinish):

  • WinLauncher/WebDownloadDelegate.h: Added.
  • WinLauncher/WinLauncher.cpp:

(WinLauncher::setAccessibilityDelegate):
(WinLauncher::setResourceLoadDelegate):
(WinLauncher::setDownloadDelegate):
(WinLauncher::mainFrame):

  • WinLauncher/WinLauncher.h:

(WinLauncher::standardPreferences):
(WinLauncher::privatePreferences):

  • WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj:
  • WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj.filters:
  • WinLauncher/WinMain.cpp:

(wWinMain):

11:17 AM Changeset in webkit [186003] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

[OS X] Change the layer tiling threshold from 2000 to 2048 pixels
https://bugs.webkit.org/show_bug.cgi?id=146353

Reviewed by Tim Horton.

Programmers love powers of two.

  • platform/graphics/ca/GraphicsLayerCA.cpp:
10:42 AM Changeset in webkit [186002] by mrajca@apple.com
  • 2 edits in trunk/Source/WebKit2

Wireless Playback Target-related #import should be a #include
https://bugs.webkit.org/show_bug.cgi?id=146283

Reviewed by Eric Carlson.

  • Shared/WebCoreArgumentCoders.cpp:
10:27 AM Changeset in webkit [186001] by mmaxfield@apple.com
  • 6 edits
    5 adds in trunk

[Cocoa] Sans-serif generic font family should map to PingFang
https://bugs.webkit.org/show_bug.cgi?id=146333
<rdar://problem/21521217>

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-26
Reviewed by Alexey Proskuryakov.

Source/WebCore:

Also performs a little bit of cleanup.

Test: fast/text/han-generic-font-families.html

  • page/mac/SettingsMac.mm:

(WebCore::sansSerifTraditionalHanFontFamily):
(WebCore::sansSerifSimplifiedHanFontFamily):
(WebCore::Settings::initializeDefaultFontFamilies):

LayoutTests:

  • fast/text/han-generic-font-families.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/fast/text/han-generic-font-families-expected.html: Added.
  • platform/mac-mavericks/fast/text/han-generic-font-families-expected.html: Added.
  • platform/mac-yosemite/fast/text/han-generic-font-families-expected.html: Added.
  • platform/mac/fast/text/han-generic-font-families-expected.html: Added.
  • platform/win/TestExpectations:
10:09 AM Changeset in webkit [186000] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[Curl] Compile errors; ResourceResponseBase::resourceLoadTiming() has changed return type.
https://bugs.webkit.org/show_bug.cgi?id=146343

Reviewed by Brent Fulgham.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::calculateWebTimingInformations):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::initializeHandle):
(WebCore::ResourceHandleManager::initCookieSession):
(WebCore::sockoptfunction): Deleted.

9:45 AM Changeset in webkit [185999] by commit-queue@webkit.org
  • 11 edits
    2 moves
    1 add in trunk/Source/WebKit

[Win] Implement WebViewGroup to support WebView::addxxxToGroup().
https://bugs.webkit.org/show_bug.cgi?id=145908

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-26
Reviewed by Brent Fulgham.

Make WebViewGroup class sharing on Mac and Win port.

Source/WebKit:

  • WebCoreSupport: Added.
  • WebCoreSupport/WebViewGroup.cpp: Added.

(webViewGroups):
(WebViewGroup::getOrCreate):
(WebViewGroup::get):
(WebViewGroup::WebViewGroup):
(WebViewGroup::~WebViewGroup):
(WebViewGroup::addWebView):
(WebViewGroup::removeWebView):
(WebViewGroup::storageNamespaceProvider):

  • WebCoreSupport/WebViewGroup.h: Added.

(WebViewGroup::userContentController):
(WebViewGroup::visitedLinkStore):

  • WebKit.vcxproj/WebKit/WebKit.vcxproj:
  • WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
  • WebKit.vcxproj/WebKit/WebKitCommon.props:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • WebCoreSupport/WebViewGroup.h: Removed.
  • WebCoreSupport/WebViewGroup.mm: Removed.

Source/WebKit/win:

  • WebCoreSupport/WebVisitedLinkStore.cpp:

(visitedLinkStores):
(WebVisitedLinkStore::create):
(WebVisitedLinkStore::WebVisitedLinkStore):
(WebVisitedLinkStore::~WebVisitedLinkStore):
(WebVisitedLinkStore::setShouldTrackVisitedLinks):
(WebVisitedLinkStore::removeAllVisitedLinks):
(WebVisitedLinkStore::singleton): Deleted.

  • WebCoreSupport/WebVisitedLinkStore.h:
  • WebView.cpp:

(toURL):
(localStorageDatabasePath):
(WebView::WebView):
(WebView::~WebView):
(WebView::shouldInitializeTrackPointHack):
(WebView::initWithFrame):
(WebView::setGroupName):
(WebView::addVisitedLinks):

  • WebView.h:
9:42 AM Changeset in webkit [185998] by Csaba Osztrogonác
  • 3 edits
    1 delete in trunk/Source/JavaScriptCore

Remove ARMv7Assembler.cpp
https://bugs.webkit.org/show_bug.cgi?id=146340

Reviewed by Filip Pizlo.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/ARMv7Assembler.cpp: Removed.
8:17 AM Changeset in webkit [185997] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

iOS speech synthesizer should expose names
https://bugs.webkit.org/show_bug.cgi?id=146319

Reviewed by Mario Sanchez Prada.

Use newer API to get the name and identifier of each voice asset.

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

6:24 AM Changeset in webkit [185996] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the !ENABLE(ES6_ARROWFUNCTION_SYNTAX) build after r185989
https://bugs.webkit.org/show_bug.cgi?id=146344

Reviewed by Yusuke Suzuki.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseSourceElements):

6:05 AM Changeset in webkit [185995] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

[EFL] Remove unnecessary overriden methods from ScrollBarEfl
https://bugs.webkit.org/show_bug.cgi?id=146342

Reviewed by Gyuyoung Kim.

  • platform/efl/ScrollbarEfl.cpp:

(WebCore::ScrollbarEfl::setParent): Deleted.
(WebCore::ScrollbarEfl::setFrameRect): Deleted.
(WebCore::ScrollbarEfl::frameRectsChanged): Deleted.
(WebCore::ScrollbarEfl::invalidate): Deleted.

  • platform/efl/ScrollbarEfl.h:
6:01 AM Changeset in webkit [185994] by Csaba Osztrogonác
  • 6 edits in trunk/Source/WebCore

Convert some of WebCore/dom over to range-for loops
https://bugs.webkit.org/show_bug.cgi?id=126250

Reviewed by Darin Adler.

Based on the original patch of Sam Weinig <sam@webkit.org>.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::replaceChild):
(WebCore::willRemoveChildren):
(WebCore::ContainerNode::appendChild):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::getObservedNodes):
(WebCore::MutationObserver::deliver):

  • dom/MutationObserverInterestGroup.cpp:

(WebCore::MutationObserverInterestGroup::isOldValueRequested):
(WebCore::MutationObserverInterestGroup::enqueueMutationRecord):

  • dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::clearTransientRegistrations):
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet):

  • dom/Node.cpp:

(WebCore::Node::dumpStatistics):
(WebCore::collectMatchingObserversForMutation):
(WebCore::Node::notifyMutationObserversNodeWillDetach):

4:37 AM Changeset in webkit [185993] by Csaba Osztrogonác
  • 2 edits in trunk/WebKitLibraries

Unreviewed buildfix after r185971, disable WEB_TIMING.

  • win/tools/vsprops/FeatureDefinesCairo.props:
4:05 AM Changeset in webkit [185992] by Csaba Osztrogonác
  • 3 edits
    1 delete in trunk/Tools

[EFL] Bump libseccomp version to 2.2.1
https://bugs.webkit.org/show_bug.cgi?id=146341

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
  • efl/jhbuildrc: Enabled libseccomp build on AArch64.
  • efl/patches/libseccomp-pick-up-CC.patch: Removed, we don't need it anymore.
1:49 AM Changeset in webkit [185991] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.37/Source/WebCore

Merged r185988.

12:10 AM Changeset in webkit [185990] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r185971): js/dom/global-constructors-attributes.html fails on Windows

  • platform/win/js/dom/global-constructors-attributes-expected.txt:

Update results after enabling WEB_TIMING API for Windows.

Jun 25, 2015:

11:49 PM Changeset in webkit [185989] by commit-queue@webkit.org
  • 12 edits
    27 adds in trunk

Source/JavaScriptCore:

[ES6] Implement ES6 arrow function syntax. Parser of arrow function with execution as common function.
https://bugs.webkit.org/show_bug.cgi?id=144955

Reviewed by Yusuke Suzuki.

Added support of ES6 arrow function. Changes were made according to following spec http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax. Patch does not include any arrow function specific behavior e.g. lexical bind this, arguments and etc.

This patch implements the simplest cases of arrow function declaration:

parameters () => 10 + 20
parameter x => x + 20
parameters (x, y) => x + y
function with block x => { return x*10; }

Not implemented:

bind of the this, arguments, super and etc.
exception in case of trying to use 'new' with arrow function

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-06-26

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionExpr):
(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createFuncDeclStatement):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::setTokenPosition):
(JSC::Lexer<T>::lex):

  • parser/Lexer.h:

(JSC::Lexer::lastTokenLocation):
(JSC::Lexer::setTerminator):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseArrowFunctionSingleExpressionBody):
(JSC::Parser<LexerType>::parseSwitchClauses):
(JSC::Parser<LexerType>::parseSwitchDefaultClause):
(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):

  • parser/Parser.h:

(JSC::Parser::locationBeforeLastToken):
(JSC::Parser::isEndOfArrowFunction):
(JSC::Parser::isArrowFunctionParamters):
(JSC::Parser::setEndOfStatement):

  • parser/ParserFunctionInfo.h:
  • parser/ParserTokens.h:
  • parser/SourceCode.h:

(JSC::SourceCode::subArrowExpression):

  • parser/SourceProviderCacheItem.h:

(JSC::SourceProviderCacheItem::endFunctionToken):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createArrowFunctionExpr):
(JSC::SyntaxChecker::setFunctionNameStart):

LayoutTests:

[ES6] Implement ES6 arrow function syntax. Parser of arrow function with execution as common function
https://bugs.webkit.org/show_bug.cgi?id=144955

Reviewed by Yusuke Suzuki.

Added arrow function tests

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-06-26

  • js/arrowfunction-asparamter-1-expected.txt: Added.
  • js/arrowfunction-asparamter-1.html: Added.
  • js/arrowfunction-asparamter-2-expected.txt: Added.
  • js/arrowfunction-asparamter-2.html: Added.
  • js/arrowfunction-associativity-1-expected.txt: Added.
  • js/arrowfunction-associativity-1.html: Added.
  • js/arrowfunction-associativity-2-expected.txt: Added.
  • js/arrowfunction-associativity-2.html: Added.
  • js/arrowfunction-block-1-expected.txt: Added.
  • js/arrowfunction-block-1.html: Added.
  • js/arrowfunction-block-2-expected.txt: Added.
  • js/arrowfunction-block-2.html: Added.
  • js/arrowfunction-syntax-endings-expected.txt: Added.
  • js/arrowfunction-syntax-endings.html: Added.
  • js/arrowfunction-syntax-errors-expected.txt: Added.
  • js/arrowfunction-syntax-errors.html: Added.
  • js/arrowfunction-syntax-expected.txt: Added.
  • js/arrowfunction-syntax.html: Added.
  • js/script-tests/arrowfunction-asparamter-1.js: Added.
  • js/script-tests/arrowfunction-asparamter-2.js: Added.
  • js/script-tests/arrowfunction-associativity-1.js: Added.
  • js/script-tests/arrowfunction-associativity-2.js: Added.
  • js/script-tests/arrowfunction-block-1.js: Added.
  • js/script-tests/arrowfunction-block-2.js: Added.
  • js/script-tests/arrowfunction-syntax-endings.js: Added.
  • js/script-tests/arrowfunction-syntax-errors.js: Added.
  • js/script-tests/arrowfunction-syntax.js: Added.
11:42 PM Changeset in webkit [185988] by Lucas Forschler
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • platform/audio/VectorMath.cpp:

(WebCore::VectorMath::vsmul):
(WebCore::VectorMath::vadd):
(WebCore::VectorMath::vmul):
(WebCore::VectorMath::zvmul):

11:20 PM Changeset in webkit [185987] by bshafiei@apple.com
  • 10 edits in tags/Safari-601.1.37/Source

Merge custom patch. rdar://problem/21537375

11:09 PM Changeset in webkit [185986] by bshafiei@apple.com
  • 10 edits in tags/Safari-601.1.37/Source

Merge custom patch. rdar://problem/21537375

11:01 PM Changeset in webkit [185985] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

10:59 PM Changeset in webkit [185984] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.37

New tag.

10:30 PM Changeset in webkit [185983] by Stephanie Lewis
  • 2 edits in trunk/Source/WebCore

Build fix.

Unreviewed.

  • platform/audio/DirectConvolver.cpp:

(WebCore::DirectConvolver::process):

8:55 PM Changeset in webkit [185982] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit/win

[Win] Need implementation of layoutTestController.setBackingScaleFactor
https://bugs.webkit.org/show_bug.cgi?id=87919
<rdar://problem/11563242>

Reviewed by Dean Jackson.

Connect the test infrastructure for High DPI tests to Windows. This
involved adding a new accessor to the IWebViewPrivate interface, and
providing a rudimentary implemenation of DPI support on Windows.

  • Interfaces/IWebViewPrivate.idl: Add new API to set/get scaling

factor.

  • WebView.cpp:

(WebView::initWithFrame): Initialize the device scale factor.
(WebView::setHostWindow): Ditto.
(WebView::windowAncestryDidChange): Ditto.
(WebView::deviceScaleFactor): Added. Check current window for scaling
factor. If no windows exist, check main screen.
(WebView::setCustomBackingScaleFactor): Added.
(WebView::backingScaleFactor): Added.

  • WebView.h:
8:13 PM Changeset in webkit [185981] by Yusuke Suzuki
  • 8 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Support rest element in destructuring assignments
https://bugs.webkit.org/show_bug.cgi?id=146206

Reviewed by Oliver Hunt.

This patch enables rest element (...rest) in array binding patterns.
It generates array from the iterables.
In variable declarations and parameters, [...identifier] form is only allowed,
while expressions can take [...[...rest]] pattern.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitIteratorNext):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::bindValue):
(JSC::ArrayPatternNode::toString):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::appendArrayPatternSkipEntry):
(JSC::ASTBuilder::appendArrayPatternEntry):
(JSC::ASTBuilder::appendArrayPatternRestEntry):

  • parser/Nodes.h:

(JSC::ArrayPatternNode::appendIndex):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDeconstructionPattern):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • tests/stress/rest-elements.js: Added.

(shouldBe):
(shouldThrow):

7:49 PM Changeset in webkit [185980] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Wrong timeline selected after switching from Rendering Frames to Timelines
https://bugs.webkit.org/show_bug.cgi?id=146331

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineSidebarPanel.js:

Set previously selected timeline type to null if no tree element is selected when switching
view mode to Rendering Frames.

7:13 PM Changeset in webkit [185979] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit/ios

Unreviewed, attempt to fix the iOS build after r185968.

  • WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::startWindowDrag):

6:45 PM Changeset in webkit [185978] by Joseph Pecoraro
  • 5 edits in trunk/Source

Web Inspector: Add Support for OS X Full Screen Mode
https://bugs.webkit.org/show_bug.cgi?id=123510

Reviewed by Timothy Hatcher.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorClient::didResizeMainFrame):
(WebInspectorClient::windowFullScreenDidChange):
(WebInspectorClient::canAttach):
(WebInspectorFrontendClient::canAttach):
(-[WebInspectorWindowController showWindow:]):
Consolidate canAttach logic into canAttach functions.

(-[WebInspectorWindowController window:]):
Share the same full screen behavior as WebKit2.

(-[WebInspectorWindowController windowDidEnterFullScreen:]):
(-[WebInspectorWindowController windowDidExitFullScreen:]):
Attach availability may have changed.

Source/WebKit2:

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::createInspectorWindow):
Allow full screen.

6:34 PM Changeset in webkit [185977] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

[EFL] Make send / receive messages to communicate the Web and UI Processes using Injected Bundle.
https://bugs.webkit.org/show_bug.cgi?id=145685

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-25
Reviewed by Gyuyoung Kim.

To have extensible port specific API facility using Injected Bundle,
we need to load libewebkit_extension_manager.so in default that is same as what gtk port does.

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::EwkContext):
(EwkContext::findOrCreateWrapper):
(bundlePathForExtension):
(EwkContext::create):
(EwkContext::allowSpecificHTTPSCertificateForHost):
(EwkContext::isDefaultBundle):
(ewk_context_default_get):

  • UIProcess/API/efl/ewk_context_private.h:
  • WebProcess/efl/ExtensionManagerEfl.cpp:

(WebKit::ExtensionManagerEfl::initialize):

6:15 PM Changeset in webkit [185976] by Chris Fleizach
  • 8 edits
    2 adds in trunk

AX: improve list heuristics (presentational use versus actual lists)
https://bugs.webkit.org/show_bug.cgi?id=134187

Source/WebCore:

Rolling this change back in.
It was taken out to allow clients to have time to update their expectations of what is a list vs. a group

Test: accessibility/list-detection2.html

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::isDescriptionList):
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers):
(WebCore::AccessibilityList::determineAccessibilityRole):

  • accessibility/AccessibilityList.h:

LayoutTests:

Rolling this change back in now that clients have had time to update their expectations.

  • accessibility/list-detection-expected.txt:
  • accessibility/list-detection.html:
  • accessibility/list-detection2-expected.txt: Added.
  • accessibility/list-detection2.html: Added.
  • platform/gtk/accessibility/list-detection-expected.txt:
  • platform/win/TestExpectations:
6:09 PM Changeset in webkit [185975] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r185964.

Correct a few pointers-that-should-be-references-now errors.

  • platform/win/PopupMenuWin.cpp:

(WebCore::AccessiblePopupMenu::accLocation):
(WebCore::AccessiblePopupMenu::accHitTest):

6:00 PM Changeset in webkit [185974] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Bug 146300 AX: AccessibilityObject focus events that don't cause a selection
change can leave m_isSynchronizingSelection set to true
https://bugs.webkit.org/show_bug.cgi?id=146300

Patch by Doug Russell <d_russell@apple.com> on 2015-06-25
Reviewed by Chris Fleizach.

Added a clearTextSelectionIntent() convenience function to be used after any
event that can, but isn't guaranteed to result in a selection change. Matches
calls to setTextSelectionIntent() convenience function.
Added support for tests listening for focus change notifications.

Source/WebCore:

Test: platform/mac/accessibility/focus-setting-selection-syncronizing-not-clearing.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::clearTextSelectionIntent):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):

LayoutTests:

  • platform/mac/accessibility/focus-setting-selection-syncronizing-not-clearing-expected.txt: Added.
  • platform/mac/accessibility/focus-setting-selection-syncronizing-not-clearing.html: Added.
5:57 PM Changeset in webkit [185973] by achristensen@apple.com
  • 4 edits in trunk

[Content Extensions] Add a way to match a domain but not subdomains
https://bugs.webkit.org/show_bug.cgi?id=146241
rdar://problem/21557754

Reviewed by Darin Adler.

Source/WebCore:

This patch makes it possible to have a trigger with an if-domain apply to sub2.sub1.webkit.org
but not sub1.webkit.org by making the domains default to only applying to the domain and not subdomains.
To make a domain apply to a domain and any subdomains, the domain must begin with a '*'.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::CombinedURLFilters::addDomain):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
Make domains apply only to the exact domain unless there is a * at the beginning,
in which case they apply to the domain and any subdomains.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Update subdomain test because of changed behavior and add test for new '*' functionality.

5:29 PM Changeset in webkit [185972] by Simon Fraser
  • 16 edits in trunk/Source

[iOS WK2] Swiping back just after scrolling can cause some tiles to disappear
https://bugs.webkit.org/show_bug.cgi?id=146329
rdar://problem/21233010

Reviewed by Tim Horton.
Source/WebCore:

Have the Compositing log channel dump the visible rect used for layer flushing.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

Source/WebKit2:

When doing a back swipe, views interposed between the WKWebView and the WKContentView
get positions and animations for the swipe. This -_updateVisibleContentRects to
compute bad visible and unobscured rects, so we lose tiles.

Fix by "freezing" the visible and unobscured content rects in the view being
swiped for the duration of the navigation gesture. When swiping the main view,
we just plumb through navigationGestureDidEnd(). When Reader is showing and the
swiped view is different from the navigating view, use the new navigationGestureDidEnd()
override which takes no arguments.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _navigationGestureDidBegin]):
(-[WKWebView _navigationGestureDidEnd]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::navigationGestureDidEnd):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::navigationGestureDidEnd):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::navigationGestureDidBegin):
(WebKit::PageClientImpl::navigationGestureDidEnd):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::navigationGestureDidEnd):

4:47 PM Changeset in webkit [185971] by Brent Fulgham
  • 6 edits in trunk

[WIN] Enable WEB_TIMING API
https://bugs.webkit.org/show_bug.cgi?id=146330
<rdar://problem/21530765>

Reviewed by Dean Jackson.

Source/WebCore:

Tested by internal HLS tests.

Enable WEB_TIMING features on Windows by activating the feature flag,
and correcting some build errors.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::start): "setCollectionTimingData" is only
defined for PLATFORM(COCOA).

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
The 'ResourceHandle::getConnectionTimingData' method is only defined
for PLATFORM(COCOA).

WebKitLibraries:

Enable WEB_TIMING features on Windows by activating the feature flag,
and correcting some build errors.

  • win/tools/vsprops/FeatureDefines.props: Enable feature flag.
  • win/tools/vsprops/FeatureDefinesCairo.props: Ditto.
4:38 PM Changeset in webkit [185970] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Tools

Cleanup ENABLE_CSS3_CONDITIONAL_RULES codes.
https://bugs.webkit.org/show_bug.cgi?id=146308

Reviewed by Csaba Osztrogonác.

ENABLE_CSS3_CONDITIONAL_RULES guard was removed from r174536.

  • Scripts/webkitperl/FeatureList.pm:
4:13 PM Changeset in webkit [185969] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Inline media controls disappear when returning a video to inline
https://bugs.webkit.org/show_bug.cgi?id=146328
<rdar://problem/21142862>

Reviewed by Tim Horton.

We were getting into a state where the controls were being
hidden via a timer while we were in fullscreen or on
another tab. Meanwhile, we could exit from such
a condition to a point where the controls were
not visible, but not completely removed from the DOM, confusing
the logic that decided whether to show them on tap.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.hideControls): If we are in the act of hiding
controls, we can clear any existing timers that are going to try
to hide them again.
(Controller.prototype.resetHideControlsTimer): Make sure we null
out the hideTimer object, since we look at its value often to
decide whether or not a timer exists.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handlePlayButtonTouchEnd): If the user
taps play, then we should call showControls, which resets the hide
timers amongst other things. We need to do this due to the next change,
so that a timer started before we pressed play doesn't cause the
controls to instantly disappear as soon as we start playing.
(ControllerIOS.prototype.handleWrapperTouchStart): We can get into
the state where controls are invisible but still in the tree. Since the
controlsAreHidden() logic only looks for the latter, we need to also
look for invisible when the user taps for the controls. Yes, this
naming doesn't make much sense :(

4:09 PM Changeset in webkit [185968] by Joseph Pecoraro
  • 23 edits in trunk/Source

[Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
https://bugs.webkit.org/show_bug.cgi?id=146324

Reviewed by Timothy Hatcher.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

Do nothing or pass it up to the the frontend client.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::startWindowDrag):
Add a new host function to get native window dragging behavior.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

On Mac 10.11 transition to using InspectorFrontendHost.startWindowDrag.
For older Macs continue to use InspectorFrontendHost.moveWindowBy.

  • UserInterface/Protocol/InspectorFrontendHostStub.js:

(WebInspector.InspectorFrontendHostStub.prototype.startWindowDrag):
Add the stub for InspectorFrontendHostStub.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::startWindowDrag):
Start performing a window drag.

Source/WebKit2:

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView _startWindowDrag]):
Add a way to start a window drag from a WKView using the most
recent mouse down event.

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::startWindowDrag):
Send a message that we should start a window drag.

  • UIProcess/WebInspectorProxy.messages.in:
  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::startWindowDrag):
(WebKit::WebInspectorProxy::platformStartWindowDrag):

  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformStartWindowDrag):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformStartWindowDrag):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformStartWindowDrag):
Let the platform start a window drag. Only implemented by Mac.

4:09 PM Changeset in webkit [185967] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit2

[iOS] When using the back swipe gesture in Safari, the previous webpage will flash for a second
https://bugs.webkit.org/show_bug.cgi?id=146326
<rdar://problem/17811304>

Reviewed by Dean Jackson.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::hideContentUntilPendingUpdate):
(WebKit::DrawingAreaProxy::hideContentUntilAnyUpdate):
(WebKit::DrawingAreaProxy::hideContentUntilNextUpdate): Deleted.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilPendingUpdate):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilAnyUpdate):
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy): Deleted.
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilNextUpdate): Deleted.
Make it possible to distinguish between hiding the content until *any* commit
comes in (for example, when we're coming back from being suspended and don't want
to show anything until we are sure all the layers are valid) and hiding the content
until the currently pending commit corresponding to the current state in the UI process
has arrived (which is what we want when e.g. hiding content after a gesture navigation
and not showing it until the commit including the navigation lands).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _hideContentUntilNextUpdate]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _applicationWillEnterForeground]):
Make use of "hideContentUntilAnyUpdate".

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::endSwipeGesture):
Make use of "hideContentUntilPendingUpdate".

3:40 PM Changeset in webkit [185966] by timothy_horton@apple.com
  • 6 edits in trunk

Viewport units are wrong when scaled in 2-up mode, cause content to hop around on apple.com/music
https://bugs.webkit.org/show_bug.cgi?id=146322
<rdar://problem/21413884>

Reviewed by Simon Fraser.

  • page/FrameView.cpp:

(WebCore::FrameView::viewportSizeForCSSViewportUnits):
Use the fixed layout size, if enabled, instead of the visibleContentRect,
for the viewport unit size. This ensures that viewport units take up the whole
fixed-layout viewport, not just the size of the view scaled by the page scale
(which visibleContentRect provides).

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):
Inflate the fixed layout height (by the viewScale) so that it's the size of the view.

  • fast/fixed-layout/fixed-layout-expected.txt:

Rebaseline now that viewport units behave correctly.

3:11 PM Changeset in webkit [185965] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] AirPlay menu button still doesn't always show on page load
https://bugs.webkit.org/show_bug.cgi?id=146325

Reviewed by Dean Jackson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): A player that can't currently play to a wireless

target does require target monitoring if an availability event listner has been registered,
otherwise we may not register for availability change notifications.

3:03 PM Changeset in webkit [185964] by andersca@apple.com
  • 25 edits in trunk/Source/WebCore

Stop using ScrollbarThemeClient and just use Scrollbar directly
https://bugs.webkit.org/show_bug.cgi?id=146320

Reviewed by Tim Horton.

  • page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm:

(WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::setScrollbarOverlayStyle):

  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::Scrollbar):
(WebCore::Scrollbar::~Scrollbar):
(WebCore::Scrollbar::offsetDidChange):
(WebCore::Scrollbar::updateThumb):
(WebCore::Scrollbar::paint):
(WebCore::thumbUnderMouse):
(WebCore::Scrollbar::autoscrollPressedPart):
(WebCore::Scrollbar::startTimerIfNeeded):
(WebCore::Scrollbar::moveThumb):
(WebCore::Scrollbar::setHoveredPart):
(WebCore::Scrollbar::setPressedPart):
(WebCore::Scrollbar::mouseMoved):
(WebCore::Scrollbar::mouseUp):
(WebCore::Scrollbar::mouseDown):
(WebCore::Scrollbar::setEnabled):

  • platform/ScrollbarTheme.h:

(WebCore::ScrollbarTheme::updateEnabledState):
(WebCore::ScrollbarTheme::paint):
(WebCore::ScrollbarTheme::hitTest):
(WebCore::ScrollbarTheme::updateScrollbarOverlayStyle):
(WebCore::ScrollbarTheme::invalidateParts):
(WebCore::ScrollbarTheme::invalidatePart):
(WebCore::ScrollbarTheme::paintTickmarks):
(WebCore::ScrollbarTheme::shouldCenterOnThumb):
(WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
(WebCore::ScrollbarTheme::shouldDragDocumentInsteadOfThumb):
(WebCore::ScrollbarTheme::thumbPosition):
(WebCore::ScrollbarTheme::thumbLength):
(WebCore::ScrollbarTheme::trackPosition):
(WebCore::ScrollbarTheme::trackLength):
(WebCore::ScrollbarTheme::registerScrollbar):
(WebCore::ScrollbarTheme::unregisterScrollbar):

  • platform/ScrollbarThemeComposite.cpp:

(WebCore::ScrollbarThemeComposite::paint):
(WebCore::ScrollbarThemeComposite::hitTest):
(WebCore::ScrollbarThemeComposite::invalidatePart):
(WebCore::ScrollbarThemeComposite::splitTrack):
(WebCore::usedTotalSize):
(WebCore::ScrollbarThemeComposite::thumbPosition):
(WebCore::ScrollbarThemeComposite::thumbLength):
(WebCore::ScrollbarThemeComposite::minimumThumbLength):
(WebCore::ScrollbarThemeComposite::trackPosition):
(WebCore::ScrollbarThemeComposite::trackLength):
(WebCore::ScrollbarThemeComposite::thumbRect):

  • platform/ScrollbarThemeComposite.h:

(WebCore::ScrollbarThemeComposite::willPaintScrollbar):
(WebCore::ScrollbarThemeComposite::didPaintScrollbar):
(WebCore::ScrollbarThemeComposite::paintScrollbarBackground):
(WebCore::ScrollbarThemeComposite::paintTrackBackground):
(WebCore::ScrollbarThemeComposite::paintTrackPiece):
(WebCore::ScrollbarThemeComposite::paintButton):
(WebCore::ScrollbarThemeComposite::paintThumb):
(WebCore::ScrollbarThemeComposite::constrainTrackRectToTrackPieces):

  • platform/efl/ScrollbarThemeEfl.h:
  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::hasThumb):
(WebCore::ScrollbarThemeGtk::backButtonRect):
(WebCore::ScrollbarThemeGtk::forwardButtonRect):
(WebCore::ScrollbarThemeGtk::trackRect):
(WebCore::ScrollbarThemeGtk::registerScrollbar):
(WebCore::ScrollbarThemeGtk::unregisterScrollbar):
(WebCore::ScrollbarThemeGtk::updateScrollbarsFrameThickness):
(WebCore::ScrollbarThemeGtk::thumbRect):
(WebCore::ScrollbarThemeGtk::paintTrackBackground):
(WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
(WebCore::ScrollbarThemeGtk::paintThumb):
(WebCore::ScrollbarThemeGtk::paintButton):
(WebCore::ScrollbarThemeGtk::paint):
(WebCore::ScrollbarThemeGtk::shouldCenterOnThumb):
(WebCore::ScrollbarThemeGtk::buttonSize):
(WebCore::ScrollbarThemeGtk::minimumThumbLength):

  • platform/gtk/ScrollbarThemeGtk.h:

(WebCore::ScrollbarThemeGtk::hasButtons):

  • platform/ios/ScrollbarThemeIOS.h:
  • platform/ios/ScrollbarThemeIOS.mm:

(WebCore::ScrollbarThemeIOS::registerScrollbar):
(WebCore::ScrollbarThemeIOS::unregisterScrollbar):
(WebCore::ScrollbarThemeIOS::hasButtons):
(WebCore::ScrollbarThemeIOS::hasThumb):
(WebCore::ScrollbarThemeIOS::backButtonRect):
(WebCore::ScrollbarThemeIOS::forwardButtonRect):
(WebCore::ScrollbarThemeIOS::trackRect):
(WebCore::ScrollbarThemeIOS::minimumThumbLength):
(WebCore::ScrollbarThemeIOS::shouldCenterOnThumb):
(WebCore::ScrollbarThemeIOS::paint):

  • platform/mac/ScrollAnimatorMac.mm:

(scrollbarPainterForScrollbar):
(-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
(-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
(WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
(WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::invalidateScrollbarPartLayers):
(WebCore::ScrollAnimatorMac::verticalScrollbarLayerDidChange):
(WebCore::ScrollAnimatorMac::horizontalScrollbarLayerDidChange):
(WebCore::ScrollAnimatorMac::shouldScrollbarParticipateInHitTesting):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):

  • platform/mac/ScrollbarThemeMac.h:
  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::unregisterScrollbar):
(WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
(WebCore::ScrollbarThemeMac::painterForScrollbar):
(WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeMac::hasButtons):
(WebCore::ScrollbarThemeMac::hasThumb):
(WebCore::ScrollbarThemeMac::backButtonRect):
(WebCore::ScrollbarThemeMac::forwardButtonRect):
(WebCore::ScrollbarThemeMac::trackRect):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
(WebCore::ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
(WebCore::ScrollbarThemeMac::paint):

  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::trackRect):
(WebCore::ScrollbarThemeMock::paintTrackBackground):
(WebCore::ScrollbarThemeMock::paintThumb):

  • platform/mock/ScrollbarThemeMock.h:

(WebCore::ScrollbarThemeMock::hasButtons): Deleted.
(WebCore::ScrollbarThemeMock::hasThumb): Deleted.
(WebCore::ScrollbarThemeMock::backButtonRect): Deleted.
(WebCore::ScrollbarThemeMock::forwardButtonRect): Deleted.
(WebCore::ScrollbarThemeMock::maxOverlapBetweenPages): Deleted.
(WebCore::ScrollbarThemeMock::isMockTheme): Deleted.

  • platform/win/ScrollbarThemeSafari.cpp:

(WebCore::ScrollbarThemeSafari::hasButtons):
(WebCore::ScrollbarThemeSafari::hasThumb):
(WebCore::ScrollbarThemeSafari::backButtonRect):
(WebCore::ScrollbarThemeSafari::forwardButtonRect):
(WebCore::ScrollbarThemeSafari::trackRect):
(WebCore::ScrollbarThemeSafari::minimumThumbLength):
(WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
(WebCore::ScrollbarThemeSafari::paintTrackBackground):
(WebCore::ScrollbarThemeSafari::paintButton):
(WebCore::ScrollbarThemeSafari::paintThumb):

  • platform/win/ScrollbarThemeSafari.h:
  • platform/win/ScrollbarThemeWin.cpp:

(WebCore::ScrollbarThemeWin::hasThumb):
(WebCore::ScrollbarThemeWin::backButtonRect):
(WebCore::ScrollbarThemeWin::forwardButtonRect):
(WebCore::ScrollbarThemeWin::trackRect):
(WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
(WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
(WebCore::ScrollbarThemeWin::paintTrackBackground):
(WebCore::ScrollbarThemeWin::paintTrackPiece):
(WebCore::ScrollbarThemeWin::paintButton):
(WebCore::paintGripper):
(WebCore::ScrollbarThemeWin::paintThumb):

  • platform/win/ScrollbarThemeWin.h:
  • rendering/RenderScrollbar.h:

(isType):

  • rendering/RenderScrollbarPart.cpp:

(WebCore::RenderScrollbarPart::styleDidChange):
(WebCore::RenderScrollbarPart::imageChanged):

  • rendering/RenderScrollbarTheme.cpp:

(WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
(WebCore::RenderScrollbarTheme::hasButtons):
(WebCore::RenderScrollbarTheme::hasThumb):
(WebCore::RenderScrollbarTheme::minimumThumbLength):
(WebCore::RenderScrollbarTheme::backButtonRect):
(WebCore::RenderScrollbarTheme::forwardButtonRect):
(WebCore::RenderScrollbarTheme::trackRect):
(WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):
(WebCore::RenderScrollbarTheme::willPaintScrollbar):
(WebCore::RenderScrollbarTheme::didPaintScrollbar):
(WebCore::RenderScrollbarTheme::paintScrollbarBackground):
(WebCore::RenderScrollbarTheme::paintTrackBackground):
(WebCore::RenderScrollbarTheme::paintTrackPiece):
(WebCore::RenderScrollbarTheme::paintButton):
(WebCore::RenderScrollbarTheme::paintThumb):
(WebCore::RenderScrollbarTheme::paintTickmarks):

  • rendering/RenderScrollbarTheme.h:
2:44 PM Changeset in webkit [185963] by mrajca@apple.com
  • 3 edits in trunk/Source/WebCore

MediaSession: fall back to "content" kind when an unsupported media session kind is passed in
https://bugs.webkit.org/show_bug.cgi?id=146293

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::parseKind): Parse the media session kind to one of the four supported types.
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::kind): Format the value as a string (which the JS bindings expect).

  • Modules/mediasession/MediaSession.h: The media session kind is now stored as an enum rather than a string since we only support a small, fixed number of values.
2:00 PM Changeset in webkit [185962] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Crash in WebCore::MediaPlayer::canPlayToWirelessPlaybackTarget
https://bugs.webkit.org/show_bug.cgi?id=146317

Reviewed by Brent Fulgham.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): NULL-check m_player before using it.

1:57 PM Changeset in webkit [185961] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Drop WebKitNetworkCacheTemporarilyDisabledForTesting NSUserDefaults
https://bugs.webkit.org/show_bug.cgi?id=146323
<rdar://problem/21552370>

Reviewed by Antti Koivisto.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::isNetworkCacheEnabled):

1:53 PM Changeset in webkit [185960] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Unreviewed, rolling out r185956.
https://bugs.webkit.org/show_bug.cgi?id=146321

Causes massive crashes on test bots (Requested by bfulgham on
#webkit).

Reverted changeset:

"Enabling MEDIA_STREAM"
https://bugs.webkit.org/show_bug.cgi?id=145947
http://trac.webkit.org/changeset/185956

1:48 PM Changeset in webkit [185959] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Minor fix to idx bounds check after 185954

Rubber Stamped by Ryosuke Niwa.

Changed "idx > 1" to "idx > 0" in two places.

  • runtime/ExceptionHelpers.cpp:

(JSC::functionCallBase):

12:37 PM Changeset in webkit [185958] by Brent Fulgham
  • 9 edits in trunk/Source/WebCore

[Win] Update MediaPlayerPrivateAVFoundationCF::supportsType
https://bugs.webkit.org/show_bug.cgi?id=146302
<rdar://problem/19726553>

Reviewed by Eric Carlson.

Tested by existing media tests.

Update the AVFoundationCF version of 'supportsType' to more closely match the AVFoundation
version. Use this new code when the necessary AVFoundationCF functions are present.

  • AVFoundationSupport.py: Check for presence of AVCFURLAssetIsPlayableExtendedMIMEType.

(fileContains): Added helper function.

  • WebCore.vcxproj/WebCoreGenerated.vcxproj: Add AVFoundationSupport.py to project file to make

maintenance easier.

  • WebCore.vcxproj/WebCoreGenerated.vcxproj.filters: Ditto.
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::isUnsupportedMIMEType): Moved from ObjC version.
(WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList): Ditto.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add missing declaration.
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::avfMIMETypes): Added CF version of AVFoundation code.
(WebCore::MediaPlayerPrivateAVFoundationCF::supportsType): Update to use new AVCF
method if it is available.
(WebCore::MediaPlayerPrivateAVFoundationCF::languageOfPrimaryAudioTrack): Handle case of a
null language locale. This is a drive-by fix of a bug found during testing.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::isUnsupportedMIMEType): Deleted.
(WebCore::staticMIMETypeList): Deleted.

12:22 PM Changeset in webkit [185957] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Address Sanitizer does not play well with memcpy in JSC::MachineThreads::tryCopyOtherThreadStack.
https://bugs.webkit.org/show_bug.cgi?id=146297

Patch by Keith Miller <keith_miller@apple.com> on 2015-06-25
Reviewed by Filip Pizlo.

Since we cannot blacklist the system memcpy we must use our own naive implementation,
copyMemory. This is not a significant performance loss as tryCopyOtherThreadStack is
only called as part of an O(heapsize) operation. As the heap is generally much larger
than the stack the performance hit is minimal.

  • heap/MachineStackMarker.cpp:

(JSC::copyMemory):
(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::asanUnsafeMemcpy): Deleted.

11:39 AM Changeset in webkit [185956] by Brent Fulgham
  • 11 edits in trunk/Source

Enabling MEDIA_STREAM
https://bugs.webkit.org/show_bug.cgi?id=145947
<rdar://problem/21365829>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-06-25
Reviewed by Brent Fulgham.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Modules/mediastream/UserMediaClient.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/AVAudioCaptureSource.mm:
  • platform/mock/UserMediaClientMock.h:
10:42 AM Changeset in webkit [185955] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Do not send touch events to the slider's thumb when it does not have a renderer.
https://bugs.webkit.org/show_bug.cgi?id=146307
rdar://problem/21539399

Reviewed by Simon Fraser.

Bail out early if either the touch target or the renderer() is null.

Source/WebCore:

Test: fast/events/touch/input-range-with-thumb-display-none-crash.html

  • html/shadow/SliderThumbElement.cpp:

(WebCore::findTouchWithIdentifier):
(WebCore::SliderThumbElement::handleTouchStart):
(WebCore::SliderThumbElement::handleTouchMove):
(WebCore::SliderThumbElement::handleTouchEndAndCancel):

LayoutTests:

  • fast/events/touch/input-range-with-thumb-display-none-crash-expected.txt: Added.
  • fast/events/touch/input-range-with-thumb-display-none-crash.html: Added.
10:35 AM Changeset in webkit [185954] by msaboff@apple.com
  • 3 edits
    3 adds in trunk

REGRESSION (r181889): basspro.com hangs on load under JSC::ErrorInstance::finishCreation(JSC::ExecState*, JSC::VM&, WTF::String const&, bool) + 2801 (JavaScriptCore + 3560689)
https://bugs.webkit.org/show_bug.cgi?id=146298

Reviewed by Mark Lam.

Source/JavaScriptCore:

We were underflowing in ExceptionHelpers.cpp::functionCallBase() with a right to left
string index. Added checks that idx stays within the string. Also added a termination
condition when idx is 0.

  • runtime/ExceptionHelpers.cpp:

(JSC::functionCallBase):

LayoutTests:

New regression test.

  • js/regress-146298-expected.txt: Added.
  • js/regress-146298.html: Added.
  • js/script-tests/regress-146298.js: Added.
5:37 AM Changeset in webkit [185953] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk

[Streams API] Implement HighWaterMark
https://bugs.webkit.org/show_bug.cgi?id=146235

Reviewed by Darin Adler.

Source/WebCore:

Retrieval of HighWaterMark parameter from arguments passed to the ReadableStream JS constructor.
Retrieval of size function callback from arguments passed to the ReadableStream JS constructor.
Calling doPull() if buffer size is below HighWaterMark.

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::pull): Adding precise check for HWM.

  • Modules/streams/ReadableStream.h: Introducing hasEnoughValues.
  • bindings/js/ReadableJSStream.cpp:

(WebCore::getHighWaterMark): Utility routine to get properly HWM value.
(WebCore::ReadableJSStream::create): Retrieval of HWM and size function.
(WebCore::ReadableJSStream::ReadableJSStream):

  • bindings/js/ReadableJSStream.h: Adding hasEnoughValues and desiredSize prototypes.

LayoutTests:

  • streams/reference-implementation/bad-strategies-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:
12:55 AM Changeset in webkit [185952] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash in ViewGestureController::didRestoreScrollPosition() running WKWebView.LoadAlternateHTMLStringFromProvisionalLoadError test
https://bugs.webkit.org/show_bug.cgi?id=146309
<rdar://problem/21476651>

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
Null-check. _gestureController can be null if allowsBackForwardNavigationGestures is NO.

12:54 AM Changeset in webkit [185951] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the iOS EWS build.

  • platform/spi/cocoa/SecuritySPI.h:
12:51 AM Changeset in webkit [185950] by Carlos Garcia Campos
  • 12 edits
    3 adds in trunk

[GTK] Add initial WebKitWebsiteDataManager API for process configuration options
https://bugs.webkit.org/show_bug.cgi?id=146149

Reviewed by Sergio Villar Senin.

Source/WebKit2:

Add WebKitWebsiteDataManager to replace the different ways we have
to configure data store
directories. WebKitWebContext:indexed-db-directory property has
been removed, since it was added only in trunk, and
WebKitWebContext:local-storage-directory has been deprecated. The
method webkit_web_context_set_disk_cache_directory() has been
deprecated too in favor of WebKitWebsiteDataManager.

  • PlatformGTK.cmake: Add new files to compilation.
  • UIProcess/API/gtk/WebKitPrivate.h: Move networkCacheSubdirectory

definition here.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextGetProperty): Replace indexed-db-directory getter
with website-data-manager one.
(webkitWebContextSetProperty): Replace indexed-db-directory setter
with website-data-manager one.
(webkitWebContextConstructed): Use the user provided
WebKitWebsiteDataManager to configure the context or create a
default WebKitWebsiteDataManager if not provided.
(webkit_web_context_class_init): Replace indexed-db-directory
property with website-data-manager.
(webkit_web_context_new_with_website_data_manager):
(webkit_web_context_get_website_data_manager):
(webkitWebContextCreatePageForWebView): Get the WebsiteDataStore
from the WebKitWebsiteDataManager.

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.cpp: Added.

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerCreate):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_new):
(webkit_website_data_manager_get_local_storage_directory):
(webkit_website_data_manager_get_disk_cache_directory):
(webkit_website_data_manager_get_offline_application_cache_directory):
(webkit_website_data_manager_get_indexeddb_directory):
(webkit_website_data_manager_get_websql_directory):

  • UIProcess/API/gtk/WebKitWebsiteDataManager.h: Added.
  • UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add webkit_website_data_manager_get_type.
  • UIProcess/API/gtk/webkit2.h: Include WebKitWebsiteDataManager.h.

Tools:

Update unit tests to use WebKitWebsiteDataManager.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(testWebContextConfiguration):
(serverCallback):

  • TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h:

(Test::Test): Use WebKitWebsiteDataManager and set all possible
values to ensure unit tests don't write outside the temporary directory.
(Test::~Test): Explicitly reset the web context to ensure its
objects are released before the leaks check.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::wait): Fix the GSource used, since we are receiving
a double in seconds, but using g_timeout_add_seconds() that
expects an unsigned in seconds. Use GMainLoopSource to correctly
handle the value and simplify the code.

12:15 AM Changeset in webkit [185949] by Carlos Garcia Campos
  • 7 edits
    1 copy in trunk/Source/WebKit2

[GTK] Do not use legacy data store options in WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=146145

Reviewed by Gustavo Noronha Silva.

Use a custom WebsiteDataStore in WebKitWebContext, configured with
the context options, and passed to every page created. This is in
preparation for exposing WebsiteDataStore in the public API.

  • PlatformGTK.cmake: Add APIWebsiteDataStore.cpp to compilation.
  • UIProcess/API/APIWebsiteDataStore.cpp:
  • UIProcess/API/gtk/APIWebsiteDataStoreGtk.cpp:

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(websiteDataStoreConfigurationForWebProcessPoolConfiguration):
Helper function to create the WebsiteDataStore configuration with
the WebProcessPool configuration options.
(webkitWebContextConstructed): Do not create a
WebProcessPoolConfiguration with legacy options and create a WebsiteDataStore.
(webkitWebContextCreatePageForWebView): Set the WebsiteDataStore
and session ID in web page configuration.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCreate): Create a WebPageConfiguration for the
given options and pass it to webkitWebViewBaseCreateWebPage.
(webkitWebViewBaseCreateWebPage): It receives now a
WebPageConfiguration, instead of creating it based on the given parameters.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/gtk/WebProcessPoolGtk.cpp: Use WebsiteDataStore default configuration.

(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):

12:13 AM Changeset in webkit [185948] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Empty gtk-font-name setting causes WebProcess crash rendering pages
https://bugs.webkit.org/show_bug.cgi?id=146246

Reviewed by Sergio Villar Senin.

Return early if system font is empty.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::updateCachedSystemFontDescription):

Jun 24, 2015:

10:32 PM Changeset in webkit [185947] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed gardening, test rebaseline on Windows after r185934.

  • platform/win/fast/css/apple-system-colors-expected.txt:
10:20 PM Changeset in webkit [185946] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, EFL build fix after r185940.

Members were initialized in wrong order.

  • Modules/mediastream/MediaDeviceInfo.cpp:

(WebCore::MediaDeviceInfo::MediaDeviceInfo):

10:11 PM Changeset in webkit [185945] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, Build fix after r185940.

Move implementation inside WebCore namespace.

  • Modules/mediastream/MediaDeviceInfo.cpp:
10:02 PM Changeset in webkit [185944] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative GTK build fix after 185940.

Add new cpp file to CMakeLists.txt.

  • CMakeLists.txt:
9:49 PM Changeset in webkit [185943] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, speculative build fix after r185942.

Add missing include for StrongInlines.h.

  • runtime/ArrayPrototype.cpp:
9:32 PM Changeset in webkit [185942] by Darin Adler
  • 3 edits in trunk/Source/JavaScriptCore

Optimize Array.join and Array.reverse for high speed array types
https://bugs.webkit.org/show_bug.cgi?id=146275

Reviewed by Mark Lam.

This seems to yield another 17% speed improvement in the array
test from the Peacekeeper benchmark.

  • runtime/ArrayPrototype.cpp:

(JSC::isHole): Added. Helper to check for holes.
(JSC::containsHole): Ditto.
(JSC::arrayProtoFuncJoin): Added special cases for the various types
of arrays that could be in a butterfly.
(JSC::arrayProtoFuncReverse): Ditto.

  • runtime/JSStringJoiner.h: Made appendEmptyString public so we can

call it from the new parts of Array.join.

9:06 PM Changeset in webkit [185941] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

DFG::SpeculativeJIT shouldn't use filter==Contradiction when it meant isClear
https://bugs.webkit.org/show_bug.cgi?id=146291
rdar://problem/21435366

Reviewed by Michael Saboff.

The filter() method returns Contradiction only when a value *becomes* clear. This is
necessary for supporting the convention that non-JSValue nodes have a bottom proved
type. (We should fix that convention eventually, but for now let's just be consistent
about it.)

  • dfg/DFGFiltrationResult.h: Document the issue.
  • dfg/DFGSpeculativeJIT32_64.cpp: Work around the issue.

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):

  • dfg/DFGSpeculativeJIT64.cpp: Work around the issue.

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):

6:15 PM Changeset in webkit [185940] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/Source/WebCore

Building MediaDeviceInfo for enumerateDevices
https://bugs.webkit.org/show_bug.cgi?id=146257
<rdar://problem/21513462>

Patch by Matt Daiter <mdaiter@apple.com> on 2015-06-24
Reviewed by Eric Carlson.

MediaDeviceInfo necessary for enumerateDevices

  • CMakeLists.txt: Added MediaDevicesInfo.idl
  • DerivedSources.make: Added MediaDevicesInfo.idl
  • Modules/mediastream/MediaDeviceInfo.h: Created class for MediaDevicesInfo

(WebCore::MediaDeviceInfo::create): Allocates class
(WebCore::MediaDeviceInfo::MediaDeviceInfo): Creates class for public
(WebCore::MediaDeviceInfo::~MediaDeviceInfo):
(WebCore::MediaDeviceInfo::label):
(WebCore::MediaDeviceInfo::deviceId):
(WebCore::MediaDeviceInfo::groupId):
(WebCore::MediaDeviceInfo::kind):

  • Modules/mediastream/MediaDeviceInfo.idl:
  • WebCore.xcodeproj/project.pbxproj:
5:35 PM Changeset in webkit [185939] by andersca@apple.com
  • 5 edits in trunk/Source

Detect view services by using the "com.apple.UIKit.vends-view-services" entitlement
https://bugs.webkit.org/show_bug.cgi?id=146301

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/cocoa/SecuritySPI.h:

Source/WebKit2:

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::hasEntitlement):
(WebKit::isViewService):

5:33 PM Changeset in webkit [185938] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.35.2.4/Source

Versioning.

5:26 PM Changeset in webkit [185937] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.35.2.4

New tag.

4:56 PM Changeset in webkit [185936] by andersca@apple.com
  • 5 edits
    1 move in trunk/Source/WebKit2

WebContent process is unreponsive/idle when WKWebView is inside a view service.
https://bugs.webkit.org/show_bug.cgi?id=146296

Reviewed by Tim Horton.

  • Platform/spi/ios/AssertionServicesSPI.h: Renamed from Source/WebKit2/Platform/spi/ios/BKSProcessAssertionSPI.h.

Rename this and add SPI for BKSApplicationStateMonitor.

  • Platform/spi/ios/UIKitSPI.h:

Add _UIApplicationIsExtension SPI.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::isViewService):
Return whether we're an extension or the safari view controller service.

(WebKit::isBackgroundState):
Helper function that returns whether a given BKSApplicationState is a background state.

(WebKit::ApplicationStateTracker::ApplicationStateTracker):
If we're a view service, create a BKSApplicationStateMonitor and listen for state changes for our pid.

  • UIProcess/ios/ProcessAssertionIOS.mm:

Update #import.

  • WebKit2.xcodeproj/project.pbxproj:

Update for rename.

4:54 PM Changeset in webkit [185935] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Pressing tab in the styles sidebar shouldn't insert a tab character
https://bugs.webkit.org/show_bug.cgi?id=146189

Patch by Devin Rousso <Devin Rousso> on 2015-06-24
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/CodeMirrorCompletionController.js: Added variable to control whether semicolons are added to the end of autocompleted css values.

(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.set noEndingSemicolon):
(WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorSwitchRule):
(WebInspector.CSSStyleDeclarationSection.prototype.focusRuleSelector):
(WebInspector.CSSStyleDeclarationSection.prototype.selectLastProperty):
(WebInspector.CSSStyleDeclarationSection.prototype.get selectorLocked):
(WebInspector.CSSStyleDeclarationSection.prototype.get locked):
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor): Added functions for "Tab", "Shift-Tab", and "Shift-Enter" keypresses to improve usability.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty): Highlights the first property.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty): Highlights the last property.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine): Inserts a newline after the currently selected line.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Pressing shift-tab will move the cursor to the previous non-word character that is immediately after a word character.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will move the cursor to each space character until the end of the line is reached, at
which point the cursor will move to the beginning of the next line. Once the cursor is at the last line, pressing tab again will insert a newline.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorNextRule): Switches the focused rule to the next section.
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorPrevRule): Switches the focused rule to the previous section.

4:48 PM Changeset in webkit [185934] by commit-queue@webkit.org
  • 13 edits in trunk

Add a new color -apple-wireless-playback-target-active
https://bugs.webkit.org/show_bug.cgi?id=146269
<rdar://problem/21465189>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-24
Reviewed by Dean Jackson.

Source/WebCore:

At the moment we use -apple-system-blue to indicate an Airplay route is
active. This might not always be blue, so we need to add another system
color with a name that will allow us to change the underlying color.
Initially -apple-wireless-playback-target-active will be an alias to
-apple-system-blue.

Existing tests are modified to include the new color value.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateWirelessTargetPickerButton):

  • Modules/mediacontrols/mediaControlsiOS.css:

(video::-webkit-media-controls-wireless-playback-picker-button.playing):
Use the new color value in the media controls.

  • css/CSSParser.cpp:

(WebCore::isAppleLegacyCssValueKeyword): Returns true if the value keyword
has an '-apple' prefix which has to be replaced by '-webkit'

(WebCore::cssValueKeywordID): Call a new function which handles all the
'-apple' legacy keywords.

  • css/CSSValueKeywords.in: Define the new color keyword.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor):
Define the value of the new color keyword to be an alias of systemBlueColor.

LayoutTests:

Modify existing tests to include the new color value.

  • fast/css/apple-system-colors-expected.txt:
  • fast/css/apple-system-colors.html:
  • platform/ios-simulator/fast/css/apple-system-colors-expected.txt:
  • platform/mac-mavericks/fast/css/apple-system-colors-expected.txt:
  • platform/mac/fast/css/apple-system-colors-expected.txt:
4:44 PM Changeset in webkit [185933] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: console.group looks poor in console
https://bugs.webkit.org/show_bug.cgi?id=146295

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

String for the default group name if you use console.group() without a name parameter.

  • UserInterface/Views/LogContentView.css:

(.console-group-title::before):
Tweak the positioning and eliminate the log level ::before image.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
Reorder a bit to reduce a couple branches.

(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
Take a very straightforward approach for group names.

3:50 PM Changeset in webkit [185932] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Crash on gog.com due to PolymorphicCallNode's having stale references to CallLinkInfo
https://bugs.webkit.org/show_bug.cgi?id=146285

Reviewed by Filip Pizlo.

CallLinkInfo's contain a RefPtr to a PolymorphicCallStubRoutine, named stub, which contains
a collection of PolymorphicCallNode. Those PolymorphicCallNodes have a reference back to the
CallLinkInfo. When a CallLinkInfo replaces or clears "stub", the ref count of the
PolymorphicCallStubRoutine is decremented as expected, but since it inherits from
GCAwareJITStubRoutine, it isn't actually deleted until GC. In the mean time, the original
CallLinkInfo can go away. If PolymorphicCallNode::unlink() is called at that point,
it will try to unlink a now deleted CallLinkInfo and crash as a result.

The fix is to clear the CallLinkInfo references from any PolymorphicCallNode objects when
when we set a new stub or clear an existing stub for a CallLinkInfo. This is done by
calling PolymorphicCallNode::clearCallNodesFor() on the old stub.

The prior code would only call clearCallNodesFor() from the CallLinkInfo destructor.
This only took care of the last PolymorphicCallStubRoutine held in the CallLinkInfo.
Any prior PolymorphicCallStubRoutine would still have a, now bad, reference to the CallLinkInfo.

In the process I refactored CallLinkInfo from a struct to a class with proper accessors and
made all the data elements private.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::clearStub): Updated to call PolymorphicCallStubRoutine::clearCallNodesFor()
to clear the back references to this CallLinkInfo.

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::~CallLinkInfo): Moved clearCallNodesFor() call to clearStub().
(JSC::CallLinkInfo::setStub): Clear any prior stub before changing to the new stub.

3:41 PM Changeset in webkit [185931] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Work towards: Add status of Safari projects on iOS Dashboard on build-safari
https://bugs.webkit.org/show_bug.cgi?id=146126
<rdar://problem/18226291>

Patch by Jason Marcell <jmarcell@apple.com> on 2015-06-24
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(documentReady): Using combined queues to display iOS projects

3:37 PM Changeset in webkit [185930] by msaboff@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Refactor CallLinkInfo from a struct to a class
https://bugs.webkit.org/show_bug.cgi?id=146292

Rubber stamped by Filip Pizlo.

Refactored CallLinkInfo from a struct to a class with proper accessors and made all the
data elements private.

Done in preparation for fixing https://bugs.webkit.org/show_bug.cgi?id=146285.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::clearStub):
(JSC::CallLinkInfo::unlink):
(JSC::CallLinkInfo::visitWeak):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::callTypeFor):
(JSC::CallLinkInfo::CallLinkInfo):
(JSC::CallLinkInfo::~CallLinkInfo):
(JSC::CallLinkInfo::specializationKindFor):
(JSC::CallLinkInfo::specializationKind):
(JSC::CallLinkInfo::isLinked):
(JSC::CallLinkInfo::setUpCall):
(JSC::CallLinkInfo::setCallLocations):
(JSC::CallLinkInfo::setUpCallFromFTL):
(JSC::CallLinkInfo::callReturnLocation):
(JSC::CallLinkInfo::hotPathBegin):
(JSC::CallLinkInfo::hotPathOther):
(JSC::CallLinkInfo::setCallee):
(JSC::CallLinkInfo::clearCallee):
(JSC::CallLinkInfo::callee):
(JSC::CallLinkInfo::setLastSeenCallee):
(JSC::CallLinkInfo::clearLastSeenCallee):
(JSC::CallLinkInfo::lastSeenCallee):
(JSC::CallLinkInfo::haveLastSeenCallee):
(JSC::CallLinkInfo::setStub):
(JSC::CallLinkInfo::stub):
(JSC::CallLinkInfo::seenOnce):
(JSC::CallLinkInfo::clearSeen):
(JSC::CallLinkInfo::setSeen):
(JSC::CallLinkInfo::hasSeenClosure):
(JSC::CallLinkInfo::setHasSeenClosure):
(JSC::CallLinkInfo::clearedByGC):
(JSC::CallLinkInfo::setCallType):
(JSC::CallLinkInfo::callType):
(JSC::CallLinkInfo::addressOfMaxNumArguments):
(JSC::CallLinkInfo::maxNumArguments):
(JSC::CallLinkInfo::offsetOfSlowPathCount):
(JSC::CallLinkInfo::setCalleeGPR):
(JSC::CallLinkInfo::calleeGPR):
(JSC::CallLinkInfo::slowPathCount):
(JSC::CallLinkInfo::setCodeOrigin):
(JSC::CallLinkInfo::codeOrigin):
(JSC::getCallLinkInfoCodeOrigin):

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeFromCallLinkInfo):
(JSC::CallLinkStatus::computeDFGStatuses):

  • bytecode/CallLinkStatus.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printCallOp):
(JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • ftl/FTLJSCallBase.cpp:

(JSC::FTL::JSCallBase::link):

  • jit/AccessorCallJITStubRoutine.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileOpCall):

  • jit/JITOperations.cpp:
  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallNode::unlink):
(JSC::PolymorphicCallNode::clearCallLinkInfo):

  • jit/PolymorphicCallStubRoutine.h:
  • jit/Repatch.cpp:

(JSC::generateByIdStub):
(JSC::linkSlowFor):
(JSC::linkFor):
(JSC::revertCall):
(JSC::unlinkFor):
(JSC::linkPolymorphicCall):

  • jit/ThunkGenerators.cpp:

(JSC::virtualForThunkGenerator):

3:36 PM Changeset in webkit [185929] by mrajca@apple.com
  • 11 edits in trunk/Source

MediaSession: propagate MediaSessionMetadata to WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=146282

Reviewed by Darin Adler and Tim Horton.

WebCore:

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::setMetadata):

WebKit2:

  • Shared/WebCoreArgumentCoders.cpp: Added ArgumentEncoder support for MediaSessionMetadata so we can send it through the web page proxy.

(IPC::ArgumentCoder<MediaSessionMetadata>::encode):
(IPC::ArgumentCoder<MediaSessionMetadata>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::mediaSessionMetadataDidChange):

  • UIProcess/WebPageProxy.h: Receive mediaSessionMetadataDidChange in the web page proxy.
  • UIProcess/WebPageProxy.messages.in: Added a new MediaSessionMetadataDidChange message.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::mediaSessionMetadataDidChange): Push a mediaSessionMetadataDidChange message through the web page proxy.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
3:17 PM Changeset in webkit [185928] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Show warning icon for invalid CSS properties and/or values
https://bugs.webkit.org/show_bug.cgi?id=145657

Patch by Devin Rousso <Devin Rousso> on 2015-06-24
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSCompletions.js:

(WebInspector.CSSCompletions.prototype.getClosestPropertyName): Calculates the levenshtein distance between a given property and every existing property name. Returns the property name with the smallest distance or, in the case of multiple properties having the same distance, the first property in alphabetical order.
(WebInspector.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Retruns if the property name exists only with a '-webkit-' prefix.
(WebInspector.CSSCompletions):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker.clickable:hover):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.duplicatePropertyExistsBelow): Determines if there exists a property below (visually) the given property that has the same name.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.generateInvalidMarker): Creates a warning icon marker at the given position with the given title.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.instancesOfProperty): Returns the number of properties in the rule that have the same name.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): A button with a warning icon is now added to the beginning of an invalid property. If this button is clicked, the property is replaced with the closest matching property and the autocomplete menu is opened.

2:43 PM Changeset in webkit [185927] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Null dereference in DocumentLoader::areAllLoadersPageCacheAcceptable()
https://bugs.webkit.org/show_bug.cgi?id=146286
<rdar://problem/21523788>

Reviewed by Sam Weinig.

Add null check for the Page in areAllLoadersPageCacheAcceptable()
to fix this top crasher until I can investigate how this can happen.

  • loader/DocumentLoader.cpp:

(WebCore::areAllLoadersPageCacheAcceptable):

2:34 PM Changeset in webkit [185926] by andersca@apple.com
  • 11 edits
    2 moves in trunk/Source

Move PluginMainThreadScheduler to WebKit/win
https://bugs.webkit.org/show_bug.cgi?id=146289

Reviewed by Tim Horton.

Source/WebCore:

  • CMakeLists.txt:
  • Configurations/WebCore.xcconfig:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • plugins/PluginMainThreadScheduler.cpp:

(WebCore::PluginMainThreadScheduler::scheduler): Deleted.
(WebCore::PluginMainThreadScheduler::PluginMainThreadScheduler): Deleted.
(WebCore::PluginMainThreadScheduler::scheduleCall): Deleted.
(WebCore::PluginMainThreadScheduler::registerPlugin): Deleted.
(WebCore::PluginMainThreadScheduler::unregisterPlugin): Deleted.
(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin): Deleted.
(WebCore::PluginMainThreadScheduler::dispatchCalls): Deleted.
(WebCore::PluginMainThreadScheduler::mainThreadCallback): Deleted.

  • plugins/PluginMainThreadScheduler.h:

(WebCore::PluginMainThreadScheduler::Call::Call): Deleted.
(WebCore::PluginMainThreadScheduler::Call::performCall): Deleted.

Source/WebKit:

  • WebKit.vcxproj/WebKit/WebKit.vcxproj:
  • WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:

Source/WebKit/win:

  • Plugins/PluginMainThreadScheduler.cpp: Renamed from Source/WebCore/plugins/PluginMainThreadScheduler.cpp.

(WebCore::PluginMainThreadScheduler::scheduler):
(WebCore::PluginMainThreadScheduler::PluginMainThreadScheduler):
(WebCore::PluginMainThreadScheduler::scheduleCall):
(WebCore::PluginMainThreadScheduler::registerPlugin):
(WebCore::PluginMainThreadScheduler::unregisterPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCalls):
(WebCore::PluginMainThreadScheduler::mainThreadCallback):

  • Plugins/PluginMainThreadScheduler.h: Renamed from Source/WebCore/plugins/PluginMainThreadScheduler.h.

(WebCore::PluginMainThreadScheduler::Call::Call):
(WebCore::PluginMainThreadScheduler::Call::performCall):

  • Plugins/PluginView.cpp:
1:54 PM Changeset in webkit [185925] by dino@apple.com
  • 7 edits in trunk/Source/WebCore

Better fix for Element with blur backdrop-filter shows edge duplication and dark edges
https://bugs.webkit.org/show_bug.cgi?id=146287
<rdar://problem/21530437>

Reviewed by Simon Fraser.

There is no need to carry around a bit in FilterOperations indicating what
type of source property the object came from. Whether or not to clip to the
bounds of the filter region is purely a property of the type of CALayer
we are applying the filter to.

This basically reverts r185846.

Covered by the test for the previous commit.

  • css/CSSPropertyNames.in:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertBackdropFilterOperations): Deleted.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFilterOperations): Deleted.

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: Set the normalized

edges property if we are a CABackdropLayer.

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::operator==):
(WebCore::FilterOperations::operationsMatch):
(WebCore::FilterOperations::operator=): Deleted.

  • platform/graphics/filters/FilterOperations.h:

(WebCore::FilterOperations::isUsedForBackdropFilters): Deleted.
(WebCore::FilterOperations::setUsedForBackdropFilters): Deleted.

1:51 PM Changeset in webkit [185924] by commit-queue@webkit.org
  • 13 edits
    2 adds in trunk

Source/JavaScriptCore:
Bug 146177 - AX: AXObjectCache should try to use an unignored accessibilityObject
when posting a selection notification when on the border between two accessibilityObjects
https://bugs.webkit.org/show_bug.cgi?id=146177

Add an adopt() function to simplify JSRetainPtr<JSStringRef> { Adopt, string } to adopt(string).

Patch by Doug Russell <d_russell@apple.com> on 2015-06-24
Reviewed by Darin Adler.

  • API/JSRetainPtr.h:

(adopt):

Source/WebCore:
Bug 146177 - AX: AXObjectCache should try to use an unignored accessibilityObject
when posting a selection notification when on the border between two accessibilityObjects
https://bugs.webkit.org/show_bug.cgi?id=146177

Patch by Doug Russell <d_russell@apple.com> on 2015-06-24
Reviewed by Darin Adler.

Add support for position to be passed for selection changes to allow checking.
for boundaries in the case of ignored elements.
Add support for searching for unignored siblings of AccessibilityObjects.
Include AccessibilityObject wrappers in notifications for tests.

Test: platform/mac/accessibility/selection-element-tabbing-to-link.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postTextStateChangeNotification):

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::previousSiblingUnignored):
(WebCore::AccessibilityObject::nextSiblingUnignored):

  • accessibility/AccessibilityObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(isValueTypeSupported):
(arrayRemovingNonSupportedTypes):
(dictionaryRemovingNonSupportedTypes):
(-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]):

  • editing/mac/FrameSelectionMac.mm:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

Tools:
Bug 146177 - AX: AXObjectCache should try to use an unignored accessibilityObject
when posting a selection notification when on the border between two accessibilityObjects
https://bugs.webkit.org/show_bug.cgi?id=146177

Patch by Doug Russell <d_russell@apple.com> on 2015-06-24
Reviewed by Darin Adler.

Add support for mapping WebCore Accessibility types into JSValueRef types
so they can be used in tests.

  • DumpRenderTree/mac/AccessibilityNotificationHandler.mm:

(webAccessibilityObjectWrapperClass):
(-[AccessibilityNotificationHandler startObserving]):
(makeValueRefForValue):
(makeArrayRefForArray):
(makeObjectRefForDictionary):
(-[AccessibilityNotificationHandler _notificationReceived:]):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:

(webAccessibilityObjectWrapperClass):
(-[AccessibilityNotificationHandler startObserving]):
(makeValueRefForValue):
(makeArrayRefForArray):
(makeObjectRefForDictionary):
(-[AccessibilityNotificationHandler _notificationReceived:]):

LayoutTests:
Bug 146177 - AX: AXObjectCache should try to use an unignored accessibilityObject
when posting a selection notification when on the border between two accessibilityObjects
https://bugs.webkit.org/show_bug.cgi?id=146177

Add test for forward and backward tabbing between links and corresponding notifications
change element

Patch by Doug Russell <d_russell@apple.com> on 2015-06-24
Reviewed by Darin Adler.

  • platform/mac/accessibility/selection-element-tabbing-to-link-expected.txt: Added.
  • platform/mac/accessibility/selection-element-tabbing-to-link.html: Added.
1:48 PM Changeset in webkit [185923] by andersca@apple.com
  • 19 edits in trunk/Source/WebCore

Enable -Winconsistent-missing-override when building with Xcode
https://bugs.webkit.org/show_bug.cgi?id=146288

Reviewed by Sam Weinig.

  • Configurations/Base.xcconfig:
  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/webdatabase/DatabaseTask.h:
  • html/DateTimeLocalInputType.h:
  • page/scrolling/ios/ScrollingCoordinatorIOS.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::platformLayer): Deleted.
(WebCore::MediaPlayerPrivateAVFoundation::supportsScanning): Deleted.
(WebCore::MediaPlayerPrivateAVFoundation::fileSize): Deleted.
(WebCore::MediaPlayerPrivateAVFoundation::engineDescription): Deleted.
(WebCore::MediaPlayerPrivateAVFoundation::platformErrorCode): Deleted.
(WebCore::MediaPlayerPrivateAVFoundation::notifyTrackModeChanged): Deleted.

  • platform/graphics/avfoundation/VideoTrackPrivateAVF.h:

(WebCore::VideoTrackPrivateAVF::trackIndex): Deleted.

  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:

(WebCore::CDMSessionAVFoundationObjC::type): Deleted.

  • platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:

(WebCore::CDMSessionMediaSourceAVFObjC::type): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsAcceleratedRendering): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayToWirelessPlaybackTarget): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedCredential): Deleted.
(WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedRequestToContinueWithoutCredential): Deleted.
(WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedCancellation): Deleted.
(WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedRequestToPerformDefaultHandling): Deleted.
(WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedChallengeRejection): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsFullscreen): Deleted.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:

(WebCore::MediaPlayerPrivateQTKit::supportsScanning): Deleted.
(WebCore::MediaPlayerPrivateQTKit::networkState): Deleted.
(WebCore::MediaPlayerPrivateQTKit::readyState): Deleted.
(WebCore::MediaPlayerPrivateQTKit::maximumDurationToCacheMediaTime): Deleted.
(WebCore::MediaPlayerPrivateQTKit::engineDescription): Deleted.

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/SerializedPlatformRepresentationMac.h:

(WebCore::SerializedPlatformRepresentationMac::platformType): Deleted.

  • platform/mac/ThemeMac.h:

(WebCore::ThemeMac::controlRequiresPreWhiteSpace): Deleted.

  • testing/MockCDM.cpp:

(WebCore::MockCDMSession::setClient): Deleted.

1:32 PM Changeset in webkit [185922] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Mac] A checkmark is briefly visible next to the webpage context menu items when they're clicked
https://bugs.webkit.org/show_bug.cgi?id=146284
<rdar://problem/20297182>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-24
Reviewed by Darin Adler.

The default value of [NSPopUpButtonCell altersStateOfSelectedItem] is YES.
This makes the popup menu items checkable by default. We need to change the
value of this attribute to NO when creating the popup menu, so the items
are uncheckable. The value of this property needs to change back to YES
if context menu is about selecting an option and not executing a command.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::populate):

1:24 PM Changeset in webkit [185921] by Joseph Pecoraro
  • 1 edit
    12 adds in trunk/Websites/webkit.org

Add some images for a blog post.

  • blog-files/console-improvements/array-api.png: Added.
  • blog-files/console-improvements/collections.png: Added.
  • blog-files/console-improvements/console-messages.png: Added.
  • blog-files/console-improvements/interactivity.m4v: Added.
  • blog-files/console-improvements/iterators.png: Added.
  • blog-files/console-improvements/localStorage-api.png: Added.
  • blog-files/console-improvements/object-preview.png: Added.
  • blog-files/console-improvements/object-tree.png: Added.
  • blog-files/console-improvements/promises.png: Added.
  • blog-files/console-improvements/tooltip-1.png: Added.
  • blog-files/console-improvements/tooltip-2.png: Added.
12:13 PM Changeset in webkit [185920] by commit-queue@webkit.org
  • 10 edits
    4 adds in trunk

Strict Equality on objects should only check that one of the two sides is an object.
https://bugs.webkit.org/show_bug.cgi?id=145992

Source/JavaScriptCore:

This patch adds a new optimization for checking strict equality on objects.
If we speculate that a strict equality comparison has an object on one side
we only need to type check that side. Equality is then determined by a pointer
comparison between the two values (although in the 32-bit case we must also check
that the other side is a cell). Once LICM hoists type checks out of a loop we
can be cleverer about how we choose the operand we type check if both are
speculated to be objects.

For testing I added the addressOf function, which returns the address
of a Cell to the runtime.

Patch by Keith Miller <keith_miller@apple.com> on 2015-06-24
Reviewed by Mark Lam.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileStrictEq):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectStrictEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectStrictEquality):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectStrictEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectStrictEquality):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareStrictEq):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionAddressOf):

  • tests/stress/equality-type-checking.js: Added.

(Foo):
(checkStrictEq):
(checkStrictEqOther):

LayoutTests:

Patch by Keith Miller <keith_miller@apple.com> on 2015-06-24
Reviewed by Mark Lam.

Adds a test that checks if strict equality checks with objects properly exit out of DFG code when
dealing with document.all, which is an object that masquerades as undefined.

  • js/dom/document-all-strict-eq-expected.txt: Added.
  • js/dom/document-all-strict-eq.html: Added.
  • js/dom/script-tests/document-all-strict-eq.js: Added.

(f):

12:08 PM Changeset in webkit [185919] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Improve JSDOMPromise callPromiseFunction naming
https://bugs.webkit.org/show_bug.cgi?id=146280

Unreviewed.

No change in behavior.

  • bindings/js/JSDOMPromise.h:

(WebCore::callPromiseFunction):

11:41 AM Changeset in webkit [185918] by mmaxfield@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

[Win] Test gardening for fast/text/font-weight{,-zh}.html
https://bugs.webkit.org/show_bug.cgi?id=146266
<rdar://problem/21391628>
<rdar://problem/21391673>

Unreviewed.

  • platform/win/fast/text/font-weights-expected.png: Added.
  • platform/win/fast/text/font-weights-expected.txt: Added.
  • platform/win/fast/text/font-weights-zh-expected.png: Added.
  • platform/win/fast/text/font-weights-zh-expected.txt: Added.
10:57 AM Changeset in webkit [185917] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r185804): Crash selecting time in the form on https://backup.brighthorizons.com/BackupCareRequest.aspx
<rdar://problem/21525376>

Reviewed by Sam Weinig.

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
Null check.

10:53 AM Changeset in webkit [185916] by Alan Bujtas
  • 4 edits in trunk

Subpixel rendering: roundToDevicePixel() snaps to wrong value.
https://bugs.webkit.org/show_bug.cgi?id=146273
rdar://problem/18509840

Reviewed by Simon Fraser.

Due to the floating point approximate representation, we can't always produce
the correct snap value. This patch addresses the issue by removing redundant kFixedPointDenominator multiplication
and by changing the rounding in roundToDevicePixel() from float to double.

Source/WebCore:

API test is added.

  • platform/LayoutUnit.h:

(WebCore::roundToDevicePixel):

Tools:

  • TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp:

(TestWebKitAPI::TEST):

10:21 AM WebKitGTK/2.8.x edited by berto@igalia.com
(diff)
9:57 AM Changeset in webkit [185915] by beidson@apple.com
  • 11 edits
    1 copy in trunk

Update JavaScript dialog delegates to include a WKSecurityOriginRef argument.
<rdar://problem/21269187> and https://bugs.webkit.org/show_bug.cgi?id=146249

Reviewed by Alex Christensen.

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient): Call the new signature if the client has it set.

Otherwise fall back to the old signature.

  • UIProcess/API/C/WKPageUIClient.h: Deprecate the old method signature, and add the new one to the newest V5 client structure.

Tools:

  • Update WKTR to the new client structure.
  • Update existing TestWebKitAPI tests to either use the new client structure or assign the old function signature to the updated variable name.
  • Include a new test.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/CloseFromWithinCreatePage.cpp:

(TestWebKitAPI::runJavaScriptAlert):

  • TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/ModalAlertsSPI.cpp:

(TestWebKitAPI::analyzeDialogArguments):
(TestWebKitAPI::runJavaScriptAlert):
(TestWebKitAPI::runJavaScriptConfirm):
(TestWebKitAPI::runJavaScriptPrompt):
(TestWebKitAPI::createNewPage):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm:

(TestWebKitAPI::FullscreenZoomInitialFrame::initializeView):

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:

(TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):

9:38 AM Changeset in webkit [185914] by mrajca@apple.com
  • 5 edits
    1 copy in trunk/Source/WebCore

MediaSession: Support setting of metadata
https://bugs.webkit.org/show_bug.cgi?id=146253

Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Store a reference to the document so we can use it in setMetadata.
(WebCore::MediaSession::setMetadata): Implemented as described in the Media Session spec.

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSession.idl: Added the setMetadata method.
  • Modules/mediasession/MediaSessionMetadata.h:

(WebCore::MediaSessionMetadata::MediaSessionMetadata): Added to keep track of media session metadata.
(WebCore::MediaSessionMetadata::title):
(WebCore::MediaSessionMetadata::artist):
(WebCore::MediaSessionMetadata::album):
(WebCore::MediaSessionMetadata::artworkURL):

  • WebCore.xcodeproj/project.pbxproj: Added MediaSessionMetadata.h.
9:36 AM Changeset in webkit [185913] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Background of Computed Styles is missing
https://bugs.webkit.org/show_bug.cgi?id=146209

Patch by Devin Rousso <Devin Rousso> on 2015-06-24
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.computed-style-properties.details-section): Added white background.

8:54 AM Changeset in webkit [185912] by dbates@webkit.org
  • 5 edits in trunk

Content Security Policy error message when frame load is blocked does not read well
https://bugs.webkit.org/show_bug.cgi?id=146279

Reviewed by Csaba Osztrogonác.

Source/WebCore:

Substitute "Refused to load frame" for "Refused to frame" as the prefix of the error message
emitted when the Content Security Policy of the page blocks a frame load.

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPDirectiveList::checkSourceAndReportViolation):

LayoutTests:

Update expected results.

  • http/tests/security/contentSecurityPolicy/frame-src-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/frame-src-redirect-blocked-expected.txt:
8:32 AM Changeset in webkit [185911] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Right/Left arrow no longer works in console to expand/collapse ObjectTrees
https://bugs.webkit.org/show_bug.cgi?id=141949

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-24
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.get expandable):
(WebInspector.ConsoleMessageView.prototype.set expandable): Deleted.
(WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
(WebInspector.ConsoleMessageView.prototype._makeExpandable):
Clarify what makes a ConsoleMessageView expandable or not.

(WebInspector.ConsoleMessageView.prototype.expand):
(WebInspector.ConsoleMessageView.prototype.collapse):
Handle the expand/collapse cases which could apply to the
ConsoleMessageView itself or an inner ObjectTreeView if that is all we contain.

(WebInspector.ConsoleMessageView.prototype._formatParameterAsObject):
Delete out of date comment. A console.log("message", obj) will want the
object tree member variable to handle auto expanding/collapsing of the
single object in the message.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._leftArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed):
Use the higher level ConsoleMessageView objects accessible from the element
to call through to expand/collapse.

7:47 AM Changeset in webkit [185910] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTests/http/tests/security/contentSecurityPolicy/media-src-track-block.html always passes
https://bugs.webkit.org/show_bug.cgi?id=146272

Reviewed by Darin Adler.

Fixes an issue where the test LayoutTests/http/tests/security/contentSecurityPolicy/media-src-track-block.html
will always pass regardless of whether the Content Security Policy <meta> tag is present because
the external text track file is not valid WebVTT-formatted file.

The test verifies that the external text track file LayoutTests/http/tests/security/contentSecurityPolicy/resources/track.vtt
fails to load when the Content Security Policy of the page disallows loading of all media (media-src: "none")
by listening for a DOM error event to be dispatched to the <track>. And the text track file is not a valid
WebVTT-formatted file. So, it will always fail to load; => a DOM error event is always dispatched to the
<track>; => the test always passes.

  • http/tests/security/contentSecurityPolicy/resources/track.vtt:
7:18 AM Changeset in webkit [185909] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fixed assertion in JSStringJoiner::join() (regression from r185899).

Not reviewed.

JSStringJoiner did not account for the case where the array being joined can
have null or undefined elements. As a result, its size may be less than
its initially reserved capacity (which was estimated based on the array length).

  • runtime/JSStringJoiner.cpp:

(JSC::JSStringJoiner::join):

6:36 AM Changeset in webkit [185908] by svillar@igalia.com
  • 15 edits
    1 copy
    19 adds in trunk

intrinsic size keywords don't work for heights
https://bugs.webkit.org/show_bug.cgi?id=113610

Reviewed by Darin Adler.

Source/WebCore:

Based on Blink's r148314 & r150355 by <cbiesinger@chromium.org>.

Adds intrinsic values support to heigh & min/max-height. This involves the
following changes:

  • RenderBox needs to pass the content height through to computeLogicalHeight and

related functions, which needs it to resolve max-content, et. al.

  • Make the callers pass the content height to this function. Some callers pass

logicalHeight() (adjusted for border/padding) which works because if
logicalHeight is not the content height, then it is the height we ended up using,
so the constrain* functions will just constrain to that value again.

  • Parsing code needs to be adjusted to support intrinsic values for heights.

Tests: fast/css-intrinsic-dimensions/height-css-tables-collapsed.html

fast/css-intrinsic-dimensions/height-css-tables.html
fast/css-intrinsic-dimensions/height-flexbox.html
fast/css-intrinsic-dimensions/height-positioned-replaced.html
fast/css-intrinsic-dimensions/height-positioned.html
fast/css-intrinsic-dimensions/height-replaced.html
fast/css-intrinsic-dimensions/height-tables-collapsed.html
fast/css-intrinsic-dimensions/height-tables.html
fast/css-intrinsic-dimensions/height.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::isValidSize): Refactored from validateWidth and
validateHeight.
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::validateWidth): Deleted.
(WebCore::CSSParser::validateHeight): Deleted.

  • css/CSSParser.h:
  • platform/Length.h:

(WebCore::Length::isFillAvailable):
(WebCore::Length::isFitContent):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalHeightByMinMax):
(WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computeLogicalHeightUsing):
(WebCore::RenderBox::computeContentLogicalHeight):
(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeight):
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::RenderBox::computePositionedLogicalHeight):
(WebCore::RenderBox::computePositionedLogicalHeightUsing):

  • rendering/RenderBox.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::addForcedRegionBreak):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::hasReplacedLogicalHeight):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
(WebCore::RenderTable::layout):

LayoutTests:

Based on Blink's r148314 by <cbiesinger@chromium.org>.

  • fast/css-intrinsic-dimensions/height-css-tables-collapsed-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-css-tables-collapsed.html: Added.
  • fast/css-intrinsic-dimensions/height-css-tables-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-css-tables.html: Added.
  • fast/css-intrinsic-dimensions/height-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-flexbox-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-flexbox.html: Added.
  • fast/css-intrinsic-dimensions/height-positioned-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-positioned-replaced-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-positioned-replaced.html: Added.
  • fast/css-intrinsic-dimensions/height-positioned.html: Added.
  • fast/css-intrinsic-dimensions/height-property-value-expected.txt:
  • fast/css-intrinsic-dimensions/height-property-value.html:
  • fast/css-intrinsic-dimensions/height-property-value.html.orig: Copied from LayoutTests/fast/css-intrinsic-dimensions/height-property-value.html.
  • fast/css-intrinsic-dimensions/height-replaced-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-replaced.html: Added.
  • fast/css-intrinsic-dimensions/height-tables-collapsed-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-tables-collapsed.html: Added.
  • fast/css-intrinsic-dimensions/height-tables-expected.html: Added.
  • fast/css-intrinsic-dimensions/height-tables.html: Added.
  • fast/css-intrinsic-dimensions/height.html: Added.
  • fast/css-intrinsic-dimensions/resources/height-keyword-classes.css: Added.

(.min-content):
(.max-content):
(.fill-available):
(.fit-content):
(.max-height-min-content):
(.max-height-max-content):
(.max-height-fill-available):
(.max-height-fit-content):
(.min-height-min-content):
(.min-height-max-content):
(.min-height-fill-available):
(.min-height-fit-content):

6:09 AM Changeset in webkit [185907] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Unreviewed, rolling out r185906.
https://bugs.webkit.org/show_bug.cgi?id=146276

MSVC doesn't yet provide a const-qualified std::array<T,
N>::size(), failing to compile the static_assert (Requested by
zdobersek on #webkit).

Reverted changeset:

"Improve the source code generated by make_names.pl"
https://bugs.webkit.org/show_bug.cgi?id=146208
http://trac.webkit.org/changeset/185906

5:19 AM Changeset in webkit [185906] by zandobersek@gmail.com
  • 5 edits in trunk/Source

Improve the source code generated by make_names.pl
https://bugs.webkit.org/show_bug.cgi?id=146208

Reviewed by Darin Adler.

Source/WebCore:

Clean up and optimize the output that's generated by the make_names.pl script
when generating large sets of DOM names for attributes and tags.

The GenerateStrings() function in the StaticString.pm module is split into
GenerateStringData() and GenerateASCIILiteral() so that the two new functions
can be used independently, with the original function still being called when
generating font names.

Tags and attributes have the corresponding static QualifiedName globals defined
as before. After that, two static const std::array<> objects are defined for
both types -- the first is an ordered array of addresses of the QualifiedName
objects (corresponding to the C array that was defined in getHTMLTags(),
getSVGAttrs() etc.), and the second is an ordered array of StringImpl::StaticASCIILiteral
objects that replaces separately defined StringImpl::StaticASCIILiteral objects
and the additional tables that contained pairs of QualifiedName object addresses
and the corresponding StaticASCIILiteral object references in the init() function.
This is all generated by the printStaticData() function in make_names.pl.

The printQualifiedNameCreation() function generates a static_assert() that ensures
that the corresponding std::array<QualifiedName*> and std::array<StaticASCIILiteral>
objects have the same amount of items, and then sets up a loop that walks through
the two arrays and properly constructs the QualifiedName objects from the static
literal data.

On the GTK port, this shaves off ~54kB from the final stripped shared library
on a 64-bit build, and ~21kB on a 32-bit build.

  • bindings/scripts/StaticString.pm:

(GenerateStringData):
(GenerateASCIILiteral):
(GenerateStrings):

  • dom/make_names.pl:

(printCppHead):
(printNamesCppFile):
(printStaticData):
(printQualifiedNameCreation):
(printInit): Deleted.
(printDefinitions): Deleted.

Source/WTF:

  • wtf/text/StringImpl.h:

(WTF::StringImpl::assertHashIsCorrect): Make this method const-qualified.

2:25 AM Changeset in webkit [185905] by ryuan.choi@navercorp.com
  • 6 edits in trunk/Source/WebKit2

Remove some dead code from Download
https://bugs.webkit.org/show_bug.cgi?id=146268

Reviewed by Darin Adler.

retrieveDestinationWithSuggestedFilename() was introduced for DownloadCFNetWin.cpp since r77585.
didDecideDestination and others are also introduced for WebKit2 Windows port since r77055.
Since WebKit2 Windows port is dropped, no one uses them now.

  • Shared/Downloads/Download.cpp:

(WebKit::Download::decideDestinationWithSuggestedFilename):
(WebKit::Download::retrieveDestinationWithSuggestedFilename): Deleted.

  • Shared/Downloads/Download.h:

(WebKit::Download::destination): Deleted.

  • Shared/Downloads/ios/DownloadIOS.mm:

(WebKit::Download::didDecideDestination): Deleted.

  • Shared/Downloads/mac/DownloadMac.mm:

(WebKit::Download::didDecideDestination): Deleted.

  • Shared/Downloads/soup/DownloadSoup.cpp:

(WebKit::Download::didDecideDestination): Deleted.

1:14 AM Changeset in webkit [185904] by Darin Adler
  • 4 edits in trunk/Source/JavaScriptCore

2015-06-24 Darin Adler <Darin Adler>

Fix Array.concat with RuntimeArray (regression from my last patch)

  • runtime/ArrayPrototype.cpp: (JSC::arrayProtoFuncConcat): Use getLength instead of JSArray::length.
  • runtime/JSArray.cpp: (JSC::JSArray::defineOwnProperty): Added comment about use of JSArray::length here that is incorrect (in a really non-obvious way). (JSC::JSArray::fillArgList): Ditto. (JSC::JSArray::copyToArguments): Ditto.
  • runtime/JSArray.h: Added a comment explaining that it is not always safe to use JSArray::length.
12:42 AM Changeset in webkit [185903] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source/WebCore

Refactor UserMediaRequest to share more codes between MediaDevices.getUserMedia and legacy webkitGetUserMedia
https://bugs.webkit.org/show_bug.cgi?id=146237

Reviewed by Darin Adler.

Covered by existing tests, no change in behavior.

  • Modules/mediastream/MediaConstraintsImpl.cpp:

(WebCore::MediaConstraintsImpl::create): Simplified error handling by removing exception code parameter.

  • Modules/mediastream/MediaConstraintsImpl.h: Ditto.
  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia): Removed code now in UserMediaRequest::start.

  • Modules/mediastream/NavigatorUserMedia.cpp:

(WebCore::NavigatorUserMedia::webkitGetUserMedia): Ditto.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::parseOptions): Simplified error handling by removing exception code parameter.
(WebCore::UserMediaRequest::start): Renamed create in start and added common code.

  • Modules/mediastream/UserMediaRequest.h:

Jun 23, 2015:

10:44 PM Changeset in webkit [185902] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: Fixing 2 bad asserts from r185889.
https://bugs.webkit.org/show_bug.cgi?id=140575

Not reviewed.

  • runtime/JSBoundSlotBaseFunction.cpp:

(JSC::JSBoundSlotBaseFunction::finishCreation):

9:34 PM Changeset in webkit [185901] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix build.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):

7:34 PM Changeset in webkit [185900] by mitz@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fixed iOS production builds.

7:33 PM Changeset in webkit [185899] by Darin Adler
  • 12 edits in trunk/Source

Make Array.join work directly on substrings without reifying them
https://bugs.webkit.org/show_bug.cgi?id=146191

Reviewed by Andreas Kling.

Source/JavaScriptCore:

Besides the Array.join change, this has other optimizations based on
profiling the Peacekeeper array benchmark.

I measured a 14% speed improvement in the Peacekeeper array benchmark.

Still a lot of low hanging fruit in that test because so many of functions
on the array prototype are not optimizing for simple cases. For example,
the reverse function does individual get and put calls even when the array
is entirely made up of integers in contiguous storage.

  • runtime/ArrayPrototype.cpp:

(JSC::getProperty): Use tryGetIndexQuickly first before getPropertySlot.
(JSC::argumentClampedIndexFromStartOrEnd): Marked inline.
(JSC::shift): Use the getProperty helper in this file instead of using
getPropertySlot. Use putByIndexInline instead of calling putByIndex directly.
In both cases this can yield a faster code path.
(JSC::unshift): Ditto.
(JSC::arrayProtoFuncToString): Updated to use the new JSStringJoiner
interface. Changed local variable name to thisArray since it's not a
JSObject*. Changed loop index to i instead of k.
(JSC::arrayProtoFuncToLocaleString): Updated to use the new JSStringJoiner
interface. Renamed thisObj to thisObject. Added a missing exception check
after the toLocaleString function is called, but before toString is called
the result of that function.
(JSC::arrayProtoFuncJoin): Updated to use the new JSStringJointer interface.
Added a missing exception check after calling toString on the separator
but before calling get to get the first element in the array-like object
being joined. Changed loop index to i instead of k. Added missing exception
check after calling toString on each string from the array before calling
get for the next element.
(JSC::arrayProtoFuncConcat): Use JSArray::length instead of using the
getLength function.
(JSC::arrayProtoFuncReverse): Ditto. Also use putByIndexInline.
(JSC::arrayProtoFuncShift): Ditto.
(JSC::arrayProtoFuncSplice): Use getIndex instead of get, which includes some
additional optimizations.
(JSC::getOrHole): Deleted. Unused function.
(JSC::arrayProtoFuncUnShift): Use putByIndexInline.

  • runtime/ExceptionHelpers.cpp:

(JSC::errorDescriptionForValue): Removed the duplicate copy of the the logic
from JSValue::toString.

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toStringSlowCase): Improved the performance when converting a
small integer to a single character string.
(JSC::JSValue::toWTFStringSlowCase): Moved the contents of the
inlineJSValueNotStringtoString function here.

  • runtime/JSCJSValue.h: Removed no longer used toWTFStringInline and fixed

a comment with a typo.

  • runtime/JSObject.h:

(JSC::JSObject::putByIndexInline): Marked ALWAYS_INLINE because this was not
getting inlined at some call sites.
(JSC::JSObject::indexingData): Deleted. Unused function.
(JSC::JSObject::currentIndexingData): Deleted. Unused function.
(JSC::JSObject::getHolyIndexQuickly): Deleted. Unused function.
(JSC::JSObject::relevantLength): Deleted. Unused function.
(JSC::JSObject::currentRelevantLength): Deleted. Unused function.

  • runtime/JSString.h: Added the StringViewWithUnderlyingString struct and

the viewWithUnderlyingString function. Removed the inlineJSValueNotStringtoString
and toWTFStringInline functions.

  • runtime/JSStringJoiner.cpp:

(JSC::appendStringToData): Changed this to be a template instead of writing
it out, since StringView::getCharactersWithUpconvert does almsot exactly what
this function was trying to do.
(JSC::joinStrings): Rewrote this to use StringView.
(JSC::JSStringJoiner::joinedLength): Added. Factored out from the join function.
(JSC::JSStringJoiner::join): Rewrote to make it a bit simpler. Added an assertion
that we entirely filled capacity, since we are now reserving capacity and using
uncheckedAppend. Use String instead of RefPtr<StringImpl> because there was no
particular value to using the impl directly.

  • runtime/JSStringJoiner.h: Changed the interface to the class to use StringView.

Also changed this class so it now has the responsibility to convert each JSValue
into a string. This let us share more code between toString and join, and also
lets us use the new viewWithUnderlyingString function, which could be confusing at
all the call sites, but is easier to understand here.

Source/WTF:

  • wtf/Vector.h: Added an overload of uncheckedAppend like the one we added

a while back, a non-template function that forwards through to the function
template. This lets us call uncheckedAppend on an argument list and have it
properly convert it to the Vector's element type.

  • wtf/text/StringView.h:

(WTF::StringView::getCharactersWithUpconvert): Changed to not use memcpy;
saw some indication the hand-written loop was faster when profiling. Also
use m_length directly when we know we are dealing with an 8-bit string,
since the masking that the index function does is not needed in that case.
(WTF::StringView::UpconvertedCharacters::UpconvertedCharacters): Ditto.
(WTF::StringView::toString): Ditto.
(WTF::StringView::toFloat): Ditto.
(WTF::StringView::toInt): Ditto.
(WTF::StringView::toStringWithoutCopying): Ditto.
(WTF::StringView::find): Ditto.

7:13 PM Changeset in webkit [185898] by commit-queue@webkit.org
  • 11 edits in trunk/Tools

Refactoring benchmark runner script to follow pep8 code style.
https://bugs.webkit.org/show_bug.cgi?id=146264

Patch by Dewei Zhu <Dewei Zhu> on 2015-06-23
Reviewed by Ryosuke Niwa.

Refactor benchmark runner script to follow pep8 code style.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder.prepare):
(GenericBenchmarkBuilder._run_create_script):
(GenericBenchmarkBuilder._copy_benchmark_to_temp_dir):
(GenericBenchmarkBuilder._fetch_remote_archive):
(GenericBenchmarkBuilder):
(GenericBenchmarkBuilder._checkout_with_subversion):
(GenericBenchmarkBuilder._apply_patch):
(GenericBenchmarkBuilder.clean):
(GenericBenchmarkBuilder._runCreateScript): Deleted.
(GenericBenchmarkBuilder._copyBenchmarkToTempDir): Deleted.
(GenericBenchmarkBuilder._fetchRemoteArchive): Deleted.
(GenericBenchmarkBuilder._checkoutWithSubverion): Deleted.
(GenericBenchmarkBuilder._applyPatch): Deleted.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):
(BenchmarkRunner._find_plan_file):
(BenchmarkRunner.execute):
(BenchmarkRunner._cleanup):
(BenchmarkRunner._dump):
(BenchmarkRunner._wrap):
(BenchmarkRunner._merge):
(BenchmarkRunner._show_results):
(BenchmarkRunner._findPlanFile): Deleted.
(BenchmarkRunner.cleanup): Deleted.
(BenchmarkRunner.dump): Deleted.
(BenchmarkRunner.wrap): Deleted.
(BenchmarkRunner.merge): Deleted.
(BenchmarkRunner.show_results): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver.prepare_env):
(BrowserDriver.launch_url):
(BrowserDriver.close_browsers):
(BrowserDriver.prepareEnv): Deleted.
(BrowserDriver.launchUrl): Deleted.
(BrowserDriver.closeBrowser): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver):
(OSXBrowserDriver.prepare_env):
(OSXBrowserDriver.close_browsers):
(OSXBrowserDriver._launch_process):
(OSXBrowserDriver._terminiate_processes):
(OSXBrowserDriver._launch_process_with_caffinate):
(OSXBrowserDriver._screen_size):
(OSXBrowserDriver.prepareEnv): Deleted.
(OSXBrowserDriver.closeBrowsers): Deleted.
(OSXBrowserDriver.launchProcess): Deleted.
(OSXBrowserDriver.terminateProcesses): Deleted.
(OSXBrowserDriver.launchProcessWithCaffinate): Deleted.
(OSXBrowserDriver.screenSize): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver):
(OSXChromeDriver.launch_url):
(OSXChromeCanaryDriver):
(OSXChromeCanaryDriver.launch_url):
(OSXChromeDriver.launchUrl): Deleted.
(OSXChromeCanaryDriver.launchUrl): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:

(OSXFirefoxDriver):
(OSXFirefoxDriver.launch_url):
(OSXFirefoxNightlyDriver):
(OSXFirefoxNightlyDriver.launch_url):
(OSXFirefoxDriver.launchUrl): Deleted.
(OSXFirefoxNightlyDriver.launchUrl): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver):
(OSXSafariDriver.prepare_env):
(OSXSafariDriver.launch_url):
(OSXSafariDriver.close_browsers):
(OSXSafariDriver._maximize_window):
(OSXSafariDriver.prepareEnv): Deleted.
(OSXSafariDriver.launchUrl): Deleted.
(OSXSafariDriver.closeBrowsers): Deleted.
(OSXSafariDriver.maximizeWindow): Deleted.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver.fetch_result):
(HTTPServerDriver.kill_server):
(HTTPServerDriver.get_return_code):
(HTTPServerDriver.set_device_id):
(HTTPServerDriver.fetchResult): Deleted.
(HTTPServerDriver.killServer): Deleted.
(HTTPServerDriver.getReturnCode): Deleted.
(HTTPServerDriver.setDeviceID): Deleted.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.base_url):
(SimpleHTTPServerDriver.fetch_result):
(SimpleHTTPServerDriver.kill_server):
(SimpleHTTPServerDriver.get_return_code):
(SimpleHTTPServerDriver): Deleted.
(SimpleHTTPServerDriver.baseUrl): Deleted.
(SimpleHTTPServerDriver.fetchResult): Deleted.
(SimpleHTTPServerDriver.killServer): Deleted.
(SimpleHTTPServerDriver.getReturnCode): Deleted.

  • Scripts/webkitpy/benchmark_runner/utils.py:

(get_path_from_project_root):
(force_remove):
(getPathFromProjectRoot): Deleted.
(forceRemove): Deleted.

7:09 PM Changeset in webkit [185897] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Should reduce tile coverage for the first paint after a tab switch.
<https://webkit.org/b/146252>
<rdar://problem/19821583>

Reviewed by Darin Adler.

Reduce the number of tiles we need to paint after switching tabs,
to shorten the time it takes before we can flush pixels to screen.

We accomplish this by piggybacking on the "speculative tiling enabled"
mode of FrameView, which was previously only used to throttle painting
and layer flushes during page load.

When a FrameView becomes visible, which is what happens when you
switch to its tab, we revert the speculative tiling optimization to
its initial state, and reset the "scrolled by user" flag.

In practice this means that after switching tabs, we only generate
enough tiles to fill the viewport. Then, after 500ms has passed
or the user scrolls the page, we go back to the usual speculative
tiling mode.

  • page/FrameView.cpp:

(WebCore::FrameView::show):

7:04 PM Changeset in webkit [185896] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] Crash performing drag-and-drop
https://bugs.webkit.org/show_bug.cgi?id=146267

Reviewed by Darin Adler.

Return early if gtk_get_current_event() returns null to avoid a crash. Note that this does
not fix drag-and-drop. Note also this prevents the web process from forcing the UI process
to crash by sending fake startDrag messages.

  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::startDrag):

7:00 PM Changeset in webkit [185895] by mmaxfield@apple.com
  • 7 edits
    3 copies
    1 move
    2 adds in trunk/LayoutTests

[OS X] Rebaseline fast/text/font-weight{,-zh}.html for El Capitan
https://bugs.webkit.org/show_bug.cgi?id=146266
<rdar://problem/21391628>
<rdar://problem/21391673>

Unreviewed.

  • fast/text/font-weights.html: Renamed from LayoutTests/platform/mac/fast/text/font-weights.html.
  • platform/mac/TestExpectations:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
  • platform/mac/fast/text/font-weights-expected.png: Added.
  • platform/mac/fast/text/font-weights-expected.txt:
  • platform/mac/fast/text/font-weights-zh-expected.png: Added.
  • platform/mac/fast/text/font-weights-zh-expected.txt:
  • platform/mac-mavericks/fast/text/font-weights-expected.txt: Moved from platform/mac/fast/text/font-weights-expected.txt
  • platform/mac-yosemite/fast/text/font-weights-expected.txt: Ditto.
  • platform/mac-yosemite/fast/text/font-weights-zh-expected.txt: Moved from platform/mac/fast/text/font-weights-zh-expected.txt
5:50 PM Changeset in webkit [185894] by andersca@apple.com
  • 5 edits
    2 adds in trunk/Source/WebKit2

Add a class that tracks whether we're a background or foreground application
https://bugs.webkit.org/show_bug.cgi?id=146259
rdar://problem/19833808

Reviewed by Darin Adler.

First step towards being able to send out these notifications for view services.

  • UIProcess/ApplicationStateTracker.h: Added.

(WebKit::ApplicationStateTracker::isInBackground):

  • UIProcess/ApplicationStateTracker.mm: Added.

(WebKit::ApplicationStateTracker::singleton):
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::addListener):
(WebKit::ApplicationStateTracker::applicationDidEnterBackground):
(WebKit::ApplicationStateTracker::applicationWillEnterForeground):
(WebKit::ApplicationStateTracker::invokeListeners):
(WebKit::ApplicationStateTracker::pruneListeners):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground]):
(-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground]):
(-[WKProcessAssertionBackgroundTaskManager dealloc]): Deleted.
(-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground:]): Deleted.
(-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground:]): Deleted.

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView isBackground]):
(-[WKContentView _applicationDidEnterBackground]):
(-[WKContentView _applicationWillEnterForeground]):
(-[WKContentView _applicationDidEnterBackground:]): Deleted.
(-[WKContentView _applicationWillEnterForeground:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
5:43 PM Changeset in webkit [185893] by andersca@apple.com
  • 22 edits in trunk/Source

Remove windowResizerRect code, nobody is using it anymore
https://bugs.webkit.org/show_bug.cgi?id=146265

Reviewed by Beth Dakin.

Source/WebCore:

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::windowResizerRect): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/FrameView.cpp:

(WebCore::FrameView::windowResizerRect): Deleted.

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::ScrollView): Deleted.
(WebCore::ScrollView::windowResizerRectChanged): Deleted.
(WebCore::ScrollView::containsScrollbarsAvoidingResizer): Deleted.
(WebCore::ScrollView::adjustScrollbarsAvoidingResizerCount): Deleted.
(WebCore::ScrollView::setParent): Deleted.

  • platform/ScrollView.h:

(WebCore::ScrollView::windowResizerRect): Deleted.

  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::Scrollbar): Deleted.
(WebCore::Scrollbar::setFrameRect): Deleted.
(WebCore::Scrollbar::setParent): Deleted.

  • platform/Scrollbar.h:

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::windowResizerRect): Deleted.

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::windowResizerRect): Deleted.

  • WebCoreSupport/WebChromeClient.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::windowResizerRect): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::windowResizerRect): Deleted.

  • WebProcess/WebPage/WebPage.h:
5:29 PM Changeset in webkit [185892] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Reduce QuickConsole DidResize events if it did not change
https://bugs.webkit.org/show_bug.cgi?id=146258

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-23
Reviewed by Timothy Hatcher.

  • UserInterface/Views/QuickConsole.js:

(WebInspector.QuickConsole.prototype.consoleLogVisibilityChanged):
Do not trigger the event unless there was a change in visibility.

5:27 PM Changeset in webkit [185891] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: TextEditor scroll position not correctly restored when switching tabs
https://bugs.webkit.org/show_bug.cgi?id=146254

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-23
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.updateLayout):
Workaround a larger issue with ContentView restoration so that
TextEditors restore their scroll position as expected.

5:21 PM Changeset in webkit [185890] by mitz@apple.com
  • 3 edits
    2 adds in trunk/Source/WebKit2

Restore binary compatibility with iOS 8 Safari after r185877
https://bugs.webkit.org/show_bug.cgi?id=146263

Reviewed by Anders Carlsson.

  • Platform/spi/Cocoa: Added.
  • Platform/spi/Cocoa/NSInvocationSPI.h: Added.
  • UIProcess/API/Cocoa/WKSecurityOrigin.mm:

(-[WKSecurityOrigin methodSignatureForSelector:]): Override to check _WKSecurityOrigin for
possible category methods with the specified selector.
(-[WKSecurityOrigin forwardInvocation:]): Invoke using the implementation of the
_WKSecurityOrigin category method.

  • WebKit2.xcodeproj/project.pbxproj:
4:36 PM Changeset in webkit [185889] by mmirman@apple.com
  • 13 edits
    5 adds in trunk

Completes native binding descriptors with native getters and potentially setters.
https://bugs.webkit.org/show_bug.cgi?id=140575
rdar://problem/19506502

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • CMakeLists.txt: Added JSBoundSlotBaseFunction.cpp
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • inspector/InjectedScriptSource.js: Added case for descriptor having a native getter.
  • runtime/JSBoundSlotBaseFunction.cpp: Added.

(JSC::boundSlotBaseFunctionCall):
(JSC::JSBoundSlotBaseFunction::JSBoundSlotBaseFunction):
Necessary wrapper for custom getters and setters as objects.
(JSC::JSBoundSlotBaseFunction::create):
(JSC::JSBoundSlotBaseFunction::visitChildren):
(JSC::JSBoundSlotBaseFunction::finishCreation):

  • runtime/JSBoundSlotBaseFunction.h: Added.

(JSC::JSBoundSlotBaseFunction::createStructure):
(JSC::JSBoundSlotBaseFunction::boundSlotBase):
(JSC::JSBoundSlotBaseFunction::customGetterSetter):
(JSC::JSBoundSlotBaseFunction::isGetter):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Added a globally initialized structure for JSBoundSlotBaseFunction
(JSC::JSGlobalObject::visitChildren): visits that structure

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::boundSlotBaseFunctionStructure): added a getter for that structure

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor): extends the case for CustomGetterSetter to
actually include GetterSetter as a JSBoundSlotBaseFunction

  • runtime/VM.cpp: Added initializer for customGetterSetterFunctionMap
  • runtime/VM.h: Added cache for JSBoundSlotBaseFunction

LayoutTests:

  • inspector-protocol/runtime/getProperties-expected.txt: updated.
  • js/dom/native-bindings-descriptors-expected.txt: Added.
  • js/dom/native-bindings-descriptors.html: Added.
  • js/dom/script-tests/native-bindings-descriptors.js: Added.
3:47 PM Changeset in webkit [185888] by dino@apple.com
  • 3 edits
    2 adds in trunk/Source/WebCore

Media controls are missing the white backdrop in UIWebViews
https://bugs.webkit.org/show_bug.cgi?id=146251
<rdar://problem/20181345>

Reviewed by Simon Fraser.

Implement two new CALayer subclasses that explicitly set
something that resembles the system appearance for
media-controls-dark-bar-background and media-controls-light-bar-background.
This way, WebKit1 clients get a visible result.

Creating the actual system recipes is tracked by:
https://bugs.webkit.org/show_bug.cgi?id=146250

  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::PlatformCALayerCocoa): Use the new CALayer subclasses for
the appropriate layer types.

  • platform/graphics/ca/cocoa/WebSystemBackdropLayer.h: Added.
  • platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm: Added.

(-[WebLightSystemBackdropLayer init]):
(-[WebLightSystemBackdropLayer setBackgroundColor:]): Only set to a light grey.
(-[WebDarkSystemBackdropLayer init]):
(-[WebDarkSystemBackdropLayer setBackgroundColor:]): Only set to a dark grey.

3:46 PM Changeset in webkit [185887] by andersca@apple.com
  • 4 edits in trunk

Add operator! and copy/move constructors to WeakObjCPtr
https://bugs.webkit.org/show_bug.cgi?id=146255

Reviewed by Andreas Kling.

Source/WebKit2:

  • Shared/mac/WeakObjCPtr.h:

(WebKit::WeakObjCPtr::WeakObjCPtr):
(WebKit::WeakObjCPtr::operator!):

Tools:

  • TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm:

(TEST):

3:09 PM Changeset in webkit [185886] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Some brief previews are incorrectly treated as lossless
https://bugs.webkit.org/show_bug.cgi?id=146247

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-23
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
When we have a brief preview we may need to override lossless / overflow
if the preview view itself shows less properties than were in the preview.

3:02 PM Changeset in webkit [185885] by mrajca@apple.com
  • 3 edits in trunk/Source/WebCore

Support releasing media sessions
https://bugs.webkit.org/show_bug.cgi?id=146132

Reviewed by Darin Adler.

  • Modules/mediasession/MediaSession.cpp: Implemented as described in the Media Session spec.

(WebCore::MediaSession::releaseSession):
(WebCore::MediaSession::releaseInternal):

  • Modules/mediasession/MediaSession.h:
2:41 PM Changeset in webkit [185884] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: iOS: VoiceOver and ARIA: has popup property not announced
https://bugs.webkit.org/show_bug.cgi?id=146188

Reviewed by Darin Adler.

Expose the existing "has popup" property to the iOS Accessibility API.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityHasPopup]):

2:09 PM Changeset in webkit [185883] by mmaxfield@apple.com
  • 3 edits
    2 copies
    2 adds in trunk/LayoutTests

Unreviewed test gardening after r185842
https://bugs.webkit.org/show_bug.cgi?id=145681
<rdar://problem/21169844>

  • platform/mac-yosemite/fast/text/arabic-times-new-roman-expected.png: Copied from LayoutTests/platform/mac/fast/text/arabic-times-new-roman-expected.png.
  • platform/mac-yosemite/fast/text/arabic-times-new-roman-expected.txt: Copied from LayoutTests/platform/mac/fast/text/arabic-times-new-roman-expected.txt.
  • platform/mac/fast/text/arabic-times-new-roman-expected.png:
  • platform/mac/fast/text/arabic-times-new-roman-expected.txt:
  • platform/win/fast/text/arabic-times-new-roman-expected.png: Added.
  • platform/win/fast/text/arabic-times-new-roman-expected.txt: Added.
1:34 PM Changeset in webkit [185882] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

CrashTracer: com.apple.WebKit.Networking at JavaScriptCore: WTF::String::isolatedCopy const &
https://bugs.webkit.org/show_bug.cgi?id=146236
rdar://problem/21380700

Reviewed by Andreas Kling.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::clear):

Don't crash if this is called with network cache disabled.

11:54 AM Changeset in webkit [185881] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

AX Tests hit-test-input-{auto-fill, search}-button.html and input-search-cancel-button.html fail on Windows
https://bugs.webkit.org/show_bug.cgi?id=146243

Mark the tests as failing for now.

  • platform/win/TestExpectations:
11:27 AM Changeset in webkit [185880] by Simon Fraser
  • 7 edits in trunk

Expose some more rendering progress events, and have MiniBrowser log for each of them
https://bugs.webkit.org/show_bug.cgi?id=146227

Reviewed by Darin Adler.

Source/WebKit2:

Add _WKRenderingProgressEventFirstLayoutAfterSuppressedIncrementalRendering and
_WKRenderingProgressEventFirstPaintAfterSuppressedIncrementalRendering to the private
header, and convert them to/from WebCore milestones.

  • Shared/API/Cocoa/_WKRenderingProgressEvents.h:
  • Shared/API/Cocoa/_WKRenderingProgressEventsInternal.h:

(renderingProgressEvents):

  • UIProcess/API/Cocoa/WKWebView.mm:

(layoutMilestones):

Tools:

Register for layout milestones/rendering progress events in the WK1 and WK2
browser window controllers, and, if logging is turned on, log when they are
reached.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController awakeFromNib]):
(-[WK1BrowserWindowController webView:didLayout:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController _webView:renderingProgressDidChange:]):

11:04 AM Changeset in webkit [185879] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build after r185876 and r185877.

  • UIProcess/API/gtk/WebKitUIClient.cpp:
  • UIProcess/API/gtk/WebKitUserContentManager.cpp:
  • UIProcess/API/gtk/WebKitWebView.cpp:
10:37 AM Changeset in webkit [185878] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

Get rid of the window resizer size
https://bugs.webkit.org/show_bug.cgi?id=146240

Reviewed by Darin Adler.

This code was only used by older versions of GTK+, so get rid of it.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseNotifyResizerSize): Deleted.
(toplevelWindowResizeGripVisibilityChanged): Deleted.
(webkitWebViewBaseSetToplevelOnScreenWindow): Deleted.
(resizeWebKitWebViewBaseFromAllocation): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setWindowResizerSize): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::windowResizerRect):
(WebKit::WebPage::setWindowResizerSize): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
10:28 AM Changeset in webkit [185877] by beidson@apple.com
  • 39 edits
    2 copies
    1 move
    2 adds in trunk

WKFrameInfo should have an accessor for the Frame's current security origin.
https://bugs.webkit.org/show_bug.cgi?id=146162

Reviewed by Dan Bernstein.

Source/WebKit2:

This patch:

  • Promotes _WKSecurityOrigin to API.
  • Makes the WKSecurityOrigin Cocoa API object work with API::SecurityOrigin.
  • Adds a WKSecurityOrigin accessor to WKFrameInfo.
  • Changes IPC messaging so every handler that calls out with a WKFrameInfo object gets a relevant SecurityOrigin to wrap.
  • Shared/API/APISecurityOrigin.h:

(API::SecurityOrigin::create):
(API::SecurityOrigin::SecurityOrigin):

  • Shared/API/Cocoa/WebKit.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toCopiedAPI):

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/SecurityOriginData.cpp:

(WebKit::SecurityOriginData::fromFrame):

  • Shared/SecurityOriginData.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::FrameInfo):

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::createNewPage):
(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):

  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerGetApplicationCacheOrigins):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetKeyValueStorageOrigins):

  • UIProcess/API/C/WKOriginDataManager.cpp:

(WKOriginDataManagerGetOrigins):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/C/WKResourceCacheManager.cpp:

(WKResourceCacheManagerGetCacheOrigins):

  • UIProcess/API/Cocoa/WKFrameInfo.h:
  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo securityOrigin]):

  • UIProcess/API/Cocoa/WKSecurityOrigin.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h.
  • UIProcess/API/Cocoa/WKSecurityOrigin.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm.

(-[WKSecurityOrigin dealloc]):
(-[WKSecurityOrigin description]):
(-[WKSecurityOrigin protocol]):
(-[WKSecurityOrigin host]):
(-[WKSecurityOrigin port]):
(-[WKSecurityOrigin _apiObject]):

  • UIProcess/API/Cocoa/WKSecurityOriginInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h.

(API::wrapper):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • UIProcess/API/Cocoa/_WKSecurityOrigin.h:
  • UIProcess/API/Cocoa/_WKSecurityOrigin.mm:

(-[_WKSecurityOrigin _initWithSecurityOrigin:]): Deleted.
(-[_WKSecurityOrigin protocol]): Deleted.
(-[_WKSecurityOrigin host]): Deleted.
(-[_WKSecurityOrigin port]): Deleted.

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota):

  • UIProcess/UserContent/WebScriptMessageHandler.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::didPostMessage):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseSync):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserMessageHandlerDescriptorProxy::didPostMessage):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm: Added.

(sawDialog):
(-[ModalAlertsUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(-[ModalAlertsUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[ModalAlertsUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[ModalAlertsUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):
(TEST):

9:45 AM Changeset in webkit [185876] by mitz@apple.com
  • 15 edits in trunk/Source/WebKit2

<rdar://problem/21342465> Make -[WKWebView _certificateChain] public.
https://bugs.webkit.org/show_bug.cgi?id=145886

Reviewed by Sam Weinig.

  • Shared/WebCertificateInfo.h:

(WebKit::WebCertificateInfo::create): Changed to return a Ref rather than a PassRefPtr.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm: Added no-op overrides of new

PageLoadState::Observer functions to PageLoadStateObserver.

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup _setAllowsSpecificHTTPSCertificate:forHost:]): Updated for change to
WebCertificateInfo::create.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setAllowsSpecificHTTPSCertificate:forHost:]): Ditto.

  • UIProcess/API/Cocoa/WKWebView.h: Declared new certificateChain property on WKWebView.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView certificateChain]): Added. Returns the certificate chain from the page load
state, or an empty array if there is no certificate chain.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Deprecated _certificateChain.
  • UIProcess/Cocoa/NavigationState.h: Declared overrides of new PageLoadState::Observer

functions.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::willChangeCertificateInfo): Override to call
-willChangeValueForKey:.
(WebKit::NavigationState::didChangeCertificateInfo): Override to call
-didChangeValueForKey:.

  • UIProcess/PageLoadState.cpp:

(WebKit::PageLoadState::commitChanges): Call the new observer functions
willChangeCertificateInfo and didChangeCertificateInfo.
(WebKit::PageLoadState::didCommitLoad): Added new certificateInfo parameter, which is stored
in the uncommitted state.

  • UIProcess/PageLoadState.h:

(WebKit::PageLoadState::certificateInfo): Added this getter.

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::didCommitLoad): Changed the parameter type from
WebCore::CertificateInfo to WebCertificateInfo.

  • UIProcess/WebFrameProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame): Pass the certificate info to
PageLoadState::didCommitLoad.

9:26 AM Changeset in webkit [185875] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Layout & Rendering timeline should show paint and layout records in separate rows
https://bugs.webkit.org/show_bug.cgi?id=146119

Reviewed by Timothy Hatcher.

This patch makes the original Layout & Rendering timeline visually consistent with the Rendering Frames
timeline, which uses green to distinguish Paint from Layout. In order to support having record bars with
different colors in the same overview graph, the timeline has been split into two rows.

  • UserInterface/Views/LayoutTimelineOverviewGraph.css:

(.timeline-overview-graph.layout > .graph-row):
(.timeline-overview-graph.layout > .graph-row > .timeline-record-bar):
(.timeline-overview-graph.layout > .graph-row > .timeline-record-bar > .segment):
New row styles.

  • UserInterface/Views/LayoutTimelineOverviewGraph.js:

(WebInspector.LayoutTimelineOverviewGraph.prototype.reset.createRecordRow):
(WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout.createBar):
(WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout):
(WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
(WebInspector.LayoutTimelineOverviewGraph): Deleted.
Added bookkeeping objects for timeline row elements and their associated records.

  • UserInterface/Views/TimelineRecordBar.css:

(.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-paint > .segment):
New style for layout record event types.

  • UserInterface/Views/TimelineRecordBar.js:

(WebInspector.TimelineRecordBar.prototype.set records):
Add style class for eventType, if present.

7:18 AM Changeset in webkit [185874] by jfernandez@igalia.com
  • 2 edits in trunk/Source/WebCore

[CSS Grid Layout] Performance optimization: avoid computing overflow alignment if not needed
https://bugs.webkit.org/show_bug.cgi?id=146231

Reviewed by Sergio Villar Senin.

We don't need to apply any overflow handling if alignment value don't have a potential
risk of data loss, as it's the case of 'start' value.

This patch avoid computing the overflow in all the cases, since it adds an unneeded
overhead which affects performance.

New code improves performance around 3%-8%, depending on the grid tests.

No new tests, no new funcitonality.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::columnPositionForChild):

7:10 AM Changeset in webkit [185873] by youenn.fablet@crf.canon.fr
  • 13 edits
    1 delete in trunk

MediaDevices.getUserMedia should migrate from callbacks to DOMPromise
https://bugs.webkit.org/show_bug.cgi?id=146200

Reviewed by Darin Adler.

Source/WebCore:

Introduced DOMPromiseWithCallback to resolve/reject promises while allowing promise clients to use a typed callback approach.
Migrated MediaDevices.getUserMedia from callbacks to DOMPromiseWithCallback.
Removed MediaDevices.getUserMedia custom binding.

Covered by existing tests.

  • CMakeLists.txt: Removing custom binding.
  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia): Moving from callback to promise.

  • Modules/mediastream/MediaDevices.h: Ditto.
  • Modules/mediastream/MediaDevices.idl: Removing custom binding.
  • Modules/mediastream/NavigatorUserMedia.cpp:

(WebCore::NavigatorUserMedia::webkitGetUserMedia): Converting from promise callback to API callbacks.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create): Moving from callback to promise.
(WebCore::UserMediaRequest::UserMediaRequest): Ditto.
(WebCore::UserMediaRequest::didCreateStream): Ditto.
(WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError): Ditto.
(WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError): Ditto.

  • Modules/mediastream/UserMediaRequest.h: Ditto.
  • bindings/js/JSDOMPromise.h: Introducing DOMPromiseWithCallback and removing crypto specific header.

(WebCore::DOMPromiseWithCallback::DOMPromiseWithCallback):
(WebCore::Error>::resolve):
(WebCore::Error>::reject):

  • bindings/js/JSMediaDevicesCustom.cpp: Removed.
  • bindings/js/JSSubtleCryptoCustom.cpp: Updating headers.

LayoutTests:

  • fast/mediastream/MediaDevices-getUserMedia-expected.txt:
4:29 AM Changeset in webkit [185872] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk

[Streams API] Implement ReadableStream js source "'cancel" callback
https://bugs.webkit.org/show_bug.cgi?id=146204

Reviewed by Darin Adler.

Source/WebCore:

Calling "cancel" JS function when web app is cancelling a JS readable stream.
Handling of promise returned value in case of async cancel.

Covered by rebased tests.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::invoke): Refactoring to pass cancel reason or controller to the JS function.
(WebCore::ReadableJSStream::doStart): Ditto.
(WebCore::startReadableStreamAsync): Renaming readableStream as protectedStream.
(WebCore::createPullResultFulfilledFunction): Ditto.
(WebCore::ReadableJSStream::doPull): Refactoring to pass cancel reason or controller to the JS function.
(WebCore::createCancelResultFulfilledFunction): Cancel promise fullfil callback.
(WebCore::createCancelResultRejectedFunction): Cancel promise reject callback.
(WebCore::ReadableJSStream::doCancel): Calling cancel JS callback and handling promise returned value.

  • bindings/js/ReadableJSStream.h: Refactoring to pass cancel reason or controller to the JS function.

LayoutTests:

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/readable-stream-cancel-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
3:45 AM Changeset in webkit [185871] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Remove build warnings in Tools/DumpRenderTree/TestNetscapePlugIn
https://bugs.webkit.org/show_bug.cgi?id=146007

Patch by Tanay C <tanay.c@samsung.com> on 2015-06-23
Reviewed by Darin Adler.

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
  • DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp: Add attribute to functions.

(pluginLogWithWindowObject):
(pluginLogWithArguments):
(pluginLog):

  • DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: Add attribute to functions.

(PluginTest::executeScript):
(PluginTest::log):

2:34 AM Changeset in webkit [185870] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, gardening.

Mark fast/forms/listbox-visible-size.html to failure and skip
fast/text/arabic-times-new-roman.html because it is for iOS.

  • platform/efl/TestExpectations:
2:03 AM Changeset in webkit [185869] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix. A/B testing is broken when continuous builders report revisions out of order.

  • public/v2/app.js:

(App.AnalysisTaskController.Ember.Controller.extend.):

1:56 AM Changeset in webkit [185868] by peavo@outlook.com
  • 2 edits in trunk/Source/WebKit/win

[WinCairo] WebDownload::initWithRequest is not implemented.
https://bugs.webkit.org/show_bug.cgi?id=146203

Reviewed by Alex Christensen.

Implement method to start download from a IWebURLRequest object.

  • WebDownloadCurl.cpp:

(WebDownload::initWithRequest): Implemented.

12:10 AM Changeset in webkit [185867] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Add libhyphen-dev as dependency after r185862
https://bugs.webkit.org/show_bug.cgi?id=146230

Reviewed by Gyuyoung Kim.

  • efl/install-dependencies:
12:00 AM Changeset in webkit [185866] by Gyuyoung Kim
  • 4 edits in trunk/Source/WebKit2

[EFL][CustomProtocol] Do not add duplicated custom scheme
https://bugs.webkit.org/show_bug.cgi?id=146199

Reviewed by Carlos Garcia Campos.

WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol generates
a crash when duplicated scheme is registered on debug mode, or just registers it on release mode.
However application can register duplicate scheme by mistake or on purpose. Thus it would be good
if we don't register it instead of registering it or generating a crash when trying to regiseter
duplicated scheme.

EFL port want to allow user to change registered callback, thus EWK2ContextTest::ewk_context_url_scheme_register()
is modified to test it.

Test: ewk_context_url_scheme_register() in test_ewk2_context.cpp.

  • UIProcess/API/efl/ewk_context.h: Added a comment to replace registered callback.
  • UIProcess/API/efl/tests/test_ewk2_context.cpp:

(EWK2ContextTest::schemeRequestCallback1):
(EWK2ContextTest::schemeRequestCallback2):
(TEST_F):
(EWK2ContextTest::schemeRequestCallback): Deleted.

  • UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:

(WebKit::WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol):

Jun 22, 2015:

11:47 PM Changeset in webkit [185865] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.9.3

WebKitGTK+ 2.9.3

11:45 PM Changeset in webkit [185864] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.9.3.
11:33 PM Changeset in webkit [185863] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

[WTF] Platform.h: use _ABI64 instead of _MIPS_SIM_ABI64 to determine MIPS N64
https://bugs.webkit.org/show_bug.cgi?id=145113

Patch by YunQiang Su <wzssyqa@gmail.com> on 2015-06-22
Reviewed by Csaba Osztrogonác.

  • wtf/Platform.h:
10:23 PM Changeset in webkit [185862] by ryuan.choi@navercorp.com
  • 21 edits
    1 move
    3 adds in trunk

[EFL] Hyphenation is not supported
https://bugs.webkit.org/show_bug.cgi?id=89830

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsEfl.cmake: Added an option for LibHyphen.

Source/WebCore:

Share libHyphen backend of GTK port.

Rebased fast/text/hyphenate-*.html

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • platform/efl/FileSystemEfl.cpp:

(WebCore::listDirectory): Deleted because of lack of functionality.
eina_file_ls returns full directory path so fnmatch fails to check dict file.
This patch reuse Posix implementation instead of EFL port specific function.

  • platform/posix/FileSystemPOSIX.cpp: Ditto.
  • platform/text/gtk/HyphenationLibHyphen.cpp: Moved to platform/text/hyphen
  • platform/text/hyphen/HyphenationLibHyphen.cpp:

Renamed from Source/WebCore/platform/text/gtk/HyphenationLibHyphen.cpp.
(WebCore::scanTestDictionariesDirectoryIfNecessary):
Added PLATFORM guard and EFL implementation for the test directory

Tools:

  • efl/jhbuild.modules: Added webkitgtk-test-dicts for layout test.

LayoutTests:

Rebaseline expected results which is related to hyphenation.

  • platform/efl/TestExpectations: Unskip hyphenate-locale.html
  • platform/efl/fast/text/hyphenate-character-expected.png:
  • platform/efl/fast/text/hyphenate-character-expected.txt:
  • platform/efl/fast/text/hyphenate-first-word-expected.png:
  • platform/efl/fast/text/hyphenate-first-word-expected.txt:
  • platform/efl/fast/text/hyphenate-limit-before-after-expected.png:
  • platform/efl/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/efl/fast/text/hyphenate-limit-lines-expected.png:
  • platform/efl/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/efl/fast/text/hyphenate-locale-expected.png: Added.
  • platform/efl/fast/text/hyphenate-locale-expected.txt: Added.
  • platform/efl/fast/text/hyphens-expected.png:
  • platform/efl/fast/text/hyphens-expected.txt:
9:10 PM Changeset in webkit [185861] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Part 2 of [Xcode] Fold the WebKit2SandboxProfiles-IOSOverride target into the Sandbox Profiles target
https://bugs.webkit.org/show_bug.cgi?id=146197

Rubber-stamped by Anders Carlsson.

  • WebKit2.xcodeproj/project.pbxproj: Deleted the WebKit2SandboxProfiles-IOSOverride target.
8:54 PM Changeset in webkit [185860] by Chris Dumez
  • 4 edits in trunk/Source

[WK1] WebAllowDenyPolicyListener.denyOnlyThisRequest() should not start a new permission request
https://bugs.webkit.org/show_bug.cgi?id=146228
<rdar://problem/15179262>

Reviewed by Daniel Bates.

Source/WebCore:

Add Geolocation::resetIsAllowed() API that merely resets
m_allowGeolocation to Unknown, so that we will request the permission
again the next time a position is requested.

  • Modules/geolocation/Geolocation.h:

(WebCore::Geolocation::resetIsAllowed):

Source/WebKit/mac:

Call the new Geolocation::resetIsAllowed() API after denying the
current request, instead of calling
Geolocation::resetAllGeolocationPermission(). In addition to resetting
m_allowGeolocation to Unknown, the latter would also start a new
permission request. However, for
WebAllowDenyPolicyListener.denyOnlyThisRequest(), we really only want
to deny the current request and then reset m_allowGeolocation to
Unknown so that permission is requested again later if the app requests
a position again.

The previous implementation meant that if the client application keeps
calling WebAllowDenyPolicyListener.denyOnlyThisRequest(), we would end
up in an infinite loop (requesting for permission), even though the
application did not make any new geolocation requests.

  • WebCoreSupport/WebGeolocationClient.mm:

(-[WebGeolocationPolicyListener denyOnlyThisRequest]):

8:47 PM Changeset in webkit [185859] by commit-queue@webkit.org
  • 18 edits
    3 deletes in trunk/Tools

Get rid of factory json files in benchmark_runner
https://bugs.webkit.org/show_bug.cgi?id=146175

Patch by Dewei Zhu <Dewei Zhu> on 2015-06-22
Reviewed by Ryosuke Niwa.

Get rid of factory json files in benchmark_runner and refactoring the code.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/init.py:

(benchmark_builder_loader):

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builder_factory.py:

(BenchmarkBuilderFactory):

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builders.json: Removed.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):
(BenchmarkRunner.execute):

  • Scripts/webkitpy/benchmark_runner/browser_driver/init.py:

(browser_driver_loader):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver_factory.py:

(BrowserDriverFactory):
(BrowserDriverFactory.available_platforms):
(BrowserDriverFactory.available_browsers):
(BrowserDriverFactory.add_browser_driver):
(BrowserDriverFactory.create):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_drivers.json: Removed.
  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver):
(OSXBrowserDriver.prepareEnv):
(OSXBrowserDriver.terminateProcesses):
(OSXBrowserDriver.screenSize):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver):
(OSXChromeCanaryDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:

(OSXFirefoxDriver):
(OSXFirefoxNightlyDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver):

  • Scripts/webkitpy/benchmark_runner/generic_factory.py:

(GenericFactory.create):
(GenericFactory.add):
(GenericFactory.iterateGetItem): Deleted.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/init.py:

(http_server_driver_loader):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver_factory.py:

(HTTPServerDriverFactory):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_drivers.json: Removed.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver):

  • Scripts/webkitpy/benchmark_runner/utils.py:

(is_subclass):
(load_subclasses):
(ModuleNotFoundError): Deleted.
(loadModule): Deleted.
(loadJSONFromFile): Deleted.

6:59 PM Changeset in webkit [185858] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

ASSERT(!m_zOrderListsDirty) when mousing over web view with incremental rendering suppressed
https://bugs.webkit.org/show_bug.cgi?id=146225

Reviewed by Zalan Bujtas.

Update RenderLayer's z-order lists when hit testing. There's no guarantee that they've
been updated; this happens to work most of the time because painting updates them,
but if incremental rendering is suppressed, we may not have painted yet.

Easy to hit on webkit.org in MiniBrowser, but I wasn't able to make a reduced testcase.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::updateLayerListsIfNeeded): Flip the order of the tests, since checking
dirty bits is cheaper than calling isStackingContext().

6:59 PM Changeset in webkit [185857] by Simon Fraser
  • 6 edits in trunk/Tools

Make it possible to enable incremental rendering suppression in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=146223

Reviewed by Tim Horton.

Add a menu item to enable incremental rendering suppression to MiniBrowser.

For WK1, this just toggles a pref, and takes effect immediately.

For WK2, this is a WKConfiguration property, so only affects new web views.

Also remove a toolbar item connection to toggleUseMinimumViewSize: that caused
logging on launch.

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration):

  • MiniBrowser/mac/BrowserWindow.xib:
  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleIncrementalRenderingSuppressed:]):
(-[SettingsController incrementalRenderingSuppressed]):

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

6:51 PM Changeset in webkit [185856] by dino@apple.com
  • 12 edits
    8 moves
    1 add in trunk/Source

Rename PlatformCA*Mac to PlatformCA*Cocoa
https://bugs.webkit.org/show_bug.cgi?id=146224
<rdar://problem/21497182>

Reviewed by Simon Fraser.

Rename PlatformCALayerMac and related files in platform/graphics/ca/mac
to the more accurate Cocoa suffix.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • page/mac/ServicesOverlayController.mm:
  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/PlatformCAAnimation.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/LayerFlushSchedulerMac.cpp: Renamed from Source/WebCore/platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp.
  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.h: Renamed from Source/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.h.
  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm.
  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/PlatformCAFiltersMac.mm.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h: Renamed from Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.h.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm.
  • platform/graphics/ca/cocoa/WebTiledBackingLayer.h: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTiledBackingLayer.h.
  • platform/graphics/ca/cocoa/WebTiledBackingLayer.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTiledBackingLayer.mm.
  • platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
  • platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
  • platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:
  • platform/graphics/ca/mac/WebTiledBackingLayer.mm:

Source/WebKit2:

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::filtersCanBeComposited):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::create):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):

6:24 PM Changeset in webkit [185855] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Delegates should be formal protocols
https://bugs.webkit.org/show_bug.cgi?id=146222
rdar://problem/17380856

Reviewed by Dan Bernstein.

Flip the switch on OS X and make delegates formal protocols.

  • postprocess-headers.sh:
6:09 PM Changeset in webkit [185854] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[cssjit] Disable compiling scrollbar pseudoclass selectors
https://bugs.webkit.org/show_bug.cgi?id=146220

Reviewed by Benjamin Poulain.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addScrollbarPseudoClassType):
Don't compile selectors with scrollbar pseudoclasses.

5:51 PM Changeset in webkit [185853] by Yusuke Suzuki
  • 5 edits
    1 add in trunk

[ES6] Allow trailing comma in ArrayBindingPattern and ObjectBindingPattern
https://bugs.webkit.org/show_bug.cgi?id=146192

Reviewed by Darin Adler.

Source/JavaScriptCore:

According to the ES6 spec, trailing comma in ArrayBindingPattern and ObjectBindingPattern is allowed.
And empty ArrayBindingPattern and ObjectBindingPattern is also allowed.

This patch allows trailing comma and empty binding patterns.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::bindValue):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDeconstructionPattern):

  • tests/stress/trailing-comma-in-patterns.js: Added.

(shouldBe):
(iterator):

LayoutTests:

  • js/object-literal-syntax-expected.txt:
5:47 PM Changeset in webkit [185852] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

A/B testing results should be shown even if they were submitted to different platforms
https://bugs.webkit.org/show_bug.cgi?id=146219

Reviewed by Andreas Kling.

Fetch A/B testing results regardless of the platform to which results are submitted
by providing the platform ID to which the results were submitted for each test group.

  • public/api/test-groups.php:

(main): Include the platform id in the test groups.

  • public/v2/analysis.js:

(App.TestGroup._fetchTestResults): Fetch results from the platform associated with the group.

4:32 PM Changeset in webkit [185851] by Simon Fraser
  • 3 edits
    2 adds in trunk

-webkit-clip-path clips incorrectly if the element bounds go beyond the top edge of the page
https://bugs.webkit.org/show_bug.cgi?id=146218
rdar://problem/21127840

Reviewed by Zalan Bujtas.
Source/WebCore:

The clip path is computed using the RenderLayer's bounding box, so needs to be offset
by the offsetFromRenderer when set on the mask layer.

Test: compositing/masks/compositing-clip-path-origin.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateMaskingLayerGeometry):

LayoutTests:

Test clip path on layers with non-zero bounds offsetFromRenderer because of box shadow,
or vertical writing mode.

  • compositing/masks/compositing-clip-path-origin-expected.html: Added.
  • compositing/masks/compositing-clip-path-origin.html: Added.
4:02 PM Changeset in webkit [185850] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/text/justify-ideograph-{complex,simple,vertical}.html tests are flaky on El Capitan Debug builds

Tracked by <rdar://problem/21486062>.

  • platform/mac/TestExpectations: Mark tests as flaky:
  • fast/text/justify-ideograph-complex.html
  • fast/text/justify-ideograph-simple.html
  • fast/text/justify-ideograph-vertical.html
3:36 PM Changeset in webkit [185849] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

Fix build.

  • wtf/threads/BinarySemaphore.cpp:
3:22 PM Changeset in webkit [185848] by Michael Catanzaro
  • 4 edits
    6 adds in trunk

Web sockets should be treated as active mixed content
https://bugs.webkit.org/show_bug.cgi?id=140624

Reviewed by Sam Weinig.

Source/WebCore:

Tests: http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe.html

http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): Block ws:// WebSocket connections from https:// pages, and
emit the onerror event after doing so.

  • platform/SchemeRegistry.cpp:

(WebCore::secureSchemes): Add wss:// to the list of secure schemes.

LayoutTests:

  • http/tests/security/mixedContent/resources/frame-with-insecure-websocket.html: Added.
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Added.
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe.html: Added.
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Added.
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html: Added.
3:07 PM Changeset in webkit [185847] by andersca@apple.com
  • 4 edits
    1 delete in trunk/Source/WTF

Get rid of the Windows specific BinarySemaphore implementation
https://bugs.webkit.org/show_bug.cgi?id=146216

Reviewed by Andreas Kling.

The fact that the Windows implementation uses a HEVENT internally was only useful
to the Windows port of WebKit2; we can get rid of it now.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • wtf/threads/BinarySemaphore.h:

(WTF::BinarySemaphore::event): Deleted.

  • wtf/threads/win/BinarySemaphoreWin.cpp: Removed.

(WTF::BinarySemaphore::BinarySemaphore): Deleted.
(WTF::BinarySemaphore::~BinarySemaphore): Deleted.
(WTF::BinarySemaphore::signal): Deleted.
(WTF::BinarySemaphore::wait): Deleted.

3:06 PM Changeset in webkit [185846] by dino@apple.com
  • 8 edits
    4 adds in trunk

Element with blur backdrop-filter shows edge duplication and dark edges
https://bugs.webkit.org/show_bug.cgi?id=146215
<rdar://problem/20367695>

Reviewed by Tim Horton.

Source/WebCore:

The input images to backdrop filters should duplicate their edge pixels
outwards, rather than using transparent pixels. This is a flag we
set on the Gaussian blur, but means we have to remember if the
FilterOperations list came from a regular filter or a backdrop filter.

Test: css3/filters/backdrop/blur-input-bounds.html

  • css/CSSPropertyNames.in: New custom convertor for backdrop-filter.
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertBackdropFilterOperations): New convertor
that sets the backdrop flag, but is otherwise the same as a normal filter
convertor.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFilterOperations): Inherit the backdrop flag if either of our
inputs has it.

  • platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Set the inputNormalizeEdges

key on the CAFilter if necessary.

  • platform/graphics/filters/FilterOperations.cpp: Add a new flag indicating if

these operations are intended for backdrops.
(WebCore::FilterOperations::operator=):
(WebCore::FilterOperations::operator==):

  • platform/graphics/filters/FilterOperations.h:

(WebCore::FilterOperations::isUsedForBackdropFilters):
(WebCore::FilterOperations::setUsedForBackdropFilters):

LayoutTests:

Add a pixel test to show that the input images to backdrop filters should duplicate their
edge pixels. Unfortunately this is not reproducible with normal filters, so it
can't be a reference test.

  • css3/filters/backdrop/blur-input-bounds.html: Added.
  • platform/mac/css3/filters/backdrop/blur-input-bounds-expected.png: Added.
  • platform/mac/css3/filters/backdrop/blur-input-bounds-expected.txt: Added.
3:02 PM Changeset in webkit [185845] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: gaps between sections of the styles sidebar rules tab confusing, should say "Media: all"
https://bugs.webkit.org/show_bug.cgi?id=142918

Patch by Devin Rousso <Devin Rousso> on 2015-06-22
Reviewed by Timothy Hatcher.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) ~ .label):
Now properly adds padding to filtered labels.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label): Deleted.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh): If a section of CSS rules has no media or inheritance, add
a label that says "Media: all" above the section.

2:33 PM Changeset in webkit [185844] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

[TextIndicator] Text shifts one pixel to the left when I force click to bring up Lookup in Mail messages
https://bugs.webkit.org/show_bug.cgi?id=146214
<rdar://problem/20782970>

Reviewed by Dean Jackson.

  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
(WebCore::TextIndicatorWindow::setTextIndicator):
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:]): Deleted.
When the WebView is at a nonintegral position, we can end up needing a TextIndicator
with a nonintegral position. We need to round the window position, so we need to apply
the fractional part to the indicator layers inside, not to the window.

2:11 PM Changeset in webkit [185843] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Simplify Connection::SyncMessageState
https://bugs.webkit.org/show_bug.cgi?id=146213

Reviewed by Andreas Kling.

Since we no longer support Connections dispatching to multiple threads, we can make SyncMessageState
into a singleton and get rid of the RunLoop -> SyncMessageState hash map.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::singleton):
(IPC::Connection::SyncMessageState::SyncMessageState):
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::SyncMessageState::syncMessageStateMap): Deleted.
(IPC::Connection::SyncMessageState::syncMessageStateMapMutex): Deleted.
(IPC::Connection::SyncMessageState::getOrCreate): Deleted.
(IPC::Connection::SyncMessageState::~SyncMessageState): Deleted.
(IPC::Connection::Connection): Deleted.

  • Platform/IPC/Connection.h:
1:53 PM Changeset in webkit [185842] by mmaxfield@apple.com
  • 5 edits
    6 adds in trunk

[iOS] Arabic text styled with Georgia is rendered as boxes
https://bugs.webkit.org/show_bug.cgi?id=145681
<rdar://problem/21169844>

Reviewed by Darin Adler.

Source/WebCore:

Georgia doesn't support Arabic, so we ask CoreText what font does support Arabic. It returns
TimesNewRomanPSMT. However, WebKit explicitly disallows this font on iOS. Therefore, instead
of using TimesNewRomanPSMT, we will simply just use GeezaPro.

Test: fast/text/arabic-times-new-roman.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::systemFallbackForCharacters):

  • platform/graphics/Font.h: Let FontCacheIOS call fontFamilyShouldNotBeUsedForArabic()
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::fontFamilyShouldNotBeUsedForArabic):

LayoutTests:

  • fast/text/arabic-times-new-roman.html: Added.
  • platform/ios-simulator/fast/text/arabic-times-new-roman-expected.txt: Added.
  • platform/ios-simulator/fast/text/arabic-times-new-roman-expected.png: Added.
  • platform/mac-mavericks/fast/text/arabic-times-new-roman-expected.txt: Added.
  • platform/mac/fast/text/arabic-times-new-roman-expected.txt: Added.
  • platform/mac/fast/text/arabic-times-new-roman-expected.png: Added.
1:49 PM Changeset in webkit [185841] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed non-mac debug build fix after r185840.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequest):
Added enable flag around assertion.

1:10 PM Changeset in webkit [185840] by achristensen@apple.com
  • 20 edits in trunk/Source

[Content Extensions] Add SPI to reload without content blocking.
https://bugs.webkit.org/show_bug.cgi?id=146128
rdar://problem/20351903

Reviewed by Sam Weinig.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequest):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/Page.h:

(WebCore::Page::userContentController):
(WebCore::Page::userContentExtensionsEnabled):
(WebCore::Page::setUserContentExtensionsEnabled):
(WebCore::Page::group):

  • page/UserContentController.cpp:

(WebCore::UserContentController::removeAllUserContentExtensions):
(WebCore::UserContentController::processContentExtensionRulesForLoad):
(WebCore::UserContentController::actionsForResourceLoad):

  • page/UserContentController.h:

Source/WebKit2:

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetCustomUserAgent):
(WKPageSetUserContentExtensionsEnabled):
(WKPageSupportsTextEncoding):

  • UIProcess/API/C/WKPage.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _customUserAgent]):
(-[WKWebView _setUserContentExtensionsEnabled:]):
(-[WKWebView _userContentExtensionsEnabled]):
(-[WKWebView _setCustomUserAgent:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setShouldScaleViewToFitDocument):
(WebKit::WebPageProxy::setUserContentExtensionsEnabled):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::userContentExtensionsEnabled):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setShouldScaleViewToFitDocument):
(WebKit::WebPage::setUserContentExtensionsEnabled):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Pass a boolean from the API to WebCore.

12:52 PM Changeset in webkit [185839] by andersca@apple.com
  • 15 edits in trunk/Source/WebKit2

Remove m_clientRunLoop from IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=146212

Reviewed by Sam Weinig.

We only ever create connections whose messages are dispatched to the main run loop, so we can
vastly simplify the code by only allowing messages to be dispatched there.

  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::createServerConnection):
(IPC::Connection::createClientConnection):
(IPC::Connection::Connection):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::wakeUpRunLoop):

  • Platform/IPC/Connection.h:
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::receiveSourceEventHandler):

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::WebProcessConnection):

  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::initialize):

  • Shared/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::didFinishLaunching):

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching):

  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):

  • WebProcess/Plugins/PluginProcessConnection.cpp:

(WebKit::PluginProcessConnection::PluginProcessConnection):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::createInspectorPage):

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::establishConnection):

12:35 PM Changeset in webkit [185838] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION(r169105) Dangling renderer pointer in SelectionSubtreeRoot::SelectionSubtreeData.
https://bugs.webkit.org/show_bug.cgi?id=146116
rdar://problem/20959369

Reviewed by Brent Fulgham.

This patch ensures that we don't adjust the selection unless the visual selection still matches this subtree root.

When multiple selection roots are present we need to ensure that a RenderObject
only shows up in one of them.
RenderView::splitSelectionBetweenSubtrees(), as the name implies, splits the
selection and sets the selection range (start/end) on each selection root.
However, SelectionSubtreeRoot::adjustForVisibleSelection() later recomputes the range
based on visible selection and that could end up collecting renderers as selection start/end
from another selection subtree.
RenderObject's holds the last selection state (RenderObject::setSelectionState).
If we set a renderer first as "on selection border" and later "inside" using multiple selection roots,
we can't clean up selections properly when this object gets destroyed.
One of the roots ends up with a dangling RenderObject pointer.

Source/WebCore:

Test: fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees.html

  • rendering/SelectionSubtreeRoot.cpp:

(WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):

LayoutTests:

  • fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees-expected.txt: Added.
  • fast/regions/crash-when-renderer-is-in-multiple-selection-subtrees.html: Added.
12:30 PM Changeset in webkit [185837] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Crashes in hit testing under WebPage::acceptsFirstMouse() while handling sync message in plug-in teardown
https://bugs.webkit.org/show_bug.cgi?id=146211
rdar://problem/17180615

Reviewed by Sam Weinig.

If we're inside a sendSync message when we're being called, just bail.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::acceptsFirstMouse):

10:53 AM Changeset in webkit [185836] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Consider making read-only style rules have a darker background
https://bugs.webkit.org/show_bug.cgi?id=145983

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section:not(.locked)):
(.style-declaration-section): Deleted.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor.read-only > .CodeMirror):

10:47 AM Changeset in webkit [185835] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unable to select text of user input messages in the console
https://bugs.webkit.org/show_bug.cgi?id=145888

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-user-command > .console-message-text):

10:41 AM Changeset in webkit [185834] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Do not exit fullscreen when starting PiP since this is done automatically.
https://bugs.webkit.org/show_bug.cgi?id=144871

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-22
Reviewed by Darin Adler.

Since we don't explicitly exit fullscreen, update state in shouldExitFullscreenWithReason()

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h: Declare shouldExitFullscreenWithReason().
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController playerViewController:shouldExitFullScreenWithReason:]): Forward to WebVideoFullscreenInterfaceAVKit.
(WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): Added.
(WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture): Remove enter fullscreen code.

  • platform/spi/cocoa/AVKitSPI.h: Add missing enums.
10:11 AM Changeset in webkit [185833] by fpizlo@apple.com
  • 6 edits
    1 add in trunk

Run CDjs as part of JSC stress testing
https://bugs.webkit.org/show_bug.cgi?id=146174

Reviewed by Geoffrey Garen.

PerformanceTests:

  • JetStream/cdjs/cdjs-tests.yaml: Added. This tells JSC stress tests what tests to run. It uses new syntax ("tests" being a list) that I add in this change.
  • JetStream/cdjs/main.js: Mark this as a slow test.
  • JetStream/create.rb: Don't copy the JSC stress tests artifacts into the JetStream bundle.

Tools:

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Make this aware of the cdjs-tests.yaml.

  • Scripts/run-jsc-stress-tests:
  • Teach this about tests that indicate error by returning an error code while also having lots of output even when they succeed.
  • Add the ability to have "tests" be a list of tests rather than just one test. This could also be a list of directories that have tests.
  • Fix a bug with bundle copying: whether the $collection should have the basename appended depends on whether we copy into bundleDir.dirname, not on whether absoluteCollection is a directory.
10:04 AM Changeset in webkit [185832] by mitz@apple.com
  • 2 edits
    1 add in trunk/Source/WebKit2

Part 1 of [Xcode] Fold the WebKit2SandboxProfiles-IOSOverride target into the Sandbox Profiles target
https://bugs.webkit.org/show_bug.cgi?id=146197

Reviewed by Anders Carlsson.

  • Configurations/SandboxProfiles.xcconfig: Added. Defines INSTALL_PATH based on the value

of WK_INSTALL_OVERRIDE_SANDBOX_PROFILES.

  • WebKit2.xcodeproj/project.pbxproj: Use SandboxProfiles.xcconfig for the Sandbox Profiles

target, and change the destination path in its Copy Files build phase to INSTALL_PATH.

9:35 AM Changeset in webkit [185831] by bshafiei@apple.com
  • 3 edits in tags/Safari-601.1.35.2.3/Source/WebKit2

Merged r185814. rdar://problem/21444762

9:34 AM Changeset in webkit [185830] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.35.2.3/Source

Versioning.

9:29 AM Changeset in webkit [185829] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.35.2.3

New tag.

9:17 AM Changeset in webkit [185828] by dbates@webkit.org
  • 5 edits
    7 adds in trunk

AX: UI Automation cannot find AutoFill or search cancel buttons
https://bugs.webkit.org/show_bug.cgi?id=145241
<rdar://problem/21051411>

Reviewed by Chris Fleizach.

Source/WebCore:

Add support for hit testing the search cancel button and AutoFill button so that
they can be accessed by UI Automation.

Currently the accessibility hit test machinery ignores nodes in a shadow tree.
So, it neither finds the <input type="search"> cancel button nor the AutoFill button
when it performs a hit test. Therefore these buttons cannot be accessed using
UI Automation.

Tests: accessibility/hit-test-input-auto-fill-button.html

accessibility/hit-test-input-search-cancel-button.html
accessibility/input-search-cancel-button.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::accessibilityTextFieldDecorationHitTest): Added; returns
the AccessibilityObject for the search cancel button or AutoFill text field decoration as applicable.
(WebCore::AccessibilityRenderObject::accessibilityHitTest): Check whether the hit node
is a text field decoration.

LayoutTests:

Add tests to ensure that there exists an accessibility element for the
search cancel button and that it can be hit using a cursor position. Also
add a test to ensue that the AutoFill button can be hit using a cursor position.

  • accessibility/hit-test-input-auto-fill-button-expected.txt: Added.
  • accessibility/hit-test-input-auto-fill-button.html: Copied from LayoutTests/accessibility/input-auto-fill-button.html.
  • accessibility/hit-test-input-search-cancel-button-expected.txt: Added.
  • accessibility/hit-test-input-search-cancel-button.html: Added.
  • accessibility/input-search-cancel-button-expected.txt: Added.
  • accessibility/input-search-cancel-button.html: Copied from LayoutTests/accessibility/input-auto-fill-button.html.
  • accessibility/resources/shouldBeAccessibleByCursor.js: Added.

(shouldBeAccessibleByCursor): Tests whether an AccessibilityUIElement can be hit
using its screen position.

  • platform/wk2/TestExpectations: Mark tests hit-test-input-{auto-fill, search-cancel}-button.html

as failing due to <https://bugs.webkit.org/show_bug.cgi?id=71298>.

7:32 AM Changeset in webkit [185827] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Crash replacing TabDocument in MobileSafari at WebKit: -[WKWebView(WKPrivate) _beginAnimatedResizeWithUpdates:]
https://bugs.webkit.org/show_bug.cgi?id=146201

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _beginAnimatedResizeWithUpdates:]):

No repro but if for some reason [_contentView bounds] width is zero we'll compute +Inf targetScale
and then NaN contentOffset.x. Verified in lldb that this gives the exact crash signature seen.

Fix by checking that [_contentView bounds] is not empty like is done with other inputs.

6:59 AM Changeset in webkit [185826] by youenn.fablet@crf.canon.fr
  • 18 edits in trunk

[Streams API] Implement ReadableStream cancel (abstract part)
https://bugs.webkit.org/show_bug.cgi?id=146111

Reviewed by Darin Adler.

Source/WebCore:

This patch implements ReadableStream and ReadableStreamReader cancel.
The reader delegates cancellation to its stream.

This patch also ensures that controller.close() will not throw in case cancellation is on-going.

A follow-up patch will implement the calling of 'cancel' JS callback for JS sources.

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::cancel): Checks whether locked or not before cancelling.
(WebCore::ReadableStream::cancelNoCheck): Cancel without lock check.
(WebCore::ReadableStream::notifyCancelSucceeded): Async cancel callback.
(WebCore::ReadableStream::notifyCancelFailed): Ditto.

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStream.idl: Cleaned up IDL.
  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::cancel):

  • Modules/streams/ReadableStreamReader.h:
  • Modules/streams/ReadableStreamReader.idl: Cleaned up IDL
  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::close):

  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::JSReadableStream::cancel):

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::cancel):

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::doCancel):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

Rebasing expectations.

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/readable-stream-cancel-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
5:42 AM Changeset in webkit [185825] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r182303): [GTK] Context menu API is broken since r182303
https://bugs.webkit.org/show_bug.cgi?id=146202

Reviewed by Žan Doberšek.

The problem is that ContextMenuclient API changed in r182303, but
we didn't notice it either, and the default handler for
getContextMenuFromProposedMenu was executed. An override keyword
would have caught this.

  • UIProcess/API/gtk/WebKitContextMenuClient.cpp: Build a Vector of

WebContextMenuItemData as expected by our API, and add add
override keyword to ensure this doesn't happen again.

5:06 AM Changeset in webkit [185824] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[WK2] ConnectionUnix should use FastMalloc to allocate on-heap resources
https://bugs.webkit.org/show_bug.cgi?id=146143

Reviewed by Carlos Garcia Campos.

IPC handling in Unix-specific IPC::Connection implementation should use
FastMalloc to allocate on-heap resources, instead of allocating via the
system allocator.

The AttachmentInfo class is marked as allocatable through FastMalloc.
That way it can be allocated through FastMalloc while still handled
through std::unique_ptr<>.

The char[] arrays in readBytesFromSocket() and Connection::sendOutgoingMessage()
are now handled through a MallocPtr<> object.

In Connection::sendOutgoingMessage(), both the AttachmentInfo[] and char[]
arrays are now only allocated if there are actual attachments contained
in the message. The code that's conditioned with a non-empty attachments
Vector is now also grouped together, in a single branch.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket):
(IPC::Connection::sendOutgoingMessage):

4:55 AM Changeset in webkit [185823] by zandobersek@gmail.com
  • 3 edits in trunk

[CMake] Add support for building with various sanitizer tools
https://bugs.webkit.org/show_bug.cgi?id=131941

Reviewed by Martin Robinson.

  • Source/PlatformGTK.cmake: Don't generate any documentation

when compiling with sanitizers enabled.

  • Source/cmake/OptionsCommon.cmake: Allow linking with

undefined symbols when compiling with sanitizers enabled.

3:03 AM Changeset in webkit [185822] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[EFL] test_ewk2_application_cache_manager has been failed since r185527
https://bugs.webkit.org/show_bug.cgi?id=146016

Reviewed by Csaba Osztrogonác.

  • UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:

(TEST_F): Disable this test for now. This test will be enabled again.

1:57 AM Changeset in webkit [185821] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/LayoutTests

[Streams API] Correct releaseLock test in readable-stream-templated.html
https://bugs.webkit.org/show_bug.cgi?id=146101

Reviewed by Darin Adler.

  • streams/reference-implementation/readable-stream-templated-expected.txt: Rebased changed test.
  • streams/reference-implementation/readable-stream-templated.html: Removed testharness wrapper around function.
1:36 AM Changeset in webkit [185820] by adam.bergkvist@ericsson.com
  • 8 edits in trunk

WebRTC: Navigator.webkitGetUserMedia() requires three arguments
https://bugs.webkit.org/show_bug.cgi?id=146022

Reviewed by Eric Carlson.

Source/WebCore:

Updated custom binding to make the third error callback argument
mandatory. Updated and unskipped three tests (for the GTK+ port).

  • bindings/js/JSNavigatorCustom.cpp:

(WebCore::JSNavigator::webkitGetUserMedia):

LayoutTests:

Updated and unskipped three existing tests.

  • fast/mediastream/argument-types-expected.txt:
  • fast/mediastream/getusermedia-expected.txt:
  • fast/mediastream/getusermedia.html:
  • fast/mediastream/script-tests/argument-types.js:
  • platform/gtk/TestExpectations:
12:57 AM Changeset in webkit [185819] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix GTK+ build after r185818.

Actually rollout r185320.

  • platform/network/soup/DNSSoup.cpp:

(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
(WebCore::DNSResolveQueue::platformResolve):
(WebCore::gotProxySettingsCallback): Deleted.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Deleted.

Jun 21, 2015:

11:32 PM Changeset in webkit [185818] by barraclough@apple.com
  • 9 edits in trunk/Source

Page load performance regression due to bugs.webkit.org/show_bug.cgi?id=145542
https://bugs.webkit.org/show_bug.cgi?id=146198

Unreviewed rollout.

Source/WebCore:

  • platform/network/DNSResolveQueue.cpp:

(WebCore::DNSResolveQueue::DNSResolveQueue):
(WebCore::DNSResolveQueue::isUsingProxy):
(WebCore::DNSResolveQueue::add):
(WebCore::DNSResolveQueue::timerFired):

  • platform/network/DNSResolveQueue.h:
  • platform/network/cf/DNSCFNet.cpp:

(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
(WebCore::clientCallback):
(WebCore::DNSResolveQueue::platformResolve):
(WebCore::proxyIsEnabledInSystemPreferences): Deleted.
(WebCore::isUsingProxy): Deleted.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Deleted.

  • platform/network/soup/DNSSoup.cpp:

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkit_web_context_prefetch_dns):

Source/WTF:

  • wtf/glib/GUniquePtr.h:
9:48 PM Changeset in webkit [185817] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

WKApplicationCacheManagerDeleteEntriesForOrigin() has wrong WebsiteDataTypes.
https://bugs.webkit.org/show_bug.cgi?id=146180

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-21
Reviewed by Sam Weinig.

Modify to use correct WebsiteDataTypes in WKApplicationCacheManagerDeleteEntriesForOrigin()

  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerDeleteEntriesForOrigin):

9:25 PM Changeset in webkit [185816] by ap@apple.com
  • 5 edits
    1 add in trunk

REGRESSION (r172975): navigator.language unable to tell region for Traditional Chinese users
https://bugs.webkit.org/show_bug.cgi?id=146121
rdar://problem/21395180

Reviewed by Darin Adler.

Source/WebCore:

Revert to previous behavior, which is wrong in many ways, but not as wrong as the new one.

  • platform/mac/Language.mm:

(WebCore::httpStyleLanguageCode):
(WebCore::platformUserPreferredLanguages):

  • platform/spi/cf/CFBundleSPI.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/NavigatorLanguage.mm: Added.

(-[NavigatorLanguageDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::overrideAppleLanguages):
(TestWebKitAPI::languageForSystemLanguage):
(TestWebKitAPI::TEST):

8:25 PM Changeset in webkit [185815] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html is slow on Mavericks WK1 Debug builds

The Flakiness Dashboard says that this test times out, but only
on Mavericks WK1 Debug builds (and the leaks bot):

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Ftex-image-and-sub-image-2d-with-video.html>

  • platform/mac-wk1/TestExpectations: Mark test as slow on

Mavericks Debug builds:

  • fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html
4:44 PM Changeset in webkit [185814] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

<rdar://problem/21444762> REGRESSION (r184215): Plug-in services crash on launch on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=146195

Reviewed by Sam Weinig.

  • Configurations/PluginService.32.xcconfig: Changed the Yosemite definition of

INFOPLIST_FILE such that it would also apply to the macosx10.10.internal SDK.

  • Configurations/PluginService.64.xcconfig: Ditto.
2:14 PM Changeset in webkit [185813] by aestes@apple.com
  • 23 edits in trunk/Source/WebCore

Give Node::didNotifySubtreeInsertions() a better name
https://bugs.webkit.org/show_bug.cgi?id=146170

Reviewed by Darin Adler.

didNotifySubtreeInsertions() is not a good name. It sounds like we are notifying the subtree insertions, which doesn't make sense.

This function is really about notifying the Node that the subtree it's a part of has finished being inserted into the DOM
(i.e. all nodes have received their call to insertedInto()). Change the name to finishedInsertingSubtree() to better reflect this.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::notifyChildInserted):

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):

  • dom/Node.h:

(WebCore::Node::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::Node::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::ScriptElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • dom/ScriptElement.h:
  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::insertedInto):
(WebCore::HTMLFrameElementBase::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • html/HTMLFrameElementBase.h:
  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::insertedInto):
(WebCore::HTMLScriptElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::HTMLScriptElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • html/HTMLScriptElement.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::insertedInto):
(WebCore::SVGFEImageElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGFEImageElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • svg/SVGFEImageElement.h:
  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::insertedInto):
(WebCore::SVGMPathElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGMPathElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • svg/SVGMPathElement.h:
  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::insertedInto):
(WebCore::SVGScriptElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGScriptElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • svg/SVGScriptElement.h:
  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::insertedInto):
(WebCore::SVGTRefElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGTRefElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • svg/SVGTRefElement.h:
  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::insertedInto):
(WebCore::SVGTextPathElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGTextPathElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • svg/SVGTextPathElement.h:
  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::insertedInto):
(WebCore::SVGSMILElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGSMILElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.

  • svg/animation/SVGSMILElement.h:
9:44 AM Changeset in webkit [185812] by ddkilzer@apple.com
  • 3 edits in trunk/LayoutTests

fast/fixed-layout/fixed-layout.html times out on Apple WK2 bots

The Flakiness Dashboard says this test times out on Apple
WebKit2 platforms by not calling testRunner.notifyDone():

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Ffixed-layout%2Ffixed-layout.html>

  • fast/css-grid-layout/flex-content-sized-columns-resize.html:

Use the same mechanism here that was just added in r185811.

  • fast/fixed-layout/fixed-layout.html: Switch to using a

zero-delay timer instead of document.body.offsetTop.

9:16 AM Changeset in webkit [185811] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r185809): fast/css-grid-layout/flex-content-sized-columns-resize.html hangs on WK1

Since window.resize() occurs in the same runloop as the load on
WK1, testRunner.notifyDone() would never get called.

  • fast/css-grid-layout/flex-content-sized-columns-resize.html:

Call document.body.offsetTop to ensure layout occurs at the
initial window size before calling window.resize().

9:01 AM Changeset in webkit [185810] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

  • Shared/API/Cocoa/WKFoundation.h: Don’t use generics if the SDK doesn’t support them.
8:57 AM Changeset in webkit [185809] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/css-grid-layout/flex-content-sized-columns-resize.html is flaky

The Flakiness Dashboard says this test is flaky on Apple and EFL
WebKit2 platforms:

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcss-grid-layout%2Fflex-content-sized-columns-resize.html>

It currently doesn't wait for window.resize() to complete, which
is likely the source of flakiness.

  • fast/css-grid-layout/flex-content-sized-columns-resize.html:

Switch to using notifyDone() inside a window.onresize function,
and make the test work in a web browser without TestRunner.

6:19 AM Changeset in webkit [185808] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[SOUP] Use GTask in WebKitSoupRequestInputStream
https://bugs.webkit.org/show_bug.cgi?id=146184

Reviewed by Carlos Garcia Campos.

Replace deprecated use of GSimpleAsyncResult with GTask.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(AsyncReadData::AsyncReadData):
(webkitSoupRequestInputStreamReadAsyncResultComplete):
(webkitSoupRequestInputStreamPendingReadAsyncComplete):
(webkitSoupRequestInputStreamReadAsync):
(webkitSoupRequestInputStreamReadFinish):

6:15 AM Changeset in webkit [185807] by Michael Catanzaro
  • 4 edits in trunk/Source/WebKit2

Fix format strings in NetworkCache.cpp and NetworkCacheStatistics.cpp and WebIDBServerConnection.cpp
https://bugs.webkit.org/show_bug.cgi?id=146172

Reviewed by Darin Adler.

Use the correct %"PRIu64" and %"PRIi64" for uint64_t and int64_t, instead of %llu and %lli.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
(WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry):
(WebKit::NetworkCache::Statistics::recordRevalidationSuccess):

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:

(WebKit::WebIDBServerConnection::deleteDatabase):
(WebKit::WebIDBServerConnection::didDeleteDatabase):
(WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
(WebKit::WebIDBServerConnection::didGetOrEstablishIDBDatabaseMetadata):
(WebKit::WebIDBServerConnection::openTransaction):
(WebKit::WebIDBServerConnection::didOpenTransaction):
(WebKit::WebIDBServerConnection::beginTransaction):
(WebKit::WebIDBServerConnection::didBeginTransaction):
(WebKit::WebIDBServerConnection::commitTransaction):
(WebKit::WebIDBServerConnection::didCommitTransaction):
(WebKit::WebIDBServerConnection::resetTransaction):
(WebKit::WebIDBServerConnection::didResetTransaction):
(WebKit::WebIDBServerConnection::rollbackTransaction):
(WebKit::WebIDBServerConnection::didRollbackTransaction):
(WebKit::WebIDBServerConnection::createObjectStore):
(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::createIndex):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::deleteIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::get):
(WebKit::WebIDBServerConnection::put):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::count):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::deleteRange):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::clearObjectStore):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::deleteObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::changeDatabaseVersion):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):
(WebKit::WebIDBServerConnection::openCursor):
(WebKit::WebIDBServerConnection::cursorAdvance):
(WebKit::WebIDBServerConnection::cursorIterate):

6:15 AM Changeset in webkit [185806] by Michael Catanzaro
  • 13 edits in trunk/Tools

[CMake] Ignore warnings from system headers when compiling Tools
https://bugs.webkit.org/show_bug.cgi?id=146185

Reviewed by Martin Robinson.

Use the SYSTEM argument to the include_directories() command to silence compiler warnings
from system headers that we don't control.

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
  • ImageDiff/CMakeLists.txt: Also, remove an EFL include directory from here...
  • ImageDiff/PlatformEfl.cmake: ...and put it here where it belongs.
  • ImageDiff/PlatformGTK.cmake:
  • MiniBrowser/efl/CMakeLists.txt:
  • MiniBrowser/gtk/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • WebKitTestRunner/CMakeLists.txt:
  • WebKitTestRunner/PlatformEfl.cmake:
  • WebKitTestRunner/PlatformGTK.cmake:
3:06 AM Changeset in webkit [185805] by commit-queue@webkit.org
  • 5 edits in trunk

libwebkit2gtk fails to link without opengl
https://bugs.webkit.org/show_bug.cgi?id=138332

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-06-21
Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/OptionsGTK.cmake: USE(TEXTURE_MAPPER) must be

enabled regardless of whether OpenGL is, because certain symbols
such as WebCore::GraphicsLayer::create() need to be built.

Source/WebCore:

  • CMakeLists.txt: The third-party ANGLE directories need to be

included even if ENABLE(GRAPHICS_CONTEXT_3D) is false. They must
be included after the OpenGL headers as the comment says.

  • platform/graphics/texmap/BitmapTexturePool.cpp: Remove

reference to no longer existent header file.

Jun 20, 2015:

11:43 PM Changeset in webkit [185804] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Deselection of text causes a noticeable jump on force touch machines
https://bugs.webkit.org/show_bug.cgi?id=146173
<rdar://problem/20992842>

Reviewed by Sam Weinig.

Source/WebCore:

When we have a TextIndicator of type Crossfade, we end up putting
a layer with the blue highlight + text painted into it on top of the
content, and cross-fading that layer to the yellow-highlighted text.

This is necessary for BounceAndCrossfade TextIndicators, because the
blue highlight has to bounce, but is not necessary for Crossfade-only
ones; we can just fade in the yellow highlight on top of the
existing blue page highlight, and all is well.

So, get rid of the Crossfade TextIndicator type and use FadeIn, separately
keeping track of whether or not we can add a margin (we still can't
add a margin to TextIndicators that indicate the page's current selection,
because the blue highlight cannot have the margin applied to it, and we
want the bounds to match exactly).

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
If the range is the same as the selection, turn off the margin.
We were previously doing this based on the presentation transition, but now
there's no difference in presentation transition in this case.

(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::TextIndicator::wantsBounce):
(WebCore::TextIndicator::wantsContentCrossfade):
(WebCore::TextIndicator::wantsFadeIn):
(WebCore::TextIndicator::wantsManualAnimation):

  • page/TextIndicator.h:

Get rid of TextIndicatorPresentationTransition::Crossfade.

(WebCore::TextIndicator::setWantsMargin):
(WebCore::TextIndicator::wantsMargin):
Keep track of whether we want a margin.

  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
Determine if we should use a margin based on wantsMargin instead of the
presentation transition.

Source/WebKit/mac:

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _animationControllerForText]):
Get rid of TextIndicatorPresentationTransition::Crossfade.

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
Encode/decode wantsMargin.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation):
(WebKit::textIndicatorTransitionForImmediateAction): Deleted.
Get rid of TextIndicatorPresentationTransition::Crossfade.

8:27 PM Changeset in webkit [185803] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

[Cocoa] Actually use Objective-C lightweight generics when the compiler supports them
https://bugs.webkit.org/show_bug.cgi?id=146183

Reviewed by Sam Weinig.

  • Shared/API/Cocoa/WKFoundation.h: When the compiler supports Objective-C generics, define

WK_ARRAY and WK_SET to use them. Also added a definition of WK_DICTIONARY.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Use WK_DICTIONARY for the options dictionary of

-_loadRequest:withOptions:.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): Made the completion
halder type match the declaration, now that NSArray and WK_ARRAY(WKWebsiteDataRecord *) are
not the same.

  • mac/postprocess-framework-headers.sh: Also rewrite WK_DICTIONARY.
4:00 PM Changeset in webkit [185802] by Michael Catanzaro
  • 4 edits in trunk

[EFL][GTK] Define GLIB_VERSION_MIN_REQUIRED and require glib 2.36 for GTK
https://bugs.webkit.org/show_bug.cgi?id=146181

Reviewed by Martin Robinson.

.:

Bump our GLib requirement to 2.36 to reflect reality, since we are using GTask.

  • Source/cmake/OptionsGTK.cmake:

Source/WTF:

Define GLIB_VERSION_MIN_REQUIRED to avoid deprecation warnings.

  • wtf/Platform.h:
3:50 PM Changeset in webkit [185801] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Define GDK_VERSION_MIN_REQUIRED when compiling MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=146186

Reviewed by Martin Robinson.

Define GDK_VERSION_MIN_REQUIRED when compiling MiniBrowser to silence several dozen
deprecation warnings. (MiniBrowser is unique in that it does not include wtf/Platform.h.)

  • MiniBrowser/gtk/CMakeLists.txt:
3:47 PM Changeset in webkit [185800] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Unable to select parent element in the DOM tree path bar
https://bugs.webkit.org/show_bug.cgi?id=145810

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView.prototype.get selectionPathComponents):

  • UserInterface/Views/HierarchicalPathComponent.js:

(WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseUp):
(WebInspector.HierarchicalPathComponent.prototype._selectElementSelectionChanged):
(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseDown): Deleted.

1:50 PM Changeset in webkit [185799] by Chris Dumez
  • 7 edits in trunk/Source/WebKit2

[WK2][iOS] Avoid synchronous IPC on view state change when the content is not visible
https://bugs.webkit.org/show_bug.cgi?id=146179
<rdar://problem/20923432>

Reviewed by Tim Horton.

After r170787, viewStateChange() would cause a synchronous IPC between
the UIProcess and the WebProcess when the view becomes visible. This
was to avoid painting empty / black tiles when unsuspending the
WebProcess on tab switch, in the event volatile IOSurfaces were purged.

However, this sync IPC can have performance implications and is not
needed when the content is not actually visible yet (e.g.
hideContentUntilNextUpdate() was called, or the tab was killed).

This patch avoids the synchronous IPC when the content is hidden and
exposes a private API on WKWebView so that clients can ask for the
content to be hidden until the next update. This would allow for
clients to avoid the synchronous IPC if they don't need the content
to be displayed synchronously (e.g. the view is obscured).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _hideContentUntilNextUpdate]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::hasVisibleContent):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchViewStateChange):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::isContentHidden):

9:48 AM Changeset in webkit [185798] by ddkilzer@apple.com
  • 3 edits
    4 copies in trunk/LayoutTests

REGRESSION (r185779): fast/canvas/{canvas-toDataURL-crash,pattern-too-large-to-create}.html are broken

This layout test started failing after the fix for:

Extremely large canvas crashes on pre-El Capitan machines
https://bugs.webkit.org/show_bug.cgi?id=146169
<rdar://problem/21410046>

Different limits require different test results for each
platform. This is the same fix for these tests as r185793.

  • fast/canvas/canvas-toDataURL-crash-expected.txt: Update.
  • fast/canvas/pattern-too-large-to-create-expected.txt: Update.
  • Set limit to 268435456.
  • platform/ios-simulator/fast/canvas/canvas-toDataURL-crash-expected.txt: Copied from LayoutTests/fast/canvas/canvas-toDataURL-crash-expected.txt.
  • platform/ios-simulator/fast/canvas/pattern-too-large-to-create-expected.txt: Copied from LayoutTests/fast/canvas/pattern-too-large-to-create-expected.txt.
  • Set limit to 16777216.
  • platform/mac-yosemite/fast/canvas/canvas-toDataURL-crash-expected.txt: Copied from LayoutTests/fast/canvas/canvas-toDataURL-crash-expected.txt.
  • platform/mac-yosemite/fast/canvas/pattern-too-large-to-create-expected.txt: Copied from LayoutTests/fast/canvas/pattern-too-large-to-create-expected.txt.
  • Set limit to 67108864.
9:30 AM Changeset in webkit [185797] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/canvas/webgl/tex-image-and-uniform-binding-bugs.html is slow on Mavericks WK1 Debug builds

The Flakiness Dashboard says that this test times out, but only
on Mavericks WK1 Debug builds:

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Ftex-image-and-uniform-binding-bugs.html>

  • platform/mac-wk1/TestExpectations: Mark test as slow on

Mavericks Debug builds:

  • fast/canvas/webgl/tex-image-and-uniform-binding-bugs.html
9:16 AM Changeset in webkit [185796] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

editing/selection/leak-document-with-selection-inside.html is flaky
<http://webkit.org/b/146182>

  • TestExpectations: Mark as flaky:
  • editing/selection/leak-document-with-selection-inside.html
9:06 AM Changeset in webkit [185795] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

Check for SHA1 certificates ignores subresources
https://bugs.webkit.org/show_bug.cgi?id=146159

Reviewed by Dan Bernstein.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame): Call
PageLoadState::didDisplayOrRunInsecureContent if a certificate chain contains a non-root
SHA1 certificate when the frame is not the main frame.

8:57 AM Changeset in webkit [185794] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Added availability information to a recently-added delegate method.

Suggested by Alexey Proskuryakov and Anders Carlsson.

  • UIProcess/API/Cocoa/WKUIDelegate.h: Annotated -webViewDidClose:.
8:10 AM Changeset in webkit [185793] by ddkilzer@apple.com
  • 2 edits
    3 adds in trunk/LayoutTests

REGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html is still broken

This layout test started failing after the fix for:

Extremely large canvas crashes on pre-El Capitan machines
https://bugs.webkit.org/show_bug.cgi?id=146169
<rdar://problem/21410046>

Different limits require different test results for each
platform. Also update the line number from 35 to 36 since the
html test file was modified in r185792.

  • fast/canvas/canvas-too-large-to-draw-expected.txt:
  • Update limit to 16384x16384 for El Capitan (and other ports) and update line number.
  • platform/ios-simulator/fast/canvas/canvas-too-large-to-draw-expected.txt: Added.
  • New results with 4096x4096 limit for iOS.
  • platform/mac-yosemite/fast/canvas/canvas-too-large-to-draw-expected.txt: Added.
  • New results with 8192x8192 limit for Mac OS X 10.10.x and older.
7:26 AM Changeset in webkit [185792] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html broken prior to El Capitan

This layout test started failing after the fix for:

Extremely large canvas crashes on pre-El Capitan machines
https://bugs.webkit.org/show_bug.cgi?id=146169
<rdar://problem/21410046>

  • fast/canvas/canvas-too-large-to-draw.html: Update test for new

expectations after r185779.

4:04 AM Changeset in webkit [185791] by Yusuke Suzuki
  • 12 edits
    1 add in trunk

[ES6] Destructuring assignment need to accept iterables
https://bugs.webkit.org/show_bug.cgi?id=144111

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch makes that destructuring assignments to array binding patterns accept iterables.
Previously, it just access the indexed properties.
After this patch, it iterates the given value by using ES6 iterator protocol.

The iteration becomes different from the for-of case.

  1. Since there's no break/continue case, finally scope is not necessary.
  2. When the error is raised, the close status of the iterator becomes true. So IteratorClose is not called for that.
  3. Since the array binding patterns requires a limited count of iterations (if there is no rest(...rest) case), IteratorClose is called when the iteration does not consume the all values of the iterator.
  4. Since the array binding patterns requires a specified count of iterations, iterator's next call is skipped when iterator becomes closed.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitIteratorClose):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::bindValue):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::finishArrayPattern):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDeconstructionPattern):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • tests/stress/destructuring-assignment-accepts-iterables.js: Added.

(shouldBe):
(shouldThrow):
(.set shouldThrow):

LayoutTests:

From this patch, we use iterators for destructuring assignments to array binding patterns.
So test results become different.

  • js/destructuring-assignment-expected.txt:
  • js/parser-syntax-check-expected.txt:
  • js/script-tests/destructuring-assignment.js:
2:18 AM Changeset in webkit [185790] by ryuan.choi@navercorp.com
  • 7 edits in trunk

[EFL] Do not consider test directories when DEVELOPER_MODE is OFF
https://bugs.webkit.org/show_bug.cgi?id=146171

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsEfl.cmake:

Exposed ENABLE_DEVELOPER_MODE to Compiler and CMake definition when DEVELOPER_MODE is ON.

Source/WebCore:

  • platform/efl/EflInspectorUtilities.cpp:

(WebCore::inspectorResourcePath): Only used WEB_INSPECTOR_DIR which CMake decides properly.

Source/WebKit2:

  • PlatformEfl.cmake:

Do not define SOURCE_DIR when DEVELOPER_MODE is OFF for seccomp filter
not to allow jhbuild directory.

  • Shared/efl/ProcessExecutablePathEfl.cpp:

(WebKit::findProcessPath): Guard test code to ENABLE(DEVELOPER_MODE).

Note: See TracTimeline for information about the timeline view.