Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: Source/core/html/HTMLImageElement.h

Issue 200923002: Post a microtask to load <img> elements. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: all tests fixed Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 * Copyright (C) 2004, 2008, 2010 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2008, 2010 Apple Inc. All rights reserved.
5 * Copyright (C) 2010 Google Inc. All rights reserved. 5 * Copyright (C) 2010 Google Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 KURL src() const; 66 KURL src() const;
67 void setSrc(const String&); 67 void setSrc(const String&);
68 68
69 void setWidth(int); 69 void setWidth(int);
70 70
71 int x() const; 71 int x() const;
72 int y() const; 72 int y() const;
73 73
74 bool complete() const; 74 bool complete() const;
75 75
76 bool hasPendingActivity() const { return m_imageLoader.hasPendingActivity(); } 76 bool hasPendingActivity() const { return m_imageLoader.hasPendingActivity() || hasPendingUpdate(); }
77 77
78 virtual bool canContainRangeEndPoint() const OVERRIDE { return false; } 78 virtual bool canContainRangeEndPoint() const OVERRIDE { return false; }
79 79
80 void addClient(ImageLoaderClient* client) { m_imageLoader.addClient(client); } 80 void addClient(ImageLoaderClient* client) { m_imageLoader.addClient(client); }
81 void removeClient(ImageLoaderClient* client) { m_imageLoader.removeClient(cl ient); } 81 void removeClient(ImageLoaderClient* client) { m_imageLoader.removeClient(cl ient); }
82 82
83 virtual const AtomicString imageSourceURL() const OVERRIDE; 83 virtual const AtomicString imageSourceURL() const OVERRIDE;
84 84
85 virtual HTMLFormElement* formOwner() const OVERRIDE; 85 virtual HTMLFormElement* formOwner() const OVERRIDE;
86 void formRemovedFromTree(const Node& formRoot); 86 void formRemovedFromTree(const Node& formRoot);
(...skipping 29 matching lines...) Expand all
116 116
117 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; 117 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
118 virtual void removedFrom(ContainerNode*) OVERRIDE; 118 virtual void removedFrom(ContainerNode*) OVERRIDE;
119 virtual bool shouldRegisterAsNamedItem() const OVERRIDE { return true; } 119 virtual bool shouldRegisterAsNamedItem() const OVERRIDE { return true; }
120 virtual bool shouldRegisterAsExtraNamedItem() const OVERRIDE { return true; } 120 virtual bool shouldRegisterAsExtraNamedItem() const OVERRIDE { return true; }
121 virtual bool isInteractiveContent() const OVERRIDE; 121 virtual bool isInteractiveContent() const OVERRIDE;
122 virtual Image* imageContents() OVERRIDE; 122 virtual Image* imageContents() OVERRIDE;
123 123
124 void resetFormOwner(); 124 void resetFormOwner();
125 125
126 enum PendingUpdateType {
127 PendingUpdateNone,
128 PendingUpdateIgnoreError,
129 PendingUpdateNormal
130 };
131 void enqueueUpdate(PendingUpdateType);
132 bool hasPendingUpdate() const { return m_pendingUpdate != PendingUpdateNone; }
133 void cancelPendingUpdate();
134 static void processUpdateFromElementQueue();
135
126 HTMLImageLoader m_imageLoader; 136 HTMLImageLoader m_imageLoader;
127 // m_form should be a strong reference in Oilpan. 137 // m_form should be a strong reference in Oilpan.
128 WeakPtr<HTMLFormElement> m_form; 138 WeakPtr<HTMLFormElement> m_form;
129 CompositeOperator m_compositeOperator; 139 CompositeOperator m_compositeOperator;
130 AtomicString m_bestFitImageURL; 140 AtomicString m_bestFitImageURL;
131 float m_imageDevicePixelRatio; 141 float m_imageDevicePixelRatio;
132 bool m_formWasSetByParser; 142 bool m_formWasSetByParser;
143
144 PendingUpdateType m_pendingUpdate;
133 }; 145 };
134 146
135 } //namespace 147 } //namespace
136 148
137 #endif 149 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698