Remove WKInteractionView, move code into WKContentView
https://bugs.webkit.org/show_bug.cgi?id=129275

Reviewed by Benjamin Poulain.

WKInteractionView as an interim solution as WebKit2 on iOS was being
brought up, and should be removed.

Move its code into a category on WKContentView, mostly unchanged. The
WKContentView (WKInteraction) categroy now implements the various protocols
that WKInteractionView implemented.

WKContentView is not an API class, so no longer has WK_API_CLASS, and can
have implementation-related data members. WKContentViewInternal.h is removed.

WKContentView now exposes a WebPageProxy* rather than a WKPageRef.

Other changes: WKActionSheetAssistant no longer stores a WebPageProxy,
getting it from the WKContentView instead.

WKAutoCorrectionData and InteractionInformationAtPosition are stored via unique_ptr
to reduce class size, and avoid having to expose their details in the header.

* Configurations/WebKit2.xcconfig:
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView pageRef]):
(-[WKView _pageExtendedBackgroundColor]):
(-[WKView _setBackgroundExtendsBeyondPage:]):
(-[WKView _backgroundExtendsBeyondPage]):
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/ios/WKActionSheet.h:
* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet initWithView:]):
(+[WKElementAction customElementActionWithTitle:actionHandler:]):
(copyElement):
(saveImage):
(+[WKElementAction standardElementActionWithType:customTitle:]):
(-[WKElementAction runActionWithElementInfo:view:]):
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant initWithView:]):
(-[WKActionSheetAssistant dealloc]):
(-[WKActionSheetAssistant initialPresentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant presentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]):
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):
(-[WKActionSheetAssistant cleanupSheet]):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::]):
(-[WKContentView dealloc]):
(-[WKContentView page]):
(-[WKContentView isAssistingNode]):
(-[WKContentView didFinishScrolling]):
(-[WKContentView willStartZoomOrScroll]):
(-[WKContentView willStartUserTriggeredScroll]):
(-[WKContentView willStartUserTriggeredZoom]):
(-[WKContentView didZoomToScale:]):
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView _didCommitLayerTree:WebKit::]):
* UIProcess/ios/WKContentViewInteraction.h: Renamed from Source/WebKit2/UIProcess/ios/WKInteractionView.h.
* UIProcess/ios/WKContentViewInteraction.mm: Renamed from Source/WebKit2/UIProcess/ios/WKInteractionView.mm.
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView positionInformation]):
(-[WKContentView setInputDelegate:]):
(-[WKContentView inputDelegate]):
(-[WKContentView isEditable]):
(-[WKContentView canBecomeFirstResponder]):
(-[WKContentView resignFirstResponder]):
(-[WKContentView _webTouchEventsRecognized:]):
(inflateQuad):
(-[WKContentView _webTouchEvent:WebKit::preventsNativeGestures:]):
(-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
(-[WKContentView _cancelLongPressGestureRecognizer]):
(-[WKContentView _didScroll]):
(-[WKContentView _requiresKeyboardResetOnReload]):
(-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):
(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]):
(isSamePair):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _showImageSheet]):
(-[WKContentView _showLinkSheet]):
(-[WKContentView _showDataDetectorsSheet]):
(-[WKContentView _actionForLongPress]):
(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView _updatePositionInformation]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _cancelInteraction]):
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView pointIsInAssistedNode:]):
(-[WKContentView webSelectionRects]):
(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView _longPressRecognized:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _doubleTapRecognized:]):
(-[WKContentView _twoFingerDoubleTapRecognized:]):
(-[WKContentView _twoFingerPanRecognized:]):
(-[WKContentView _attemptClickAtLocation:]):
(-[WKContentView useSelectionAssistantWithMode:]):
(-[WKContentView clearSelection]):
(-[WKContentView _positionInformationDidChange:]):
(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _willStartUserTriggeredScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView supportedPasteboardTypesForCurrentSelection]):
(-[WKContentView _addShortcut:]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView replace:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _resetShowingTextStyle:]):
(-[WKContentView _performAction:]):
(-[WKContentView copy:]):
(-[WKContentView cut:]):
(-[WKContentView paste:]):
(-[WKContentView select:]):
(-[WKContentView selectAll:]):
(-[WKContentView toggleBoldface:]):
(-[WKContentView toggleItalics:]):
(-[WKContentView toggleUnderline:]):
(-[WKContentView _showTextStyleOptions:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView _define:]):
(toWKGestureType):
(toUIWKGestureType):
(toWKSelectionTouch):
(toUIWKSelectionTouch):
(toWKGestureRecognizerState):
(toUIGestureRecognizerState):
(toUIWKSelectionFlags):
(toWKHandlePosition):
(selectionChangedWithGesture):
(selectionChangedWithTouch):
(-[WKContentView _didUpdateBlockSelectionWithTouch:WebKit::withFlags:WebKit::growThreshold:shrinkThreshold:]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
(-[WKContentView autocorrectionData]):
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView textFirstRect]):
(-[WKContentView textLastRect]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView accessoryDone]):
(-[WKContentView accessoryTab:]):
(-[WKContentView accessoryAutoFill]):
(-[WKContentView accessoryClear]):
(-[WKContentView _updateAccessory]):
(-[WKContentView textInRange:]):
(-[WKContentView replaceRange:withText:]):
(-[WKContentView selectedTextRange]):
(-[WKContentView caretRectForPosition:]):
(-[WKContentView selectionRectsForRange:]):
(-[WKContentView setSelectedTextRange:]):
(-[WKContentView hasMarkedText]):
(-[WKContentView markedText]):
(-[WKContentView markedTextRange]):
(-[WKContentView markedTextStyle]):
(-[WKContentView setMarkedTextStyle:]):
(-[WKContentView setMarkedText:selectedRange:]):
(-[WKContentView unmarkText]):
(-[WKContentView beginningOfDocument]):
(-[WKContentView endOfDocument]):
(-[WKContentView textRangeFromPosition:toPosition:]):
(-[WKContentView positionFromPosition:offset:]):
(-[WKContentView positionFromPosition:inDirection:offset:]):
(-[WKContentView comparePosition:toPosition:]):
(-[WKContentView offsetFromPosition:toPosition:]):
(-[WKContentView tokenizer]):
(-[WKContentView positionWithinRange:farthestInDirection:]):
(-[WKContentView characterRangeByExtendingPosition:inDirection:]):
(-[WKContentView baseWritingDirectionForPosition:inDirection:]):
(-[WKContentView setBaseWritingDirection:forRange:]):
(-[WKContentView firstRectForRange:]):
(-[WKContentView closestPositionToPoint:]):
(-[WKContentView closestPositionToPoint:withinRange:]):
(-[WKContentView characterRangeAtPoint:]):
(-[WKContentView deleteBackward]):
(-[WKContentView insertText:]):
(-[WKContentView hasText]):
(-[WKContentView textInputTraits]):
(-[WKContentView interactionAssistant]):
(-[WKContentView webSelectionAssistant]):
(-[WKContentView selectionRange]):
(-[WKContentView rectForNSRange:]):
(-[WKContentView _markedTextNSRange]):
(-[WKContentView selectedDOMRange]):
(-[WKContentView setSelectedDOMRange:affinityDownstream:]):
(-[WKContentView replaceRangeWithTextWithoutClosingTyping:replacementText:]):
(-[WKContentView rectContainingCaretSelection]):
(-[WKContentView requiresKeyEvents]):
(-[WKContentView handleKeyWebEvent:]):
(-[WKContentView _interpretKeyEvent:isCharEvent:]):
(-[WKContentView setBottomBufferHeight:]):
(-[WKContentView automaticallySelectedOverlay]):
(-[WKContentView selectionGranularity]):
(-[WKContentView insertDictationResult:withCorrectionIdentifier:]):
(-[WKContentView metadataDictionariesForDictationResults]):
(-[WKContentView previousUnperturbedDictationResultBoundaryFromPosition:]):
(-[WKContentView nextUnperturbedDictationResultBoundaryFromPosition:]):
(-[WKContentView moveBackward:]):
(-[WKContentView moveForward:]):
(-[WKContentView characterBeforeCaretSelection]):
(-[WKContentView wordContainingCaretSelection]):
(-[WKContentView wordRangeContainingCaretSelection]):
(-[WKContentView setMarkedText:]):
(-[WKContentView hasContent]):
(-[WKContentView selectAll]):
(-[WKContentView textColorForCaretSelection]):
(-[WKContentView fontForCaretSelection]):
(-[WKContentView hasSelection]):
(-[WKContentView isPosition:atBoundary:inDirection:]):
(-[WKContentView positionFromPosition:toBoundary:inDirection:]):
(-[WKContentView isPosition:withinTextUnit:inDirection:]):
(-[WKContentView rangeEnclosingPosition:withGranularity:inDirection:]):
(-[WKContentView takeTraitsFrom:]):
(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _stopAssistingKeyboard]):
(-[WKContentView _startAssistingNode]):
(-[WKContentView _stopAssistingNode]):
(-[WKContentView _selectionChanged]):
(-[WKContentView shouldIgnoreWebTouch]):
(-[WKContentView isAnyTouchOverActiveArea:]):
(-[WKTextRange _isCaret]):
(-[WKTextRange _isRanged]):
(+[WKTextRange textRangeWithState:isRange:isEditable:startRect:endRect:selectionRects:selectedTextLength:]):
(-[WKTextRange dealloc]):
(-[WKTextRange description]):
(-[WKTextRange start]):
(-[WKTextRange end]):
(-[WKTextRange isEmpty]):
(-[WKTextRange isEqual:]):
(+[WKTextPosition textPositionWithRect:]):
(-[WKTextPosition isEqual:]):
(-[WKTextPosition description]):
(-[WKTextSelectionRect initWithWebRect:]):
(-[WKTextSelectionRect dealloc]):
(+[WKTextSelectionRect textSelectionRectsWithWebRects:]):
(-[WKTextSelectionRect rect]):
(-[WKTextSelectionRect writingDirection]):
(-[WKTextSelectionRect range]):
(-[WKTextSelectionRect containsStart]):
(-[WKTextSelectionRect containsEnd]):
(-[WKTextSelectionRect isVertical]):
(+[WKAutocorrectionRects autocorrectionRectsWithRects:lastRect:]):
(+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
(-[WKAutocorrectionContext dealloc]):
* UIProcess/ios/WKContentViewInternal.h: Removed.
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164621 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use RetainPtrs for two WKContentView data members
https://bugs.webkit.org/show_bug.cgi?id=129276

Reviewed by Benjamin Poulain.

The UITextInputTraits were leaked. Fix with RetainPtr goodness.

Rename the obscure _accessory to _formAccessoryView and
make it a RetainPtr.

Rearrange the data members of the WKContentView class extension
for better packing and readability.

* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanupInteraction]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView _updateAccessory]):
(-[WKContentView textInputTraits]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the missing navigation bar in the Debugger sidebar panel.

Sorting the CSS resources caused specificity issue.

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

Reviewed by Joseph Pecoraro.

* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > .content):
(.sidebar > .panel.navigation.debugger > .navigation-bar):
* UserInterface/Views/LayoutTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
* UserInterface/Views/NetworkTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
* UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > .empty-content-placeholder):
(.sidebar > .panel.navigation.resource > .search-bar):
(.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
* UserInterface/Views/ScriptTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
(.sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item .icon):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected .close-button):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):nth-child(even)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):not(:first-child)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
(.sidebar > .panel.navigation.timeline > .timelines-content .close-button:active):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content):
(.sidebar > .panel.navigation.timeline > .content > .stripe-background):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164623 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a DefaultVisitedLinkProvider and route visited link actions through it
https://bugs.webkit.org/show_bug.cgi?id=129285

Reviewed by Dan Bernstein.

Source/WebCore:

DefaultVisitedLinkProvider currently just forwards everything to the visited link strategy,
but will soon take over the responsibilities of visited link handling from PageGroup.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/VisitedLinkState.cpp:
(WebCore::VisitedLinkState::determineLinkStateSlowCase):
* loader/HistoryController.cpp:
(WebCore::addVisitedLink):
(WebCore::HistoryController::updateForStandardLoad):
(WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
(WebCore::HistoryController::updateForClientRedirect):
(WebCore::HistoryController::updateForSameDocumentNavigation):
(WebCore::HistoryController::pushState):
(WebCore::HistoryController::replaceState):
* page/DefaultVisitedLinkProvider.cpp: Copied from Source/WebCore/page/VisitedLinkProvider.h.
(WebCore::DefaultVisitedLinkProvider::create):
(WebCore::DefaultVisitedLinkProvider::DefaultVisitedLinkProvider):
(WebCore::DefaultVisitedLinkProvider::~DefaultVisitedLinkProvider):
(WebCore::DefaultVisitedLinkProvider::isLinkVisited):
(WebCore::DefaultVisitedLinkProvider::addVisitedLink):
* page/DefaultVisitedLinkProvider.h: Copied from Source/WebCore/page/VisitedLinkProvider.h.
* page/Page.cpp:
(WebCore::Page::visitedLinkProvider):
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::PageGroup):
(WebCore::PageGroup::visitedLinkProvider):
* page/PageGroup.h:
* page/VisitedLinkProvider.h:

Tools:

* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate applicationDidFinishLaunching:]):
Set a shared history so we'll get visited link tracking.

* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController awakeFromNib]):
Set a group name.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164624 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. This file should not be marked as executable (copied in from ANGLE).

* include/KHR/khrplatform.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Cocoa] Start adding API for customizing actions on activated elements
https://bugs.webkit.org/show_bug.cgi?id=129284

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/_WKActivatedElementInfo.h: Added. Includes the public interface of what
was WKElementActionInfo.
* UIProcess/API/Cocoa/_WKActivatedElementInfo.m: Added.
(-[_WKActivatedElementInfo _initWithURL:location:title:rect:]): Moved and renamed internal
initializer from WKElementActionInfo.
(-[_WKActivatedElementInfo dealloc]): Moved from WKElementActionInfo.
(-[_WKActivatedElementInfo _boundingRect]): Added private accessor.
(-[_WKActivatedElementInfo _interactionLocation]): Ditto.
* UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: Added.

* UIProcess/API/Cocoa/_WKElementAction.h: Added.
(_WKElementActionType): Moved from WKActionSheet.h and turned into a proper NS_ENUM.
* UIProcess/API/Cocoa/_WKElementAction.mm: Added.
(-[_WKElementAction _initWithTitle:actionHandler:type:]): Moved and renamed internal
initializer from WKActionSheet.mm.
(-[_WKElementAction dealloc]): Moved from WKActionSheet.mm.
(+[_WKElementAction elementActionWithTitle:actionHandler:]): Moved and renamed.
(copyElement): Moved from WKActionSheet.mm.
(saveImage): Ditto.
(addToReadingList): Ditto.
(+[_WKElementAction elementActionWithType:customTitle:]): Moved and renamed.
(+[_WKElementAction elementActionWithType:]): Ditto.
(-[_WKElementAction _runActionWithElementInfo:view:]): Moved from WKActionSheet.mm.
* UIProcess/API/Cocoa/WKElementActionInternal.h: Added.

* UIProcess/ios/WKActionSheet.h: Removed declarations that were moved elsewhere.
* UIProcess/ios/WKActionSheet.mm: Removed code that was moved elsewhere.
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):

* WebKit2.xcodeproj/project.pbxproj: Added references to new files. Changed the Objective-C
class name check to allow _WK as a class name prefix.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Need to initialize VM stack data even when the VM is on an exclusive thread.
<https://webkit.org/b/129265>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

We check VM::exclusiveThread as an optimization to forego the need to do
JSLock locking. However, we recently started piggy backing on JSLock's
lock() and unlock() to initialize VM stack data (stackPointerAtVMEntry
and lastStackTop) to appropriate values for the current thread. This is
needed because we may be acquiring the lock to enter the VM on a different
thread.

As a result, we ended up not initializing the VM stack data when
VM::exclusiveThread causes us to bypass the locking activity. Even though
the VM::exclusiveThread will not have to deal with the VM being entered
on a different thread, it still needs to initialize the VM stack data.
The VM relies on that data being initialized properly once it has been
entered.

With this fix, we push the check for exclusiveThread down into the JSLock,
and handle the bypassing of unneeded locking activity there while still
executing the necessary the VM stack data initialization.

* API/APIShims.h:
(JSC::APIEntryShim::APIEntryShim):
(JSC::APICallbackShim::shouldDropAllLocks):
* heap/MachineStackMarker.cpp:
(JSC::MachineThreads::addCurrentThread):
* runtime/JSLock.cpp:
(JSC::JSLockHolder::JSLockHolder):
(JSC::JSLockHolder::init):
(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::JSLock):
(JSC::JSLock::setExclusiveThread):
(JSC::JSLock::lock):
(JSLock::unlock):
(JSLock::currentThreadIsHoldingLock):
(JSLock::dropAllLocks):
(JSLock::grabAllLocks):
* runtime/JSLock.h:
(JSC::JSLock::exclusiveThread):
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
(JSC::VM::exclusiveThread):
(JSC::VM::setExclusiveThread):
(JSC::VM::currentThreadIsHoldingAPILock):

Source/WebCore: 

No new tests.

* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
- Added an assertion to ensure that we are holding the JSLock.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
- Updated to use the new VM::setExclusiveThread().



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