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

Side by Side Diff: Source/core/html/shadow/PasswordGeneratorButtonElement.cpp

Issue 23886003: Have HTMLElements / SVGElements constructors take a Document reference in argument (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Another Android build fix Created 7 years, 3 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) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 #include "core/page/Page.h" 45 #include "core/page/Page.h"
46 #include "core/platform/graphics/Image.h" 46 #include "core/platform/graphics/Image.h"
47 #include "core/rendering/RenderImage.h" 47 #include "core/rendering/RenderImage.h"
48 48
49 namespace WebCore { 49 namespace WebCore {
50 50
51 using namespace HTMLNames; 51 using namespace HTMLNames;
52 52
53 // FIXME: This class is only used in Chromium and has no layout tests. 53 // FIXME: This class is only used in Chromium and has no layout tests.
54 54
55 PasswordGeneratorButtonElement::PasswordGeneratorButtonElement(Document* documen t) 55 PasswordGeneratorButtonElement::PasswordGeneratorButtonElement(Document& documen t)
56 : HTMLDivElement(HTMLNames::divTag, document) 56 : HTMLDivElement(HTMLNames::divTag, document)
57 , m_isInHoverState(false) 57 , m_isInHoverState(false)
58 { 58 {
59 setHasCustomStyleCallbacks(); 59 setHasCustomStyleCallbacks();
60 } 60 }
61 61
62 static void getDecorationRootAndDecoratedRoot(HTMLInputElement* input, ShadowRoo t*& decorationRoot, ShadowRoot*& decoratedRoot) 62 static void getDecorationRootAndDecoratedRoot(HTMLInputElement* input, ShadowRoo t*& decorationRoot, ShadowRoot*& decoratedRoot)
63 { 63 {
64 ShadowRoot* existingRoot = input->youngestShadowRoot(); 64 ShadowRoot* existingRoot = input->youngestShadowRoot();
65 ShadowRoot* newRoot = 0; 65 ShadowRoot* newRoot = 0;
(...skipping 16 matching lines...) Expand all
82 } 82 }
83 83
84 void PasswordGeneratorButtonElement::decorate(HTMLInputElement* input) 84 void PasswordGeneratorButtonElement::decorate(HTMLInputElement* input)
85 { 85 {
86 ASSERT(input); 86 ASSERT(input);
87 ShadowRoot* existingRoot; 87 ShadowRoot* existingRoot;
88 ShadowRoot* decorationRoot; 88 ShadowRoot* decorationRoot;
89 getDecorationRootAndDecoratedRoot(input, decorationRoot, existingRoot); 89 getDecorationRootAndDecoratedRoot(input, decorationRoot, existingRoot);
90 ASSERT(decorationRoot); 90 ASSERT(decorationRoot);
91 ASSERT(existingRoot); 91 ASSERT(existingRoot);
92 RefPtr<HTMLDivElement> box = HTMLDivElement::create(&input->document()); 92 RefPtr<HTMLDivElement> box = HTMLDivElement::create(input->document());
93 decorationRoot->appendChild(box); 93 decorationRoot->appendChild(box);
94 box->setInlineStyleProperty(CSSPropertyDisplay, CSSValueFlex); 94 box->setInlineStyleProperty(CSSPropertyDisplay, CSSValueFlex);
95 box->setInlineStyleProperty(CSSPropertyAlignItems, CSSValueCenter); 95 box->setInlineStyleProperty(CSSPropertyAlignItems, CSSValueCenter);
96 ASSERT(existingRoot->childNodeCount() == 1); 96 ASSERT(existingRoot->childNodeCount() == 1);
97 toHTMLElement(existingRoot->firstChild())->setInlineStyleProperty(CSSPropert yFlexGrow, 1.0, CSSPrimitiveValue::CSS_NUMBER); 97 toHTMLElement(existingRoot->firstChild())->setInlineStyleProperty(CSSPropert yFlexGrow, 1.0, CSSPrimitiveValue::CSS_NUMBER);
98 box->appendChild(HTMLShadowElement::create(HTMLNames::shadowTag, &input->doc ument())); 98 box->appendChild(HTMLShadowElement::create(HTMLNames::shadowTag, input->docu ment()));
99 setInlineStyleProperty(CSSPropertyDisplay, CSSValueNone); 99 setInlineStyleProperty(CSSPropertyDisplay, CSSValueNone);
100 box->appendChild(this); 100 box->appendChild(this);
101 } 101 }
102 102
103 inline HTMLInputElement* PasswordGeneratorButtonElement::hostInput() 103 inline HTMLInputElement* PasswordGeneratorButtonElement::hostInput()
104 { 104 {
105 // PasswordGeneratorButtonElement is created only by C++ code, and it is alw ays 105 // PasswordGeneratorButtonElement is created only by C++ code, and it is alw ays
106 // in <input> shadow. 106 // in <input> shadow.
107 return toHTMLInputElement(shadowHost()); 107 return toHTMLInputElement(shadowHost());
108 } 108 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 bool PasswordGeneratorButtonElement::willRespondToMouseClickEvents() 202 bool PasswordGeneratorButtonElement::willRespondToMouseClickEvents()
203 { 203 {
204 const HTMLInputElement* input = hostInput(); 204 const HTMLInputElement* input = hostInput();
205 if (!input->isDisabledOrReadOnly()) 205 if (!input->isDisabledOrReadOnly())
206 return true; 206 return true;
207 207
208 return HTMLDivElement::willRespondToMouseClickEvents(); 208 return HTMLDivElement::willRespondToMouseClickEvents();
209 } 209 }
210 210
211 } // namespace WebCore 211 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/html/shadow/PasswordGeneratorButtonElement.h ('k') | Source/core/html/shadow/PickerIndicatorElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698