Timeline
Feb 19, 2005:
- 6:24 PM Changeset in webkit [8642] by
-
- 13 edits in trunk/WebCore
Reviewed by Maciej
- khtml/editing/htmlediting.cpp: (khtml::matchNearestBlockquoteColorString): New function which abstracts away the CSS property we use for this pseudo-color. (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): Set the new nearestBlockquoteColorString psuedo-color here, rather than removing colors as was done before. (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes): Check for the pseudo-color in the desired style, and determine the real color based on the nearest blockquote (or none) to the node. (khtml::nearestMailBlockquote): Name change from closestMailBlockquote to match new property better.
All the rest of this change is the mechanical coding you need to do to add a new CSS property, in this
case, -khtml-match-nearest-mail-blockquote-color.
- khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue)
- khtml/css/cssparser.cpp: (CSSParser::parseValue):
- khtml/css/cssproperties.c: (hash_prop): (findProp):
- khtml/css/cssproperties.h:
- khtml/css/cssproperties.in:
- khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty)
- khtml/css/cssvalues.c: (findValue)
- khtml/css/cssvalues.h:
- khtml/css/cssvalues.in:
- khtml/rendering/render_style.h: (khtml::RenderStyle::matchNearestMailBlockquoteColor) (khtml::RenderStyle::setMatchNearestMailBlockquoteColor) (khtml::RenderStyle::initialMatchNearestMailBlockquoteColor)
- 2:53 PM Changeset in webkit [8641] by
-
- 5 edits in trunk
Reviewed by Chris
Fix for these bugs:
<rdar://problem/4014228> REGRESSION (186-187) extra, uneditable lines inserted above and below a line of pasted quoted text
<rdar://problem/4014393> REGRESSION (186-187) pasted quoted text gets extra <cr>s when pasted at top of document
- khtml/editing/htmlediting.cpp: (khtml::ReplacementFragment::ReplacementFragment): Part of a general refactoring of how the fragment is inserted into the document, rendered, and then tested for certain important pieces of information that are required for pasting. (khtml::ReplacementFragment::insertFragmentForTestRendering): New helper. Handles inserting the fragment nodes into the document. (khtml::ReplacementFragment::restoreTestRenderingNodesToFragment): Removes nodes from the document, and restores them to the fragment. (khtml::ReplacementFragment::computeStylesUsingTestRendering): Factored out code that did this before into its own function. (khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto. (khtml::ReplacementFragment::countRenderedBlocks): This is a real improvement, as it eliminates a major use of the isProbablyBlock() function. Now, the blocks that are counted are real, rendered blocks. (khtml::ReplacementFragment::removeStyleNodes): Made this function retain margin-zeroing CSS properties on paragraphs. This does two things: 1) It helps us to maintain good behavior in the short term while there are still versions of Mail out there that use <p> elements instead of <div> elements for new paragraphs; and 2) It will help to maintain the compatibility with other mail clients that use <p> elements for their paragraphs but render them themselves with no margins as the result of quirks. (khtml::ReplaceSelectionCommand::doApply): Do some work to fix up and improve the handling of blank lines, be they <p> elements or <br> elements, that can be removed after pasting. This, coupled with the refactoring, fixes 4014393.
- khtml/editing/htmlediting.h: Updated for new functions.
- layout-tests/editing/pasteboard/paste-text-010-expected.txt: Updated results, actually improved with this change.
- layout-tests/editing/pasteboard/paste-text-011-expected.txt: Ditto.
- 1:46 PM Changeset in webkit [8640] by
-
- 3 edits in trunk/WebCore
Reviewed by Chris.
Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case. Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker.
- kwq/WebCoreBridge.h:
- kwq/WebCoreBridge.mm: (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]): Changed this to invoke the new stringByEvaluatingJavaScriptFromString:forceUserGesture method below. (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): Let the WebKit make the determination if this was a user originated gesture or not; we must no longer assume this is always the case.
- 1:40 PM Changeset in webkit [8639] by
-
- 3 edits in trunk/WebKit
Reviewed by Chris.
Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case. Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker.
- Plugins.subproj/WebBaseNetscapePluginView.h: Addded currentEventIsUserGesture boolean ivar.
- Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendEvent:]): If at any point the user clicks or presses a key from within a plugin, set the currentEventIsUserGesture flag to true. This is important to differentiate legitimate window.open() calls originating from plugins; we still want to allow those. (-[WebBaseNetscapePluginView initWithFrame:]): In our asynchronous load, pass along currentEventIsUserGesture to the PluginRequest. (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): Inform WebCore if this was a user originated gesture when calling executeScript(). (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:didStartFromUserGesture:]): (-[WebPluginRequest isCurrentEventUserGesture]): Added.
- 1:36 PM Changeset in webkit [8638] by
-
- 2 edits in trunk/WebCore
Fixed: <rdar://problem/3951196> REGRESSION (Mail): too many levels of reply quotes after certain steps
Reviewed by kocienda.
- khtml/editing/htmlediting.cpp: (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
- If we find a new start node, update topBlockquote so we don't use too many block quotes for the contents following the new line.
- Build up the list of ancestors after we've determined the actual topBlockquote.
- Don't insert an extra new line if there is a new start node.
- 10:59 AM Changeset in webkit [8637] by
-
- 2 edits in trunk/WebCore
Fixed: <rdar://problem/3978461> smart paste is broken
Reviewed by kevin.
- khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply): properly check for leading and trailing whitespace. These checks were incorrectly reversed. Also check if we're pasting at the beginning or end of a line. We should not insert spaces in either case.