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 |