Timeline
Aug 17, 2015:
- 11:33 PM Changeset in webkit [188579] by
-
- 47 edits1 move2 adds1 delete in trunk
Unreviewed, rolling out r188539, r188544, r188552, and
r188564.
https://bugs.webkit.org/show_bug.cgi?id=148122
Broke tests and some build styles (Requested by ap on
#webkit).
Reverted changesets:
"Web Inspector: load ProtocolTestStub from the WebInspectorUI
bundle"
https://bugs.webkit.org/show_bug.cgi?id=147955
http://trac.webkit.org/changeset/188539
"Web Inspector: split TestStub.js into multiple files and
modernize it"
https://bugs.webkit.org/show_bug.cgi?id=148077
http://trac.webkit.org/changeset/188544
"Web Inspector: InspectorTest should be a subclass of
TestHarness"
https://bugs.webkit.org/show_bug.cgi?id=148079
http://trac.webkit.org/changeset/188552
"Unreviewed internal build fix attempt after r188539."
http://trac.webkit.org/changeset/188564
- 11:28 PM Changeset in webkit [188578] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Allow typing command when a console message is selected
https://bugs.webkit.org/show_bug.cgi?id=148121
Reviewed by Timothy Hatcher.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._keyPress):
Command-C should still copy the selected message.
- 11:03 PM Changeset in webkit [188577] by
-
- 7 edits6 adds in trunk
Outline with auto style leaves bits behind when the the box is moved.
https://bugs.webkit.org/show_bug.cgi?id=148100
Reviewed by Simon Fraser.
Source/WebCore:
We paint the focus ring when 'outline-style: auto' is present, however
we don't take the focus ring width into account when the repaint rect
is computed.
Tests: fast/repaint/outline-with1px-auto-repaint-rect.html
fast/repaint/outline-with2px-auto-repaint-rect.html
fast/repaint/outline-with3px-auto-repaint-rect.html
- rendering/RenderObject.cpp:
(WebCore::RenderObject::adjustRectForOutlineAndShadow):
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformFocusRingMaxWidth): Deleted. : 0 as focus ring width is incorrect.
The reason why r169699 fixed the failing cases was because they all had outline width < 3 (but no auto outline style).
The correct fix is to check if the style requires focus ring painting and use the RenderTheme::platformFocusRingMaxWidth
accordingly.
LayoutTests:
Due to RenderView::maximalOutlineSize() each outline width need to be tested separately.
- fast/repaint/outline-with1px-auto-repaint-rect-expected.txt: Added.
- fast/repaint/outline-with1px-auto-repaint-rect.html: Added.
- fast/repaint/outline-with2px-auto-repaint-rect-expected.txt: Added.
- fast/repaint/outline-with2px-auto-repaint-rect.html: Added.
- fast/repaint/outline-with3px-auto-repaint-rect-expected.txt: Added.
- fast/repaint/outline-with3px-auto-repaint-rect.html: Added.
- 10:55 PM Changeset in webkit [188576] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Update slider styles
https://bugs.webkit.org/show_bug.cgi?id=148120
Reviewed by Timothy Hatcher.
- UserInterface/Views/Main.css:
(input[type=range]):
(input[type=range]::-webkit-slider-runnable-track::before):
- 9:55 PM Changeset in webkit [188575] by
-
- 6 edits in trunk/Source/WebCore
[Cocoa] Address post-commit review
https://bugs.webkit.org/show_bug.cgi?id=147864
Reviewed by Darin Adler.
Create helper functions to cast between NSFont*s and CTFontRefs.
No new tests because there is no behavior change.
- platform/graphics/FontPlatformData.h:
(WebCore::toCTFont):
(WebCore::toNSFont):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformCreateScaledFont):
(WebCore::Font::compositeFontReferenceFont):
- platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::platformPurgeInactiveFontData):
(WebCore::lookupCTFont):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::createFontPlatformData):
- platform/mac/DragImageMac.mm:
(WebCore::fontFromNSFont):
(WebCore::widthWithFont):
(WebCore::drawAtPoint):
- platform/spi/mac/NSFontSPI.h:
- 9:13 PM Changeset in webkit [188574] by
-
- 2 edits in trunk/Source/WebCore
WinCairo build fix after r188566
- platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
Remove reference to removed m_isCompositeFontReference.
- 9:13 PM Changeset in webkit [188573] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: font-family list is backwards in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148101
Reviewed by Timothy Hatcher.
- UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addCommaSeparatedKeyword):
Now appends new children if the current index is not set instead of inserting them.
- 9:12 PM Changeset in webkit [188572] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: Style changes to Visual sidebar selector items
https://bugs.webkit.org/show_bug.cgi?id=148114
Reviewed by Timothy Hatcher.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype._updateTitleElements):
(WebInspector.GeneralTreeElement.prototype._updateTitleTooltip):
Moved the code to update the item tooltip to its own function.
- UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.editorMouseover):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.editorMouseout):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
(WebInspector.VisualStyleDetailsPanel.prototype._populateMarginSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePaddingSection):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseover): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseout): Deleted.
Added on-hover node/selector highlighting to margin and padding editor links.
- UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox):
Replaced "No Units" with "Number" for better clarity.
- UserInterface/Views/VisualStyleSelectorTreeItem.css:
(body:not(.window-inactive, .window-docked-inactive) .item.visual-style-selector-item.selected > input[type="checkbox"]:checked::before):
(.item.visual-style-selector-item.selected > input[type="checkbox"]::before): Deleted.
Removes the white border when the window is inactive and when the checkbox is unchecked.
- UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
Now updates the title of the item when the selector changes.
- 9:11 PM Changeset in webkit [188571] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: delete key should work on multi-values visual sidebar grid sections
https://bugs.webkit.org/show_bug.cgi?id=148110
Reviewed by Timothy Hatcher.
- UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._listElementKeyDown):
If the backspace/delete key is pressed when focus is within the list element, delete
the selected list item if it is not currently being edited (if it has an editor).
- UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.get currentlyEditing):
- 9:08 PM Changeset in webkit [188570] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: web fonts or unknown fonts show up as Times in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148103
Reviewed by Timothy Hatcher.
- UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.updateMainTitle):
Fonts now fall back to sans-serif and -apple-system if they do not exist.
- 7:44 PM Changeset in webkit [188569] by
-
- 1 edit in trunk/Source/WebCore/ChangeLog
Follow up patch after r188566
- 7:31 PM Changeset in webkit [188568] by
-
- 3 edits in branches/jsc-tailcall/Source/JavaScriptCore
jsc-tailcall: Stop saving and restoring all callee saves on vmEntry / exit for platforms with per function callee saves handling
https://bugs.webkit.org/show_bug.cgi?id=147747
Reviewed by Basile Clement.
Removed saving of callee save registers and materialization of special tag registers for
64 bit platforms.
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- 7:25 PM Changeset in webkit [188567] by
-
- 4 edits in trunk/Source
Add const to content extension parser
https://bugs.webkit.org/show_bug.cgi?id=148044
Patch by Alex Christensen <achristensen@webkit.org> on 2015-08-17
Reviewed by Benjamin Poulain.
Source/JavaScriptCore:
- runtime/JSObject.h:
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly):
(JSC::JSObject::getDirectIndex):
(JSC::JSObject::getIndex):
Added a few const keywords.
Source/WebCore:
- contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::containsOnlyASCIIWithNoUppercase):
(WebCore::ContentExtensions::getDomainList):
(WebCore::ContentExtensions::getTypeFlags):
(WebCore::ContentExtensions::loadTrigger):
(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
(WebCore::ContentExtensions::loadEncodedRules):
Add const. No change in behavior.
- 7:07 PM Changeset in webkit [188566] by
-
- 18 edits13 deletes in trunk
[OS X] Remove support for composite fonts
https://bugs.webkit.org/show_bug.cgi?id=147920
Reviewed by Dan Bernstein.
Source/WebCore:
WebKit maintains a cache of code point to glyph mapping for a particular font. One of
the ways WebKit populates this cache is to create a string holding consecutive code
points, create a CTLineRef from the string, and use CTRunGetGlyphs() with
CTRunGetStringIndices() to map from the code points to the glyphs. This approach is
fundamentally incorrect, as it will combine consecutive code points together in the
string if possible to produce a glyph.
The only way WebKit will ever trigger this code path is if we are inspecting a
composite font, first introduced in [1]. These composite fonts are extremely rare
because:
- None of the preinstalled fonts on either OS X nor iOS are composite fonts,
- WebKit does not support loading web fonts from composite font files, and
- WebKit's support only ever existed on OS X (none of the other ports).
In fact, no one I've consulted with has ever seen any of these fonts used in the wild.
The fonts also require a fundamentally broken code path, and add complexity to WebKit.
[1] https://bugs.webkit.org/attachment.cgi?id=134923&action=review
No new tests.
- platform/graphics/Font.h:
- platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::operator=): Deleted.
- platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::isCompositeFontReference): Deleted.
(WebCore::FontPlatformData::operator==): Deleted.
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::compositeFontReferenceFont): Deleted.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::setFont): Deleted.
- platform/graphics/mac/GlyphPageMac.cpp:
(WebCore::shouldUseCoreText):
(WebCore::GlyphPage::fill):
Tools:
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
- DumpRenderTree/fonts/SampleFont.sfont: Removed.
- DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
- DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
- DumpRenderTree/mac/DumpRenderTree.mm:
(allowedFontFamilySet): Deleted.
(activateTestingFonts): Deleted.
- WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:
(WTR::allowedFontFamilySet): Deleted.
(WTR::activateFonts): Deleted.
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
- WebKitTestRunner/fonts/SampleFont.sfont: Removed.
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::allowedFontFamilySet): Deleted.
LayoutTests:
- fast/text/international/text-spliced-font.html: Removed.
- platform/efl/fast/text/international/text-spliced-font-expected.png: Removed.
- platform/efl/fast/text/international/text-spliced-font-expected.txt: Removed.
- platform/gtk/fast/text/international/text-spliced-font-expected.png: Removed.
- platform/gtk/fast/text/international/text-spliced-font-expected.txt: Removed.
- platform/ios-simulator-wk2/fast/text/international/text-spliced-font-expected.txt: Removed.
- platform/ios-simulator/fast/text/international/text-spliced-font-expected.txt: Removed.
- platform/mac/fast/text/international/text-spliced-font-expected.png: Removed.
- platform/mac/fast/text/international/text-spliced-font-expected.txt: Removed.
- platform/win/fast/text/international/text-spliced-font-expected.png: Removed.
- platform/win/fast/text/international/text-spliced-font-expected.txt: Removed.
- 7:02 PM Changeset in webkit [188565] by
-
- 6 edits in trunk/Source/WebCore
Some functions on DictionaryLookup.h should just be generic functions elsewhere
https://bugs.webkit.org/show_bug.cgi?id=138567
Reviewed by Dean Jackson.
No new tests, just refactoring.
- dom/Range.cpp:
(WebCore::Range::contains):
- dom/Range.h:
Add a Range::contains(VisiblePosition).
It's simpler than the old thing from DictionaryLookup.mm, but does the same thing.
It's so simple that it doesn't necessarily need to exist, but it seems useful.
- editing/VisiblePosition.cpp:
(WebCore::makeRange):
nullptrs
- editing/mac/DictionaryLookup.h:
- editing/mac/DictionaryLookup.mm:
(WebCore::selectionContainsPosition):
(WebCore::rangeForDictionaryLookupAtHitTestResult):
(WebCore::isPositionInRange): Deleted.
(WebCore::shouldUseSelection): Deleted.
Move isPositionInRange to Range.
Rename shouldUseSelection to what it really means.
I didn't move selectionContainsPosition to VisibleSelection because it
only handles Range selections, not any of the ohers, and thus isn't
generic enough to put there.
- 6:42 PM Changeset in webkit [188564] by
-
- 2 edits in trunk/Tools
Unreviewed internal build fix attempt after r188539.
- WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
- 6:38 PM Changeset in webkit [188563] by
-
- 2 edits in trunk/Source/WebKit2
Speculative GTK build fix after r188553
- CMakeLists.txt:
Added new files.
- 5:57 PM Changeset in webkit [188562] by
-
- 1 edit1 add in trunk/LayoutTests
[Win] Test gardening
Unreviewed.
- platform/win/fast/text/system-font-punctuation-expected.txt: Added.
- 5:52 PM Changeset in webkit [188561] by
-
- 2 edits in trunk/Tools
Fix the build
Unreviewed.
- TestWebKitAPI/Tests/WTF/StringHasher.cpp:
- 5:43 PM Changeset in webkit [188560] by
-
- 7 edits in trunk
[Win CMake] Allow WebKitLibraries directory to be set from the command line
https://bugs.webkit.org/show_bug.cgi?id=148112
Reviewed by Brent Fulgham.
.:
- Source/cmake/OptionsWin.cmake:
Don't use an environment variable for WEBKIT_LIBRARIES_DIR.
Instead, use the default location if nothing is passed in from the command line.
This way we can set it from the command line for the AppleInternal build.
Also, set the output directories to be consistent between the old and new build systems (and ninja).
Source/WebCore:
- PlatformAppleWin.cmake:
- PlatformWinCairo.cmake:
Don't use an environment variable for WEBKIT_LIBRARIES_DIR.
Source/WebKit:
- PlatformWin.cmake:
Don't use an environment variable for WEBKIT_LIBRARIES_DIR.
- 5:42 PM Changeset in webkit [188559] by
-
- 2 edits in trunk/Source/WebCore
[OS X] Migrate off of CTFontSetRenderingParameters()
https://bugs.webkit.org/show_bug.cgi?id=148113
Reviewed by Lucas Forschler.
Instead, use CTFontSetRenderingStyle().
No new tests because there is no behavior change.
- platform/spi/cocoa/CoreTextSPI.h:
- 5:21 PM Changeset in webkit [188558] by
-
- 19 edits in trunk
Build Debug Suffix on Windows with CMake
https://bugs.webkit.org/show_bug.cgi?id=148083
Reviewed by Brent Fulgham.
.:
- Source/cmake/OptionsWin.cmake:
Use debug libraries in debug suffix builds.
Source/JavaScriptCore:
- CMakeLists.txt:
- PlatformWin.cmake:
- shell/CMakeLists.txt:
- shell/PlatformWin.cmake:
Add DEBUG_SUFFIX
Source/WebCore:
- CMakeLists.txt:
- PlatformAppleWin.cmake:
- PlatformWin.cmake:
Add DEBUG_SUFFIX
Source/WebKit:
- CMakeLists.txt:
- PlatformWin.cmake:
Add DEBUG_SUFFIX
Source/WTF:
- wtf/PlatformWin.cmake:
Add DEBUG_SUFFIX
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/PlatformWin.cmake:
Add DEBUG_SUFFIX
- 4:59 PM Changeset in webkit [188557] by
-
- 21 edits1 move in trunk/Source
Implement IntegerHasher
https://bugs.webkit.org/show_bug.cgi?id=147866
Reviewed by Darin Adler and Anders Carlsson.
Source/WebCore:
Rename StringHasher.h to Hasher.
No new tests because there is no behavior difference.
- contentextensions/DFAMinimizer.cpp: Use new #include.
- contentextensions/HashableActionList.h: Ditto.
- platform/graphics/FontFeatureSettings.cpp:
(WebCore::FontFeatureSettings::hash): Use new IntegerHasher class.
(WebCore::FontFeature::hash): Deleted.
- platform/graphics/FontFeatureSettings.h: Remove unnecessary function.
- platform/graphics/Gradient.cpp: Use new #include.
- platform/graphics/WidthCache.h: Ditto.
Source/WebInspectorUI:
Update comment.
- UserInterface/Base/Utilities.js:
Source/WebKit2:
Use new #include.
- DatabaseProcess/IndexedDB/IDBIdentifier.h:
- Platform/IPC/StringReference.cpp:
Source/WTF:
Rename StringHasher.h to Hasher.h, and include an IntegerHasher class.
- WTF.vcxproj/WTF.vcxproj: Update to target new file.
- WTF.vcxproj/WTF.vcxproj.filters: Ditto.
- WTF.xcodeproj/project.pbxproj: Ditto.
- wtf/CMakeLists.txt: Ditto.
- wtf/Hasher.h: Renamed from Source/WTF/wtf/StringHasher.h.
- wtf/text/CString.cpp: Use new #include
- wtf/text/StringHash.h: Ditto.
- wtf/text/StringImpl.h: Ditto.
- wtf/unicode/UTF8.cpp: Ditto.
- 4:59 PM Changeset in webkit [188556] by
-
- 6 edits in branches/jsc-tailcall/Source/JavaScriptCore
jsc-tailcall: REGRESSION(r188071): Crash when handling exception in Release builds
https://bugs.webkit.org/show_bug.cgi?id=147759
Reviewed by Basile Clement.
Fix a couple of issue to properly save and unwind callee save registers.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::usedRegisters): Need to include the callee save registers in the
set of registers not availble for making thunks.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall): Need to restore callee save registers before making
a slow path tail call.
- interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::operator()): We need to copy the current frames callee saves to the VM
callee save register buffer when we have found the frame with the catch block.
- jit/AssemblyHelpers.h: Changed to materialize the VM::calleeSaveRegsiterBuffer with one immediate move.
- llint/LowLevelInterpreter64.asm:
(llint_throw_from_slow_path_trampoline): We need to the current callee saves registers to the
VM::calleeSaveRegsiterBuffer before we process the exception.
- 4:58 PM Changeset in webkit [188555] by
-
- 8 edits in branches/jsc-tailcall/Source/JavaScriptCore
jsc-tailcall: Handling exception in caller frame cannot unwind past VMEntry frame
https://bugs.webkit.org/show_bug.cgi?id=148076
Reviewed by Basile Clement.
When we are unwinding from our caller, we need to check if we are the top JavaScript entry frame.
If so, we don't need to unwind any further, we just process as an unhandled exception.
Moved the processing of "unwind from caller frame" into genericUnwind(). Added an enum parameter
to indicate whether or not we start unwinding from the current frame or caller's frame.
In the case of the LLInt, we now handle a stack overflow exception from the current frame and not
the caller's frame. This is needed because the unwind code needs to restore the callee saves
that the LLInt has saved, namely the PC register which is needed to make slow path calls.
- interpreter/CallFrame.cpp:
(JSC::CallFrame::callerFrameIsVMEntryFrame):
- interpreter/CallFrame.h:
(JSC::CallFrame::callerFrameIsVMEntryFrame):
New helper function to determine if we are the top JavaScript frame.
- jit/JITExceptions.cpp:
(JSC::genericUnwind):
- jit/JITExceptions.h:
Added enum parameter to genericUnwind() to indicate if we are unwinding from the current or
caller frame.
- jit/JITOperations.cpp:
(JSC:lookupExceptionHandlerFromCallerFrame): Moved the caller frame processing to genericUnwind().
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_stack_check): Changed to process the exception in the current frame.
- llint/LowLevelInterpreter.asm:
Made sure to account for calle save register space when making a call to llint_stack_check.
- 4:48 PM Changeset in webkit [188554] by
-
- 1 copy in tags/Safari-601.1.52
New tag.
- 4:39 PM Changeset in webkit [188553] by
-
- 11 edits4 copies in trunk/Source/WebKit2
Add WKWindowFeaturesRef and a new modern createNewPage UI client callback
https://bugs.webkit.org/show_bug.cgi?id=147989
Reviewed by Tim Horton.
Re-land this and make sure we actually allocate a WKWindowFeatures object.
- Platform/IPC/mac/ConnectionMac.mm:
- Shared/API/APIObject.h:
- Shared/API/c/WKBase.h:
- UIProcess/API/APIWindowFeatures.cpp: Added.
- UIProcess/API/APIWindowFeatures.h: Added.
- UIProcess/API/C/WKAPICast.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
- UIProcess/API/C/WKPageUIClient.h:
- UIProcess/API/C/WKWindowFeaturesRef.cpp: Added.
(WKWindowFeaturesGetTypeID):
- UIProcess/API/C/WKWindowFeaturesRef.h: Added.
- UIProcess/API/Cocoa/WKWindowFeatures.mm:
(-[WKWindowFeatures dealloc]):
(-[WKWindowFeatures menuBarVisibility]):
(-[WKWindowFeatures statusBarVisibility]):
(-[WKWindowFeatures toolbarsVisibility]):
(-[WKWindowFeatures allowsResizing]):
(-[WKWindowFeatures x]):
(-[WKWindowFeatures y]):
(-[WKWindowFeatures width]):
(-[WKWindowFeatures height]):
(-[WKWindowFeatures _apiObject]):
(-[WKWindowFeatures _initWithWindowFeatures:]): Deleted.
- UIProcess/API/Cocoa/WKWindowFeaturesInternal.h:
(WebKit::wrapper):
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
- WebKit2.xcodeproj/project.pbxproj:
- 4:37 PM Changeset in webkit [188552] by
-
- 15 edits1 add in trunk
Web Inspector: InspectorTest should be a subclass of TestHarness
https://bugs.webkit.org/show_bug.cgi?id=148079
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
Extract the frontend test harness into a subclass. Delete some code that
is now redundant. Sprinkle some ES6 syntax where possible.
Rewrite the code that redirects the Inspector page's console messages to
the test page, since it didn't appear to work any more.
- UserInterface/Test.html:
- UserInterface/Test/FrontendTestHarness.js: Added.
(FrontendTestHarness):
(FrontendTestHarness.prototype.completeTest):
(FrontendTestHarness.prototype.addResult):
(FrontendTestHarness.prototype.debugLog):
(FrontendTestHarness.prototype.evaluateInPage):
(FrontendTestHarness.prototype.expectNoError):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype.reloadPage):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
(FrontendTestHarness.prototype.reportUncaughtException):
(FrontendTestHarness.prototype._resendResults):
- UserInterface/Test/Test.js:
(InspectorTest.EventDispatcher.prototype.dispatchEvent): Deleted.
(InspectorTest.EventDispatcher): Deleted.
(InspectorTest.log): Deleted.
(InspectorTest.assert): Deleted.
(InspectorTest.expectThat): Deleted.
(InspectorTest.debugLog): Deleted.
(InspectorTest.expectNoError): Deleted.
(InspectorTest.completeTest): Deleted.
(InspectorTest.evaluateInPage): Deleted.
(InspectorTest.addResult): Deleted.
(InspectorTest._resendResults): Deleted.
(InspectorTest.testPageDidLoad): Deleted.
(InspectorTest.reloadPage): Deleted.
(InspectorTest.reportUncaughtException): Deleted.
LayoutTests:
Rename InspectorTestProxy to TestPage.
- http/tests/inspector/debugger/debugger-test.js:
- http/tests/inspector/dom/shapes-test.js:
- http/tests/inspector/replay/replay-test.js:
- http/tests/inspector/resources/inspector-test.js:
(TestPage.registerInitializer):
(runTest):
(TestPage.completeTest):
(TestPage.debugLog):
(TestPage.addResult):
(TestPage.reportUncaughtException):
(InspectorTestProxy.registerInitializer): Deleted.
(InspectorTestProxy.completeTest): Deleted.
(InspectorTestProxy.debugLog): Deleted.
(InspectorTestProxy.addResult): Deleted.
(InspectorTestProxy.reportUncaughtException): Deleted.
- inspector/debugger/breakpoint-action-eval.html:
- inspector/debugger/resources/break-on-exception-tests.js:
- inspector/debugger/resources/script-for-breakpoint-actions.js:
(breakpointActions):
- inspector/debugger/search-scripts.html:
- inspector/replay/window-navigator-plugins-memoized.html:
- inspector/timeline/debugger-paused-while-recording.html:
- inspector/timeline/exception-in-injected-script-while-recording.html:
- 4:03 PM Changeset in webkit [188551] by
-
- 2 edits in trunk/LayoutTests
Remove failing expectations for some WK2 tests that have passed for the
last 15 builds.
- platform/ios-simulator-wk2/TestExpectations:
- 3:57 PM Changeset in webkit [188550] by
-
- 5 edits in trunk/Source/WebCore
Log actual PageCache retrieval success rate using diagnostic logging
https://bugs.webkit.org/show_bug.cgi?id=147937
Reviewed by Antti Koivisto.
Log actual PageCache retrieval success rate using diagnostic logging.
Previously, we would only log how successful we are at saving entries
into the cache, which is not the most interesting metric.
- history/PageCache.cpp:
(WebCore::canCachePage):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
- page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::canCacheKey):
- page/DiagnosticLoggingKeys.h:
- 3:57 PM Changeset in webkit [188549] by
-
- 5 edits in trunk/Source
Web Inspector: Type profiler return types aren't showing up
https://bugs.webkit.org/show_bug.cgi?id=147348
Patch by Saam barati <sbarati@apple.com> on 2015-08-17
Reviewed by Brian Burg.
Bug #145995 changed the starting offset of a function to
be the open parenthesis of the function's parameter list.
Source/JavaScriptCore:
This broke JSC's type profiler protocol of communicating
return types of a function to the web inspector. This
is now fixed. The text offset used in the protocol is now
the first letter of the function/get/set/method name.
So "f" in "function a() {}", "s" in "set foo(){}", etc.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
- jsc.cpp:
(functionReturnTypeFor):
Source/WebInspectorUI:
This broke the type profiler's text offset based protocol with JSC.
The text offset used in the protocol is now the first letter of the
function/get/set/method name. So "f" in "function a() {}", "s" in "set foo(){}", etc.
- UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.functionReturnDivot):
- 3:49 PM Changeset in webkit [188548] by
-
- 6 edits in trunk/Tools
Simplify how PlatformWebViews are created when view options change
https://bugs.webkit.org/show_bug.cgi?id=148093
Reviewed by Sam Weinig.
Instead of letting each port dictate when the PlatformWebView should be recreated we now do the following:
TestController::ensureViewSupportsOptionsForTest gets the view options for a test by calling
TestController::viewOptionsForTest, which returns a filled in ViewOptions struct for a given test. It also allows
ports to add/override settings by calling TestController::updatePlatformSpecificViewOptionsForTest.
If the current PlatformWebView doesn't support the given view options, delete the web view and create a new one.
Also, get rid of the first call to TestController::createWebViewWithOptions in TestController::initialize and
always rely on TestController::ensureViewSupportsOptionsForTest creating a PlatformWebView for us.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::ensureViewSupportsOptionsForTest):
(WTR::shouldUseFixedLayout):
(WTR::TestController::viewOptionsForTest):
(WTR::TestController::updateWebViewSizeForTest):
(WTR::TestController::updateWindowScaleForTest):
(WTR::TestController::configureViewForTest):
(WTR::TestController::initialize): Deleted.
(WTR::TestController::ensureViewSupportsOptions): Deleted.
(WTR::TestController::updateLayoutTypeForTest): Deleted.
(WTR::TestController::platformConfigureViewForTest): Deleted.
(WTR::TestController::platformResetPreferencesToConsistentValues): Deleted.
(WTR::TestController::run): Deleted.
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/efl/TestControllerEfl.cpp:
(WTR::shouldUseFixedLayout):
(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
(WTR::TestController::platformConfigureViewForTest):
(WTR::TestController::platformResetPreferencesToConsistentValues):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
(WTR::TestController::platformConfigureViewForTest):
- 3:27 PM Changeset in webkit [188547] by
-
- 1 edit2 adds in trunk/PerformanceTests
Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
https://bugs.webkit.org/show_bug.cgi?id=148080
Reviewed by Antti Koivisto.
Add performance tests for traversal of *uncached* collections returned
by getElementsByClassName() / getElementsByTagName(). These methods
will soon be updated to return an HTMLCollection instead of a
NodeList and we need to make sure we don't regress performance in the
process.
- DOM/get-elements-by-class-name-traversal-uncached.html: Added.
- DOM/get-elements-by-tag-name-traversal-uncached.html: Added.
- 3:27 PM Changeset in webkit [188546] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION: spurious console.assert inside ResourceContentView._contentAvailable
https://bugs.webkit.org/show_bug.cgi?id=147886
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype._hasContent): Fix the style class name.
- 3:24 PM Changeset in webkit [188545] by
-
- 70 edits55 adds in trunk
[ES6] Implement ES6 arrow function syntax. Arrow function specific features. Lexical bind of this
https://bugs.webkit.org/show_bug.cgi?id=144956
Source/JavaScriptCore:
Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-08-17
Reviewed by Saam Barati.
Added support of ES6 arrow function specific feature, lexical bind of this and no constructor. http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax
In patch were implemented the following cases:
this - variable |this| is point to the |this| of the function where arrow function is declared. Lexical bind of |this|
constructor - the using of the command |new| for arrow function leads to runtime error
call(), apply(), bind() - methods can only pass in arguments, but has no effect on |this|
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecode/ExecutableInfo.h:
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::isArrowFunction):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::isArrowFunction):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewFunctionCommon):
(JSC::BytecodeGenerator::emitNewFunctionExpression):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitLoadArrowFunctionThis):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::ArrowFuncExprNode::emitBytecode):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomNewFunction):
(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::isFunctionAllocation):
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGPromotedHeapLocation.cpp:
(WTF::printInternal):
- dfg/DFGPromotedHeapLocation.h:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileLoadArrowFunctionThis):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileNewFunction):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStoreBarrierInsertionPhase.cpp:
- dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
- ftl/FTLAbstractHeapRepository.cpp:
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToLLVM::compileLoadArrowFunctionThis):
- ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
- interpreter/Interpreter.cpp:
- interpreter/Interpreter.h:
- jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState): Added 3 arguments version for windows build.
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::callOperation):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_load_arrowfunction_this):
(JSC::JIT::emit_op_new_func_exp):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_arrow_func_exp):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_load_arrowfunction_this):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- llint/LLIntOffsetsExtractor.cpp:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setUpCall):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createFunctionMetadata):
(JSC::ASTBuilder::createArrowFunctionExpr):
- parser/NodeConstructors.h:
(JSC::BaseFuncExprNode::BaseFuncExprNode):
(JSC::FuncExprNode::FuncExprNode):
(JSC::ArrowFuncExprNode::ArrowFuncExprNode):
- parser/Nodes.cpp:
(JSC::FunctionMetadataNode::FunctionMetadataNode):
- parser/Nodes.h:
(JSC::ExpressionNode::isArrowFuncExprNode):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionInfo):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createFunctionMetadata):
- runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
- runtime/Executable.h:
- runtime/JSArrowFunction.cpp: Added.
(JSC::JSArrowFunction::destroy):
(JSC::JSArrowFunction::create):
(JSC::JSArrowFunction::JSArrowFunction):
(JSC::JSArrowFunction::createWithInvalidatedReallocationWatchpoint):
(JSC::JSArrowFunction::visitChildren):
(JSC::JSArrowFunction::getConstructData):
- runtime/JSArrowFunction.h: Added.
(JSC::JSArrowFunction::allocationSize):
(JSC::JSArrowFunction::createImpl):
(JSC::JSArrowFunction::boundThis):
(JSC::JSArrowFunction::createStructure):
(JSC::JSArrowFunction::offsetOfThisValue):
- runtime/JSFunction.h:
- runtime/JSFunctionInlines.h:
(JSC::JSFunction::JSFunction):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::arrowFunctionStructure):
- tests/stress/arrowfunction-activation-sink-osrexit-default-value-tdz-error.js: Added.
- tests/stress/arrowfunction-activation-sink-osrexit-default-value.js: Added.
- tests/stress/arrowfunction-activation-sink-osrexit.js: Added.
- tests/stress/arrowfunction-activation-sink.js: Added.
- tests/stress/arrowfunction-bound.js: Added.
- tests/stress/arrowfunction-call.js: Added.
- tests/stress/arrowfunction-constructor.js: Added.
- tests/stress/arrowfunction-lexical-bind-this-1.js: Added.
- tests/stress/arrowfunction-lexical-bind-this-2.js: Added.
- tests/stress/arrowfunction-lexical-bind-this-3.js: Added.
- tests/stress/arrowfunction-lexical-bind-this-4.js: Added.
- tests/stress/arrowfunction-lexical-bind-this-5.js: Added.
- tests/stress/arrowfunction-lexical-bind-this-6.js: Added.
- tests/stress/arrowfunction-lexical-this-activation-sink-osrexit.js: Added.
- tests/stress/arrowfunction-lexical-this-activation-sink.js: Added.
- tests/stress/arrowfunction-lexical-this-sinking-no-double-allocate.js: Added.
- tests/stress/arrowfunction-lexical-this-sinking-osrexit.js: Added.
- tests/stress/arrowfunction-lexical-this-sinking-put.js: Added.
- tests/stress/arrowfunction-others.js: Added.
- tests/stress/arrowfunction-run-10-1.js: Added.
- tests/stress/arrowfunction-run-10-2.js: Added.
- tests/stress/arrowfunction-run-10000-1.js: Added.
- tests/stress/arrowfunction-run-10000-2.js: Added.
- tests/stress/arrowfunction-sinking-no-double-allocate.js: Added.
- tests/stress/arrowfunction-sinking-osrexit.js: Added.
- tests/stress/arrowfunction-sinking-put.js: Added.
- tests/stress/arrowfunction-tdz.js: Added.
- tests/stress/arrowfunction-typeof.js: Added.
LayoutTests:
Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-08-17
Reviewed by Saam Barati.
- js/arrowfunction-bind-expected.txt: Added.
- js/arrowfunction-bind.html: Added.
- js/arrowfunction-call-expected.txt: Added.
- js/arrowfunction-call.html: Added.
- js/arrowfunction-constructor-expected.txt: Added.
- js/arrowfunction-constructor.html: Added.
- js/arrowfunction-lexical-bind-this-expected.txt: Added.
- js/arrowfunction-lexical-bind-this.html: Added.
- js/arrowfunction-others-expected.txt: Added.
- js/arrowfunction-others.html: Added.
- js/arrowfunction-tdz-expected.txt: Added.
- js/arrowfunction-tdz.html: Added.
- js/arrowfunction-typeof-expected.txt: Added.
- js/arrowfunction-typeof.html: Added.
- js/regress/arrowfunction-call-expected.txt: Added.
- js/regress/arrowfunction-call.html: Added.
- js/regress/script-tests/arrowfunction-call.js: Added.
- js/regress/script-tests/function-call.js: Added.
- js/script-tests/arrowfunction-bind.js: Added.
- js/script-tests/arrowfunction-call.js: Added.
- js/script-tests/arrowfunction-constructor.js: Added.
- js/script-tests/arrowfunction-lexical-bind-this.js: Added.
- js/script-tests/arrowfunction-others.js: Added.
- js/script-tests/arrowfunction-tdz.js: Added.
- js/script-tests/arrowfunction-typeof.js: Added.
- 2:51 PM Changeset in webkit [188544] by
-
- 13 edits1 move6 adds1 delete in trunk
Web Inspector: split TestStub.js into multiple files and modernize it
https://bugs.webkit.org/show_bug.cgi?id=148077
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
Since we want to share files between the two harnesses, split some of the parts
into different files so not everything has to be included at once.
Rename InjectedTestHarness to just TestHarness. Update some code to use
ES6 features where appropriate. Put test classes into Test/ directory.
- UserInterface/Base/TestStub.js: Removed.
- UserInterface/Test.html:
- UserInterface/Test/InspectorProtocol.js: Added.
(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand):
(InspectorProtocol.awaitEvent.):
(InspectorProtocol.awaitEvent):
(InspectorProtocol.addEventListener):
(InspectorProtocol.sendMessage):
(InspectorProtocol.checkForError):
(InspectorProtocol.dispatchMessageFromBackend):
- UserInterface/Test/ProtocolTestHarness.js: Added.
(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
(ProtocolTestHarness.prototype.evaluateInPage):
(ProtocolTestHarness):
- UserInterface/Test/Test.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Test.js.
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.UIString):
(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
(InspectorTest.EventDispatcher.prototype.dispatchEvent):
(InspectorTest.EventDispatcher):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.expectThat):
(InspectorTest.debugLog):
(InspectorTest.expectNoError):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest._resendResults):
(InspectorTest.testPageDidLoad):
(InspectorTest.reloadPage):
(InspectorTest.reportUncaughtException):
- UserInterface/Test/TestHarness.js: Added.
(TestHarness):
(TestHarness.prototype.completeTest):
(TestHarness.prototype.addResult):
(TestHarness.prototype.debugLog):
(TestHarness.prototype.evaluateInPage):
(TestHarness.prototype.createAsyncSuite):
(TestHarness.prototype.createSyncSuite):
(TestHarness.prototype.get logCount):
(TestHarness.prototype.log):
(TestHarness.prototype.assert):
(TestHarness.prototype.expectThat):
- UserInterface/Test/TestStub.js: Added.
- UserInterface/Test/TestSuite.js: Added.
(TestSuite):
(TestSuite.prototype.runTestCasesAndFinish):
(TestSuite.prototype.runTestCases):
(TestSuite.prototype.get passCount):
(TestSuite.prototype.get skipCount):
(TestSuite.prototype.addTestCase):
(AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(AsyncTestSuite.prototype.runTestCasesAndFinish):
(AsyncTestSuite.prototype.runTestCases):
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCasesAndFinish):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
- UserInterface/TestStub.html:
LayoutTests:
Add the prefix 'TestPage' to everything in protocol-test.js. Continue
exporting it to the global namespace for backwards compatibility, too.
Rename some things to match changes in the test harness. Tighten up
preconditions for test suite and test case names. Sprinkle some ES6.
- http/tests/inspector/dom/resources/InspectorDOMListener.js:
- http/tests/inspector/resources/console-test.js:
- http/tests/inspector/resources/probe-test.js:
- http/tests/inspector/resources/protocol-test.js:
(TestPage.registerInitializer):
(TestPage.debugLog.window.debugLog):
(TestPage.log.window.log):
(TestPage.closeTest.window.closeTest):
(TestPage.runTest.window.runTest):
(ProtocolTestProxy.registerInitializer): Deleted.
(debugLog): Deleted.
(log): Deleted.
(closeTest): Deleted.
(runTest): Deleted.
- inspector/dom/resources/dom-search-queries.js:
- inspector/unit-tests/async-test-suite.html:
- inspector/unit-tests/sync-test-suite.html:
- 2:50 PM Changeset in webkit [188543] by
-
- 7 edits in trunk
API::PageConfiguration's sessionID needs to be set whenever the API::WebsiteDataStore is set
https://bugs.webkit.org/show_bug.cgi?id=148097
Reviewed by Anders Carlsson.
Source/WebKit2:
We were getting an empty SessionID set on the WebPageProxy (and crashing asserting down the line)
when using a WKPageConfiguration with a WKWebsiteDataStore set on it.
Tests:
WebKit2.WKPageConfigurationBasicWithDataStore
WebKit2.WKPageConfigurationBasicWithNonPersistentDataStore
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::setWebsiteDataStore):
Set the sessionID member whenever changing the WebsiteDataStore.
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreGetDefaultDataStore):
(WKWebsiteDataStoreCreateNonPersistentDataStore):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
Expose functions for getting default and new non-persistent data stores via the C-SPI. Useful
for testing and transitioning users of the C-SPI to the new model.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
Remove explicit setting of the sessionID. This is handled by the above call to setWebsiteDataStore().
Tools:
- TestWebKitAPI/Tests/WebKit2/WKPageConfiguration.cpp:
Add tests for WebsiteDataStores in the WKPageConfiguration.
- 2:40 PM Changeset in webkit [188542] by
-
- 9 edits in trunk/Source/JavaScriptCore
Cleanup the builtin JavaScript files
https://bugs.webkit.org/show_bug.cgi?id=147382
Reviewed by Geoffrey Garen.
- builtins/Array.prototype.js:
- builtins/ArrayConstructor.js:
- builtins/ArrayIterator.prototype.js:
- builtins/Function.prototype.js:
- builtins/Iterator.prototype.js:
- builtins/ObjectConstructor.js:
- builtins/StringConstructor.js:
- builtins/StringIterator.prototype.js:
Unify the style of the built JavaScript files.
- 1:39 PM Changeset in webkit [188541] by
-
- 2 edits in trunk/Source/WebKit2
Cannot change WKWebView scrollView deceleration rate
https://bugs.webkit.org/show_bug.cgi?id=148086
<rdar://problem/21893685>
Reviewed by Simon Fraser.
Updates the preferred scroll deceleration factor when the scrollView's decelerationRate is explicitly set by the
user, so when snap scrolling is inactive and [WKWebView scrollViewWillBeginDragging] sets its scrollView's
decelerationRate to the preferred decelerationRate, it will be set to the updated value.
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView setDecelerationRate:]): Overrides setDecelerationRate to update _preferredScrollDecelerationFactor.
- 1:37 PM Changeset in webkit [188540] by
-
- 13 edits1 move1 add in trunk
Move some commands from ./CMakeLists.txt to Source/cmake
https://bugs.webkit.org/show_bug.cgi?id=148003
Reviewed by Brent Fulgham.
- CMakeLists.txt:
.:
Moved functionality to WebKitCommon.cmake and WebKitFS.cmake and made conditional
so we can change directory structure from command line parameters.
- Source/cmake/OptionsAppleWin.cmake:
- Source/cmake/OptionsWin.cmake: Copied from Source/cmake/OptionsWindows.cmake.
- Source/cmake/OptionsWinCairo.cmake:
- Source/cmake/OptionsWindows.cmake: Removed.
- Source/cmake/WebKitCommon.cmake: Added.
- Source/cmake/WebKitFS.cmake:
Source/JavaScriptCore:
Added commands needed to build JSC by itself.
Source/WebCore:
Added commands needed to build WebCore by itself.
Source/WebKit:
Added some commands needed to build WebKit by itself.
Source/WTF:
Added commands needed to build WTF by itself.
- 1:33 PM Changeset in webkit [188539] by
-
- 31 edits2 moves in trunk
Web Inspector: load ProtocolTestStub from the WebInspectorUI bundle
https://bugs.webkit.org/show_bug.cgi?id=147955
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
Move ProtocolTestStub.{html,js} into the actual WebInspectorUI project.
- UserInterface/Base/TestStub.js: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.js.
- UserInterface/TestStub.html: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.html.
Tools:
To enable sharing of common test code between protocol and model tests,
start loading the protocol TestStub.js through the WebInspectorUI bundle.
This patch adds the read-only getter TestRunner.inspectorTestStubURL, which
protocol-test.js uses to load the inspector frontend stub into its iframe
from an arbitrary local file URL.
- DumpRenderTree/TestRunner.cpp:
(getInspectorTestStubURLCallback):
(TestRunner::staticValues):
- DumpRenderTree/TestRunner.h:
- DumpRenderTree/mac/TestRunnerMac.mm:
(SOFT_LINK_STAGED_FRAMEWORK):
(TestRunner::inspectorTestStubURL):
- DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::inspectorTestStubURL):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp:
(WTR::TestRunner::inspectorTestStubURL):
- WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
(WTR::TestRunner::inspectorTestStubURL):
- WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
(WTR::TestRunner::inspectorTestStubURL):
LayoutTests:
Since the inspector stub cannot open files that live in the LayoutTests
directory, adopt the test helper marshalling approach used by inspector.js.
Each helper must register its code for marshalling and explicitly put globals
on the window object.
Use script tags rather than importScript to include helpers in a test.
- TestExpectations: For now, skip inspector http tests. These should be rewritten
to use inspector-test.js, which does not run into cross-origin problems.
Rebaseline some test results to account for shifted line numbers (yuck).
- http/tests/inspector/dom/resources/InspectorDOMListener.js:
- http/tests/inspector/resources/console-test.js:
- http/tests/inspector/resources/probe-test.js:
- http/tests/inspector/resources/protocol-test.js:
(ProtocolTestProxy.registerInitializer):
(log):
(runTest.runInitializationMethodsInFrontend):
(runTest.runTestMethodInFrontend):
(runTest):
- inspector/console/console-message.html:
- inspector/console/css-source-locations-expected.txt:
- inspector/console/css-source-locations.html:
- inspector/console/js-source-locations-expected.txt:
- inspector/console/js-source-locations.html:
- inspector/console/x-frame-options-message-expected.txt:
- inspector/console/x-frame-options-message.html:
- inspector/debugger/didSampleProbe-multiple-probes.html:
- inspector/debugger/setBreakpoint-actions.html:
- inspector/debugger/setBreakpoint-options-exception.html:
- inspector/dom/dom-search-expected.txt:
- inspector/dom/dom-search-with-context.html:
- inspector/dom/dom-search.html:
- inspector/dom/resources/dom-search-queries.js:
- 1:29 PM Changeset in webkit [188538] by
-
- 2 edits in trunk/Tools
Change email address from saambarati1@gmail.com to sbarati@apple.com
- Scripts/webkitpy/common/config/contributors.json:
- 1:22 PM Changeset in webkit [188537] by
-
- 4 edits in trunk/Source/WebKit/win
[WinCairo] Accelerated compositing does not respect device scale factor.
https://bugs.webkit.org/show_bug.cgi?id=148085
Reviewed by Brent Fulgham.
Scale root layer's transformation matrix with device scale factor.
- WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::initialize):
(AcceleratedCompositingContext::startedAnimation):
(AcceleratedCompositingContext::applyDeviceScaleFactor):
(AcceleratedCompositingContext::compositeLayersToContext):
(AcceleratedCompositingContext::resizeRootLayer):
(AcceleratedCompositingContext::flushAndRenderLayers):
(AcceleratedCompositingContext::paintContents):
(AcceleratedCompositingContext::deviceScaleFactor):
- WebCoreSupport/AcceleratedCompositingContext.h:
- WebView.cpp:
(WebView::repaint):
- 1:19 PM Changeset in webkit [188536] by
-
- 5 edits in trunk/Source/WebCore
Remove unused multisampling check
https://bugs.webkit.org/show_bug.cgi?id=148030
Patch by Alex Christensen <achristensen@webkit.org> on 2015-08-17
Reviewed by Dean Jackson.
No change in behavior.
Extensions3DOpenGLCommon.m_maySupportMultisampling is always true.
- platform/graphics/Extensions3D.h:
- platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
- platform/graphics/opengl/Extensions3DOpenGLCommon.h:
(WebCore::Extensions3DOpenGLCommon::isImagination):
(WebCore::Extensions3DOpenGLCommon::vendor):
(WebCore::Extensions3DOpenGLCommon::requiresBuiltInFunctionEmulation):
(WebCore::Extensions3DOpenGLCommon::requiresRestrictedMaximumTextureSize):
(WebCore::Extensions3DOpenGLCommon::maySupportMultisampling): Deleted.
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::validateDepthStencil):
- 12:52 PM Changeset in webkit [188535] by
-
- 3 edits in branches/safari-601.1-branch/Source/WebKit2
Merge r188365. rdar://problem/22254920
- 12:52 PM Changeset in webkit [188534] by
-
- 2 edits in branches/safari-601.1-branch/Source/WebCore
Merge r188531. rdar://problem/22308554
- 12:45 PM Changeset in webkit [188533] by
-
- 2 edits in trunk/Tools
Refactor BuildbotQueueView._presentPopoverForPendingCommits to work more generically with
repositories other than "openSource" and "internal".
https://bugs.webkit.org/show_bug.cgi?id=147961
Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-17
Reviewed by Daniel Bates.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Refactored to work more
generically with repositories other than "openSource" and "internal".
- 11:56 AM Changeset in webkit [188532] by
-
- 4 edits1 add in trunk/Source/JavaScriptCore
[ES6] Implement Reflect.get
https://bugs.webkit.org/show_bug.cgi?id=147925
Reviewed by Geoffrey Garen.
This patch implements Reflect.get API.
It can take the receiver object as the third argument.
When the receiver is specified and there's a getter for the given property name,
we call the getter with the receiver as the |this| value.
- runtime/ReflectObject.cpp:
(JSC::reflectObjectGet):
- runtime/SparseArrayValueMap.cpp:
(JSC::SparseArrayEntry::get): Deleted.
- runtime/SparseArrayValueMap.h:
- tests/stress/reflect-get.js: Added.
(shouldBe):
(shouldThrow):
(.get shouldThrow):
(.get var):
(get var.object.get hello):
(.get shouldBe):
(get var.object.set hello):
- 11:52 AM Changeset in webkit [188531] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r188486): Crash in SubresourceLoader::didReceiveResponse() when TemporaryChange goes out of scope
https://bugs.webkit.org/show_bug.cgi?id=148082
Reviewed by Alexey Proskuryakov.
Covered by existing tests run under ASan or Guard Malloc.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse): Ensure that callingDidReceiveResponse is destroyed while the
SubresourceLoader is still alive by declaring it after protect.
- 11:32 AM Changeset in webkit [188530] by
-
- 18 edits4 adds in trunk
will-change should sometimes trigger compositing
https://bugs.webkit.org/show_bug.cgi?id=148072
Reviewed by Tim Horton.
Source/JavaScriptCore:
Include will-change as a reason for compositing.
- inspector/protocol/LayerTree.json:
Source/WebCore:
Implement the compositing side-effects of will-change, if any of the
following properties are specified:
opacity
filter (as -webkit-filter)
backdrop-filter (as -webkit-backdrop-filter)
transform (on transformable elements only)
Tests: compositing/layer-creation/will-change-change.html
compositing/layer-creation/will-change-layer-creation.html
- inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Tell the inspector
about will-change.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::adjustStyleDifference): Need to trigger a recomposite if
will-change includes a compositing trigger property. This gets called before and
after setting the style, so this checks both states.
(WebCore::RenderElement::shouldWillChangeCreateStackingContext):
- rendering/RenderElement.h:
(WebCore::RenderElement::willChangeCreatesStackingContext): Helper function that
RenderInline uses to determine if it needs to create a RenderLayer, since RenderInline
doesn't get automatic layer RenderLayers as a side effect of having non-auto z-index
in the style.
- rendering/RenderInline.h: Need to trigger a RenderLayer if will-change includes
a property that applies to inlines.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForWillChange().
(WebCore::RenderLayerCompositor::requiresOwnBackingStore): Call requiresCompositingForWillChange().
(WebCore::RenderLayerCompositor::reasonsForCompositing): Include requiresCompositingForWillChange().
(WebCore::RenderLayerCompositor::requiresCompositingForWillChange): If will-change contains a
property that would trigger compositing on this element, return true.
- rendering/RenderLayerCompositor.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout): Set ContextSensitivePropertyWillChange in
changedContextSensitiveProperties if will-change changes.
- rendering/style/RenderStyle.h: Rename for clarity.
- rendering/style/RenderStyleConstants.h: Add ContextSensitivePropertyWillChange.
- rendering/style/WillChangeData.cpp:
(WebCore::propertyCreatesStackingContext): Subset of properties that create stacking
context on any element.
(WebCore::propertyCreatesStackingContextOnBoxesOnly): Additional properties that
create stacking context on boxes.
(WebCore::propertyTriggersCompositing): Properties that trigger compositing on
any element.
(WebCore::propertyTriggersCompositingOnBoxesOnly): Additional properties that
trigger compositing on boxes.
(WebCore::WillChangeData::addFeature): As features are added, manage a set of
flags to know if they trigger stacking context or compositing, on inlines and boxes.
(WebCore::WillChangeData::createsStackingContext): Deleted.
- rendering/style/WillChangeData.h:
(WebCore::WillChangeData::canCreateStackingContext):
(WebCore::WillChangeData::canCreateStackingContextOnInline):
(WebCore::WillChangeData::canTriggerCompositing):
(WebCore::WillChangeData::canTriggerCompositingOnInline):
Source/WebInspectorUI:
Have the web inspector show a correct compositing reason for will-change.
This could be improved to indicate which specific value in will-change triggered
the compositing.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
(WebInspector.LayerTreeDetailsSidebarPanel):
LayoutTests:
- compositing/layer-creation/will-change-change-expected.txt: Added.
- compositing/layer-creation/will-change-change.html: Added.
- compositing/layer-creation/will-change-layer-creation-expected.txt: Added.
- compositing/layer-creation/will-change-layer-creation.html: Added.
- 11:28 AM Changeset in webkit [188529] by
-
- 4 edits1 add in trunk/Source/JavaScriptCore
[ES6] Implement Reflect.getOwnPropertyDescriptor
https://bugs.webkit.org/show_bug.cgi?id=147929
Reviewed by Geoffrey Garen.
Implement Reflect.getOwnPropertyDescriptor.
The difference from the Object.getOwnPropertyDescriptor is
Reflect.getOwnPropertyDescriptor does not perform ToObject onto
the first argument. If the first argument is not an Object, it
immediately raises the TypeError.
- runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetOwnPropertyDescriptor):
- runtime/ObjectConstructor.h:
- runtime/ReflectObject.cpp:
(JSC::reflectObjectGetOwnPropertyDescriptor):
- tests/stress/reflect-get-own-property.js: Added.
(shouldBe):
(shouldThrow):
- 11:18 AM Changeset in webkit [188528] by
-
- 2 edits in trunk/Tools
build.webkit.org/dashboard shows yellow when crash-only queues have too many failures
https://bugs.webkit.org/show_bug.cgi?id=148081
Reviewed by Tim Horton.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
- 11:12 AM Changeset in webkit [188527] by
-
- 6 edits2 adds in trunk
Holes for find matches that span multiple lines are completely wrong
https://bugs.webkit.org/show_bug.cgi?id=148065
<rdar://problem/5305002>
Reviewed by Simon Fraser.
Test: fast/text/mark-matches-broken-line-rendering.html
Two big problems with find holes:
- RenderedDocumentMarker only has one rect, but a marker can be painted by multiple text runs, each with their own rendered rect
- paintTextMatchMarker does std::max((unsigned)a, (unsigned)0), which is obviously an overflow problem/not going to work if a is negative
The combination of these issues causes the holes for find matches to be
very broken: text that isn't part of the match is highlighted, and some
text that is part of the match isn't highlighted.
To fix, make RenderedDocumentMarker support multiple rects, and use signed
math (like paintDocumentMarker already did) when computing positions in paintTextMatchMarker.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addTextMatchMarker):
(WebCore::DocumentMarkerController::renderedRectsForMarkers):
- dom/RenderedDocumentMarker.h:
(WebCore::RenderedDocumentMarker::RenderedDocumentMarker):
(WebCore::RenderedDocumentMarker::isRendered):
(WebCore::RenderedDocumentMarker::contains):
(WebCore::RenderedDocumentMarker::addRenderedRect):
(WebCore::RenderedDocumentMarker::renderedRects):
(WebCore::RenderedDocumentMarker::invalidate):
(WebCore::RenderedDocumentMarker::setRenderedRect): Deleted.
(WebCore::RenderedDocumentMarker::renderedRect): Deleted.
(WebCore::RenderedDocumentMarker::invalidMarkerRect): Deleted.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
- rendering/svg/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
- fast/text/mark-matches-broken-line-rendering-expected.html: Added.
- fast/text/mark-matches-broken-line-rendering.html: Added.
Add a test that ensures that we correctly mark test matches that cross
line breaks.
- 10:50 AM Changeset in webkit [188526] by
-
- 12 edits in trunk/Source
Adopt shrink-wrapping for TextIndicators on Mac
https://bugs.webkit.org/show_bug.cgi?id=148064
Reviewed by Beth Dakin.
Instead of indicating the bounding rect when there are multiple text rects,
use shrink-wrapping for TextIndicatorWindow (on Mac), like we do on iOS.
- bindings/objc/DOM.mm:
(-[DOMNode getPreviewSnapshotImage:andRects:]):
Make getPreviewSnapshotImage use the same options that iOS WebKit2 uses.
This fixes a regression from r188420 where iOS WebKit1 TextIndicators lost
all of the relevant (previously hardcoded inside TextIndicator) options.
- page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange):
(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::initializeIndicator):
Don't keep indicatesCurrentSelection in TextIndicatorData. Instead,
just pass it through to initializeIndicator. Add a flag which stops us
from zeroing out the margin if indicatesCurrentSelection is true.
Move default margins into TextIndicator so they can be applied to the stored rects
just like on iOS, instead of trying to apply them later like we used to on Mac.
- page/TextIndicator.h:
(WebCore::TextIndicator::indicatesCurrentSelection): Deleted.
- page/mac/TextIndicatorWindow.h:
- page/mac/TextIndicatorWindow.mm:
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
(WebCore::TextIndicatorWindow::setTextIndicator):
(outsetIndicatorRectIncludingShadow): Deleted.
(textIndicatorsForTextRectsOverlap): Deleted.
Make use of pathsWithShrinkWrappedRects for TextIndicatorWindow, instead
of just smushing all intersecting rects together. Use the computed path
for the shadows and to mask the yellow highlight and snapshot layer.
- platform/graphics/PathUtilities.cpp:
(WebCore::PathUtilities::pathsWithShrinkWrappedRects):
(WebCore::PathUtilities::pathWithShrinkWrappedRects):
- platform/graphics/PathUtilities.h:
Make it possible to retrieve each non-intersecting path individually, instead
of just a single giant Path, so that TextIndicatorWindow can make separate
layers for each one (so they can bounce separately).
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode): Deleted.
(IPC::ArgumentCoder<TextIndicatorData>::decode): Deleted.
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
Use the new option, TextIndicatorOptionIncludeMarginIfRangeMatchesSelection,
for iOS and FindController, because we can keep the margins in these cases
because we don't have to animate to/from the blue highlight.
- 10:41 AM Changeset in webkit [188525] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Cleanups to PluginView::handleMouseEvent().
https://bugs.webkit.org/show_bug.cgi?id=148024
Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-08-17
Reviewed by Alex Christensen.
- Replace the raw values identifying specific mouse buttons with WebCore::MouseButton enum values.
- Reindent if and switch statements.
- Plugins/PluginViewWin.cpp:
(WebCore::PluginView::handleMouseEvent):
- 10:15 AM Changeset in webkit [188524] by
-
- 2 edits in trunk/Source/WebCore
Remove some includes from Node.cpp
https://bugs.webkit.org/show_bug.cgi?id=148000
Reviewed by Anders Carlsson.
No need for these includes.
- dom/Node.cpp:
- 9:46 AM Changeset in webkit [188523] by
-
- 5 edits2 adds in trunk
Accessing HTMLCollection.length is slow
https://bugs.webkit.org/show_bug.cgi?id=148039
Reviewed by Ryosuke Niwa.
Source/WebCore:
Accessing was HTMLCollection.length is slow, much slower than accessing
NodeList.length. The reason is that HTMLCollection's bindings code is
slightly different. In particular, HTMLCollection's GetOwnPropertySlot()
has an extra check to see if the PropertyName is available on the
prototype before doing:
- Check static properties (getStaticValueSlotEntryWithoutCaching())
- Indexed getter
- Named getter
- Check own properties (getStaticValueSlot())
This means that everytime the JavaScript was accessing HTMLCollection.length
or HTMLCollection[index], we would check if length / index was present on the
prototype before calling HTMLCollection::length() / HTMLCollection::item(i).
The prototype check is fairly expensive and was making traversing an
HTMLCollection much slower than traversing a NodeList.
In this patch, I refactored GetOwnPropertySlot() to do:
- Indexed getter
- Check static properties
- Prototype check
- Named getter
- Check own properties
This way, the prototype check is no longer slowing down HTMLCollection
traversal. What matters is that we do the prototype check *before* calling
the named getter as we don't want named properties to mask properties on
the prototype.
Note that this patch takes the minimal approach to get the performance win
while limiting the risk of breakage. Indeed, the current behavior still
does not match the WebIDL specification, which seems to indicate the order
should be:
- Indexed getter
- Check static / own properties
- Prototype check
- Named getter
Once we match the specification, I believe we will be able to drop the
JSC::HasImpureGetOwnPropertySlot flag on HTMLCollection, which currently
makes HTMLCollection.length not cacheable. Right now, I believe we still
need this flag because named properties can still mask own properties.
Performance:
/Bindings/childNodes-traversal: 5597.54 +/- 0.7% -> 5572.10 +/- 0.4%
/Bindings/children-traversal: 3852.61 +/- 0.3% -> 4731.03 +/- 0.3% (~23% better)
Test: fast/dom/htmlcollection-getownproperty.html
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::getOwnPropertySlot):
LayoutTests:
- fast/dom/htmlcollection-getownproperty-expected.txt: Added.
- fast/dom/htmlcollection-getownproperty.html: Added.
Add new layout test covering the expected behavior of HTMLCollection's
GetOwnProperty. A few checks are still failing as we don't entirely
match the specification yet.
- fast/dom/wrapper-classes-expected.txt:
Rebaseline test as a few more checks are now passing.
- 8:36 AM Changeset in webkit [188522] by
-
- 9 edits in trunk/Source/WebCore
Fix possible EGL and GLX makeCurrent problem of GLPlatformContext and GLPlatformSurface
https://bugs.webkit.org/show_bug.cgi?id=147695
Patch by Jinyoung Hur <hur.ims@navercorp.com> on 2015-08-17
Reviewed by Gyuyoung Kim.
GLPLatformContext::makeCurrent is implemented to do no-op when it thinks, comparing with a static
variable declared in GLPlatformContext.cpp, there is no changes. This can lead to not-working
makeCurrent when other part of codes, e.g., Cairo-gl, change EGL or GLX current context by calling
something like eglMakeCurrent. So modify GLPLatformContext::makeCurrent to use the return value of
eglGetCurrentContext or glXGetCurrentContext as a comparing target rather than a static variable.
In addition, GLPlatformSurface::isCurrentDrawable is also modified to use eglGetCurrentSurface or
glXGetCurrentDrawable rather than a static variable.
There are no tests because already existing GL tests will verify this change.
- platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore::GLPlatformContext::makeCurrent):
(WebCore::GLPlatformContext::releaseCurrent):
(WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper): Deleted.
(WebCore::GLPlatformContext::~GLPlatformContext): Deleted.
(WebCore::GLPlatformContext::isCurrentContext): Deleted.
(WebCore::GLPlatformContext::getCurrent): Deleted.
- platform/graphics/opengl/GLPlatformContext.h:
- platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::~GLPlatformSurface): Deleted.
(WebCore::GLPlatformSurface::isCurrentDrawable): Deleted.
(WebCore::GLPlatformSurface::onMakeCurrent): Deleted.
(WebCore::GLPlatformSurface::destroy): Deleted.
- platform/graphics/opengl/GLPlatformSurface.h:
- platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLTransportSurface::isCurrentDrawable):
(WebCore::EGLOffScreenSurface::isCurrentDrawable):
- platform/graphics/surfaces/egl/EGLSurface.h:
- platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::isCurrentContext):
(WebCore::GLXOffScreenSurface::isCurrentContext):
- platform/graphics/surfaces/glx/GLXSurface.h:
Aug 16, 2015:
- 5:52 PM Changeset in webkit [188521] by
-
- 7 edits1 add in trunk/Source/WebKit2
Refactor ViewGestureController swipe snapshot removal to be more platform-independent
https://bugs.webkit.org/show_bug.cgi?id=148062
Reviewed by Dan Bernstein.
- Platform/Logging.h:
Add a ViewGestures logging channel.
- UIProcess/ViewGestureController.cpp: Added.
(viewGestureControllersForAllPages):
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::ViewGestureController::gestureControllerForPage):
(WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame):
(WebKit::ViewGestureController::didRepaintAfterNavigation):
(WebKit::ViewGestureController::didHitRenderTreeSizeThreshold):
(WebKit::ViewGestureController::didRestoreScrollPosition):
(WebKit::ViewGestureController::didReachMainFrameLoadTerminalState):
(WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
(WebKit::ViewGestureController::checkForActiveLoads):
(WebKit::ViewGestureController::SnapshotRemovalTracker::eventsDescription):
(WebKit::ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker):
(WebKit::ViewGestureController::SnapshotRemovalTracker::log):
(WebKit::ViewGestureController::SnapshotRemovalTracker::start):
(WebKit::ViewGestureController::SnapshotRemovalTracker::reset):
(WebKit::ViewGestureController::SnapshotRemovalTracker::eventOccurred):
(WebKit::ViewGestureController::SnapshotRemovalTracker::cancelOutstandingEvent):
(WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackIfPossible):
(WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackImmediately):
(WebKit::ViewGestureController::SnapshotRemovalTracker::watchdogTimerFired):
(WebKit::ViewGestureController::SnapshotRemovalTracker::startWatchdog):
Build a platform-independent SnapshotRemovalTracker, which keeps track of
various events that we wait for before removing the snapshot. This
is constructed from the union of ViewGestureController{IOS, Mac}'s snapshot
removal code, and each platform ViewGestureController can specify which
events to wait for (because this currently differs slightly).
Add logging to SnapshotRemovalTracker to make debugging snapshot removal
issues much easier.
- UIProcess/mac/ViewGestureController.h:
(WebKit::ViewGestureController::backgroundColorForCurrentSnapshot):
(WebKit::ViewGestureController::didFinishLoadForMainFrame):
(WebKit::ViewGestureController::didFailLoadForMainFrame):
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::platformTeardown):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):
(WebKit::ViewGestureController::setRenderTreeSize):
(WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree):
(WebKit::ViewGestureController::removeSwipeSnapshot):
(viewGestureControllersForAllPages): Deleted.
(WebKit::ViewGestureController::ViewGestureController): Deleted.
(WebKit::ViewGestureController::~ViewGestureController): Deleted.
(WebKit::ViewGestureController::didRestoreScrollPosition): Deleted.
(WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState): Deleted.
(WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): Deleted.
(WebKit::ViewGestureController::activeLoadMonitoringTimerFired): Deleted.
(WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired): Deleted.
(WebKit::ViewGestureController::removeSwipeSnapshotIfReady): Deleted.
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::platformTeardown):
(WebKit::ViewGestureController::endSwipeGesture):
(WebKit::ViewGestureController::forceRepaintIfNeeded):
(WebKit::ViewGestureController::removeSwipeSnapshot):
(WebKit::ViewGestureController::ViewGestureController): Deleted.
(WebKit::ViewGestureController::~ViewGestureController): Deleted.
(WebKit::ViewGestureController::beginSwipeGesture): Deleted.
(WebKit::ViewGestureController::didHitRenderTreeSizeThreshold): Deleted.
(WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame): Deleted.
(WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState): Deleted.
(WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): Deleted.
(WebKit::ViewGestureController::activeLoadMonitoringTimerFired): Deleted.
(WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired): Deleted.
(WebKit::ViewGestureController::removeSwipeSnapshotAfterRepaint): Deleted.
Move shareable snapshot removal code to a new platform-independent ViewGestureController file.
Move the ViewGestureController constructor/destructor to the platform-independent file.
- UIProcess/mac/ViewGestureController.messages.in:
- WebKit2.xcodeproj/project.pbxproj:
- 11:58 AM Changeset in webkit [188520] by
-
- 34 edits4 adds in trunk/Source/WebCore
Refactor HTMLCollection to be as fast as CachedLiveNodeList
https://bugs.webkit.org/show_bug.cgi?id=147979
Reviewed by Ryosuke Niwa and Antti Koivisto.
Refactor HTMLCollection to be as fast as CachedLiveNodeList. This is in
preparation of having getElementsByTagName*() / getElementsByClassName()
return an HTMLCollection instead of a NodeList, as per the
specification. Chrome and Firefox already match the specification in
this case.
Traversing an HTMLCollection was slow because of all the extra
branching it had compared to CachedLiveNodeList. To address the issue,
this patch introduces a new templated CachedHTMLCollection subclass,
which behaves in a similar way as CachedLiveNodeList. The 2 template
parameters are:
- The type of the subclass of CachedHTMLCollection, so we can call elementMatches() directly on the subclass, without needed any virtual function call or switch statement. This is the same approach as in CachedLiveNodeList.
- The type of tree traversal used (Descendants, ChildrenOnly, CustomForwardOnly). Unlike LiveNodeList, HTMLCollection needs to support these 3 types of tree traversal. These were causing extra branching for every item() call. We are now able to choose the right type of traversal for the CachedHTMLCollection at compile time.
- WebCore.xcodeproj/project.pbxproj:
Add new files to the Project.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::children):
(WebCore::ContainerNode::cachedHTMLCollection): Deleted.
- dom/ContainerNode.h:
Drop ContainerNode::ensureCachedHTMLCollection() and use
NodeListsNodeData::addCachedCollection() directly at call sites
instead. We need access to the CollectionType at build-time so
we can resolve the CollectionTraversalType parameter for the
GenericCachedHTMLCollection using CollectionTypeTraits.
- dom/Document.cpp:
- dom/Document.h:
Update ensureCachedCollection() so the CollectionType is now a template
parameter instead of a method argument. We need to know the
CollectionType at build time to construct the GenericCachedHTMLCollection.
- dom/ElementChildIterator.h:
(WebCore::ElementChildIterator<ElementType>::operator):
(WebCore::ElementChildConstIterator<ElementType>::operator):
Add support for decrementing an ElementChildIterator, for consistency
with ElementDescendantIterator. We need this to support backward
traversal in CachedHTMLCollections that use the 'ChildrenOnly' type
of traversal.
- dom/LiveNodeList.h:
(WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
(WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
Move traversal implementation to CollectionTraversal.h, so it can be
shared with achedHTMLCollection.h.
- html/CachedHTMLCollection.h: Added.
(WebCore::traversalType>::CachedHTMLCollection):
(WebCore::traversalType>::~CachedHTMLCollection):
(WebCore::traversalType>::CachedHTMLCollection::memoryCost):
(WebCore::traversalType>::collectionCanTraverseBackward):
(WebCore::traversalType>::collectionTraverseForward):
(WebCore::traversalType>::collectionTraverseBackward):
(WebCore::traversalType>::willValidateIndexCache):
(WebCore::traversalType>::length):
(WebCore::traversalType>::item):
(WebCore::traversalType>::invalidateCache):
(WebCore::traversalType>::elementMatches):
(WebCore::nameShouldBeVisibleInDocumentAll):
(WebCore::traversalType>::namedItem):
- html/CollectionTraversal.h: Added.
Add new template class that provide the collection traversal code
needed by CollectionIndexCache. It has template specializations for
all 3 types of traversal: Descendants, ChildrenOnly, and
CustomForwardOnly.
- html/CollectionType.h:
Add CollectionTypeTraits traits so we can resolve the
CollectionTraversalType used by a specific CollectionType at
compile-time. This is needed for the second template parameter of
CachedHTMLCollection.
- html/GenericCachedHTMLCollection.cpp: Added.
(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
- html/GenericCachedHTMLCollection.h: Added.
Add CachedHTMLCollection subclass is the generic one used for all
CollectionTypes that do not have their own subclass (e.g. NodeChildren).
This has an elementMatches() method with a switch() statement handling
all these CollectionTypes. Those are not normally not performance
sensitive.
- html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::HTMLAllCollection):
- html/HTMLAllCollection.h:
Subclass CachedHTMLCollection instead of HTMLCollection. Also provide
an elementMatches() method that simply returns true as we want to
match all elements.
- html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
Move CollectionIndexCache member to the subclass and drop the 2 other
members as they are replaced with the CollectionTraversalType template
parameter of CachedHTMLCollection.
(WebCore::HTMLCollection::~HTMLCollection):
Move Document::unregisterCollection() call to ~CachedHTMLCollection()
as we needed to check if the CollectionIndexCache was valid first.
(WebCore::HTMLCollection::updateNamedElementCache):
Move part of the implementation to the CachedHTMLCollection subclass
as it needs to know about the type of traversal and it needs to be
able to call elementMatches().
- html/HTMLCollection.h:
(WebCore::HTMLCollection::rootNode):
Inline for performance reasons and consistency with CachedLiveNodeList.
(WebCore::HTMLCollection::memoryCost):
Make virtual and move part of the implementation to the
CachedHTMLCollection subclass to compute the cost of the
CollectionIndexCache.
(WebCore::HTMLCollection::invalidateCache):
Move part of the implementation to the subclass to invalidate the
CollectionIndexCache.
- html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::elements):
- html/HTMLFormControlsCollection.cpp:
- html/HTMLFormControlsCollection.h:
Subclass CachedHTMLCollection instead of HTMLCollection.
customElementAfter() no longer needs to be virtual as it
is called directly by CachedHTMLCollection on the subclass.
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::elements):
- html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::areas):
Call NodeListsNodeData::addCachedCollection() directly.
- html/HTMLNameCollection.cpp:
- html/HTMLNameCollection.h:
Subclass CachedHTMLCollection instead of HTMLCollection.
- html/HTMLOptionsCollection.cpp:
- html/HTMLOptionsCollection.h:
Subclass CachedHTMLCollection instead of HTMLCollection.
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::selectedOptions):
(WebCore::HTMLSelectElement::options):
- html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::rows):
(WebCore::HTMLTableElement::tBodies):
- html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::cells):
Call NodeListsNodeData::addCachedCollection() directly.
- html/HTMLTableRowsCollection.cpp:
- html/HTMLTableRowsCollection.h:
Subclass CachedHTMLCollection instead of HTMLCollection.
customElementAfter() no longer needs to be virtual as it
is called directly by CachedHTMLCollection on the subclass.
- html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::rows):
Call NodeListsNodeData::addCachedCollection() directly.
- 1:13 AM Changeset in webkit [188519] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Use (x + x) instead of (x * 2) when possible
https://bugs.webkit.org/show_bug.cgi?id=148051
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-16
Reviewed by Michael Saboff.
When multiplying a number by 2, JSC was loading a constant "2"
in register and multiplying it with the first number:
mov $0x4000000000000000, %rcx
movd %rcx, %xmm0
mulsd %xmm0, %xmm1
This is a problem for a few reasons.
1) "movd %rcx, %xmm0" only set half of XMM0. This instruction
has to wait for any preceding instruction on XMM0 to finish
before executing.
2) The load and transform itself is large and unecessary.
To fix that, I added a StrengthReductionPhase to transform
multiplications by 2 into a addition.
Unfortunately, that turned the code into:
movsd %xmm0 %xmm1
mulsd %xmm1 %xmm0
The reason is GenerationInfo::canReuse() was not accounting
for nodes using other nodes multiple times.
After fixing that too, we now have the multiplications by 2
done as:
addsd %xmm0 %xmm0
- dfg/DFGGenerationInfo.h:
(JSC::DFG::GenerationInfo::useCount):
(JSC::DFG::GenerationInfo::canReuse): Deleted.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::FPRTemporary::FPRTemporary):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::canReuse):
(JSC::DFG::GPRTemporary::GPRTemporary):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):