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

Side by Side Diff: Source/modules/crypto/CryptoResultImpl.h

Issue 780793002: Make CryptoResultImpl not to use WeakPtr. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years 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 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 virtual void completeWithJson(const char* utf8Data, unsigned length) overrid e; 64 virtual void completeWithJson(const char* utf8Data, unsigned length) overrid e;
65 virtual void completeWithBoolean(bool) override; 65 virtual void completeWithBoolean(bool) override;
66 virtual void completeWithKey(const WebCryptoKey&) override; 66 virtual void completeWithKey(const WebCryptoKey&) override;
67 virtual void completeWithKeyPair(const WebCryptoKey& publicKey, const WebCry ptoKey& privateKey) override; 67 virtual void completeWithKeyPair(const WebCryptoKey& publicKey, const WebCry ptoKey& privateKey) override;
68 virtual bool cancelled() const override; 68 virtual bool cancelled() const override;
69 69
70 // If called after completion (including cancellation) will return an empty 70 // If called after completion (including cancellation) will return an empty
71 // ScriptPromise. 71 // ScriptPromise.
72 ScriptPromise promise(); 72 ScriptPromise promise();
73 73
74 private: 74 private:
yhirano 2014/12/11 12:28:41 By making Resolver this class's inner class and ha
tasak 2014/12/12 07:56:51 Done.
75 class WeakResolver;
76 explicit CryptoResultImpl(ScriptState*); 75 explicit CryptoResultImpl(ScriptState*);
77 76
77 void clearResolver();
78 void cancel(); 78 void cancel();
79 79
80 WeakPtr<ScriptPromiseResolver> m_resolver; 80 // Since ScriptPromiseResolver destroys itself, we should not use RefPtr
haraken 2014/12/12 00:04:11 Just help me understand: Where is the ScriptPromis
tasak 2014/12/12 07:56:51 ScriptPromiseResolver destorys itself. So basicall
81 // here. So to avoid using stale pointer, m_resolver should be cleared
82 // after resolving.
83 // FIXME: ScriptPromiseResolver should not be exported.
84 // Instead, use ScriptPromise.
85 RawPtr<ScriptPromiseResolver> m_resolver;
haraken 2014/12/12 00:04:10 RawPtr<ScriptPromiseResolver> => ScriptPromiseReso
tasak 2014/12/12 07:56:51 Done.
81 volatile int m_cancelled; 86 volatile int m_cancelled;
87
88 friend class CryptoResultResolver;
82 }; 89 };
83 90
84 } // namespace blink 91 } // namespace blink
85 92
86 #endif 93 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/modules/crypto/CryptoResultImpl.cpp » ('j') | Source/modules/crypto/CryptoResultImpl.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698