Fix 32-bit builds after r163471

* dfg/DFGOSRExitCompilerCommon.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163473 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSC on Mac should pull LLVM from prefix=/usr/local/LLVMForJavaScriptCore and not /usr/local
https://bugs.webkit.org/show_bug.cgi?id=128269

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore: 

* Configurations/Base.xcconfig:
* Configurations/LLVMForJSC.xcconfig:

Tools: 

* Scripts/copy-webkitlibraries-to-product-directory:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163474 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ElementRuleCollector should not use StyleResolver::State
https://bugs.webkit.org/show_bug.cgi?id=128247

Source/WebCore: 

Reviewed by Andreas Kling.
        
Make ElementRuleCollector more reusable.

* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchUARules):
(WebCore::ElementRuleCollector::ruleMatches):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::ElementRuleCollector::matchAllRules):
* css/ElementRuleCollector.h:
(WebCore::ElementRuleCollector::ElementRuleCollector):
        
    Pass the objects that are actually needed rather than the entire State.

LayoutTests: 

Reviewed by Andreas Kling.

* platform/mac/fast/parser/xhtml-alternate-entities-expected.png:
* platform/mac/fast/parser/xhtml-alternate-entities-expected.txt: This is a progression.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163475 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WK2: Caret, selections and autocorrection bubbles are incorrectly positioned when inside an iframe.
https://bugs.webkit.org/show_bug.cgi?id=128264
<rdar://problem/15986954>

Reviewed by Simon Fraser.

Source/WebCore: 

Adding new exported function.

* WebCore.exp.in:

Source/WebKit2: 

Everywhere we return rectangles to the UIProcess, we need to convert them
to root view coordinates. Also, we should allow hit testing to go into child
frames.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::convertSelectionRectsToRootView):
(WebKit::WebPage::requestAutocorrectionData):
(WebKit::WebPage::getPositionInformation):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163476 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: add probe manager and model objects to the frontend
https://bugs.webkit.org/show_bug.cgi?id=127117

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

The inspector frontend now assigns breakpoint action identifiers,
rather than the backend. Remove return values containing breakpoint
identifiers, and remove tracking and assignment of action identifiers.

* inspector/ScriptDebugListener.h:
* inspector/ScriptDebugServer.cpp:
(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::dispatchBreakpointActionProbe):
Pass BreakpointAction by reference rather than just the action identifier.

* inspector/ScriptDebugServer.h:
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::objectGroupForBreakpointAction):
(Inspector::InspectorDebuggerAgent::InspectorDebuggerAgent):
(Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol):
(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::setBreakpoint):
(Inspector::InspectorDebuggerAgent::removeBreakpoint):
(Inspector::InspectorDebuggerAgent::breakpointActionProbe):
* inspector/agents/InspectorDebuggerAgent.h:
* inspector/protocol/Debugger.json: Revert change to setBreakpoint return values. Add optional identifier to breakpoint actions.

Source/WebInspectorUI:

Add the probe manager, and the following model objects:

- ProbeObject corresponds to a single probe breakpoint action.
- ProbeSetObject contains all ProbeObjects for one Breakpoint.
- ProbeSetDataFrame holds probe samples from multiple
probes fired from the same breakpoint hit/debugger pause.
- ProbeSetDataTable keeps track of multiple such data frames
and manages probe sample lifetimes across page navigations.

The probe manager updates probe model objects whenever breakpoints
are added, removed, or modified.

The inspector frontend now assigns breakpoint action identifiers,
rather than the backend. This lets ProbeObjects keep stable
identifiers that match the probe's samples, even when the underlying
breakpoint is re-added with a different identifier (such as when
editing probe expressions).

* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint.prototype.get probeActions): Added.
(WebInspector.Breakpoint.prototype.createAction):
(WebInspector.Breakpoint.prototype.removeAction):
(WebInspector.Breakpoint.prototype.clearActions): Added.
* UserInterface/BreakpointAction.js:
(WebInspector.BreakpointAction):
(WebInspector.BreakpointAction.prototype.get id):
(WebInspector.BreakpointAction.prototype.get info):
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon):
(WebInspector.DebuggerManager): Restore saved breakpoints
from cookies on the second run loop, so that all managers will
be able to received breakpoint added events.
(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
(WebInspector.DebuggerManager.prototype.get nextBreakpointActionIdentifier):
The debugger manager assigns unique breakpoint action identifiers with this getter.

(WebInspector.DebuggerManager.prototype._debuggerBreakpointActionType):
(WebInspector.DebuggerManager.prototype.didSetBreakpoint):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype.didRemoveBreakpoint):
(WebInspector.DebuggerManager.prototype._removeBreakpoint):
* UserInterface/DebuggerObserver.js:
(WebInspector.DebuggerObserver.prototype.didSampleProbe):
* UserInterface/InspectorJSBackendCommands.js:
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.loaded):
* UserInterface/Probe.js: Added.
(WebInspector.ProbeSample):
(WebInspector.Probe):
(WebInspector.Probe.prototype.get id):
(WebInspector.Probe.prototype.get breakpoint):
(WebInspector.Probe.prototype.get expression):
(WebInspector.Probe.prototype.set expression):
(WebInspector.Probe.prototype.get samples):
(WebInspector.Probe.prototype.clearSamples):
(WebInspector.Probe.prototype.addSample):
* UserInterface/ProbeManager.js: Added.
(WebInspector.ProbeManager):
(WebInspector.ProbeManager.prototype.probeSetForBreakpoint):
(WebInspector.ProbeManager.prototype._breakpointRemoved):
(WebInspector.ProbeManager.prototype._breakpointActionsChanged.get var):
(WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
(WebInspector.ProbeManager.prototype._breakpointActionsChanged):
* UserInterface/ProbeSet.js: Added.
(WebInspector.ProbeSet):
(WebInspector.ProbeSet.prototype.get breakpoint):
(WebInspector.ProbeSet.prototype.get probes):
(WebInspector.ProbeSet.prototype.get dataTable):
(WebInspector.ProbeSet.prototype.clear):
(WebInspector.ProbeSet.prototype.clearSamples):
(WebInspector.ProbeSet.prototype.createProbe):
(WebInspector.ProbeSet.prototype.removeProbe):
(WebInspector.ProbeSet.prototype.willRemove):
(WebInspector.ProbeSet.prototype._mainResourceChanged):
(WebInspector.ProbeSet.prototype._createDataTable):
(WebInspector.ProbeSet.prototype._sampleCollected):
(WebInspector.ProbeSet.prototype._breakpointResolvedStateDidChange):
* UserInterface/ProbeSetDataFrame.js: Added.
(WebInspector.ProbeSetDataFrame):
(WebInspector.ProbeSetDataFrame.compare):
(WebInspector.ProbeSetDataFrame.prototype.get key):
(WebInspector.ProbeSetDataFrame.prototype.get count):
(WebInspector.ProbeSetDataFrame.prototype.get index):
(WebInspector.ProbeSetDataFrame.prototype.get isSeparator):
(WebInspector.ProbeSetDataFrame.prototype.set isSeparator):
(WebInspector.ProbeSetDataFrame.prototype.addSampleForProbe):
(WebInspector.ProbeSetDataFrame.prototype.missingKeys):
(WebInspector.ProbeSetDataFrame.prototype.isComplete):
(WebInspector.ProbeSetDataFrame.prototype.fillMissingValues):
* UserInterface/ProbeSetDataTable.js: Added.
(WebInspector.ProbeSetDataTable):
(WebInspector.ProbeSetDataTable.prototype.get frames):
(WebInspector.ProbeSetDataTable.prototype.get separators):
(WebInspector.ProbeSetDataTable.prototype.willRemove):
(WebInspector.ProbeSetDataTable.prototype.mainResourceChanged):
(WebInspector.ProbeSetDataTable.prototype.addSampleForProbe):
(WebInspector.ProbeSetDataTable.prototype.addProbe):
(WebInspector.ProbeSetDataTable.prototype.removeProbe):
(WebInspector.ProbeSetDataTable.prototype.createFrame):
(WebInspector.ProbeSetDataTable.prototype.addFrame):
(WebInspector.ProbeSetDataTable.prototype.addSeparator):

LayoutTests:

Set up the debugger and probe managers when testing models.

Add a workalike for InspectorBackend.dumpInspectorProtocolMessages to
InspectorTest.

Add listeners for breakpoints and probes that produce
useful, deterministic trace output. Use the tracing in a new test.

* http/tests/inspector-protocol/resources/InspectorTest.js:
(InspectorTest.sendCommand):
(InspectorTest.initializeInspectorModels.console.assert):
(InspectorTest.initializeInspectorModels):
* inspector-protocol/debugger/didSampleProbe-multiple-probes-expected.txt:
* inspector-protocol/debugger/didSampleProbe-multiple-probes.html:
* inspector-protocol/model/probe-manager-add-remove-actions-expected.txt: Added.
* inspector-protocol/model/probe-manager-add-remove-actions.html: Added.
* inspector-protocol/resources/probe-helper.js:
(ProbeHelper.stringifyProbeSample):
(ProbeHelper.installTracingListeners.WebInspector):
(ProbeHelper.installTracingListeners):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163477 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Turn on ENABLE(8BIT_TEXTRUN) for everyone.
<https://webkit.org/b/128273>

Reviewed by Anders Carlsson.

* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::subRun):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlock.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163478 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Get rid of WebUIClient
https://bugs.webkit.org/show_bug.cgi?id=128274

Reviewed by Andreas Kling.

* UIProcess/API/APIUIClient.h: Added.
(API::UIClient::~UIClient):
(API::UIClient::createNewPage):
(API::UIClient::showPage):
(API::UIClient::close):
(API::UIClient::takeFocus):
(API::UIClient::focus):
(API::UIClient::unfocus):
(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):
(API::UIClient::setStatusText):
(API::UIClient::mouseDidMoveOverElement):
(API::UIClient::unavailablePluginButtonClicked):
(API::UIClient::implementsDidNotHandleKeyEvent):
(API::UIClient::didNotHandleKeyEvent):
(API::UIClient::implementsDidNotHandleWheelEvent):
(API::UIClient::didNotHandleWheelEvent):
(API::UIClient::toolbarsAreVisible):
(API::UIClient::setToolbarsAreVisible):
(API::UIClient::menuBarIsVisible):
(API::UIClient::setMenuBarIsVisible):
(API::UIClient::statusBarIsVisible):
(API::UIClient::setStatusBarIsVisible):
(API::UIClient::isResizable):
(API::UIClient::setIsResizable):
(API::UIClient::setWindowFrame):
(API::UIClient::windowFrame):
(API::UIClient::canRunBeforeUnloadConfirmPanel):
(API::UIClient::runBeforeUnloadConfirmPanel):
(API::UIClient::didDraw):
(API::UIClient::pageDidScroll):
(API::UIClient::exceededDatabaseQuota):
(API::UIClient::runOpenPanel):
(API::UIClient::decidePolicyForGeolocationPermissionRequest):
(API::UIClient::decidePolicyForNotificationPermissionRequest):
(API::UIClient::headerHeight):
(API::UIClient::footerHeight):
(API::UIClient::drawHeader):
(API::UIClient::drawFooter):
(API::UIClient::printFrame):
(API::UIClient::canRunModal):
(API::UIClient::runModal):
(API::UIClient::saveDataToFileInDownloadsFolder):
(API::UIClient::shouldInterruptJavaScript):
(API::UIClient::showColorPicker):
(API::UIClient::hideColorPicker):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setUIClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::showPage):
(WebKit::WebPageProxy::closePage):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
(WebKit::WebPageProxy::shouldInterruptJavaScript):
(WebKit::WebPageProxy::setStatusText):
(WebKit::WebPageProxy::mouseDidMoveOverElement):
(WebKit::WebPageProxy::unavailablePluginButtonClicked):
(WebKit::WebPageProxy::setToolbarsAreVisible):
(WebKit::WebPageProxy::getToolbarsAreVisible):
(WebKit::WebPageProxy::setMenuBarIsVisible):
(WebKit::WebPageProxy::getMenuBarIsVisible):
(WebKit::WebPageProxy::setStatusBarIsVisible):
(WebKit::WebPageProxy::getStatusBarIsVisible):
(WebKit::WebPageProxy::setIsResizable):
(WebKit::WebPageProxy::getIsResizable):
(WebKit::WebPageProxy::setWindowFrame):
(WebKit::WebPageProxy::getWindowFrame):
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::runOpenPanel):
(WebKit::WebPageProxy::printFrame):
(WebKit::WebPageProxy::didDraw):
(WebKit::WebPageProxy::setFocus):
(WebKit::WebPageProxy::takeFocus):
(WebKit::WebPageProxy::didReceiveEvent):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::exceededDatabaseQuota):
(WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
(WebKit::WebPageProxy::requestNotificationPermission):
(WebKit::WebPageProxy::headerHeight):
(WebKit::WebPageProxy::footerHeight):
(WebKit::WebPageProxy::drawHeader):
(WebKit::WebPageProxy::drawFooter):
(WebKit::WebPageProxy::runModal):
(WebKit::WebPageProxy::setCanRunModal):
(WebKit::WebPageProxy::saveDataToFileInDownloadsFolder):
* UIProcess/WebPageProxy.h:
* UIProcess/WebUIClient.cpp: Removed.
* UIProcess/WebUIClient.h: Removed.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::windowAndViewFramesChanged):
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163480 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename useExperimentalFTL to useFTLJIT.

Rubber stamped by Mark Hahnenberg.

Source/JavaScriptCore: 

* dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::TierUpCheckInjectionPhase::run):
* runtime/Options.h:

Tools: 

* Scripts/run-jsc-stress-tests:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IDB: storage/indexeddb/mozilla/autoincrement-indexes.html fails
https://bugs.webkit.org/show_bug.cgi?id=128257

Reviewed by Sam Weinig.

Source/WebCore:

Tests: storage/indexeddb/mozilla/autoincrement-indexes.html

Add some IDBKeyData utility methods for WK2 to use:
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::setArrayValue):
(WebCore::IDBKeyData::setStringValue):
(WebCore::IDBKeyData::setDateValue):
(WebCore::IDBKeyData::setNumberValue):
* Modules/indexeddb/IDBKeyData.h:

* WebCore.exp.in:

Source/WebKit2:

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::putRecordInBackingStore): Write the correct key to the index if it was auto generated.
(WebKit::UniqueIDBDatabase::getRecordFromBackingStore): If this is an auto increment object store with
  a non-empty key path, save the key path to the get result.

* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata): The IndexRecord schema shouldn’t
  have key uniqueness.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::putRecord): Take IDBKeyData instead of IDBKey.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getIndexRecord): Fill in the primary key from the fetch.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:

LayoutTests:

* platform/mac-wk2/TestExpectations: Enable the test.

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