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

Side by Side Diff: Source/core/css/CSSStyleSheet.cpp

Issue 128043003: Improve core/css exception messages. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Test. Created 6 years, 11 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
« no previous file with comments | « Source/core/css/CSSPrimitiveValue.cpp ('k') | Source/core/css/FontFace.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2006, 2007, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2006, 2007, 2012 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 nonCharsetRules->rules().append(rule); 253 nonCharsetRules->rules().append(rule);
254 } 254 }
255 return nonCharsetRules.release(); 255 return nonCharsetRules.release();
256 } 256 }
257 257
258 unsigned CSSStyleSheet::insertRule(const String& ruleString, unsigned index, Exc eptionState& exceptionState) 258 unsigned CSSStyleSheet::insertRule(const String& ruleString, unsigned index, Exc eptionState& exceptionState)
259 { 259 {
260 ASSERT(m_childRuleCSSOMWrappers.isEmpty() || m_childRuleCSSOMWrappers.size() == m_contents->ruleCount()); 260 ASSERT(m_childRuleCSSOMWrappers.isEmpty() || m_childRuleCSSOMWrappers.size() == m_contents->ruleCount());
261 261
262 if (index > length()) { 262 if (index > length()) {
263 exceptionState.throwUninformativeAndGenericDOMException(IndexSizeError); 263 exceptionState.throwDOMException(IndexSizeError, "The index provided (" + String::number(index) + ") is larger than the maximum index (" + String::numbe r(length()) + ").");
264 return 0; 264 return 0;
265 } 265 }
266 BisonCSSParser p(m_contents->parserContext(), UseCounter::getFrom(this)); 266 BisonCSSParser p(m_contents->parserContext(), UseCounter::getFrom(this));
267 RefPtr<StyleRuleBase> rule = p.parseRule(m_contents.get(), ruleString); 267 RefPtr<StyleRuleBase> rule = p.parseRule(m_contents.get(), ruleString);
268 268
269 if (!rule) { 269 if (!rule) {
270 exceptionState.throwUninformativeAndGenericDOMException(SyntaxError); 270 exceptionState.throwDOMException(SyntaxError, "Failed to parse the rule '" + ruleString + "'.");
271 return 0; 271 return 0;
272 } 272 }
273 RuleMutationScope mutationScope(this); 273 RuleMutationScope mutationScope(this);
274 274
275 bool success = m_contents->wrapperInsertRule(rule, index); 275 bool success = m_contents->wrapperInsertRule(rule, index);
276 if (!success) { 276 if (!success) {
277 exceptionState.throwUninformativeAndGenericDOMException(HierarchyRequest Error); 277 exceptionState.throwDOMException(HierarchyRequestError, "Failed to inser t the rule.");
278 return 0; 278 return 0;
279 } 279 }
280 if (!m_childRuleCSSOMWrappers.isEmpty()) 280 if (!m_childRuleCSSOMWrappers.isEmpty())
281 m_childRuleCSSOMWrappers.insert(index, RefPtr<CSSRule>()); 281 m_childRuleCSSOMWrappers.insert(index, RefPtr<CSSRule>());
282 282
283 return index; 283 return index;
284 } 284 }
285 285
286 unsigned CSSStyleSheet::insertRule(const String& rule, ExceptionState& exception State) 286 unsigned CSSStyleSheet::insertRule(const String& rule, ExceptionState& exception State)
287 { 287 {
288 UseCounter::countDeprecation(activeExecutionContext(), UseCounter::CSSStyleS heetInsertRuleOptionalArg); 288 UseCounter::countDeprecation(activeExecutionContext(), UseCounter::CSSStyleS heetInsertRuleOptionalArg);
289 return insertRule(rule, 0, exceptionState); 289 return insertRule(rule, 0, exceptionState);
290 } 290 }
291 291
292 void CSSStyleSheet::deleteRule(unsigned index, ExceptionState& exceptionState) 292 void CSSStyleSheet::deleteRule(unsigned index, ExceptionState& exceptionState)
293 { 293 {
294 ASSERT(m_childRuleCSSOMWrappers.isEmpty() || m_childRuleCSSOMWrappers.size() == m_contents->ruleCount()); 294 ASSERT(m_childRuleCSSOMWrappers.isEmpty() || m_childRuleCSSOMWrappers.size() == m_contents->ruleCount());
295 295
296 if (index >= length()) { 296 if (index >= length()) {
297 exceptionState.throwUninformativeAndGenericDOMException(IndexSizeError); 297 exceptionState.throwDOMException(IndexSizeError, "The index provided (" + String::number(index) + ") is larger than the maximum index (" + String::numbe r(length() - 1) + ").");
298 return; 298 return;
299 } 299 }
300 RuleMutationScope mutationScope(this); 300 RuleMutationScope mutationScope(this);
301 301
302 m_contents->wrapperDeleteRule(index); 302 m_contents->wrapperDeleteRule(index);
303 303
304 if (!m_childRuleCSSOMWrappers.isEmpty()) { 304 if (!m_childRuleCSSOMWrappers.isEmpty()) {
305 if (m_childRuleCSSOMWrappers[index]) 305 if (m_childRuleCSSOMWrappers[index])
306 m_childRuleCSSOMWrappers[index]->setParentStyleSheet(0); 306 m_childRuleCSSOMWrappers[index]->setParentStyleSheet(0);
307 m_childRuleCSSOMWrappers.remove(index); 307 m_childRuleCSSOMWrappers.remove(index);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 root = root->parentStyleSheet(); 375 root = root->parentStyleSheet();
376 return root->ownerNode() ? &root->ownerNode()->document() : 0; 376 return root->ownerNode() ? &root->ownerNode()->document() : 0;
377 } 377 }
378 378
379 void CSSStyleSheet::clearChildRuleCSSOMWrappers() 379 void CSSStyleSheet::clearChildRuleCSSOMWrappers()
380 { 380 {
381 m_childRuleCSSOMWrappers.clear(); 381 m_childRuleCSSOMWrappers.clear();
382 } 382 }
383 383
384 } 384 }
OLDNEW
« no previous file with comments | « Source/core/css/CSSPrimitiveValue.cpp ('k') | Source/core/css/FontFace.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698