2009-10-08 Adam Roben Make IWebInspectorPrivate be accessed in a more standard way IWebViewPrivate::inspectorPrivate has been removed. Callers should instead use IWebViewPrivate::inspector and then use QueryInterface to get the IWebInspectorPrivate interface. This matches how our other COM classes work. Fixes Make IWebInspectorPrivate be accessed in a more standard way Reviewed by John Sullivan and Tim Hatcher. * Interfaces/IWebViewPrivate.idl: Removed inspectorPrivate. * WebInspector.cpp: (WebInspector::QueryInterface): Support querying to IWebInspectorPrivate. * WebView.cpp: * WebView.h: Removed inspectorPrivate. 2009-10-08 Adam Roben Move the new IWebViewPrivate::inspectorPrivate function after all functions that existed when Safari 4.0.3 was released Fixes REGRESSION (r49091): run-safari crashes in Safari.dll Reviewed by John Sullivan. * Interfaces/IWebViewPrivate.idl: Moved inspectorPrivate to the end of the interface, so it won't modify the vtable that Safari 4.0.3 sees. 2009-10-07 Adam Roben Expose origin whitelisting in the WebKit API on Windows Fixes . Reviewed by Eric Seidel. * Interfaces/IWebViewPrivate.idl: Added whiteListAccessFromOrigin and resetOriginAccessWhiteLists, to match the Mac SPI. * WebView.cpp: (WebView::whiteListAccessFromOrigin): (WebView::resetOriginAccessWhiteLists): * WebView.h: Added. These just call through to SecurityOrigin. 2009-10-07 Adam Barth Reviewed by Darin Adler. Factor PolicyChecker out of FrameLoader https://bugs.webkit.org/show_bug.cgi?id=30155 Move the policy callback to the policy object. * WebFrame.cpp: (WebFrame::dispatchWillSubmitForm): (WebFrame::receivedPolicyDecision): (WebFrame::dispatchDecidePolicyForMIMEType): (WebFrame::dispatchDecidePolicyForNewWindowAction): (WebFrame::dispatchDecidePolicyForNavigationAction): 2009-10-07 Daniel Bates Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=30102 And Fixes an issue (in the Windows build) where the cursor does not change to the not-allowed cursor when the drag-and-drop operation is not allowed. The allowed effects in WebDragClient::startDrag are hard-coded to be DROPEFFECT_COPY | DROPEFFECT_LINK | DROPEFFECT_MOVE. Instead, the list of allowed drop effects should be determined by the allowed operations of the drag source. We cannot test this using DRT because DRT looks at the programmatic drop cursor and until bug #24731 is fixed this value is hard-coded to DragOperationCopy. That is, there is a discrepancy in the Windows build between the Windows API-based drop effect and the WebKit drop effect. Because DRT cannot read the screen buffer to determine the cursor, a manual test is needed. * WebCoreSupport/WebDragClient.cpp: (draggingSourceOperationMaskToDragCursors): Added method. (WebDragClient::startDrag): 2009-10-07 Steve Falkenburg Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=30176 Extra information in UA causes problems with gmail * WebKit.vcproj/WebKit.rc: Restore PRODUCTVERSION to build number only. Remove extra space. 2009-10-06 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: default to an attached inspector window on Windows (as on Mac). https://bugs.webkit.org/show_bug.cgi?id=30134 * WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::showWindowWithoutNotifications): 2009-10-06 Adam Barth Reviewed by Eric Seidel. Move FrameLoader::canLoad to SecurityOrigin https://bugs.webkit.org/show_bug.cgi?id=30111 * WebFrame.cpp: (WebFrame::allowsFollowingLink): 2009-10-06 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: close inspector client view on InspectorController::close API call. In order to run batch web inspector layout tests (and not affect subsequent tests) we should close inspector client's view upon InspectorController::close API call. https://bugs.webkit.org/show_bug.cgi?id=30009 * WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::createPage): 2009-10-06 David Levin Reviewed by NOBODY (windows build fix). Speculative build fix for windows (due to r49160). * WebDownloadCFNet.cpp: (WebDownload::initToResumeWithBundle): * WebIconDatabase.cpp: (WebIconDatabase::dispatchDidAddIconForPageURL): 2009-10-05 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: add testing harness for Web Inspector. https://bugs.webkit.org/show_bug.cgi?id=30010 * Interfaces/IWebInspectorPrivate.idl: Added. * Interfaces/IWebViewPrivate.idl: * Interfaces/WebKit.idl: * WebInspector.cpp: (WebInspector::evaluateInFrontend): * WebInspector.h: * WebView.cpp: (WebView::inspectorPrivate): * WebView.h: 2009-10-02 Dave Hyatt Reviewed by Adam Roben. Add support for blacklist patterns to user stylesheets and scripts in addition to whitelist patterns. * Interfaces/IWebViewPrivate.idl: * WebView.cpp: (toStringVector): (WebView::addUserScriptToGroup): (WebView::addUserStyleSheetToGroup): * WebView.h: 2009-10-02 Steve Falkenburg Reviewed by Mark Rowe. Safari version number shouldn't be exposed in WebKit code For a WebKit version of 532.3.4: Product version is: 5.32.3.4 (was 4.0.3.0) File version is: 5.32.3.4 (was 4.532.3.4) * WebKit.vcproj/WebKit.rc: 2009-09-30 Sam Weinig Reviewed by Dan Bernstein. Fix for Need WebKit API or SPI on Mac and Windows to test whether it's safe to load a page in a new tab/window * Interfaces/IWebFramePrivate.idl: * WebFrame.cpp: (WebFrame::allowsFollowingLink): * WebFrame.h: 2009-09-30 Dave Hyatt Reviewed by Adam Roben. Add the ability to remove user stylesheets and scripts by URL. * Interfaces/IWebViewPrivate.idl: * WebView.cpp: (WebView::removeUserContentWithURLFromGroup): * WebView.h: 2009-09-29 Kenneth Russell Reviewed by Dimitri Glazkov. Add support for run-time flag for 3D canvas https://bugs.webkit.org/show_bug.cgi?id=29826 * WebView.cpp: (WebView::notifyPreferencesChanged): Enable experimental WebGL flag when 3D_CANVAS is enabled in the build. 2009-09-28 Alexey Proskuryakov Reviewed by Darin Adler and Sam Weinig. Onclick not fired for an element copied with cloneContents() or cloneNode() https://bugs.webkit.org/show_bug.cgi?id=25130 * DOMCreateInstance.cpp: GEN_DOMEventListener is a pure interface now. * WebKit.vcproj/WebKit.vcproj: Removed GEN_DOMEventListener.cpp. 2009-09-28 Fumitoshi Ukai Reviewed by Eric Seidel. Add experimentalWebSocketsEnabled in WebPreferences. https://bugs.webkit.org/show_bug.cgi?id=28941 * Interfaces/IWebPreferencesPrivate.idl: * WebPreferenceKeysPrivate.h: * WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): (WebPreferences::setExperimentalWebSocketsEnabled): (WebPreferences::experimentalWebSocketsEnabled): * WebPreferences.h: * WebView.cpp: (WebView::notifyPreferencesChanged): (core): 2009-09-25 Darin Adler Reviewed by Steve Falkenburg. Speed up access to history items by caching date computation. * History/WebHistory.mm: (getDayBoundaries): Refactored from timeIntervalForBeginningOfDay. Returns the beginning of the day that the passed time is within and the beginning of the next day. (beginningOfDay): Added. Uses getDayBoundaries so it can be fast for multiple dates within the same day, which is the common case. (dateKey): Added. Calls beginningOfDay and converts to an integer. (WebHistory::findKey): Changed to call dateKey instead of timeIntervalForBeginningOfDay. 2009-09-25 Adam Roben Add SPI to invalidate a WebView's backing store This is useful in conjunction with IWebUIDelegatePrivate2::drawBackground. This provides a way for the UI delegate to force WebView to get its background redrawn. Fixes Need SPI to invalidate a WebView's backing store Reviewed by Anders Carlsson. * Interfaces/IWebViewPrivate.idl: Added invalidateBackingStore. * WebView.cpp: (WebView::invalidateBackingStore): If rect is 0, invalidate our whole client rect. Otherwise invalidate the intersection of rect with our client rect. * WebView.h: 2009-09-24 Jon Honeycutt Add a mechanism for automatically halting plug-ins. Reviewed by Oliver Hunt. * Interfaces/IWebPluginHalterDelegate.idl: Added. Defines an interface for a delegate that determines whether plug-ins should be halted. * Interfaces/IWebPreferencesPrivate.idl: Declare functions to get and set the enabled state of the plug-in halter and the plug-in allowed run time. * Interfaces/IWebViewPrivate.idl: Declare functions to get and set the IWebPluginHalterDelegate. * Interfaces/WebKit.idl: * WebCoreSupport/WebPluginHalterClient.cpp: Added. (WebPluginHalterClient::WebPluginHalterClient): (WebPluginHalterClient::shouldHaltPlugin): Get the IWebPluginHalterDelegate for the WebView. Create a WebKit DOMNode for the WebCore Node. Call the delegate's shouldHaltPlugin(). If the call fails, return false. Otherwise, return the result of the call. * WebCoreSupport/WebPluginHalterClient.h: Added. * WebKit.vcproj/Interfaces.vcproj: Add IWebPluginHalterDelegate.idl. * WebKit.vcproj/WebKit.vcproj: Add WebPluginHalterClient.{h,cpp}. * WebPreferenceKeysPrivate.h: Define WebKitPluginHalterEnabledPreferenceKey and WebKitPluginAllowedRunTimePreferenceKey. * WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): Leave plug-in halting disabled by default. Set the default value for the plug-in allowed run time to the max value of an unsigned int. (WebPreferences::setPluginHalterEnabled): (WebPreferences::pluginHalterEnabled): (WebPreferences::setPluginAllowedRunTime): (WebPreferences::pluginAllowedRunTime): * WebPreferences.h: * WebView.cpp: (WebView::close): Clear the IWebPluginHalterDelegate. (WebView::initWithFrame): Pass a WebPluginHalterClient when creating the Page. (WebView::notifyPreferencesChanged): Set the new settings when the preferences changed notification is received. (WebView::setPluginHalterDelegate): (WebView::pluginHalterDelegate): * WebView.h: Declare overrides of setPluginHalterDelegate() and pluginHalterDelegate(). Added a member to track the IWebPluginHalterDelegate. 2009-09-14 John Gregg Reviewed by Eric Seidel. Enable switch for notifications (experimental) in Page Settings https://bugs.webkit.org/show_bug.cgi?id=28930 Adds support for the experimentalNotificationsEnabled flag in Settings through WebPreferencesPrivate interface. Also cleans up some issues accessing the notification delegate through DumpRenderTree. * Interfaces/IWebPreferencesPrivate.idl: * WebCoreSupport/WebDesktopNotificationsDelegate.cpp: (WebDesktopNotificationsDelegate::hasNotificationDelegate): (WebDesktopNotificationsDelegate::notificationDelegate): * WebPreferenceKeysPrivate.h: * WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): (WebPreferences::setExperimentalNotificationsEnabled): (WebPreferences::experimentalNotificationsEnabled): * WebPreferences.h: * WebView.cpp: (WebView::notifyPreferencesChanged): 2009-09-23 Anders Carlsson Reviewed by Adam Roben. REGRESSION(48580-48636): Crash clicking embedded QT preview button on apple.com/trailers Check for a null IWebPolicyDelegatePrivate. * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::shouldLoadMediaElementURL): 2009-09-22 Sam Weinig Rubber-stamped by Adam Roben. Remove accidentally left in declaration of reloadFromOrigin in IWebFramePrivate.idl * Interfaces/IWebFramePrivate.idl: 2009-09-22 Sam Weinig Reviewed by Steve Falkenburg. Fix for Windows WebKit needs to implement reloadFromOrigin() * Interfaces/IWebFrame.idl: * Interfaces/IWebFramePrivate.idl: * Interfaces/IWebView.idl: * WebFrame.cpp: (WebFrame::reloadFromOrigin): * WebFrame.h: * WebView.cpp: (WebView::reloadFromOrigin): * WebView.h: 2009-09-22 Adam Roben Manage refcounts correctly in DefaultDownloadDelegate::willSendRequest Fixes Crash in WebDownload::willSendRequest when using DefaultDownloadDelegate Reviewed by Brady Eidson. * DefaultDownloadDelegate.cpp: (DefaultDownloadDelegate::willSendRequest): Call AddRef() on the object we're returning via the finalRequest out-parameter. 2009-09-21 Anders Carlsson Reviewed by Adam Roben. HTMLMediaElement should ask WebPolicyLoadDelegate before loading resource Implement WebFrameLoaderClient::shouldLoadMediaElementURL and have it call the new private policy delegate method. * Interfaces/IWebPolicyDelegatePrivate.idl: Added. * Interfaces/WebKit.idl: * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::shouldLoadMediaElementURL): * WebCoreSupport/WebFrameLoaderClient.h: * WebKit.vcproj/Interfaces.vcproj: 2009-09-17 Kenneth Rohde Christiansen Reviewed by Simon Hausmann. Make PlatformWindow return something else than PlatformWidget https://bugs.webkit.org/show_bug.cgi?id=29085 Reflect the rename of platformWindow and it's return type. * AccessibleBase.cpp: (AccessibleBase::get_accParent): * WebCoreSupport/WebChromeClient.cpp: (WebChromeClient::platformPageClient): * WebCoreSupport/WebChromeClient.h: 2009-09-17 Brian Weinstein Reviewed by Adam Roben. Remove assertions that were being hit by calls to m_verticalScrollbar->invalidate(). These assertions were valid, but they were causing tests to fail, so replacing with a FIXME until we can find out the real cause/solution that is being tracked by http://webkit.org/b/29350. * WebView.cpp: (WebView::addToDirtyRegion): (WebView::paintIntoBackingStore): 2009-09-17 Ada Chan Post WebViewDidChangeSelectionNotification when the text selection changes. Fixes Reviewed by Adam Roben. * Interfaces/IWebView.idl: * WebCoreSupport/WebEditorClient.cpp: (WebEditorClient::respondToChangedSelection): 2009-09-17 Adam Roben Fix a crash when a WebView's HWND is destroyed before IWebView::close is called WebView's HWND was being sent a WM_TIMER message after the WebView was destroyed. This normally isn't possible (we call DestroyWindow inside WebView's destructor to ensure the HWND doesn't outlive the WebView), but r48060 changed WebView to call SetParent(m_viewWindow, HWND_MESSAGE) while handling WM_DESTROY, and apparently this puts the HWND into some weird half-destroyed state where it can still receive WM_TIMER messages. Fixes REGRESSION (r48060): unrepro but frequent crash in WebViewWndProc Reviewed by Steve Falkenburg. * WebView.cpp: (WebViewWndProc): When handling WM_DESTROY, call setIsBeingDestroyed() before calling close(). This allows setHostWindow to detect that we're handling WM_DESTROY. No other code in close() cared whether isBeingDestroyed() was true or not. (WebView::setHostWindow): If our host window is being set to 0 and we're being destroyed, don't become a message-only window. Doing this while handling WM_DESTROY seems to lead to crashes. 2009-09-16 Adam Roben Add a UI delegate callback to let the delegate draw a WebView's background Fixes . Reviewed by Dave Hyatt. * Interfaces/IWebUIDelegatePrivate.idl: Added IWebUIDelegatePrivate2::drawBackground. * WebView.cpp: (WebView::paintIntoBackingStore): After clearing or filling with white, let the delegate draw whatever background it wants. Also added an assertion that the dirty rect is within our bounds. 2009-09-16 Adam Roben Prevent WebView from painting over sibling windows Fixes WebView can paint over sibling windows Reviewed by Darin Adler. * WebView.cpp: (WebView::initWithFrame): Create the WebView's HWND with the WS_CLIPSIBLINGS style. 2009-09-14 Brady Eidson Reviewed by Alexey Proskuryakov. Safari 4 cannot be used to update firmware on Linksys routers. and https://bugs.webkit.org/show_bug.cgi?id=29160 Adopt the new WebCore::CredentialStorage in WebKit/Win. * WebDownloadCFNet.cpp: (WebDownload::didReceiveAuthenticationChallenge): 2009-09-11 Steve Falkenburg Reviewed by Dan Bernstein. Properly propagate preference from WebPreferences to WebCore::Settings. https://bugs.webkit.org/show_bug.cgi?id=29192 * WebView.cpp: (WebView::initWithFrame): Apply setting when creating a new WebView. (WebView::notifyPreferencesChanged): Apply setting when preferences change. 2009-09-11 Steve Falkenburg Reviewed by Darin Adler. Allow WebKit clients to opt out of high resolution timers on Windows. https://bugs.webkit.org/show_bug.cgi?id=29192 * Interfaces/IWebPreferencesPrivate.idl: Added getter/setter. Put this just after last 4.0.3 method for future merging. * Interfaces/WebKit.idl: Touched to force a rebuild. * WebPreferenceKeysPrivate.h: Added prefs key for high res timers. * WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): Initialize high res timers to enabled. (WebPreferences::setShouldUseHighResolutionTimers): Added. (WebPreferences::shouldUseHighResolutionTimers): Added. * WebPreferences.h: Added getter/setter. 2009-09-11 Adam Roben Get user script/stylesheet tests running on Windows Fixes User script/stylesheet tests are skipped on Windows Reviewed by John Sullivan. * Interfaces/IWebViewPrivate.idl: Added addUserScriptToGroup, addUserStyleSheetToGroup, removeUserContentFromGroup, removeAllUserContentFromGropu to match the Mac SPI. * WebView.cpp: (WebView::addUserScriptToGroup): (WebView::addUserStyleSheetToGroup): (WebView::removeUserContentFromGroup): (WebView::removeAllUserContentFromGroup): * WebView.h: Added. Implementation was based on similar methods in WebView.mm. 2009-09-11 Jon Honeycutt Fix crash on launch on Windows. Rubber-stamped by Mark Rowe. * WebKit.vcproj/WebKit.vcproj: Define ENABLE_WEB_SOCKETS for all configurations. 2009-09-07 Drew Wilson Reviewed by David Levin. Enable SHARED_WORKERS by default. https://bugs.webkit.org/show_bug.cgi?id=28959 * WebKit.vcproj/WebKit.vcproj: 2009-09-04 Adam Roben Make WebView function without a parent window When WebView has no parent window, it becomes a message-only window, which hides it from the screen and prevents it from appearing on the taskbar. Fixes WebView::initWithFrame fails if there's no host window Reviewed by Dave Hyatt. * WebView.cpp: (WebView::initWithFrame): m_hostWindow is null, use HWND_MESSAGE as our parent window, which will make us a message-only window. (WebView::setHostWindow): If he new host window is null, use HWND_MESSAGE as our parent window, which will make us a message-only window. 2009-09-04 Adam Barth Unreviewed attempt at a build fix. Added missing include. * WebCoreSupport/WebFrameLoaderClient.cpp: 2009-09-04 Adam Barth Unreviewed attempt at a build fix. Fix typo of IWebFrameLoadDelegatePrivate2 and make IWebFrameLoadDelegatePrivate inherit from IWebFrameLoadDelegatePrivate as requestd by Adam Roben. * Interfaces/IWebFrameLoadDelegatePrivate2.idl: * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::didDisplayInsecureContent): (WebFrameLoaderClient::didRunInsecureContent): 2009-09-04 Adam Barth Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=24696 Plumb mixed content notifications to IWebFrameLoadDelegatePrivate. * Interfaces/IWebFrameLoadDelegatePrivate2.idl: Added. * Interfaces/WebKit.idl: * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::didDisplayInsecureContent): (WebFrameLoaderClient::didRunInsecureContent): * WebKit.vcproj/Interfaces.vcproj: 2009-09-03 Adam Barth Reviewed by eric@webkit.org. https://bugs.webkit.org/show_bug.cgi?id=24696 Stub implementations of mixed content methods of FrameLoaderClient. * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::didDisplayInsecureContent): (WebFrameLoaderClient::didRunInsecureContent): * WebCoreSupport/WebFrameLoaderClient.h: 2009-09-01 Adam Roben Post a notification when a WebView is closing This is useful for situations where some code wants to react to the WebView closing but isn't in charge of the WebView and can't otherwise be notified. This notification could replace IWebUIDelegatePrivate::webViewClosing if we decide that the notification system isn't too burdensome. Reviewed by John Sullivan. * Interfaces/IWebViewPrivate.idl: Added the WebViewWillCloseNotification string constant. * WebKit.vcproj/WebKit.vcproj: Link against comsuppw.lib in all configurations so that we can use _bstr_t. * WebView.cpp: (WebView::close): Post the WebViewWillCloseNotification. 2009-08-31 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=28852 Rename KURL single argument constructor to avoid confusion * WebURLResponse.cpp: (WebURLResponse::createInstance): Adapt to the change. 2009-08-20 Adam Roben Give WebKit clients access to the window features specified in window.open Reviewed by Steve Falkenburg. * COMVariantSetter.h: Added COMVariantSetters for bool and float. * Interfaces/IWebUIDelegatePrivate.idl: Added IWebUIDelegatePrivate2, which contains a new version of createWebViewWithRequest that also passes the window features as an IPropertyBag. This is analagous to the -createWebViewWithRequest:windowFeatures: method added to WebUIDelegate on Mac in r27452. Also added key strings for use with the window features property bag. * WebCoreSupport/WebChromeClient.cpp: (createWindowFeaturesPropertyBag): Added this helper function to turn a WebCore::WindowFeatures into an IPropertyBag for passing to WebKit clients. (WebChromeClient::createWindow): If the UI delegate implements IWebUIDelegatePrivate2, call the new createWebViewWithRequest function that takes a window features property bag. If the delegate doesn't implement the new function, fall back to the old functions. 2009-08-20 Adam Roben A little clean-up in WebChromeClient::createWindow Reviewed by Steve Falkenburg. * WebCoreSupport/WebChromeClient.cpp: (WebChromeClient::createWindow): Refactored to share more code between the dialog and non-dialog cases. 2009-08-28 Gustavo Noronha Silva Reviewed by Holger Freyther. https://bugs.webkit.org/show_bug.cgi?id=25889 [GTK] scrollbar policy for main frame is not implementable Add empty implementation for new ChromeClient method. * WebCoreSupport/WebChromeClient.h: (WebChromeClient::scrollbarsModeDidChange): 2009-08-27 Brent Fulgham Reviewed by Adam Roben. Modify Release_Cairo target to build testapi using the Release_CFLite target so that the correct CoreFoundation (in this case, CFLite.dll) is linked. * WebKit.vcproj/WebKit.sln: 2009-08-26 Adam Barth Reviewed by Oliver Hunt. Don't let local files access web URLs https://bugs.webkit.org/show_bug.cgi?id=28480 * WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): 2009-08-26 David Levin Reviewed by Darin Fisher. ResourceRequestBase::*[Aa]llowHTTPCookies shouldn't mention http. https://bugs.webkit.org/show_bug.cgi?id=28735 * WebMutableURLRequest.cpp: (WebMutableURLRequest::setHTTPShouldHandleCookies): 2009-08-25 Eric Carlson Reviewed by Oliver Hunt.