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

Side by Side Diff: third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp

Issue 2800133003: Avoid duplicate functions: one AddStringToDigestor is enough (Closed)
Patch Set: New idea. Include the string type in the name. Created 3 years, 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/inspector/InspectorAnimationAgent.h" 5 #include "core/inspector/InspectorAnimationAgent.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include "bindings/core/v8/V8BindingForCore.h" 8 #include "bindings/core/v8/V8BindingForCore.h"
9 #include "core/animation/Animation.h" 9 #include "core/animation/Animation.h"
10 #include "core/animation/AnimationEffectReadOnly.h" 10 #include "core/animation/AnimationEffectReadOnly.h"
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 CSSPropertyAnimationDelay, CSSPropertyAnimationDirection, 447 CSSPropertyAnimationDelay, CSSPropertyAnimationDirection,
448 CSSPropertyAnimationDuration, CSSPropertyAnimationFillMode, 448 CSSPropertyAnimationDuration, CSSPropertyAnimationFillMode,
449 CSSPropertyAnimationIterationCount, CSSPropertyAnimationName, 449 CSSPropertyAnimationIterationCount, CSSPropertyAnimationName,
450 CSSPropertyAnimationTimingFunction}; 450 CSSPropertyAnimationTimingFunction};
451 451
452 static CSSPropertyID g_transition_properties[] = { 452 static CSSPropertyID g_transition_properties[] = {
453 CSSPropertyTransitionDelay, CSSPropertyTransitionDuration, 453 CSSPropertyTransitionDelay, CSSPropertyTransitionDuration,
454 CSSPropertyTransitionProperty, CSSPropertyTransitionTimingFunction, 454 CSSPropertyTransitionProperty, CSSPropertyTransitionTimingFunction,
455 }; 455 };
456 456
457 static void AddStringToDigestor(WebCryptoDigestor* digestor, 457 static void AddAsciiStringToDigestor(WebCryptoDigestor* digestor,
458 const String& string) { 458 const String& string) {
459 digestor->Consume( 459 digestor->Consume(
460 reinterpret_cast<const unsigned char*>(string.Ascii().data()), 460 reinterpret_cast<const unsigned char*>(string.Ascii().data()),
461 string.length()); 461 string.length());
alph 2017/07/10 21:26:06 ditto.
462 } 462 }
463 463
464 String InspectorAnimationAgent::CreateCSSId(blink::Animation& animation) { 464 String InspectorAnimationAgent::CreateCSSId(blink::Animation& animation) {
465 String type = 465 String type =
466 id_to_animation_type_.at(String::Number(animation.SequenceNumber())); 466 id_to_animation_type_.at(String::Number(animation.SequenceNumber()));
467 DCHECK_NE(type, AnimationType::WebAnimation); 467 DCHECK_NE(type, AnimationType::WebAnimation);
468 468
469 KeyframeEffectReadOnly* effect = ToKeyframeEffectReadOnly(animation.effect()); 469 KeyframeEffectReadOnly* effect = ToKeyframeEffectReadOnly(animation.effect());
470 Vector<CSSPropertyID> css_properties; 470 Vector<CSSPropertyID> css_properties;
471 if (type == AnimationType::CSSAnimation) { 471 if (type == AnimationType::CSSAnimation) {
472 for (CSSPropertyID property : g_animation_properties) 472 for (CSSPropertyID property : g_animation_properties)
473 css_properties.push_back(property); 473 css_properties.push_back(property);
474 } else { 474 } else {
475 for (CSSPropertyID property : g_transition_properties) 475 for (CSSPropertyID property : g_transition_properties)
476 css_properties.push_back(property); 476 css_properties.push_back(property);
477 css_properties.push_back(cssPropertyID(animation.id())); 477 css_properties.push_back(cssPropertyID(animation.id()));
478 } 478 }
479 479
480 Element* element = effect->Target(); 480 Element* element = effect->Target();
481 HeapVector<Member<CSSStyleDeclaration>> styles = 481 HeapVector<Member<CSSStyleDeclaration>> styles =
482 css_agent_->MatchingStyles(element); 482 css_agent_->MatchingStyles(element);
483 std::unique_ptr<WebCryptoDigestor> digestor = 483 std::unique_ptr<WebCryptoDigestor> digestor =
484 CreateDigestor(kHashAlgorithmSha1); 484 CreateDigestor(kHashAlgorithmSha1);
485 AddStringToDigestor(digestor.get(), type); 485 AddAsciiStringToDigestor(digestor.get(), type);
486 AddStringToDigestor(digestor.get(), animation.id()); 486 AddAsciiStringToDigestor(digestor.get(), animation.id());
487 for (CSSPropertyID property : css_properties) { 487 for (CSSPropertyID property : css_properties) {
488 CSSStyleDeclaration* style = 488 CSSStyleDeclaration* style =
489 css_agent_->FindEffectiveDeclaration(property, styles); 489 css_agent_->FindEffectiveDeclaration(property, styles);
490 // Ignore inline styles. 490 // Ignore inline styles.
491 if (!style || !style->ParentStyleSheet() || !style->parentRule() || 491 if (!style || !style->ParentStyleSheet() || !style->parentRule() ||
492 style->parentRule()->type() != CSSRule::kStyleRule) 492 style->parentRule()->type() != CSSRule::kStyleRule)
493 continue; 493 continue;
494 AddStringToDigestor(digestor.get(), getPropertyNameString(property)); 494 AddAsciiStringToDigestor(digestor.get(), getPropertyNameString(property));
495 AddStringToDigestor(digestor.get(), 495 AddAsciiStringToDigestor(
496 css_agent_->StyleSheetId(style->ParentStyleSheet())); 496 digestor.get(), css_agent_->StyleSheetId(style->ParentStyleSheet()));
497 AddStringToDigestor(digestor.get(), 497 AddAsciiStringToDigestor(
498 ToCSSStyleRule(style->parentRule())->selectorText()); 498 digestor.get(), ToCSSStyleRule(style->parentRule())->selectorText());
499 } 499 }
500 DigestValue digest_result; 500 DigestValue digest_result;
501 FinishDigestor(digestor.get(), digest_result); 501 FinishDigestor(digestor.get(), digest_result);
502 return Base64Encode(reinterpret_cast<const char*>(digest_result.data()), 10); 502 return Base64Encode(reinterpret_cast<const char*>(digest_result.data()), 10);
503 } 503 }
504 504
505 void InspectorAnimationAgent::DidCreateAnimation(unsigned sequence_number) { 505 void InspectorAnimationAgent::DidCreateAnimation(unsigned sequence_number) {
506 if (is_cloning_) 506 if (is_cloning_)
507 return; 507 return;
508 GetFrontend()->animationCreated(String::Number(sequence_number)); 508 GetFrontend()->animationCreated(String::Number(sequence_number));
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 564
565 DEFINE_TRACE(InspectorAnimationAgent) { 565 DEFINE_TRACE(InspectorAnimationAgent) {
566 visitor->Trace(inspected_frames_); 566 visitor->Trace(inspected_frames_);
567 visitor->Trace(css_agent_); 567 visitor->Trace(css_agent_);
568 visitor->Trace(id_to_animation_); 568 visitor->Trace(id_to_animation_);
569 visitor->Trace(id_to_animation_clone_); 569 visitor->Trace(id_to_animation_clone_);
570 InspectorBaseAgent::Trace(visitor); 570 InspectorBaseAgent::Trace(visitor);
571 } 571 }
572 572
573 } // namespace blink 573 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698