diff options
author | Cary Clark <> | 2009-04-14 06:33:00 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-14 06:33:00 -0700 |
commit | 563af33bc48281d19dce701398dbb88cb54fd7ec (patch) | |
tree | 395b4502f029dea8b25b342d66dc06b5d8f99985 /WebKit/win | |
parent | 5cfedfef172691d0f4bcf2be5ca3cddd8c9a47f4 (diff) | |
download | external_webkit-563af33bc48281d19dce701398dbb88cb54fd7ec.zip external_webkit-563af33bc48281d19dce701398dbb88cb54fd7ec.tar.gz external_webkit-563af33bc48281d19dce701398dbb88cb54fd7ec.tar.bz2 |
AI 146110: add missing files to webkit
brings it in sync with webkit svn cl 42046
Automated import of CL 146110
Diffstat (limited to 'WebKit/win')
33 files changed, 944 insertions, 225 deletions
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog index bbafe2e..5f89f66 100644 --- a/WebKit/win/ChangeLog +++ b/WebKit/win/ChangeLog @@ -1,19 +1,291 @@ -2009-02-12 Mark Rowe <mrowe@apple.com> +2009-03-26 Dan Bernstein <mitz@apple.com> - Merge r40886. + Reviewed by Adam Roben. + + - add close() to the WebView API. + + * Interfaces/IWebView.idl: + * WebView.cpp: + (WebView::close): + * WebView.h: + +2009-03-24 Brent Fulgham <bfulgham@webkit.org> + + Reviewed by Adam Roben. + + https://bugs.webkit.org/show_bug.cgi?id=24779 + Conditionalize CFNetwork-specific code in WebView to permit + support for other network backends. + + * WebView.cpp: + (WebView::setCacheModel): Add CFNETWORK check around CFNetwork + specific cache implementation. + (updateSharedSettingsFromPreferencesIfNeeded): Add CFNETWORK + check around use of CFHTTPCookie code. + +2009-03-23 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Fix for <rdar://problem/6140966> + Empty Caches does not clear the Cross-site XMLHttpRequest preflight cache + + * WebCache.cpp: + (WebCache::empty): Also add application cache emptying to match the mac. + +2009-03-18 Steve Falkenburg <sfalken@apple.com> + + Add webViewClosing to private UI delegate. + + Reviewed by Adam Roben. + + * Interfaces/IWebUIDelegatePrivate.idl: + * Interfaces/WebKit.idl: + * WebView.cpp: + (WebView::close): + +2009-03-17 Dan Bernstein <mitz@apple.com> + + Reviewed by Adam Roben. + + - WebKit part of adding a mechanism for controlling the caching of + responses through WebFrameLoaderClient + + * Interfaces/IWebResourceLoadDelegatePrivate.idl: Added the + IWebResourceLoadDelegatePrivate3 interface, containing the new + delegate method shouldCacheResponse(). + + * Interfaces/IWebURLRequest.idl: Added the isEqual() method. + + * WebCoreSupport/WebFrameLoaderClient.cpp: + (WebFrameLoaderClient::shouldCacheResponse): Implemented this new + FrameLoaderDelegate method by calling through to the resource load + delegate, if it implements shouldCacheResponse(), and returning true + otherwise. + + * WebCoreSupport/WebFrameLoaderClient.h: + + * WebMutableURLRequest.cpp: + (WebMutableURLRequest::isEqual): Added. + (WebMutableURLRequest::setValue): Implemented. + + * WebMutableURLRequest.h: Declared isEqual(). + +2009-03-16 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6577174> Rename the text directionality submenus to “Paragraph Direction” and “Selection Direction” + + For now, change only the localized strings, not the terminology in the code. + + * WebCoreLocalizedStrings.cpp: + (WebCore::contextMenuItemTagWritingDirectionMenu): Changed string here. + (WebCore::contextMenuItemTagTextDirectionMenu): And here. + +2009-03-16 Adam Roben <aroben@apple.com> + + Add IWebFramePrivate::isDisplayingStandaloneImage + + This uses the same logic that -[WebFrame _isDisplayingStandaloneImage] + uses. + + Reviewed by Darin Adler. + + * Interfaces/IWebFramePrivate.idl: Added isDisplayingStandaloneImage. + + * WebFrame.cpp: + (WebFrame::isDisplayingStandaloneImage): Added. Returns true if our + Document is an image document. + + * WebFrame.h: Added isDisplayingStandaloneImage. + +2009-03-12 Peter Kasting <pkasting@google.com> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=24502 + Make horizontal scrolling on Windows always go the correct direction. + + * WebView.cpp: + (WebView::mouseWheel): + (WebViewWndProc): + * WebView.h: + +2009-03-12 Adam Roben <aroben@apple.com> + + Implement DOMHTMLDocument::title + + Reviewed by Dan Bernstein. + + * DOMHTMLClasses.cpp: + (DOMHTMLDocument::title): Call through to WebCore::Document (with + obligatory COM error checking/type conversions). + +2009-03-11 Adam Roben <aroben@apple.com> + + Export functions needed by ThreadSpecific from WebKit + + Reviewed by John Sullivan. + + * WebKit.vcproj/WebKit.def: + * WebKit.vcproj/WebKit_debug.def: + Export WTF::tlsKeyCount and WTF::tlsKeys. + +2009-03-10 Steve Falkenburg <sfalken@apple.com> + + <rdar://problem/6662167> When clicking in Top Sites search field, WebHistory::findIndex fails causing crash in BookmarksSearcher::collectHistorySearchResults + + Round CFAbsoluteDates to the nearest second when converting to/from the Windows DATE format. + + This corrects for inaccuracies introduced by round-tripping between DATE (day based) and CFAbsoluteDate (second based). + The WebKit COM API on Windows uses DATE, while our history storage uses CFAbsoluteTime. This could lead to WebKit + saying there was browsing history for a particular day, and then return no history items when we requested a + list of sites visited that day. + + Reviewed by Ada Chan. + + * MarshallingHelpers.cpp: + (MarshallingHelpers::DATEToCFAbsoluteTime): + (MarshallingHelpers::CFAbsoluteTimeToDATE): - 2009-02-11 Brady Eidson <beidson@apple.com> +2009-03-08 Mark Rowe <mrowe@apple.com> + + Reviewed by Oliver Hunt. + + Split ScrollAlignment and ScrollBehavior out of RenderLayer.h so that + Frame.h no longer needs to include it. This cuts the size of the symbols + for a debug build by around 3%. + + * WebView.cpp: + (WebView::centerSelectionInVisibleArea): + +2009-03-07 Dan Bernstein <mitz@apple.com> + + Reviewed by Mark Rowe. + + - WebKit part of removing build-time and run-time support for legacy + versions of CFNetwork and Core Graphics + + * WebView.cpp: + (WebView::setCacheModel): + +2009-03-04 Adam Barth <abath@webkit.org> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=24356 + + Fix WebKit style for allowUniversalAccessFromFileURLs. + + * Interfaces/IWebPreferencesPrivate.idl: + * WebPreferenceKeysPrivate.h: + * WebPreferences.cpp: + (WebPreferences::initializeDefaultSettings): + (WebPreferences::allowUniversalAccessFromFileURLs): + (WebPreferences::setAllowUniversalAccessFromFileURLs): + * WebPreferences.h: + * WebView.cpp: + (WebView::notifyPreferencesChanged): + +2009-02-27 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Add a preference to reduce the power of file:// URLs. + + * Interfaces/IWebPreferencesPrivate.idl: + * WebPreferenceKeysPrivate.h: + * WebPreferences.cpp: + (WebPreferences::initializeDefaultSettings): + (WebPreferences::allowUniversalAccessFromFileUrls): + (WebPreferences::setAllowUniversalAccessFromFileUrls): + * WebPreferences.h: + * WebView.cpp: + (WebView::notifyPreferencesChanged): + +2009-02-19 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24024 + REGRESSION (r39845): Assertion failure in -[WebHistoryItem dictionaryRepresentation] when + archiving a submission to about:blank + + I don't know how to make an automated test for this bug. + + * WebHistory.cpp: (WebHistory::visitedURL): Account for the fact that HTTP method may be + non-empty for non-HTTP requests. + +2009-02-25 Andreia Gaita <shana@jitted.com> + + Reviewed by Alp Toker. + + Update Win def files with recent JavaScriptCore API additions. + + * WebKit.vcproj/WebKit.def: + * WebKit.vcproj/WebKit_Cairo.def: + * WebKit.vcproj/WebKit_debug.def: + +2009-02-24 Sam Weinig <sam@webkit.org> + + Reviewed by Geoffrey Garen. + + Related to <rdar://problem/6590295> + Allow disabling javascript: urls. + + * Interfaces/IWebViewPrivate.idl: + * WebView.cpp: + (WebView::setJavaScriptURLsAreAllowed): + * WebView.h: + +2009-02-24 Adam Roben <aroben@apple.com> + + Windows build fix + + * WebKit.vcproj/WebKit.def: + * WebKit.vcproj/WebKit_debug.def: + Export WTF::ThreadCondition::timedWait. + +2009-02-12 Brady Eidson <beidson@apple.com> + + Reviewed by Kevin Decker + + <rdar://problem/6582180> - Wrong HTTP method applied to history item. + + * WebCoreSupport/WebFrameLoaderClient.cpp: + (WebFrameLoaderClient::updateGlobalHistory): Check the original request, not any + redirected request. + +2009-02-11 Brady Eidson <beidson@apple.com> Fix my last checkin for more effect. * WebHistoryItem.cpp: (WebHistoryItem::initFromDictionaryRepresentation): -2009-02-12 Mark Rowe <mrowe@apple.com> +2009-02-11 Adam Roben <aroben@apple.com> + + Windows fix for Bug 22239: Implement missing animation & transition + APIs on LayoutTestController for non-mac platforms + + <https://bugs.webkit.org/show_bug.cgi?id=22239> + + Reviewed by Simon Fraser. + + * Interfaces/IWebFramePrivate.idl: Added pauseAnimation, + pauseTransition, and numberOfActiveAnimations. + + * WebFrame.cpp: + (WebFrame::pauseAnimation): + (WebFrame::pauseTransition): + (WebFrame::numberOfActiveAnimation): + Added. These all call through to AnimationController. - Merge r40882. + * WebFrame.h: Added pauseAnimation, pauseTransition, and + numberOfActiveAnimations. - 2009-02-11 Brady Eidson <beidson@apple.com> +2009-02-11 Brady Eidson <beidson@apple.com> Reviewed by Mark Rowe @@ -35,11 +307,96 @@ (WebHistoryItem::initFromDictionaryRepresentation): Add the negative-visit-count-correction-logic as implemented for Mac in http://trac.webkit.org/changeset/40851. -2009-02-06 Mark Rowe <mrowe@apple.com> +2009-02-11 Dimitri Dupuis-latour <dupuislatour@apple.com> + + Stub out WebInspectorClient::hiddenPanels. + + Reviewed by Timothy Hatcher. + + * WebCoreSupport/WebInspectorClient.cpp: + (WebInspectorClient::hiddenPanels): + * WebCoreSupport/WebInspectorClient.h: + +2009-02-11 Adam Roben <aroben@apple.com> + + Don't release the shared WebHistory instance on quit + + This matches Mac, and prevents a race condition when the process exits + that depends on the order in which global destructors are invoked. + + Reviewed by Alexey Proskuryakov. + + * WebHistory.cpp: + (sharedHistoryStorage): Changed to use DEFINE_STATIC_LOCAL so the + destructor is never called. + +2009-02-10 Adam Roben <aroben@apple.com> + + Fix recursive WebView destruction when running DumpRenderTree + + DumpRenderTree would call DestroyWindow on a WebView's host window, + which would send a WM_DESTROY message to the WebView's window. Inside + the WebView's WndProc, we would hold a ref to the WebView, then call + close() and revokeDragDrop(), which would release all remaining + references to the WebView other than the ref we held in the WndProc. + When the WndProc exited, the final ref to the WebView would be + released, invoking WebView's destructor. At this point, + IsWindow(m_viewWindow) would return true, since we were still in the + process of handling WM_DESTROY, so we would call DestroyWindow on the + WebView's window again, re-entering the WndProc and re-reffing the + WebView, leading to recursive destruction. + + Reviewed by Alexey Proskuryakov. + + * WebView.cpp: + (WebView::~WebView): Don't call DestroyWindow if our window is already + being destroyed. + (WebViewWndProc): Only hold an extra ref to the WebView when we're not + being destroyed. + +2009-02-06 Adam Roben <aroben@apple.com> + + Build fix + + Reviewed by Sam Weinig. + + * WebCoreSupport/WebFrameLoaderClient.cpp: Added missing #include. + (WebFrameLoaderClient::updateGlobalHistoryRedirectLinks): Removed + incorrect .get(), and changed to use the new overload of + WebHistory::itemForURLString. + + * WebHistory.cpp: + (WebHistory::itemForURLString): Made this const. + (WebHistory::itemForURLString): Added an overload that takes a + WebCore::String and returns the IWebHistoryItem instead of using an + out parameter. + + * WebHistory.h: Added public overload of itemForURLString. + + * WebView.cpp: + (WebView::prepareCandidateWindow): + (WebView::onIMERequestCharPosition): + (WebView::onIMERequestReconvertString): + Updated for toRange -> toNormalizedRange rename. - Merge r40726. +2009-02-06 Geoffrey Garen <ggaren@apple.com> - 2009-02-06 Dan Bernstein <mitz@apple.com> + Reviewed by Sam Weinig. + + Part III of <rdar://problem/6552272>. + + Refactored to use the redirect data WebCore makes available, instead of + tracking loading state in WebKit. + + * WebCoreSupport/WebFrameLoaderClient.cpp: + (WebFrameLoaderClient::updateGlobalHistory): + (WebFrameLoaderClient::updateGlobalHistoryRedirectLinks): + * WebCoreSupport/WebFrameLoaderClient.h: + * WebHistory.cpp: + (WebHistory::visitedURL): + * WebHistory.h: + +2009-02-06 Dan Bernstein <mitz@apple.com> Reviewed by Anders Carlsson. @@ -51,11 +408,14 @@ size. Also reduced the inline capacity of the vector used for weekly visit counts to 5, which is the expected maximum size. -2009-02-06 Mark Rowe <mrowe@apple.com> +2009-02-06 Brent Fulgham <bfulgham@webkit.org> - Merge r40713. + Build fix. - 2009-02-06 Maciej Stachowiak <mjs@apple.com> + * WebKit.vcproj/WebKit.vcproj: Re-enable missing file in Release + target of Cairo. + +2009-02-06 Maciej Stachowiak <mjs@apple.com> Rubber stamped by Dan Bernstein. @@ -64,11 +424,7 @@ * WebHistoryItem.cpp: (WebHistoryItem::initFromDictionaryRepresentation): -2009-02-06 Mark Rowe <mrowe@apple.com> - - Merge r40712. - - 2009-02-05 Maciej Stachowiak <mjs@apple.com> and Brady Eidson <beidson@apple.com> +2009-02-05 Maciej Stachowiak <mjs@apple.com> and Brady Eidson <beidson@apple.com> Reviewed by Dan Bernstein and Geoff Garen.. @@ -89,89 +445,74 @@ (WebHistoryItem::recordInitialVisit): Tell WebCore to record an initial visit. * WebHistoryItem.h: -2009-02-04 Steve Falkenburg <sfalken@apple.com> +2009-02-05 Brent Fulgham <bfulgham@webkit.org> - Merge r40365. + Reviewed by Sam Weinig <sam@webkit.org> - 2009-01-29 Adam Roben <aroben@apple.com> + Build fix. Update file for recently removed EventTargetNodeCast. + * DOMCoreClasses.cpp: + (DOMNode::dispatchEvent): - Build fix after r40353 +2009-02-05 Aaron Boodman <aa@chromium.org> - * WebCoreSupport/WebFrameLoaderClient.cpp: - (WebFrameLoaderClient::loadURLIntoChild): Removed the check for - FrameLoadTypeReloadAllowingStaleData. + Reviewed by Dave Hyatt. -2009-02-04 Steve Falkenburg <sfalken@apple.com> + https://bugs.webkit.org/show_bug.cgi?id=23708 + Adds documentElementAvailable() callback to FrameLoaderClient. - Merge r40511. + * WebFrame.cpp: + (WebFrame::documentElementAvailable): + Stub out documentElementAvailable() + * WebFrame.h: + Ditto. - 2009-02-02 Geoffrey Garen <ggaren@apple.com> +2009-02-04 Geoffrey Garen <ggaren@apple.com> Build fix. - * WebCoreSupport/WebFrameLoaderClient.cpp: - (WebFrameLoaderClient::loadURLIntoChild): - -2009-02-04 Steve Falkenburg <sfalken@apple.com> - - Merge part of r40470. - - 2009-01-31 Matt Lilek <webkit@mattlilek.com> - - Not reviewed, build fixes. - - * WebCoreSupport/WebContextMenuClient.cpp: - (WebContextMenuClient::searchWithGoogle): - -2009-02-03 Mark Rowe <mrowe@apple.com> - - Merge r40392. - - 2009-01-29 Sam Weinig <sam@webkit.org> + * WebHistory.cpp: + (WebHistory::visitedURL): - Fix Windows build +2009-02-04 Geoffrey Garen <ggaren@apple.com> - * WebHistoryItem.cpp: - (WebHistoryItem::initFromDictionaryRepresentation): + Reviewed by Mark Rowe. + + Part I of <rdar://problem/6552272>. -2009-02-03 Mark Rowe <mrowe@apple.com> + Clear the redirectURLs entry when first visiting a site, so sites that + only redirect you the first time you visit them can later learn that + they don't redirect. - Merge r40529. + * WebHistory.cpp: + (WebHistory::visitedURL): - 2009-02-03 Geoffrey Garen <ggaren@apple.com> +2009-02-03 Geoffrey Garen <ggaren@apple.com> Build fix. * WebHistory.cpp: (WebHistory::visitedURL): -2009-02-03 Mark Rowe <mrowe@apple.com> - - Merge r40528. - - 2009-02-02 Geoffrey Garen <ggaren@apple.com> +2009-02-02 Geoffrey Garen <ggaren@apple.com> Build fix. * WebHistory.cpp: (WebHistory::visitedURL): -2009-02-03 Mark Rowe <mrowe@apple.com> +2009-02-02 Hiroaki Nakamura <hnakamur@gmail.com> - Merge r40511. - - 2009-02-02 Geoffrey Garen <ggaren@apple.com> - - Build fix. - - * WebCoreSupport/WebFrameLoaderClient.cpp: - (WebFrameLoaderClient::loadURLIntoChild): + Reviewed by Adam Roben. -2009-02-03 Mark Rowe <mrowe@apple.com> + Fixes https://bugs.webkit.org/show_bug.cgi?id=15813 + Modify pre-build step to properly handle the errorlevel + shell command. - Merge r40508. + * WebKit.vcproj/WebKit.vcproj: Change errorlevel handling + for all targets so prefast is only enabled in builds + where /analyze is available. - 2009-02-02 Geoffrey Garen <ggaren@apple.com> +2009-02-02 Geoffrey Garen <ggaren@apple.com> Reviewed by Sam Weinig. @@ -199,11 +540,7 @@ * WebHistory.h: See above. -2009-02-03 Mark Rowe <mrowe@apple.com> - - Merge r40503. - - 2009-02-02 Brady Eidson <beidson@apple.com> +2009-02-02 Brady Eidson <beidson@apple.com> Reviewed by Dan Bernstein @@ -221,42 +558,69 @@ (WebHistoryItem::visitedWithTitle): * WebHistoryItem.h: -2009-02-03 Mark Rowe <mrowe@apple.com> +2009-02-02 Anders Carlsson <andersca@apple.com> - Merge r40382. + Fix build. + + * WebCoreSupport/WebFrameLoaderClient.cpp: + (WebFrameLoaderClient::createPlugin): + * WebCoreSupport/WebFrameLoaderClient.h: - 2009-01-29 Sam Weinig <sam@webkit.org> +2009-02-02 Anders Carlsson <andersca@apple.com> - Reviewed by Anders Carlsson. + Reviewed by Dan Bernstein. - Second step in tracking the urls a HistoryItem was redirected through - Add SPI to access the array of redirect urls associated with a HistoryItem. + Update for changes to WebCore. - * Interfaces/IWebHistoryItemPrivate.idl: - * WebHistoryItem.cpp: - (WebHistoryItem::dictionaryRepresentation): - (WebHistoryItem::redirectURLs): - * WebHistoryItem.h: + * WebFrame.cpp: + (WebFrame::createJavaAppletWidget): + * WebFrame.h: -2009-02-03 Mark Rowe <mrowe@apple.com> +2009-02-02 Holger Hans Peter Freyther <zecke@selfish.org> - Merge r40380. + Reviewed by Darin Adler. - 2009-01-29 Sam Weinig <sam@webkit.org> + Move Frame::forceLayout, Frame::adjustPageHeight and Frame::forceLayoutWithPageWidthRange to FrameView - Reviewed by Mark Rowe. + https://bugs.webkit.org/show_bug.cgi?id=23428 - First step in tracking the urls a HistoryItem was redirected through. + FrameView::forceLayout could be killed but the comment might + contain a value over the the plain FrameView::layout... - * WebHistoryItem.cpp: - (WebHistoryItem::initFromDictionaryRepresentation): - (WebHistoryItem::dictionaryRepresentation): + Adjust the WebCore/WebKit consumers of these methods. + + * WebCoreSupport/WebFrameLoaderClient.cpp: + (WebFrameLoaderClient::forceLayout): + +2009-01-31 Matt Lilek <webkit@mattlilek.com> + + Not reviewed, build fixes. + + * WebCoreSupport/WebContextMenuClient.cpp: + (WebContextMenuClient::searchWithGoogle): + * WebFrame.cpp: + (WebFrame::setInPrintingMode): + (WebFrame::isFrameSet): + * WebView.cpp: + (WebView::notifyPreferencesChanged): + +2009-01-30 Adam Barth <abarth@webkit.org> + + Reviewed by Sam Weinig. -2009-02-03 Mark Rowe <mrowe@apple.com> + Add a pref to disable web security. - Merge r40436. + * Interfaces/IWebPreferencesPrivate.idl: + * WebPreferenceKeysPrivate.h: + * WebPreferences.cpp: + (WebPreferences::initializeDefaultSettings): + (WebPreferences::isWebSecurityEnabled): + (WebPreferences::setWebSecurityEnabled): + * WebPreferences.h: + * WebView.cpp: + (WebView::notifyPreferencesChanged): - 2009-01-30 Geoffrey Garen <ggaren@apple.com> +2009-01-30 Geoffrey Garen <ggaren@apple.com> Build fix. @@ -264,24 +628,59 @@ * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::loadURLIntoChild): -2009-02-03 Mark Rowe <mrowe@apple.com> +2009-01-30 Holger Hans Peter Freyther <zecke@selfish.org> - Merge r40353. + Reviewed by Simon Hausmann. - 2009-01-28 Geoffrey Garen <ggaren@apple.com> + Kill FrameLoaderClient.cpp, move the code over to Frame::createView - Reviewed by Sam Weinig. + FrameLoaderClient is supposed to be an interface, move the + to be shared code to Frame which is a controller and is + allowed to create a FrameView. - Updated for WebCore rename. + * WebCoreSupport/WebFrameLoaderClient.cpp: + (WebFrameLoaderClient::transitionToCommittedForNewPage): - * WebView.cpp: - (WebView::setCustomTextEncodingName): +2009-01-30 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig -2009-02-03 Mark Rowe <mrowe@apple.com> + Remove FrameLoaderClient code that is now handled by FrameLoader itself - Merge r40366. + * WebFrame.cpp: + (WebFrame::frameLoadCompleted): + +2009-01-29 Sam Weinig <sam@webkit.org> + + Fix Windows build + + * WebHistoryItem.cpp: + (WebHistoryItem::initFromDictionaryRepresentation): + +2009-01-29 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Second step in tracking the urls a HistoryItem was redirected through + Add SPI to access the array of redirect urls associated with a HistoryItem. + + * Interfaces/IWebHistoryItemPrivate.idl: + * WebHistoryItem.cpp: + (WebHistoryItem::dictionaryRepresentation): + (WebHistoryItem::redirectURLs): + * WebHistoryItem.h: + +2009-01-29 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + First step in tracking the urls a HistoryItem was redirected through. - 2009-01-29 Adam Roben <aroben@apple.com> + * WebHistoryItem.cpp: + (WebHistoryItem::initFromDictionaryRepresentation): + (WebHistoryItem::dictionaryRepresentation): + +2009-01-29 Adam Roben <aroben@apple.com> Fix Bug 23623: Windowed Flash instances aren't captured when a WebView receives a WM_PRINTCLIENT message @@ -313,6 +712,23 @@ * WebView.h: Added windowsToPaint parameters to paintIntoBackingStore and updateBackingStore (which I also made private). +2009-01-29 Adam Roben <aroben@apple.com> + + Build fix after r40353 + + * WebCoreSupport/WebFrameLoaderClient.cpp: + (WebFrameLoaderClient::loadURLIntoChild): Removed the check for + FrameLoadTypeReloadAllowingStaleData. + +2009-01-28 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + Updated for WebCore rename. + + * WebView.cpp: + (WebView::setCustomTextEncodingName): + 2009-01-27 Brady Eidson <beidson@apple.com> Reviewed by Dan Bernstein diff --git a/WebKit/win/DOMCoreClasses.cpp b/WebKit/win/DOMCoreClasses.cpp index 2da3e28..19f076f 100644 --- a/WebKit/win/DOMCoreClasses.cpp +++ b/WebKit/win/DOMCoreClasses.cpp @@ -381,7 +381,7 @@ HRESULT STDMETHODCALLTYPE DOMNode::dispatchEvent( return hr; WebCore::ExceptionCode ec = 0; - *result = WebCore::EventTargetNodeCast(m_node)->dispatchEvent(domEvent->coreEvent(), ec) ? TRUE : FALSE; + *result = m_node->dispatchEvent(domEvent->coreEvent(), ec) ? TRUE : FALSE; #if 0 // FIXME - raise dom exceptions WebCore::raiseOnDOMError(ec); #endif diff --git a/WebKit/win/DOMHTMLClasses.cpp b/WebKit/win/DOMHTMLClasses.cpp index 037aa88..ceb0374 100644 --- a/WebKit/win/DOMHTMLClasses.cpp +++ b/WebKit/win/DOMHTMLClasses.cpp @@ -180,10 +180,18 @@ HRESULT STDMETHODCALLTYPE DOMHTMLDocument::QueryInterface(REFIID riid, void** pp // DOMHTMLDocument ------------------------------------------------------------ HRESULT STDMETHODCALLTYPE DOMHTMLDocument::title( - /* [retval][out] */ BSTR* /*result*/) + /* [retval][out] */ BSTR* result) { - ASSERT_NOT_REACHED(); - return E_NOTIMPL; + if (!result) + return E_POINTER; + + *result = 0; + + if (!m_document || !m_document->isHTMLDocument()) + return E_FAIL; + + *result = BString(m_document->title()).release(); + return S_OK; } HRESULT STDMETHODCALLTYPE DOMHTMLDocument::setTitle( diff --git a/WebKit/win/Interfaces/IWebFramePrivate.idl b/WebKit/win/Interfaces/IWebFramePrivate.idl index d1f6cbf..f00bec5 100755 --- a/WebKit/win/Interfaces/IWebFramePrivate.idl +++ b/WebKit/win/Interfaces/IWebFramePrivate.idl @@ -83,4 +83,10 @@ interface IWebFramePrivate : IUnknown HRESULT paintDocumentRectToContext([in] RECT rect, [in] OLE_HANDLE deviceContext); HRESULT elementDoesAutoComplete([in] IDOMElement* element, [out, retval] BOOL* result); + + HRESULT pauseAnimation([in] BSTR animationName, [in] IDOMNode* node, [in] double secondsFromNow, [out, retval] BOOL* animationWasRunning); + HRESULT pauseTransition([in] BSTR propertyName, [in] IDOMNode* node, [in] double secondsFromNow, [out, retval] BOOL* transitionWasRunning); + HRESULT numberOfActiveAnimations([out, retval] UINT* number); + + HRESULT isDisplayingStandaloneImage([out, retval] BOOL* result); } diff --git a/WebKit/win/Interfaces/IWebPreferencesPrivate.idl b/WebKit/win/Interfaces/IWebPreferencesPrivate.idl index aa1073f..b9e05ec 100644 --- a/WebKit/win/Interfaces/IWebPreferencesPrivate.idl +++ b/WebKit/win/Interfaces/IWebPreferencesPrivate.idl @@ -69,4 +69,10 @@ interface IWebPreferencesPrivate : IUnknown HRESULT setFontSmoothingContrast([in] float contrast); HRESULT fontSmoothingContrast([out, retval] float* contrast); + + HRESULT isWebSecurityEnabled([out, retval] BOOL* enabled); + HRESULT setWebSecurityEnabled([in] BOOL enabled); + + HRESULT allowUniversalAccessFromFileURLs([out, retval] BOOL *allowAccess); + HRESULT setAllowUniversalAccessFromFileURLs([in] BOOL allowAccess); } diff --git a/WebKit/win/Interfaces/IWebResourceLoadDelegatePrivate.idl b/WebKit/win/Interfaces/IWebResourceLoadDelegatePrivate.idl index 95040bf..df23091 100644 --- a/WebKit/win/Interfaces/IWebResourceLoadDelegatePrivate.idl +++ b/WebKit/win/Interfaces/IWebResourceLoadDelegatePrivate.idl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -35,7 +35,6 @@ interface IWebDataSource; interface IWebURLResponse; interface IWebURLRequest; - /*! @category WebResourceLoadDelegatePrivate */ @@ -70,3 +69,14 @@ interface IWebResourceLoadDelegatePrivate2 : IWebResourceLoadDelegatePrivate { HRESULT shouldUseCredentialStorage([in] IWebView* webView, [in] unsigned long identifier, [in] IWebDataSource* dataSource, [out, retval] BOOL* shouldUse); } + +[ + object, + oleautomation, + uuid(099DC3C1-34B5-4169-ABBF-0C63CBC25605), + pointer_default(unique) +] +interface IWebResourceLoadDelegatePrivate3 : IWebResourceLoadDelegatePrivate2 +{ + HRESULT shouldCacheResponse([in] IWebView* webView, [in] unsigned long identifier, [in] IWebURLResponse* response, [in] const char* data, [in] unsigned long long length, [in] IWebDataSource* dataSource, [out, retval] BOOL* shouldCache); +} diff --git a/WebKit/win/Interfaces/IWebUIDelegatePrivate.idl b/WebKit/win/Interfaces/IWebUIDelegatePrivate.idl index 5ef53d9..c6d3bbd 100755 --- a/WebKit/win/Interfaces/IWebUIDelegatePrivate.idl +++ b/WebKit/win/Interfaces/IWebUIDelegatePrivate.idl @@ -92,3 +92,14 @@ interface IWebUIDelegatePrivate4 : IWebUIDelegatePrivate3 HRESULT embeddedViewWithArguments([in] IWebView* sender, [in] IWebFrame* frame, [in] IPropertyBag* arguments, [out, retval] IWebEmbeddedView** view); HRESULT webViewSendResizeMessage([in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam); } + +[ + object, + oleautomation, + uuid(df3b4283-6868-4a1f-97f6-baf0b33f239c), + pointer_default(unique) +] +interface IWebUIDelegatePrivate5 : IWebUIDelegatePrivate4 +{ + HRESULT webViewClosing([in] IWebView* sender); +} diff --git a/WebKit/win/Interfaces/IWebURLRequest.idl b/WebKit/win/Interfaces/IWebURLRequest.idl index 0f72fa8..4b27592 100644 --- a/WebKit/win/Interfaces/IWebURLRequest.idl +++ b/WebKit/win/Interfaces/IWebURLRequest.idl @@ -110,4 +110,6 @@ interface IWebURLRequest : IUnknown HRESULT isEmpty([out, retval] BOOL* result); HRESULT mutableCopy([out, retval] IWebMutableURLRequest** result); + + HRESULT isEqual([in] IWebURLRequest* other, [out, retval] BOOL* result); } diff --git a/WebKit/win/Interfaces/IWebView.idl b/WebKit/win/Interfaces/IWebView.idl index e38406b..04e996c 100644 --- a/WebKit/win/Interfaces/IWebView.idl +++ b/WebKit/win/Interfaces/IWebView.idl @@ -723,6 +723,18 @@ interface IWebView : IUnknown + (void)registerURLSchemeAsLocal:(NSString *)scheme; */ HRESULT registerURLSchemeAsLocal([in] BSTR scheme); + + /*! + @method close + @abstract Closes the receiver, unloading its web page and canceling any pending loads. + Once the receiver has closed, it will no longer respond to requests or fire delegate methods. + (However, the -close method itself may fire delegate methods.) + @discussion A garbage collected application is required to call close when the receiver is no longer needed. + The close method will be called automatically when the window or hostWindow closes and shouldCloseWithWindow returns YES. + A non-garbage collected application can still call close, providing a convenient way to prevent receiver + from doing any more loading and firing any future delegate methods. + */ + HRESULT close(); } /* diff --git a/WebKit/win/Interfaces/IWebViewPrivate.idl b/WebKit/win/Interfaces/IWebViewPrivate.idl index c32a20b..4362f89 100644 --- a/WebKit/win/Interfaces/IWebViewPrivate.idl +++ b/WebKit/win/Interfaces/IWebViewPrivate.idl @@ -157,4 +157,6 @@ interface IWebViewPrivate : IUnknown HRESULT registerEmbeddedViewMIMEType([in] BSTR mimeType); HRESULT setMemoryCacheDelegateCallsEnabled([in] BOOL enabled); + + HRESULT setJavaScriptURLsAreAllowed([in] BOOL areAllowed); } diff --git a/WebKit/win/Interfaces/WebKit.idl b/WebKit/win/Interfaces/WebKit.idl index a78a5d3..338ab71 100644 --- a/WebKit/win/Interfaces/WebKit.idl +++ b/WebKit/win/Interfaces/WebKit.idl @@ -367,3 +367,4 @@ library WebKit } } + diff --git a/WebKit/win/MarshallingHelpers.cpp b/WebKit/win/MarshallingHelpers.cpp index 60f2749..0cec6de 100644 --- a/WebKit/win/MarshallingHelpers.cpp +++ b/WebKit/win/MarshallingHelpers.cpp @@ -26,6 +26,7 @@ #include "config.h" #include "WebKitDLL.h" #include "MarshallingHelpers.h" +#include "MathExtras.h" #pragma warning(push, 0) #include <WebCore/IntRect.h> @@ -144,12 +145,12 @@ CFAbsoluteTime MarshallingHelpers::DATEToCFAbsoluteTime(DATE date) // the reference date. Positive values indicate dates/times after the // reference date. - return (date + windowsEpochAbsoluteTime()) * secondsPerDay; + return round((date + windowsEpochAbsoluteTime()) * secondsPerDay); } DATE MarshallingHelpers::CFAbsoluteTimeToDATE(CFAbsoluteTime absoluteTime) { - return (absoluteTime/secondsPerDay - windowsEpochAbsoluteTime()); + return (round(absoluteTime)/secondsPerDay - windowsEpochAbsoluteTime()); } // utility method to store a 1-dim string vector into a newly created SAFEARRAY diff --git a/WebKit/win/WebCache.cpp b/WebKit/win/WebCache.cpp index 2e5c2e9..c7351b0 100644 --- a/WebKit/win/WebCache.cpp +++ b/WebKit/win/WebCache.cpp @@ -30,7 +30,9 @@ #include "CFDictionaryPropertyBag.h" #pragma warning(push, 0) +#include <WebCore/ApplicationCacheStorage.h> #include <WebCore/Cache.h> +#include <WebCore/CrossOriginPreflightResultCache.h> #pragma warning(pop) // WebCache --------------------------------------------------------------------------- @@ -206,6 +208,13 @@ HRESULT STDMETHODCALLTYPE WebCache::empty( void) return S_OK; WebCore::cache()->setDisabled(true); WebCore::cache()->setDisabled(false); + + // Empty the application cache. + WebCore::cacheStorage().empty(); + + // Empty the Cross-Origin Preflight cache + WebCore::CrossOriginPreflightResultCache::shared().empty(); + return S_OK; } diff --git a/WebKit/win/WebCoreLocalizedStrings.cpp b/WebKit/win/WebCoreLocalizedStrings.cpp index 21dc35d..c383818 100644 --- a/WebKit/win/WebCoreLocalizedStrings.cpp +++ b/WebKit/win/WebCoreLocalizedStrings.cpp @@ -68,8 +68,8 @@ String WebCore::contextMenuItemTagBold() { return String(LPCTSTR_UI_STRING("Bold String WebCore::contextMenuItemTagItalic() { return String(LPCTSTR_UI_STRING("Italic", "Italic context menu item")); } String WebCore::contextMenuItemTagUnderline() { return String(LPCTSTR_UI_STRING("Underline", "Underline context menu item")); } String WebCore::contextMenuItemTagOutline() { return String(LPCTSTR_UI_STRING("Outline", "Outline context menu item")); } -String WebCore::contextMenuItemTagWritingDirectionMenu() { return String(LPCTSTR_UI_STRING("Writing Direction", "Writing direction context sub-menu item")); } -String WebCore::contextMenuItemTagTextDirectionMenu() { return String(LPCTSTR_UI_STRING("Text Direction", "Text direction context sub-menu item")); } +String WebCore::contextMenuItemTagWritingDirectionMenu() { return String(LPCTSTR_UI_STRING("Paragraph Direction", "Paragraph direction context sub-menu item")); } +String WebCore::contextMenuItemTagTextDirectionMenu() { return String(LPCTSTR_UI_STRING("Selection Direction", "Selection direction context sub-menu item")); } String WebCore::contextMenuItemTagDefaultDirection() { return String(LPCTSTR_UI_STRING("Default", "Default writing direction context menu item")); } String WebCore::contextMenuItemTagLeftToRight() { return String(LPCTSTR_UI_STRING("Left to Right", "Left to Right context menu item")); } String WebCore::contextMenuItemTagRightToLeft() { return String(LPCTSTR_UI_STRING("Right to Left", "Right to Left context menu item")); } diff --git a/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp b/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp index 1af1673..c307660 100644 --- a/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp +++ b/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp @@ -41,6 +41,7 @@ #include "WebError.h" #include "WebFrame.h" #include "WebHistory.h" +#include "WebHistoryItem.h" #include "WebMutableURLRequest.h" #include "WebNotificationCenter.h" #include "WebScriptDebugServer.h" @@ -53,9 +54,11 @@ #include <WebCore/FrameLoader.h> #include <WebCore/FrameTree.h> #include <WebCore/FrameView.h> +#include <WebCore/HTMLAppletElement.h> #include <WebCore/HTMLFrameElement.h> #include <WebCore/HTMLFrameOwnerElement.h> #include <WebCore/HTMLNames.h> +#include <WebCore/HTMLPlugInElement.h> #include <WebCore/HistoryItem.h> #include <WebCore/Page.h> #include <WebCore/PluginPackage.h> @@ -91,7 +94,9 @@ bool WebFrameLoaderClient::hasWebView() const void WebFrameLoaderClient::forceLayout() { - core(m_webFrame)->forceLayout(true); + FrameView* view = core(m_webFrame)->view(); + if (view) + view->forceLayout(true); } void WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request) @@ -221,6 +226,25 @@ void WebFrameLoaderClient::dispatchDidFailLoading(DocumentLoader* loader, unsign resourceLoadDelegate->didFailLoadingWithError(webView, identifier, webError.get(), getWebDataSource(loader)); } +bool WebFrameLoaderClient::shouldCacheResponse(DocumentLoader* loader, unsigned long identifier, const ResourceResponse& response, const unsigned char* data, const unsigned long long length) +{ + WebView* webView = m_webFrame->webView(); + COMPtr<IWebResourceLoadDelegate> resourceLoadDelegate; + if (FAILED(webView->resourceLoadDelegate(&resourceLoadDelegate))) + return true; + + COMPtr<IWebResourceLoadDelegatePrivate3> resourceLoadDelegatePrivate(Query, resourceLoadDelegate); + if (!resourceLoadDelegatePrivate) + return true; + + COMPtr<IWebURLResponse> urlResponse(WebURLResponse::createInstance(response)); + BOOL shouldCache; + if (SUCCEEDED(resourceLoadDelegatePrivate->shouldCacheResponse(webView, identifier, urlResponse.get(), data, length, getWebDataSource(loader), &shouldCache))) + return shouldCache; + + return true; +} + void WebFrameLoaderClient::dispatchDidHandleOnloadEvents() { WebView* webView = m_webFrame->webView(); @@ -457,27 +481,31 @@ void WebFrameLoaderClient::updateGlobalHistory() return; DocumentLoader* loader = core(m_webFrame)->loader()->documentLoader(); - - if (loader->urlForHistoryReflectsServerRedirect()) { - history->visitedURL(loader->urlForHistory(), loader->title(), loader->request().httpMethod(), loader->urlForHistoryReflectsFailure(), loader->url(), false); - return; - } - - if (loader->urlForHistoryReflectsClientRedirect()) { - history->visitedURL(loader->urlForHistory(), loader->title(), loader->request().httpMethod(), loader->urlForHistoryReflectsFailure(), KURL(), true); - return; - } - - history->visitedURL(loader->urlForHistory(), loader->title(), loader->request().httpMethod(), loader->urlForHistoryReflectsFailure(), KURL(), false); + history->visitedURL(loader->urlForHistory(), loader->title(), loader->originalRequestCopy().httpMethod(), loader->urlForHistoryReflectsFailure()); + updateGlobalHistoryRedirectLinks(); } -void WebFrameLoaderClient::updateGlobalHistoryForRedirectWithoutHistoryItem() +void WebFrameLoaderClient::updateGlobalHistoryRedirectLinks() { WebHistory* history = WebHistory::sharedHistory(); if (!history) return; + DocumentLoader* loader = core(m_webFrame)->loader()->documentLoader(); - history->visitedURLForRedirectWithoutHistoryItem(loader->url()); + + if (!loader->clientRedirectSourceForHistory().isNull()) { + if (COMPtr<IWebHistoryItem> iWebHistoryItem = history->itemForURLString(loader->clientRedirectSourceForHistory())) { + COMPtr<WebHistoryItem> webHistoryItem(Query, iWebHistoryItem); + webHistoryItem->historyItem()->addRedirectURL(loader->clientRedirectDestinationForHistory()); + } + } + + if (!loader->serverRedirectSourceForHistory().isNull()) { + if (COMPtr<IWebHistoryItem> iWebHistoryItem = history->itemForURLString(loader->serverRedirectSourceForHistory())) { + COMPtr<WebHistoryItem> webHistoryItem(Query, iWebHistoryItem); + webHistoryItem->historyItem()->addRedirectURL(loader->serverRedirectDestinationForHistory()); + } + } } bool WebFrameLoaderClient::shouldGoToHistoryItem(HistoryItem*) const @@ -548,7 +576,7 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage() view->frameRect(&rect); bool transparent = view->transparent(); Color backgroundColor = transparent ? Color::transparent : Color::white; - WebCore::FrameLoaderClient::transitionToCommittedForNewPage(core(m_webFrame), IntRect(rect).size(), backgroundColor, transparent, IntSize(), false); + core(m_webFrame)->createView(IntRect(rect).size(), backgroundColor, transparent, IntSize(), false); } bool WebFrameLoaderClient::canCachePage() const @@ -627,7 +655,7 @@ void WebFrameLoaderClient::loadURLIntoChild(const KURL& originalURL, const Strin core(childFrame)->loader()->loadURL(url, referrer, frameName, false, childLoadType, 0, 0); } -Widget* WebFrameLoaderClient::createPlugin(const IntSize& pluginSize, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) +Widget* WebFrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) { WebView* webView = m_webFrame->webView(); diff --git a/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h b/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h index 3877273..ac7a8c7 100644 --- a/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h +++ b/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h @@ -56,6 +56,7 @@ public: virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int lengthReceived); virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier); virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&); + virtual bool shouldCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&, const unsigned char* data, unsigned long long length); virtual void dispatchDidHandleOnloadEvents(); virtual void dispatchDidReceiveServerRedirectForProvisionalLoad(); @@ -86,7 +87,7 @@ public: virtual void finishedLoading(WebCore::DocumentLoader*); virtual void updateGlobalHistory(); - virtual void updateGlobalHistoryForRedirectWithoutHistoryItem(); + virtual void updateGlobalHistoryRedirectLinks(); virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const; virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); @@ -100,7 +101,7 @@ public: virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight); - virtual WebCore::Widget* createPlugin(const WebCore::IntSize&, WebCore::Element*, const WebCore::KURL&, const Vector<WebCore::String>&, const Vector<WebCore::String>&, const WebCore::String&, bool loadManually); + virtual WebCore::Widget* createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WebCore::String>&, const Vector<WebCore::String>&, const WebCore::String&, bool loadManually); virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget); virtual bool shouldUsePluginDocument(const WebCore::String& mimeType) const; diff --git a/WebKit/win/WebCoreSupport/WebInspectorClient.cpp b/WebKit/win/WebCoreSupport/WebInspectorClient.cpp index 56cf0df..5bb1a83 100644 --- a/WebKit/win/WebCoreSupport/WebInspectorClient.cpp +++ b/WebKit/win/WebCoreSupport/WebInspectorClient.cpp @@ -201,6 +201,13 @@ String WebInspectorClient::localizedStringsURL() return CFURLGetString(url.get()); } + +String WebInspectorClient::hiddenPanels() +{ + // FIXME: implement this + return String(); +} + void WebInspectorClient::showWindow() { showWindowWithoutNotifications(); diff --git a/WebKit/win/WebCoreSupport/WebInspectorClient.h b/WebKit/win/WebCoreSupport/WebInspectorClient.h index 86317f6..b497788 100644 --- a/WebKit/win/WebCoreSupport/WebInspectorClient.h +++ b/WebKit/win/WebCoreSupport/WebInspectorClient.h @@ -50,6 +50,8 @@ public: virtual WebCore::String localizedStringsURL(); + virtual WebCore::String hiddenPanels(); + virtual void showWindow(); virtual void closeWindow(); virtual bool windowVisible(); diff --git a/WebKit/win/WebFrame.cpp b/WebKit/win/WebFrame.cpp index 009111a..f1877fe 100644 --- a/WebKit/win/WebFrame.cpp +++ b/WebKit/win/WebFrame.cpp @@ -69,10 +69,12 @@ #include <WebCore/GDIObjectCounter.h> #include <WebCore/GraphicsContext.h> #include <WebCore/HistoryItem.h> +#include <WebCore/HTMLAppletElement.h> #include <WebCore/HTMLFormElement.h> #include <WebCore/HTMLFormControlElement.h> #include <WebCore/HTMLInputElement.h> #include <WebCore/HTMLNames.h> +#include <WebCore/HTMLPlugInElement.h> #include <WebCore/JSDOMWindow.h> #include <WebCore/KeyboardEvent.h> #include <WebCore/MIMETypeRegistry.h> @@ -1049,6 +1051,87 @@ HRESULT WebFrame::elementDoesAutoComplete(IDOMElement *element, BOOL *result) return S_OK; } +HRESULT WebFrame::pauseAnimation(BSTR animationName, IDOMNode* node, double secondsFromNow, BOOL* animationWasRunning) +{ + if (!node || !animationWasRunning) + return E_POINTER; + + *animationWasRunning = FALSE; + + Frame* frame = core(this); + if (!frame) + return E_FAIL; + + AnimationController* controller = frame->animation(); + if (!controller) + return E_FAIL; + + COMPtr<DOMNode> domNode(Query, node); + if (!domNode) + return E_FAIL; + + *animationWasRunning = controller->pauseAnimationAtTime(domNode->node()->renderer(), String(animationName, SysStringLen(animationName)), secondsFromNow); + return S_OK; +} + +HRESULT WebFrame::pauseTransition(BSTR propertyName, IDOMNode* node, double secondsFromNow, BOOL* transitionWasRunning) +{ + if (!node || !transitionWasRunning) + return E_POINTER; + + *transitionWasRunning = FALSE; + + Frame* frame = core(this); + if (!frame) + return E_FAIL; + + AnimationController* controller = frame->animation(); + if (!controller) + return E_FAIL; + + COMPtr<DOMNode> domNode(Query, node); + if (!domNode) + return E_FAIL; + + *transitionWasRunning = controller->pauseTransitionAtTime(domNode->node()->renderer(), String(propertyName, SysStringLen(propertyName)), secondsFromNow); + return S_OK; +} + +HRESULT WebFrame::numberOfActiveAnimations(UINT* number) +{ + if (!number) + return E_POINTER; + + *number = 0; + + Frame* frame = core(this); + if (!frame) + return E_FAIL; + + AnimationController* controller = frame->animation(); + if (!controller) + return E_FAIL; + + *number = controller->numberOfActiveAnimations(); + return S_OK; +} + +HRESULT WebFrame::isDisplayingStandaloneImage(BOOL* result) +{ + if (!result) + return E_POINTER; + + *result = FALSE; + + Frame* frame = core(this); + if (!frame) + return E_FAIL; + + Document* document = frame->document(); + *result = document && document->isImageDocument(); + return S_OK; +} + HRESULT WebFrame::controlsInForm(IDOMElement* form, IDOMElement** controls, int* cControls) { if (!form) @@ -1288,8 +1371,6 @@ String WebFrame::generatedMIMETypeForURLScheme(const String& /*URLScheme*/) cons void WebFrame::frameLoadCompleted() { - if (Frame* coreFrame = core(this)) - coreFrame->loader()->setPreviousHistoryItem(0); } void WebFrame::restoreViewState() @@ -1523,7 +1604,7 @@ void WebFrame::startDownload(const ResourceRequest&) notImplemented(); } -Widget* WebFrame::createJavaAppletWidget(const IntSize& pluginSize, Element* element, const KURL& /*baseURL*/, const Vector<String>& paramNames, const Vector<String>& paramValues) +Widget* WebFrame::createJavaAppletWidget(const IntSize& pluginSize, HTMLAppletElement* element, const KURL& /*baseURL*/, const Vector<String>& paramNames, const Vector<String>& paramValues) { PluginView* pluginView = PluginView::create(core(this), pluginSize, element, KURL(), paramNames, paramValues, "application/x-java-applet", false); @@ -1595,6 +1676,10 @@ void WebFrame::windowObjectCleared() } } +void WebFrame::documentElementAvailable() +{ +} + void WebFrame::didPerformFirstNavigation() const { COMPtr<IWebPreferences> preferences; @@ -1643,7 +1728,7 @@ HRESULT STDMETHODCALLTYPE WebFrame::setInPrintingMode( return S_OK; Frame* coreFrame = core(this); - if (!coreFrame) + if (!coreFrame || !coreFrame->document()) return E_FAIL; m_inPrintingMode = !!value; @@ -1652,7 +1737,7 @@ HRESULT STDMETHODCALLTYPE WebFrame::setInPrintingMode( // according to the paper size float minLayoutWidth = 0.0f; float maxLayoutWidth = 0.0f; - if (m_inPrintingMode && !coreFrame->isFrameSet()) { + if (m_inPrintingMode && !coreFrame->document()->isFrameSet()) { if (!printDC) { ASSERT_NOT_REACHED(); return E_POINTER; @@ -1868,10 +1953,10 @@ HRESULT STDMETHODCALLTYPE WebFrame::isFrameSet( *result = FALSE; Frame* coreFrame = core(this); - if (!coreFrame) + if (!coreFrame || !coreFrame->document()) return E_FAIL; - *result = coreFrame->isFrameSet() ? TRUE : FALSE; + *result = coreFrame->document()->isFrameSet() ? TRUE : FALSE; return S_OK; } diff --git a/WebKit/win/WebFrame.h b/WebKit/win/WebFrame.h index bf234d3..bca32d4 100644 --- a/WebKit/win/WebFrame.h +++ b/WebKit/win/WebFrame.h @@ -223,7 +223,13 @@ public: virtual HRESULT STDMETHODCALLTYPE elementDoesAutoComplete( /* [in] */ IDOMElement* element, /* [retval][out] */ BOOL* result); - + + virtual HRESULT STDMETHODCALLTYPE pauseAnimation(BSTR animationName, IDOMNode*, double secondsFromNow, BOOL* animationWasRunning); + virtual HRESULT STDMETHODCALLTYPE pauseTransition(BSTR propertyName, IDOMNode*, double secondsFromNow, BOOL* transitionWasRunning); + virtual HRESULT STDMETHODCALLTYPE numberOfActiveAnimations(UINT*); + + virtual HRESULT STDMETHODCALLTYPE isDisplayingStandaloneImage(BOOL*); + // IWebDocumentText virtual HRESULT STDMETHODCALLTYPE supportsTextEncoding( /* [retval][out] */ BOOL* result); @@ -280,12 +286,13 @@ public: virtual void dispatchDidFailLoad(const WebCore::ResourceError&); virtual void startDownload(const WebCore::ResourceRequest&); - virtual WebCore::Widget* createJavaAppletWidget(const WebCore::IntSize&, WebCore::Element*, const WebCore::KURL& baseURL, const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues); + virtual WebCore::Widget* createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues); virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WebCore::String& mimeType); virtual WebCore::String overrideMediaType() const; virtual void windowObjectCleared(); + virtual void documentElementAvailable(); virtual void didPerformFirstNavigation() const; virtual void registerForIconNotification(bool listen); diff --git a/WebKit/win/WebHistory.cpp b/WebKit/win/WebHistory.cpp index 5ee2e32..e647e01 100644 --- a/WebKit/win/WebHistory.cpp +++ b/WebKit/win/WebHistory.cpp @@ -41,6 +41,7 @@ #include <WebCore/PageGroup.h> #include <WebCore/HistoryItem.h> #pragma warning( pop ) +#include <wtf/StdLibExtras.h> using namespace WebCore; @@ -176,7 +177,7 @@ ULONG STDMETHODCALLTYPE WebHistory::Release(void) static inline COMPtr<WebHistory>& sharedHistoryStorage() { - static COMPtr<WebHistory> sharedHistory; + DEFINE_STATIC_LOCAL(COMPtr<WebHistory>, sharedHistory, ()); return sharedHistory; } @@ -680,18 +681,11 @@ HRESULT WebHistory::addItem(IWebHistoryItem* entry, bool discardDuplicate, bool* return hr; } -void WebHistory::visitedURL(const KURL& url, const String& title, const String& httpMethod, bool wasFailure, const KURL& serverRedirectURL, bool isClientRedirect) +void WebHistory::visitedURL(const KURL& url, const String& title, const String& httpMethod, bool wasFailure) { - if (isClientRedirect) { - ASSERT(serverRedirectURL.isEmpty()); - if (m_lastVisitedEntry) - m_lastVisitedEntry->historyItem()->addRedirectURL(url.string()); - } - RetainPtr<CFStringRef> urlString(AdoptCF, url.string().createCFString()); IWebHistoryItem* entry = (IWebHistoryItem*) CFDictionaryGetValue(m_entriesByURL.get(), urlString.get()); - if (entry) { COMPtr<IWebHistoryItemPrivate> entryPrivate(Query, entry); if (!entryPrivate) @@ -724,21 +718,16 @@ void WebHistory::visitedURL(const KURL& url, const String& title, const String& addItemToDateCaches(entry); - m_lastVisitedEntry.query(entry); - COMPtr<IWebHistoryItemPrivate> entryPrivate(Query, entry); if (!entryPrivate) return; entryPrivate->setLastVisitWasFailure(wasFailure); if (!httpMethod.isEmpty()) - entryPrivate->setLastVisitWasHTTPNonGet(!equalIgnoringCase(httpMethod, "GET")); + entryPrivate->setLastVisitWasHTTPNonGet(!equalIgnoringCase(httpMethod, "GET") && (url.protocolIs("http") || url.protocolIs("https"))); - if (!serverRedirectURL.isEmpty()) { - ASSERT(!isClientRedirect); - COMPtr<WebHistoryItem> item(Query, entry); - item->historyItem()->addRedirectURL(serverRedirectURL); - } + COMPtr<WebHistoryItem> item(Query, entry); + item->historyItem()->setRedirectURLs(std::auto_ptr<Vector<String> >()); CFDictionaryPropertyBag* userInfo = createUserInfoFromHistoryItem( getNotificationString(kWebHistoryItemsAddedNotification), entry); @@ -746,15 +735,9 @@ void WebHistory::visitedURL(const KURL& url, const String& title, const String& releaseUserInfo(userInfo); } -void WebHistory::visitedURLForRedirectWithoutHistoryItem(const KURL& url) -{ - if (m_lastVisitedEntry) - m_lastVisitedEntry->historyItem()->addRedirectURL(url.string()); -} - HRESULT WebHistory::itemForURLString( /* [in] */ CFStringRef urlString, - /* [retval][out] */ IWebHistoryItem** item) + /* [retval][out] */ IWebHistoryItem** item) const { if (!item) return E_FAIL; @@ -792,6 +775,17 @@ HRESULT WebHistory::removeItemForURLString(CFStringRef urlString) return hr; } +COMPtr<IWebHistoryItem> WebHistory::itemForURLString(const String& urlString) const +{ + RetainPtr<CFStringRef> urlCFString(AdoptCF, urlString.createCFString()); + if (!urlCFString) + return 0; + COMPtr<IWebHistoryItem> item; + if (FAILED(itemForURLString(urlCFString.get(), &item))) + return 0; + return item; +} + HRESULT WebHistory::addItemToDateCaches(IWebHistoryItem* entry) { HRESULT hr = S_OK; diff --git a/WebKit/win/WebHistory.h b/WebKit/win/WebHistory.h index 111f6ae..b1031b7 100644 --- a/WebKit/win/WebHistory.h +++ b/WebKit/win/WebHistory.h @@ -115,10 +115,11 @@ public: // WebHistory static WebHistory* sharedHistory(); - void visitedURL(const WebCore::KURL&, const WebCore::String& title, const WebCore::String& httpMethod, bool wasFailure, const WebCore::KURL& serverRedirectURL, bool isClientRedirect); - void visitedURLForRedirectWithoutHistoryItem(const WebCore::KURL&); + void visitedURL(const WebCore::KURL&, const WebCore::String& title, const WebCore::String& httpMethod, bool wasFailure); void addVisitedLinksToPageGroup(WebCore::PageGroup&); + COMPtr<IWebHistoryItem> itemForURLString(const WebCore::String&) const; + private: enum NotificationType { @@ -144,14 +145,13 @@ private: bool findIndex(int* index, CFAbsoluteTime forDay); static CFAbsoluteTime timeToDate(CFAbsoluteTime time); BSTR getNotificationString(NotificationType notifyType); - HRESULT itemForURLString(CFStringRef urlString, IWebHistoryItem** item); + HRESULT itemForURLString(CFStringRef urlString, IWebHistoryItem** item) const; ULONG m_refCount; RetainPtr<CFMutableDictionaryRef> m_entriesByURL; RetainPtr<CFMutableArrayRef> m_datesWithEntries; RetainPtr<CFMutableArrayRef> m_entriesByDate; COMPtr<WebPreferences> m_preferences; - COMPtr<WebHistoryItem> m_lastVisitedEntry; }; #endif diff --git a/WebKit/win/WebKit.vcproj/WebKit.def b/WebKit/win/WebKit.vcproj/WebKit.def index fa3f2bc..cc49cd0 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.def +++ b/WebKit/win/WebKit.vcproj/WebKit.def @@ -12,9 +12,14 @@ EXPORTS JSClassRelease JSClassRetain JSContextGetGlobalObject + JSContextGetGroup + JSContextGroupCreate + JSContextGroupRelease + JSContextGroupRetain JSEvaluateScript JSGarbageCollect JSGlobalContextCreate + JSGlobalContextCreateInGroup JSGlobalContextRelease JSGlobalContextRetain JSObjectCallAsConstructor @@ -32,6 +37,7 @@ EXPORTS JSObjectMakeArray JSObjectMakeConstructor JSObjectMakeDate + JSObjectMakeError JSObjectMakeFunction JSObjectMakeFunctionWithCallback JSObjectMakeRegExp @@ -121,6 +127,9 @@ EXPORTS ?lock@Mutex@WTF@@QAEXXZ ?lockAtomicallyInitializedStaticMutex@WTF@@YAXXZ ?signal@ThreadCondition@WTF@@QAEXXZ + ?timedWait@ThreadCondition@WTF@@QAE_NAAVMutex@2@N@Z + ?tlsKeyCount@WTF@@YAAAJXZ + ?tlsKeys@WTF@@YAPAKXZ ?tryLock@Mutex@WTF@@QAE_NXZ ?unlock@Mutex@WTF@@QAEXXZ ?unlockAtomicallyInitializedStaticMutex@WTF@@YAXXZ diff --git a/WebKit/win/WebKit.vcproj/WebKit.vcproj b/WebKit/win/WebKit.vcproj/WebKit.vcproj index 0740e8a..b578aee 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.vcproj +++ b/WebKit/win/WebKit.vcproj/WebKit.vcproj @@ -23,7 +23,7 @@ >
<Tool
Name="VCPreBuildEventTool"
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
/>
<Tool
Name="VCCustomBuildTool"
@@ -99,7 +99,7 @@ >
<Tool
Name="VCPreBuildEventTool"
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
/>
<Tool
Name="VCCustomBuildTool"
@@ -174,7 +174,7 @@ >
<Tool
Name="VCPreBuildEventTool"
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
/>
<Tool
Name="VCCustomBuildTool"
@@ -252,7 +252,7 @@ >
<Tool
Name="VCPreBuildEventTool"
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
/>
<Tool
Name="VCCustomBuildTool"
@@ -331,7 +331,7 @@ >
<Tool
Name="VCPreBuildEventTool"
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
/>
<Tool
Name="VCCustomBuildTool"
@@ -408,7 +408,7 @@ >
<Tool
Name="VCPreBuildEventTool"
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
/>
<Tool
Name="VCCustomBuildTool"
@@ -487,7 +487,7 @@ >
<Tool
Name="VCPreBuildEventTool"
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
"
/>
<Tool
Name="VCCustomBuildTool"
@@ -1448,7 +1448,6 @@ >
<FileConfiguration
Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
diff --git a/WebKit/win/WebKit.vcproj/WebKit_Cairo.def b/WebKit/win/WebKit.vcproj/WebKit_Cairo.def index 50b3675..bc1a3f2 100755 --- a/WebKit/win/WebKit.vcproj/WebKit_Cairo.def +++ b/WebKit/win/WebKit.vcproj/WebKit_Cairo.def @@ -12,9 +12,14 @@ EXPORTS JSClassRelease JSClassRetain JSContextGetGlobalObject + JSContextGetGroup + JSContextGroupCreate + JSContextGroupRelease + JSContextGroupRetain JSEvaluateScript JSGarbageCollect JSGlobalContextCreate + JSGlobalContextCreateInGroup JSGlobalContextRelease JSGlobalContextRetain JSObjectCallAsConstructor @@ -32,6 +37,7 @@ EXPORTS JSObjectMakeArray JSObjectMakeConstructor JSObjectMakeDate + JSObjectMakeError JSObjectMakeFunction JSObjectMakeFunctionWithCallback JSObjectMakeRegExp diff --git a/WebKit/win/WebKit.vcproj/WebKit_debug.def b/WebKit/win/WebKit.vcproj/WebKit_debug.def index 6ed6a90..9fecf25 100644 --- a/WebKit/win/WebKit.vcproj/WebKit_debug.def +++ b/WebKit/win/WebKit.vcproj/WebKit_debug.def @@ -12,9 +12,14 @@ EXPORTS JSClassRelease JSClassRetain JSContextGetGlobalObject + JSContextGetGroup + JSContextGroupCreate + JSContextGroupRelease + JSContextGroupRetain JSEvaluateScript JSGarbageCollect JSGlobalContextCreate + JSGlobalContextCreateInGroup JSGlobalContextRelease JSGlobalContextRetain JSObjectCallAsConstructor @@ -32,6 +37,7 @@ EXPORTS JSObjectMakeArray JSObjectMakeConstructor JSObjectMakeDate + JSObjectMakeError JSObjectMakeFunction JSObjectMakeFunctionWithCallback JSObjectMakeRegExp @@ -121,6 +127,9 @@ EXPORTS ?lock@Mutex@WTF@@QAEXXZ ?lockAtomicallyInitializedStaticMutex@WTF@@YAXXZ ?signal@ThreadCondition@WTF@@QAEXXZ + ?timedWait@ThreadCondition@WTF@@QAE_NAAVMutex@2@N@Z + ?tlsKeyCount@WTF@@YAAAJXZ + ?tlsKeys@WTF@@YAPAKXZ ?tryLock@Mutex@WTF@@QAE_NXZ ?unlock@Mutex@WTF@@QAEXXZ ?unlockAtomicallyInitializedStaticMutex@WTF@@YAXXZ diff --git a/WebKit/win/WebMutableURLRequest.cpp b/WebKit/win/WebMutableURLRequest.cpp index 63a060e..035fac3 100644 --- a/WebKit/win/WebMutableURLRequest.cpp +++ b/WebKit/win/WebMutableURLRequest.cpp @@ -33,6 +33,7 @@ #include <CFNetwork/CFURLRequestPriv.h> #pragma warning(push, 0) #include <WebCore/BString.h> +#include <WebCore/COMPtr.h> #include <WebCore/CString.h> #include <WebCore/FormData.h> #include <WebCore/NotImplemented.h> @@ -240,6 +241,22 @@ HRESULT STDMETHODCALLTYPE WebMutableURLRequest::isEmpty( return S_OK; } +HRESULT STDMETHODCALLTYPE WebMutableURLRequest::isEqual( + /* [in] */ IWebURLRequest* other, + /* [out, retval] */ BOOL* result) +{ + COMPtr<WebMutableURLRequest> requestImpl(Query, other); + + if (!requestImpl) { + *result = FALSE; + return S_OK; + } + + *result = m_request == requestImpl->resourceRequest(); + return S_OK; +} + + // IWebMutableURLRequest -------------------------------------------------------- HRESULT STDMETHODCALLTYPE WebMutableURLRequest::addValue( @@ -314,11 +331,13 @@ HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setURL( } HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setValue( - /* [in] */ BSTR /*value*/, - /* [in] */ BSTR /*field*/) + /* [in] */ BSTR value, + /* [in] */ BSTR field) { - ASSERT_NOT_REACHED(); - return E_NOTIMPL; + String valueString(value, SysStringLen(value)); + String fieldString(field, SysStringLen(field)); + m_request.setHTTPHeaderField(fieldString, valueString); + return S_OK; } HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setAllowsAnyHTTPSCertificate(void) diff --git a/WebKit/win/WebMutableURLRequest.h b/WebKit/win/WebMutableURLRequest.h index 1007a02..77dc1a0 100644 --- a/WebKit/win/WebMutableURLRequest.h +++ b/WebKit/win/WebMutableURLRequest.h @@ -113,6 +113,10 @@ public: virtual HRESULT STDMETHODCALLTYPE mutableCopy( /* [out, retval] */ IWebMutableURLRequest** result); + virtual HRESULT STDMETHODCALLTYPE isEqual( + /* [in] */ IWebURLRequest* other, + /* [out, retval] */ BOOL* result); + // IWebMutableURLRequest virtual HRESULT STDMETHODCALLTYPE addValue( /* [in] */ BSTR value, diff --git a/WebKit/win/WebPreferenceKeysPrivate.h b/WebKit/win/WebPreferenceKeysPrivate.h index 758254e..8426271 100644 --- a/WebKit/win/WebPreferenceKeysPrivate.h +++ b/WebKit/win/WebPreferenceKeysPrivate.h @@ -47,6 +47,8 @@ #define WebKitTextAreasAreResizablePreferenceKey "WebKitTextAreasAreResizable" #define WebKitJavaEnabledPreferenceKey "WebKitJavaEnabled" #define WebKitJavaScriptEnabledPreferenceKey "WebKitJavaScriptEnabled" +#define WebKitWebSecurityEnabledPreferenceKey "WebKitWebSecurityEnabled" +#define WebKitAllowUniversalAccessFromFileURLsPreferenceKey "WebKitAllowUniversalAccessFromFileURLs" #define WebKitJavaScriptCanOpenWindowsAutomaticallyPreferenceKey "WebKitJavaScriptCanOpenWindowsAutomatically" #define WebKitPluginsEnabledPreferenceKey "WebKitPluginsEnabled" #define WebKitDatabasesEnabledPreferenceKey "WebKitDatabasesEnabled" diff --git a/WebKit/win/WebPreferences.cpp b/WebKit/win/WebPreferences.cpp index 5fcd319..ac77376 100644 --- a/WebKit/win/WebPreferences.cpp +++ b/WebKit/win/WebPreferences.cpp @@ -203,6 +203,8 @@ void WebPreferences::initializeDefaultSettings() CFDictionaryAddValue(defaults, CFSTR(WebKitTextAreasAreResizablePreferenceKey), kCFBooleanFalse); CFDictionaryAddValue(defaults, CFSTR(WebKitJavaEnabledPreferenceKey), kCFBooleanTrue); CFDictionaryAddValue(defaults, CFSTR(WebKitJavaScriptEnabledPreferenceKey), kCFBooleanTrue); + CFDictionaryAddValue(defaults, CFSTR(WebKitWebSecurityEnabledPreferenceKey), kCFBooleanTrue); + CFDictionaryAddValue(defaults, CFSTR(WebKitAllowUniversalAccessFromFileURLsPreferenceKey), kCFBooleanTrue); CFDictionaryAddValue(defaults, CFSTR(WebKitJavaScriptCanOpenWindowsAutomaticallyPreferenceKey), kCFBooleanTrue); CFDictionaryAddValue(defaults, CFSTR(WebKitPluginsEnabledPreferenceKey), kCFBooleanTrue); CFDictionaryAddValue(defaults, CFSTR(WebKitDatabasesEnabledPreferenceKey), kCFBooleanTrue); @@ -751,6 +753,34 @@ HRESULT STDMETHODCALLTYPE WebPreferences::setJavaScriptEnabled( return S_OK; } +HRESULT STDMETHODCALLTYPE WebPreferences::isWebSecurityEnabled( + /* [retval][out] */ BOOL* enabled) +{ + *enabled = boolValueForKey(CFSTR(WebKitWebSecurityEnabledPreferenceKey)); + return S_OK; +} + +HRESULT STDMETHODCALLTYPE WebPreferences::setWebSecurityEnabled( + /* [in] */ BOOL enabled) +{ + setBoolValue(CFSTR(WebKitWebSecurityEnabledPreferenceKey), enabled); + return S_OK; +} + +HRESULT STDMETHODCALLTYPE WebPreferences::allowUniversalAccessFromFileURLs( + /* [retval][out] */ BOOL* allowAccess) +{ + *allowAccess = boolValueForKey(CFSTR(WebKitAllowUniversalAccessFromFileURLsPreferenceKey)); + return S_OK; +} + +HRESULT STDMETHODCALLTYPE WebPreferences::setAllowUniversalAccessFromFileURLs( + /* [in] */ BOOL allowAccess) +{ + setBoolValue(CFSTR(WebKitAllowUniversalAccessFromFileURLsPreferenceKey), allowAccess); + return S_OK; +} + HRESULT STDMETHODCALLTYPE WebPreferences::javaScriptCanOpenWindowsAutomatically( /* [retval][out] */ BOOL* enabled) { diff --git a/WebKit/win/WebPreferences.h b/WebKit/win/WebPreferences.h index 6ab3dcb..b6bcf6d 100644 --- a/WebKit/win/WebPreferences.h +++ b/WebKit/win/WebPreferences.h @@ -344,6 +344,18 @@ public: virtual HRESULT STDMETHODCALLTYPE setFontSmoothingContrast( /* [in] */ float contrast); + virtual HRESULT STDMETHODCALLTYPE isWebSecurityEnabled( + /* [retval][out] */ BOOL* enabled); + + virtual HRESULT STDMETHODCALLTYPE setWebSecurityEnabled( + /* [in] */ BOOL enabled); + + virtual HRESULT STDMETHODCALLTYPE allowUniversalAccessFromFileURLs( + /* [retval][out] */ BOOL* allowAccess); + + virtual HRESULT STDMETHODCALLTYPE setAllowUniversalAccessFromFileURLs( + /* [in] */ BOOL allowAccess); + // WebPreferences // This method accesses a different preference key than developerExtrasEnabled. diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp index eb176dc..20c43fd 100644 --- a/WebKit/win/WebView.cpp +++ b/WebKit/win/WebView.cpp @@ -50,7 +50,6 @@ #include "WebNotificationCenter.h" #include "WebPreferences.h" #pragma warning( push, 0 ) -#include <CoreGraphics/CGContext.h> #include <WebCore/ApplicationCacheStorage.h> #include <WebCore/AXObjectCache.h> #include <WebCore/BString.h> @@ -105,10 +104,21 @@ #include <JavaScriptCore/InitializeThreading.h> #include <JavaScriptCore/JSLock.h> #include <JavaScriptCore/JSValue.h> + +#if PLATFORM(CG) +#include <CoreGraphics/CGContext.h> +#endif + +#if PLATFORM(CF) +#include <CoreFoundation/CoreFoundation.h> +#endif + +#if USE(CFNETWORK) #include <CFNetwork/CFURLCachePriv.h> #include <CFNetwork/CFURLProtocolPriv.h> -#include <CoreFoundation/CoreFoundation.h> #include <WebKitSystemInterface/WebKitSystemInterface.h> +#endif + #include <wtf/HashSet.h> #include <dimm.h> #include <oleacc.h> @@ -127,20 +137,6 @@ static HashSet<WebView*> pendingDeleteBackingStoreSet; static String osVersion(); static String webKitVersion(); -typedef CFURLCacheRef (*CopySharedURLCacheFunction)(); - -static HMODULE findCFNetworkModule() -{ - if (HMODULE module = GetModuleHandleA("CFNetwork")) - return module; - return GetModuleHandleA("CFNetwork_debug"); -} - -static CopySharedURLCacheFunction findCopySharedURLCacheFunction() -{ - return reinterpret_cast<CopySharedURLCacheFunction>(GetProcAddress(findCFNetworkModule(), "CFURLCacheCopySharedURLCache")); -} - WebView* kit(Page* page) { return page ? static_cast<WebChromeClient*>(page->chrome()->client())->webView() : 0; @@ -328,7 +324,7 @@ WebView::~WebView() // <rdar://4958382> m_viewWindow will be destroyed when m_hostWindow is destroyed, but if // setHostWindow was never called we will leak our HWND. If we still have a valid HWND at // this point, we should just destroy it ourselves. - if (::IsWindow(m_viewWindow)) + if (!isBeingDestroyed() && ::IsWindow(m_viewWindow)) ::DestroyWindow(m_viewWindow); // the tooltip window needs to be explicitly destroyed since it isn't a WS_CHILD @@ -380,18 +376,11 @@ void WebView::removeFromAllWebViewsSet() void WebView::setCacheModel(WebCacheModel cacheModel) { +#if USE(CFNETWORK) if (s_didSetCacheModel && cacheModel == s_cacheModel) return; - // Once we require a newer version of CFNetwork with the CFURLCacheCopySharedURLCache function, - // we can call CFURLCacheCopySharedURLCache directly and eliminate copySharedURLCache. - static CopySharedURLCacheFunction copySharedURLCache = findCopySharedURLCacheFunction(); - RetainPtr<CFURLCacheRef> cfurlCache; - if (copySharedURLCache) - cfurlCache.adoptCF(copySharedURLCache()); - else - cfurlCache = CFURLCacheSharedURLCache(); - + RetainPtr<CFURLCacheRef> cfurlCache(AdoptCF, CFURLCacheCopySharedURLCache()); RetainPtr<CFStringRef> cfurlCacheDirectory(AdoptCF, wkCopyFoundationCacheDirectory()); if (!cfurlCacheDirectory) cfurlCacheDirectory.adoptCF(WebCore::localUserSpecificStorageDirectory().createCFString()); @@ -563,6 +552,7 @@ void WebView::setCacheModel(WebCacheModel cacheModel) s_didSetCacheModel = true; s_cacheModel = cacheModel; return; +#endif } WebCacheModel WebView::cacheModel() @@ -594,13 +584,19 @@ WebCacheModel WebView::maxCacheModelInAnyInstance() return cacheModel; } -void WebView::close() +HRESULT STDMETHODCALLTYPE WebView::close() { if (m_didClose) - return; + return S_OK; m_didClose = true; + if (m_uiDelegatePrivate) { + COMPtr<IWebUIDelegatePrivate5> uiDelegatePrivate5(Query, m_uiDelegatePrivate); + if (uiDelegatePrivate5) + uiDelegatePrivate5->webViewClosing(this); + } + removeFromAllWebViewsSet(); Frame* frame = m_page->mainFrame(); @@ -648,6 +644,7 @@ void WebView::close() } deleteBackingStore(); + return S_OK; } void WebView::repaint(const WebCore::IntRect& windowRect, bool contentChanged, bool immediate, bool repaintContentOnly) @@ -1333,7 +1330,7 @@ bool WebView::handleMouseEvent(UINT message, WPARAM wParam, LPARAM lParam) return handled; } -bool WebView::mouseWheel(WPARAM wParam, LPARAM lParam, bool isHorizontal) +bool WebView::mouseWheel(WPARAM wParam, LPARAM lParam, bool isMouseHWheel) { // Ctrl+Mouse wheel doesn't ever go into WebCore. It is used to // zoom instead (Mac zooms the whole Desktop, but Windows browsers trigger their @@ -1347,7 +1344,7 @@ bool WebView::mouseWheel(WPARAM wParam, LPARAM lParam, bool isHorizontal) return true; } - PlatformWheelEvent wheelEvent(m_viewWindow, wParam, lParam, isHorizontal); + PlatformWheelEvent wheelEvent(m_viewWindow, wParam, lParam, isMouseHWheel); Frame* coreFrame = core(m_mainFrame); if (!coreFrame) return false; @@ -1682,11 +1679,13 @@ static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L { LRESULT lResult = 0; LONG_PTR longPtr = GetWindowLongPtr(hWnd, 0); - COMPtr<WebView> webView = reinterpret_cast<WebView*>(longPtr); // hold a ref, since the WebView could go away in an event handler. + WebView* webView = reinterpret_cast<WebView*>(longPtr); WebFrame* mainFrameImpl = webView ? webView->topLevelFrame() : 0; if (!mainFrameImpl || webView->isBeingDestroyed()) return DefWindowProc(hWnd, message, wParam, lParam); + // hold a ref, since the WebView could go away in an event handler. + COMPtr<WebView> protector(webView); ASSERT(webView); // Windows Media Player has a modal message loop that will deliver messages @@ -1734,7 +1733,7 @@ static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L case WM_VISTA_MOUSEHWHEEL: if (Frame* coreFrame = core(mainFrameImpl)) if (coreFrame->view()->didFirstLayout()) - handled = webView->mouseWheel(wParam, lParam, (wParam & MK_SHIFT) || message == WM_VISTA_MOUSEHWHEEL); + handled = webView->mouseWheel(wParam, lParam, message == WM_VISTA_MOUSEHWHEEL); break; case WM_SYSKEYDOWN: handled = webView->keyDown(wParam, lParam, true); @@ -1778,7 +1777,7 @@ static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L COMPtr<IWebUIDelegatePrivate> uiDelegatePrivate; if (SUCCEEDED(webView->uiDelegate(&uiDelegate)) && uiDelegate && SUCCEEDED(uiDelegate->QueryInterface(IID_IWebUIDelegatePrivate, (void**) &uiDelegatePrivate)) && uiDelegatePrivate) - uiDelegatePrivate->webViewReceivedFocus(webView.get()); + uiDelegatePrivate->webViewReceivedFocus(webView); FocusController* focusController = webView->page()->focusController(); if (Frame* frame = focusController->focusedFrame()) { @@ -1796,7 +1795,7 @@ static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L HWND newFocusWnd = reinterpret_cast<HWND>(wParam); if (SUCCEEDED(webView->uiDelegate(&uiDelegate)) && uiDelegate && SUCCEEDED(uiDelegate->QueryInterface(IID_IWebUIDelegatePrivate, (void**) &uiDelegatePrivate)) && uiDelegatePrivate) - uiDelegatePrivate->webViewLostFocus(webView.get(), (OLE_HANDLE)(ULONG64)newFocusWnd); + uiDelegatePrivate->webViewLostFocus(webView, (OLE_HANDLE)(ULONG64)newFocusWnd); FocusController* focusController = webView->page()->focusController(); Frame* frame = focusController->focusedOrMainFrame(); @@ -1872,7 +1871,7 @@ static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L } if (SUCCEEDED(webView->uiDelegate(&uiDelegate)) && uiDelegate && SUCCEEDED(uiDelegate->QueryInterface(IID_IWebUIDelegatePrivate, (void**) &uiDelegatePrivate)) && uiDelegatePrivate && - SUCCEEDED(uiDelegatePrivate->webViewGetDlgCode(webView.get(), keyCode, &dlgCode))) + SUCCEEDED(uiDelegatePrivate->webViewGetDlgCode(webView, keyCode, &dlgCode))) return dlgCode; handled = false; break; @@ -3129,7 +3128,7 @@ HRESULT STDMETHODCALLTYPE WebView::centerSelectionInVisibleArea( if (!coreFrame) return E_FAIL; - coreFrame->revealSelection(RenderLayer::gAlignCenterAlways); + coreFrame->revealSelection(ScrollAlignment::alignCenterAlways); return S_OK; } @@ -4204,6 +4203,16 @@ HRESULT WebView::notifyPreferencesChanged(IWebNotification* notification) return hr; settings->setLocalStorageEnabled(enabled); + hr = prefsPrivate->isWebSecurityEnabled(&enabled); + if (FAILED(hr)) + return hr; + settings->setWebSecurityEnabled(!!enabled); + + hr = prefsPrivate->allowUniversalAccessFromFileURLs(&enabled); + if (FAILED(hr)) + return hr; + settings->setAllowUniversalAccessFromFileURLs(!!enabled); + #if USE(SAFARI_THEME) hr = prefsPrivate->shouldPaintNativeControls(&enabled); if (FAILED(hr)) @@ -4231,9 +4240,11 @@ HRESULT updateSharedSettingsFromPreferencesIfNeeded(IWebPreferences* preferences if (FAILED(hr)) return hr; +#if USE(CFNETWORK) // Set cookie storage accept policy if (CFHTTPCookieStorageRef cookieStorage = currentCookieStorage()) CFHTTPCookieStorageSetCookieAcceptPolicy(cookieStorage, acceptPolicy); +#endif return S_OK; } @@ -4680,7 +4691,7 @@ void WebView::releaseIMMContext(HIMC hIMC) void WebView::prepareCandidateWindow(Frame* targetFrame, HIMC hInputContext) { IntRect caret; - if (RefPtr<Range> range = targetFrame->selection()->selection().toRange()) { + if (RefPtr<Range> range = targetFrame->selection()->selection().toNormalizedRange()) { ExceptionCode ec = 0; RefPtr<Range> tempRange = range->cloneRange(ec); caret = targetFrame->firstRectForRange(tempRange.get()); @@ -4843,7 +4854,7 @@ bool WebView::onIMERequestCharPosition(Frame* targetFrame, IMECHARPOSITION* char { IntRect caret; ASSERT(charPos->dwCharPos == 0 || targetFrame->editor()->hasComposition()); - if (RefPtr<Range> range = targetFrame->editor()->hasComposition() ? targetFrame->editor()->compositionRange() : targetFrame->selection()->selection().toRange()) { + if (RefPtr<Range> range = targetFrame->editor()->hasComposition() ? targetFrame->editor()->compositionRange() : targetFrame->selection()->selection().toNormalizedRange()) { ExceptionCode ec = 0; RefPtr<Range> tempRange = range->cloneRange(ec); tempRange->setStart(tempRange->startContainer(ec), tempRange->startOffset(ec) + charPos->dwCharPos, ec); @@ -4861,7 +4872,7 @@ bool WebView::onIMERequestCharPosition(Frame* targetFrame, IMECHARPOSITION* char bool WebView::onIMERequestReconvertString(Frame* targetFrame, RECONVERTSTRING* reconvertString, LRESULT* result) { - RefPtr<Range> selectedRange = targetFrame->selection()->toRange(); + RefPtr<Range> selectedRange = targetFrame->selection()->toNormalizedRange(); String text = selectedRange->text(); if (!reconvertString) { *result = sizeof(RECONVERTSTRING) + text.length() * sizeof(UChar); @@ -5160,6 +5171,12 @@ HRESULT WebView::setMemoryCacheDelegateCallsEnabled(BOOL enabled) return S_OK; } +HRESULT WebView::setJavaScriptURLsAreAllowed(BOOL areAllowed) +{ + m_page->setJavaScriptURLsAreAllowed(areAllowed); + return S_OK; +} + class EnumTextMatches : public IEnumTextMatches { long m_ref; diff --git a/WebKit/win/WebView.h b/WebKit/win/WebView.h index 281defd..23905b7 100644 --- a/WebKit/win/WebView.h +++ b/WebKit/win/WebView.h @@ -296,6 +296,8 @@ public: virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsLocal( /* [in] */ BSTR scheme); + virtual HRESULT STDMETHODCALLTYPE close(); + // IWebIBActions virtual HRESULT STDMETHODCALLTYPE takeStringURLFrom( @@ -724,6 +726,9 @@ public: virtual HRESULT STDMETHODCALLTYPE setMemoryCacheDelegateCallsEnabled( /* [in] */ BOOL enabled); + virtual HRESULT STDMETHODCALLTYPE setJavaScriptURLsAreAllowed( + /* [in] */ BOOL areAllowed); + // WebView bool shouldUseEmbeddedView(const WebCore::String& mimeType) const; @@ -736,7 +741,7 @@ public: bool onInitMenuPopup(WPARAM, LPARAM); bool onUninitMenuPopup(WPARAM, LPARAM); void performContextMenuAction(WPARAM, LPARAM, bool byPosition); - bool mouseWheel(WPARAM, LPARAM, bool isHorizontal); + bool mouseWheel(WPARAM, LPARAM, bool isMouseHWheel); bool execCommand(WPARAM wParam, LPARAM lParam); bool keyDown(WPARAM, LPARAM, bool systemKeyDown = false); bool keyUp(WPARAM, LPARAM, bool systemKeyDown = false); @@ -753,7 +758,6 @@ public: void frameRect(RECT* rect); void closeWindow(); void closeWindowSoon(); - void close(); bool didClose() const { return m_didClose; } bool transparent() const { return m_transparent; } |