| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2000 Simon Hausmann <hausmann@kde.org> | 4 * (C) 2000 Simon Hausmann <hausmann@kde.org> |
| 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
| 6 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 6 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 #include "core/page/Chrome.h" | 41 #include "core/page/Chrome.h" |
| 42 #include "core/page/ChromeClient.h" | 42 #include "core/page/ChromeClient.h" |
| 43 #include "core/page/Frame.h" | 43 #include "core/page/Frame.h" |
| 44 #include "core/page/Page.h" | 44 #include "core/page/Page.h" |
| 45 #include "core/page/Settings.h" | 45 #include "core/page/Settings.h" |
| 46 #include "core/platform/HistogramSupport.h" | 46 #include "core/platform/HistogramSupport.h" |
| 47 #include "core/platform/PlatformMouseEvent.h" | 47 #include "core/platform/PlatformMouseEvent.h" |
| 48 #include "core/platform/network/DNS.h" | 48 #include "core/platform/network/DNS.h" |
| 49 #include "core/platform/network/ResourceRequest.h" | 49 #include "core/platform/network/ResourceRequest.h" |
| 50 #include "core/rendering/RenderImage.h" | 50 #include "core/rendering/RenderImage.h" |
| 51 #include "core/svg/graphics/SVGImage.h" |
| 51 #include "public/platform/Platform.h" | 52 #include "public/platform/Platform.h" |
| 52 #include "public/platform/WebPrescientNetworking.h" | 53 #include "public/platform/WebPrescientNetworking.h" |
| 53 #include "public/platform/WebURL.h" | 54 #include "public/platform/WebURL.h" |
| 54 #include "weborigin/KnownPorts.h" | 55 #include "weborigin/KnownPorts.h" |
| 55 #include "weborigin/SecurityOrigin.h" | 56 #include "weborigin/SecurityOrigin.h" |
| 56 #include "weborigin/SecurityPolicy.h" | 57 #include "weborigin/SecurityPolicy.h" |
| 57 #include "wtf/text/StringBuilder.h" | 58 #include "wtf/text/StringBuilder.h" |
| 58 | 59 |
| 59 namespace WebCore { | 60 namespace WebCore { |
| 60 | 61 |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 | 275 |
| 275 } | 276 } |
| 276 | 277 |
| 277 ContainerNode::setActive(down, pause); | 278 ContainerNode::setActive(down, pause); |
| 278 } | 279 } |
| 279 | 280 |
| 280 void HTMLAnchorElement::parseAttribute(const QualifiedName& name, const AtomicSt
ring& value) | 281 void HTMLAnchorElement::parseAttribute(const QualifiedName& name, const AtomicSt
ring& value) |
| 281 { | 282 { |
| 282 if (name == hrefAttr) { | 283 if (name == hrefAttr) { |
| 283 bool wasLink = isLink(); | 284 bool wasLink = isLink(); |
| 284 setIsLink(!value.isNull()); | 285 setIsLink(!value.isNull() && !shouldProhibitLinks(this)); |
| 285 if (wasLink != isLink()) { | 286 if (wasLink != isLink()) { |
| 286 didAffectSelector(AffectedSelectorLink | AffectedSelectorVisited | A
ffectedSelectorEnabled); | 287 didAffectSelector(AffectedSelectorLink | AffectedSelectorVisited | A
ffectedSelectorEnabled); |
| 287 if (wasLink && treeScope()->adjustedFocusedElement() == this) { | 288 if (wasLink && treeScope()->adjustedFocusedElement() == this) { |
| 288 // We might want to call blur(), but it's dangerous to dispatch | 289 // We might want to call blur(), but it's dangerous to dispatch |
| 289 // events here. | 290 // events here. |
| 290 document()->setNeedsFocusedElementCheck(); | 291 document()->setNeedsFocusedElementCheck(); |
| 291 } | 292 } |
| 292 } | 293 } |
| 293 if (isLink()) { | 294 if (isLink()) { |
| 294 String parsedURL = stripLeadingAndTrailingHTMLSpaces(value); | 295 String parsedURL = stripLeadingAndTrailingHTMLSpaces(value); |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 bool isEnterKeyKeydownEvent(Event* event) | 643 bool isEnterKeyKeydownEvent(Event* event) |
| 643 { | 644 { |
| 644 return event->type() == eventNames().keydownEvent && event->isKeyboardEvent(
) && toKeyboardEvent(event)->keyIdentifier() == "Enter"; | 645 return event->type() == eventNames().keydownEvent && event->isKeyboardEvent(
) && toKeyboardEvent(event)->keyIdentifier() == "Enter"; |
| 645 } | 646 } |
| 646 | 647 |
| 647 bool isLinkClick(Event* event) | 648 bool isLinkClick(Event* event) |
| 648 { | 649 { |
| 649 return event->type() == eventNames().clickEvent && (!event->isMouseEvent() |
| toMouseEvent(event)->button() != RightButton); | 650 return event->type() == eventNames().clickEvent && (!event->isMouseEvent() |
| toMouseEvent(event)->button() != RightButton); |
| 650 } | 651 } |
| 651 | 652 |
| 653 bool shouldProhibitLinks(Element* element) |
| 654 { |
| 655 return SVGImage::isInSVGImage(element); |
| 656 } |
| 657 |
| 652 bool HTMLAnchorElement::willRespondToMouseClickEvents() | 658 bool HTMLAnchorElement::willRespondToMouseClickEvents() |
| 653 { | 659 { |
| 654 return isLink() || HTMLElement::willRespondToMouseClickEvents(); | 660 return isLink() || HTMLElement::willRespondToMouseClickEvents(); |
| 655 } | 661 } |
| 656 | 662 |
| 657 typedef HashMap<const HTMLAnchorElement*, RefPtr<Element> > RootEditableElementM
ap; | 663 typedef HashMap<const HTMLAnchorElement*, RefPtr<Element> > RootEditableElementM
ap; |
| 658 | 664 |
| 659 static RootEditableElementMap& rootEditableElementMap() | 665 static RootEditableElementMap& rootEditableElementMap() |
| 660 { | 666 { |
| 661 DEFINE_STATIC_LOCAL(RootEditableElementMap, map, ()); | 667 DEFINE_STATIC_LOCAL(RootEditableElementMap, map, ()); |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 851 | 857 |
| 852 // The precision of current MouseOver trigger is too low to actually trigger
preconnects. | 858 // The precision of current MouseOver trigger is too low to actually trigger
preconnects. |
| 853 if (motivation == WebKit::WebPreconnectMotivationLinkMouseOver) | 859 if (motivation == WebKit::WebPreconnectMotivationLinkMouseOver) |
| 854 return; | 860 return; |
| 855 | 861 |
| 856 preconnectToURL(url, motivation); | 862 preconnectToURL(url, motivation); |
| 857 m_hasIssuedPreconnect = true; | 863 m_hasIssuedPreconnect = true; |
| 858 } | 864 } |
| 859 | 865 |
| 860 } | 866 } |
| OLD | NEW |