Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Apple Inc. All rights reserved. | 3 * Copyright (C) 2013 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 189 | 189 |
| 190 void Internals::resetToConsistentState(Page* page) | 190 void Internals::resetToConsistentState(Page* page) |
| 191 { | 191 { |
| 192 ASSERT(page); | 192 ASSERT(page); |
| 193 | 193 |
| 194 page->setDeviceScaleFactor(1); | 194 page->setDeviceScaleFactor(1); |
| 195 page->setIsCursorVisible(true); | 195 page->setIsCursorVisible(true); |
| 196 page->setPageScaleFactor(1, IntPoint(0, 0)); | 196 page->setPageScaleFactor(1, IntPoint(0, 0)); |
| 197 page->setPagination(Pagination()); | 197 page->setPagination(Pagination()); |
| 198 TextRun::setAllowsRoundingHacks(false); | 198 TextRun::setAllowsRoundingHacks(false); |
| 199 WebCore::overrideUserPreferredLanguages(Vector<String>()); | 199 WebCore::overrideUserPreferredLanguages(Vector<AtomicString>()); |
| 200 delete s_pagePopupDriver; | 200 delete s_pagePopupDriver; |
| 201 s_pagePopupDriver = 0; | 201 s_pagePopupDriver = 0; |
| 202 page->chrome().client().resetPagePopupDriver(); | 202 page->chrome().client().resetPagePopupDriver(); |
| 203 if (!page->mainFrame()->spellChecker().isContinuousSpellCheckingEnabled()) | 203 if (!page->mainFrame()->spellChecker().isContinuousSpellCheckingEnabled()) |
| 204 page->mainFrame()->spellChecker().toggleContinuousSpellChecking(); | 204 page->mainFrame()->spellChecker().toggleContinuousSpellChecking(); |
| 205 if (page->mainFrame()->editor().isOverwriteModeEnabled()) | 205 if (page->mainFrame()->editor().isOverwriteModeEnabled()) |
| 206 page->mainFrame()->editor().toggleOverwriteModeEnabled(); | 206 page->mainFrame()->editor().toggleOverwriteModeEnabled(); |
| 207 | 207 |
| 208 if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator( )) | 208 if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator( )) |
| 209 scrollingCoordinator->reset(); | 209 scrollingCoordinator->reset(); |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 373 Node* Internals::parentTreeScope(Node* node, ExceptionState& exceptionState) | 373 Node* Internals::parentTreeScope(Node* node, ExceptionState& exceptionState) |
| 374 { | 374 { |
| 375 if (!node) { | 375 if (!node) { |
| 376 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 376 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 377 return 0; | 377 return 0; |
| 378 } | 378 } |
| 379 const TreeScope* parentTreeScope = node->treeScope().parentTreeScope(); | 379 const TreeScope* parentTreeScope = node->treeScope().parentTreeScope(); |
| 380 return parentTreeScope ? parentTreeScope->rootNode() : 0; | 380 return parentTreeScope ? parentTreeScope->rootNode() : 0; |
| 381 } | 381 } |
| 382 | 382 |
| 383 bool Internals::hasSelectorForIdInShadow(Element* host, const String& idValue, E xceptionState& exceptionState) | 383 bool Internals::hasSelectorForIdInShadow(Element* host, const AtomicString& idVa lue, ExceptionState& exceptionState) |
| 384 { | 384 { |
| 385 if (!host || !host->shadow()) { | 385 if (!host || !host->shadow()) { |
| 386 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 386 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 387 return 0; | 387 return 0; |
| 388 } | 388 } |
| 389 | 389 |
| 390 return host->shadow()->ensureSelectFeatureSet().hasSelectorForId(idValue); | 390 return host->shadow()->ensureSelectFeatureSet().hasSelectorForId(idValue); |
| 391 } | 391 } |
| 392 | 392 |
| 393 bool Internals::hasSelectorForClassInShadow(Element* host, const String& classNa me, ExceptionState& exceptionState) | 393 bool Internals::hasSelectorForClassInShadow(Element* host, const AtomicString& c lassName, ExceptionState& exceptionState) |
| 394 { | 394 { |
| 395 if (!host || !host->shadow()) { | 395 if (!host || !host->shadow()) { |
| 396 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 396 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 397 return 0; | 397 return 0; |
| 398 } | 398 } |
| 399 | 399 |
| 400 return host->shadow()->ensureSelectFeatureSet().hasSelectorForClass(classNam e); | 400 return host->shadow()->ensureSelectFeatureSet().hasSelectorForClass(classNam e); |
| 401 } | 401 } |
| 402 | 402 |
| 403 bool Internals::hasSelectorForAttributeInShadow(Element* host, const String& att ributeName, ExceptionState& exceptionState) | 403 bool Internals::hasSelectorForAttributeInShadow(Element* host, const AtomicStrin g& attributeName, ExceptionState& exceptionState) |
| 404 { | 404 { |
| 405 if (!host || !host->shadow()) { | 405 if (!host || !host->shadow()) { |
| 406 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 406 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 407 return 0; | 407 return 0; |
| 408 } | 408 } |
| 409 | 409 |
| 410 return host->shadow()->ensureSelectFeatureSet().hasSelectorForAttribute(attr ibuteName); | 410 return host->shadow()->ensureSelectFeatureSet().hasSelectorForAttribute(attr ibuteName); |
| 411 } | 411 } |
| 412 | 412 |
| 413 bool Internals::hasSelectorForPseudoClassInShadow(Element* host, const String& p seudoClass, ExceptionState& exceptionState) | 413 bool Internals::hasSelectorForPseudoClassInShadow(Element* host, const String& p seudoClass, ExceptionState& exceptionState) |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 671 case ShadowRoot::UserAgentShadowRoot: | 671 case ShadowRoot::UserAgentShadowRoot: |
| 672 return String("UserAgentShadowRoot"); | 672 return String("UserAgentShadowRoot"); |
| 673 case ShadowRoot::AuthorShadowRoot: | 673 case ShadowRoot::AuthorShadowRoot: |
| 674 return String("AuthorShadowRoot"); | 674 return String("AuthorShadowRoot"); |
| 675 default: | 675 default: |
| 676 ASSERT_NOT_REACHED(); | 676 ASSERT_NOT_REACHED(); |
| 677 return String("Unknown"); | 677 return String("Unknown"); |
| 678 } | 678 } |
| 679 } | 679 } |
| 680 | 680 |
| 681 String Internals::shadowPseudoId(Element* element, ExceptionState& exceptionStat e) | 681 const AtomicString& Internals::shadowPseudoId(Element* element, ExceptionState& exceptionState) |
| 682 { | 682 { |
| 683 if (!element) { | 683 if (!element) { |
| 684 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 684 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 685 return String(); | 685 return nullAtom; |
| 686 } | 686 } |
| 687 | 687 |
| 688 return element->shadowPseudoId().string(); | 688 return element->shadowPseudoId(); |
| 689 } | 689 } |
| 690 | 690 |
| 691 void Internals::setShadowPseudoId(Element* element, const String& id, ExceptionS tate& exceptionState) | 691 void Internals::setShadowPseudoId(Element* element, const AtomicString& id, Exce ptionState& exceptionState) |
| 692 { | 692 { |
| 693 if (!element) { | 693 if (!element) { |
| 694 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 694 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 695 return; | 695 return; |
| 696 } | 696 } |
| 697 | 697 |
| 698 return element->setShadowPseudoId(id); | 698 return element->setShadowPseudoId(id); |
| 699 } | 699 } |
| 700 | 700 |
| 701 String Internals::visiblePlaceholder(Element* element) | 701 String Internals::visiblePlaceholder(Element* element) |
| 702 { | 702 { |
| 703 if (element && isHTMLTextFormControlElement(*element)) { | 703 if (element && isHTMLTextFormControlElement(*element)) { |
| 704 if (toHTMLTextFormControlElement(element)->placeholderShouldBeVisible()) | 704 if (toHTMLTextFormControlElement(element)->placeholderShouldBeVisible()) |
| 705 return toHTMLTextFormControlElement(element)->placeholderElement()-> textContent(); | 705 return toHTMLTextFormControlElement(element)->placeholderElement()-> textContent(); |
| 706 } | 706 } |
| 707 | 707 |
| 708 return String(); | 708 return String(); |
| 709 } | 709 } |
| 710 | 710 |
| 711 void Internals::selectColorInColorChooser(Element* element, const String& colorV alue) | 711 void Internals::selectColorInColorChooser(Element* element, const String& colorV alue) |
| 712 { | 712 { |
| 713 if (!element->hasTagName(inputTag)) | 713 if (!element->hasTagName(inputTag)) |
| 714 return; | 714 return; |
| 715 toHTMLInputElement(element)->selectColorInColorChooser(Color(colorValue)); | 715 Color color; |
| 716 if (!color.setFromString(colorValue)) | |
| 717 return; | |
| 718 toHTMLInputElement(element)->selectColorInColorChooser(color); | |
| 716 } | 719 } |
| 717 | 720 |
| 718 Vector<String> Internals::formControlStateOfHistoryItem(ExceptionState& exceptio nState) | 721 Vector<String> Internals::formControlStateOfHistoryItem(ExceptionState& exceptio nState) |
| 719 { | 722 { |
| 720 HistoryItem* mainItem = frame()->loader().currentItem(); | 723 HistoryItem* mainItem = frame()->loader().currentItem(); |
| 721 if (!mainItem) { | 724 if (!mainItem) { |
| 722 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 725 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 723 return Vector<String>(); | 726 return Vector<String>(); |
| 724 } | 727 } |
| 725 return mainItem->documentState(); | 728 return mainItem->documentState(); |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1009 return false; | 1012 return false; |
| 1010 } | 1013 } |
| 1011 | 1014 |
| 1012 String Internals::suggestedValue(Element* element, ExceptionState& exceptionStat e) | 1015 String Internals::suggestedValue(Element* element, ExceptionState& exceptionStat e) |
| 1013 { | 1016 { |
| 1014 if (!element) { | 1017 if (!element) { |
| 1015 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 1018 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 1016 return String(); | 1019 return String(); |
| 1017 } | 1020 } |
| 1018 | 1021 |
| 1019 if (!element->hasTagName(inputTag)) { | 1022 if (!element->isFormControlElement()) { |
| 1020 exceptionState.throwUninformativeAndGenericDOMException(InvalidNodeTypeE rror); | 1023 exceptionState.throwUninformativeAndGenericDOMException(InvalidNodeTypeE rror); |
| 1021 return String(); | 1024 return String(); |
| 1022 } | 1025 } |
| 1023 | 1026 |
| 1024 return toHTMLInputElement(element)->suggestedValue(); | 1027 String suggestedValue; |
| 1028 if (element->hasTagName(inputTag)) | |
| 1029 suggestedValue = toHTMLInputElement(element)->suggestedValue(); | |
| 1030 | |
| 1031 // FIXME: We should be using hasTagName instead but Windows port doesn't lin k QualifiedNames properly. | |
|
tkent
2014/01/06 23:29:49
What do you mean? Why don't you use hasTagName(te
ziran.sun
2014/01/07 17:18:26
I noticed this comment in Internals::wasLastChange
tkent
2014/01/08 00:59:38
I don't think we have such problem now. Probably
ziran.sun
2014/01/08 10:45:54
Done.
| |
| 1032 if (element->tagName() == "TEXTAREA") | |
| 1033 suggestedValue = toHTMLTextAreaElement(element)->suggestedValue(); | |
| 1034 return suggestedValue; | |
| 1025 } | 1035 } |
| 1026 | 1036 |
| 1027 void Internals::setSuggestedValue(Element* element, const String& value, Excepti onState& exceptionState) | 1037 void Internals::setSuggestedValue(Element* element, const String& value, Excepti onState& exceptionState) |
| 1028 { | 1038 { |
| 1029 if (!element) { | 1039 if (!element) { |
| 1030 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 1040 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 1031 return; | 1041 return; |
| 1032 } | 1042 } |
| 1033 | 1043 |
| 1034 if (!element->hasTagName(inputTag)) { | 1044 if (!element->isFormControlElement()) { |
| 1035 exceptionState.throwUninformativeAndGenericDOMException(InvalidNodeTypeE rror); | 1045 exceptionState.throwUninformativeAndGenericDOMException(InvalidNodeTypeE rror); |
| 1036 return; | 1046 return; |
| 1037 } | 1047 } |
| 1038 | 1048 |
| 1039 toHTMLInputElement(element)->setSuggestedValue(value); | 1049 if (element->hasTagName(inputTag)) |
| 1050 toHTMLInputElement(element)->setSuggestedValue(value); | |
| 1051 | |
| 1052 // FIXME: We should be using hasTagName instead but Windows port doesn't lin k QualifiedNames properly. | |
| 1053 if (element->tagName() == "TEXTAREA") | |
| 1054 toHTMLTextAreaElement(element)->setSuggestedValue(value); | |
| 1040 } | 1055 } |
| 1041 | 1056 |
| 1042 void Internals::setEditingValue(Element* element, const String& value, Exception State& exceptionState) | 1057 void Internals::setEditingValue(Element* element, const String& value, Exception State& exceptionState) |
| 1043 { | 1058 { |
| 1044 if (!element) { | 1059 if (!element) { |
| 1045 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 1060 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 1046 return; | 1061 return; |
| 1047 } | 1062 } |
| 1048 | 1063 |
| 1049 if (!element->hasTagName(inputTag)) { | 1064 if (!element->hasTagName(inputTag)) { |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1252 SpellCheckRequester* requester = spellCheckRequester(document); | 1267 SpellCheckRequester* requester = spellCheckRequester(document); |
| 1253 | 1268 |
| 1254 if (!requester) { | 1269 if (!requester) { |
| 1255 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 1270 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 1256 return -1; | 1271 return -1; |
| 1257 } | 1272 } |
| 1258 | 1273 |
| 1259 return requester->lastProcessedSequence(); | 1274 return requester->lastProcessedSequence(); |
| 1260 } | 1275 } |
| 1261 | 1276 |
| 1262 Vector<String> Internals::userPreferredLanguages() const | 1277 Vector<AtomicString> Internals::userPreferredLanguages() const |
| 1263 { | 1278 { |
| 1264 return WebCore::userPreferredLanguages(); | 1279 return WebCore::userPreferredLanguages(); |
| 1265 } | 1280 } |
| 1266 | 1281 |
| 1282 // Optimally, the bindings generator would pass a Vector<AtomicString> here but | |
| 1283 // this is not supported yet. | |
| 1267 void Internals::setUserPreferredLanguages(const Vector<String>& languages) | 1284 void Internals::setUserPreferredLanguages(const Vector<String>& languages) |
| 1268 { | 1285 { |
| 1269 WebCore::overrideUserPreferredLanguages(languages); | 1286 Vector<AtomicString> atomicLanguages; |
| 1287 for (size_t i = 0; i < languages.size(); ++i) | |
| 1288 atomicLanguages.append(AtomicString(languages[i])); | |
| 1289 WebCore::overrideUserPreferredLanguages(atomicLanguages); | |
| 1270 } | 1290 } |
| 1271 | 1291 |
| 1272 unsigned Internals::wheelEventHandlerCount(Document* document, ExceptionState& e xceptionState) | 1292 unsigned Internals::wheelEventHandlerCount(Document* document, ExceptionState& e xceptionState) |
| 1273 { | 1293 { |
| 1274 if (!document) { | 1294 if (!document) { |
| 1275 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); | 1295 exceptionState.throwUninformativeAndGenericDOMException(InvalidAccessErr or); |
| 1276 return 0; | 1296 return 0; |
| 1277 } | 1297 } |
| 1278 | 1298 |
| 1279 return WheelController::from(document)->wheelEventHandlerCount(); | 1299 return WheelController::from(document)->wheelEventHandlerCount(); |
| (...skipping 1040 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2320 if (view->compositor()) | 2340 if (view->compositor()) |
| 2321 view->compositor()->updateCompositingLayers(CompositingUpdateFinishAllDe ferredWork); | 2341 view->compositor()->updateCompositingLayers(CompositingUpdateFinishAllDe ferredWork); |
| 2322 } | 2342 } |
| 2323 | 2343 |
| 2324 void Internals::setZoomFactor(float factor) | 2344 void Internals::setZoomFactor(float factor) |
| 2325 { | 2345 { |
| 2326 frame()->setPageZoomFactor(factor); | 2346 frame()->setPageZoomFactor(factor); |
| 2327 } | 2347 } |
| 2328 | 2348 |
| 2329 } | 2349 } |
| OLD | NEW |