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

Side by Side Diff: third_party/WebKit/Source/core/fetch/RawResourceTest.cpp

Issue 2184263003: Move RawResourceClient to Oilpan heap (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onheap-threadable-loader
Patch Set: rebase Created 4 years, 4 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 /* 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 51
52 RawResource* jpegResource(RawResource::create(jpegRequest, Resource::Raw)); 52 RawResource* jpegResource(RawResource::create(jpegRequest, Resource::Raw));
53 53
54 ResourceRequest pngRequest; 54 ResourceRequest pngRequest;
55 pngRequest.setHTTPAccept("image/png"); 55 pngRequest.setHTTPAccept("image/png");
56 56
57 ASSERT_FALSE(jpegResource->canReuse(pngRequest)); 57 ASSERT_FALSE(jpegResource->canReuse(pngRequest));
58 } 58 }
59 59
60 class DummyClient final : public GarbageCollectedFinalized<DummyClient>, public RawResourceClient { 60 class DummyClient final : public GarbageCollectedFinalized<DummyClient>, public RawResourceClient {
61 USING_GARBAGE_COLLECTED_MIXIN(DummyClient);
61 public: 62 public:
62 DummyClient() : m_called(false), m_numberOfRedirectsReceived(0) {} 63 DummyClient() : m_called(false), m_numberOfRedirectsReceived(0) {}
63 ~DummyClient() override {} 64 ~DummyClient() override {}
64 65
65 // ResourceClient implementation. 66 // ResourceClient implementation.
66 void notifyFinished(Resource* resource) override 67 void notifyFinished(Resource* resource) override
67 { 68 {
68 m_called = true; 69 m_called = true;
69 } 70 }
70 String debugName() const override { return "DummyClient"; } 71 String debugName() const override { return "DummyClient"; }
71 72
72 void dataReceived(Resource*, const char* data, size_t length) override 73 void dataReceived(Resource*, const char* data, size_t length) override
73 { 74 {
74 m_data.append(data, length); 75 m_data.append(data, length);
75 } 76 }
76 77
77 void redirectReceived(Resource*, ResourceRequest&, const ResourceResponse&) override 78 void redirectReceived(Resource*, ResourceRequest&, const ResourceResponse&) override
78 { 79 {
79 ++m_numberOfRedirectsReceived; 80 ++m_numberOfRedirectsReceived;
80 } 81 }
81 82
82 bool called() { return m_called; } 83 bool called() { return m_called; }
83 int numberOfRedirectsReceived() const { return m_numberOfRedirectsReceived; } 84 int numberOfRedirectsReceived() const { return m_numberOfRedirectsReceived; }
84 const Vector<char>& data() { return m_data; } 85 const Vector<char>& data() { return m_data; }
85 DEFINE_INLINE_TRACE() {} 86 DEFINE_INLINE_TRACE()
87 {
88 RawResourceClient::trace(visitor);
89 }
86 90
87 private: 91 private:
88 bool m_called; 92 bool m_called;
89 int m_numberOfRedirectsReceived; 93 int m_numberOfRedirectsReceived;
90 Vector<char> m_data; 94 Vector<char> m_data;
91 }; 95 };
92 96
93 // This client adds another client when notified. 97 // This client adds another client when notified.
94 class AddingClient final : public GarbageCollectedFinalized<AddingClient>, publi c RawResourceClient { 98 class AddingClient final : public GarbageCollectedFinalized<AddingClient>, publi c RawResourceClient {
99 USING_GARBAGE_COLLECTED_MIXIN(AddingClient);
95 public: 100 public:
96 AddingClient(DummyClient* client, Resource* resource) 101 AddingClient(DummyClient* client, Resource* resource)
97 : m_dummyClient(client) 102 : m_dummyClient(client)
98 , m_resource(resource) 103 , m_resource(resource)
99 , m_removeClientTimer(this, &AddingClient::removeClient) {} 104 , m_removeClientTimer(this, &AddingClient::removeClient) {}
100 105
101 ~AddingClient() override {} 106 ~AddingClient() override {}
102 107
103 // ResourceClient implementation. 108 // ResourceClient implementation.
104 void notifyFinished(Resource* resource) override 109 void notifyFinished(Resource* resource) override
105 { 110 {
106 // First schedule an asynchronous task to remove the client. 111 // First schedule an asynchronous task to remove the client.
107 // We do not expect the client to be called. 112 // We do not expect the client to be called.
108 m_removeClientTimer.startOneShot(0, BLINK_FROM_HERE); 113 m_removeClientTimer.startOneShot(0, BLINK_FROM_HERE);
109 resource->addClient(m_dummyClient); 114 resource->addClient(m_dummyClient);
110 } 115 }
111 String debugName() const override { return "AddingClient"; } 116 String debugName() const override { return "AddingClient"; }
112 117
113 void removeClient(TimerBase* timer) 118 void removeClient(TimerBase* timer)
114 { 119 {
115 m_resource->removeClient(m_dummyClient); 120 m_resource->removeClient(m_dummyClient);
116 } 121 }
117 122
118 DEFINE_INLINE_VIRTUAL_TRACE() 123 DEFINE_INLINE_VIRTUAL_TRACE()
119 { 124 {
120 visitor->trace(m_dummyClient); 125 visitor->trace(m_dummyClient);
121 visitor->trace(m_resource); 126 visitor->trace(m_resource);
127 RawResourceClient::trace(visitor);
122 } 128 }
123 129
124 private: 130 private:
125 Member<DummyClient> m_dummyClient; 131 Member<DummyClient> m_dummyClient;
126 Member<Resource> m_resource; 132 Member<Resource> m_resource;
127 Timer<AddingClient> m_removeClientTimer; 133 Timer<AddingClient> m_removeClientTimer;
128 }; 134 };
129 135
130 TEST(RawResourceTest, RevalidationSucceeded) 136 TEST(RawResourceTest, RevalidationSucceeded)
131 { 137 {
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 Persistent<AddingClient> addingClient = new AddingClient(dummyClient.get(), raw); 348 Persistent<AddingClient> addingClient = new AddingClient(dummyClient.get(), raw);
343 raw->addClient(addingClient); 349 raw->addClient(addingClient);
344 testing::runPendingTasks(); 350 testing::runPendingTasks();
345 raw->removeClient(addingClient); 351 raw->removeClient(addingClient);
346 EXPECT_FALSE(dummyClient->called()); 352 EXPECT_FALSE(dummyClient->called());
347 EXPECT_FALSE(raw->hasClientsOrObservers()); 353 EXPECT_FALSE(raw->hasClientsOrObservers());
348 } 354 }
349 355
350 // This client removes another client when notified. 356 // This client removes another client when notified.
351 class RemovingClient : public GarbageCollectedFinalized<RemovingClient>, public RawResourceClient { 357 class RemovingClient : public GarbageCollectedFinalized<RemovingClient>, public RawResourceClient {
358 USING_GARBAGE_COLLECTED_MIXIN(RemovingClient);
352 public: 359 public:
353 RemovingClient(DummyClient* client) 360 RemovingClient(DummyClient* client)
354 : m_dummyClient(client) {} 361 : m_dummyClient(client) {}
355 362
356 ~RemovingClient() override {} 363 ~RemovingClient() override {}
357 364
358 // ResourceClient implementation. 365 // ResourceClient implementation.
359 void notifyFinished(Resource* resource) override 366 void notifyFinished(Resource* resource) override
360 { 367 {
361 resource->removeClient(m_dummyClient); 368 resource->removeClient(m_dummyClient);
362 resource->removeClient(this); 369 resource->removeClient(this);
363 } 370 }
364 String debugName() const override { return "RemovingClient"; } 371 String debugName() const override { return "RemovingClient"; }
365 DEFINE_INLINE_TRACE() 372 DEFINE_INLINE_TRACE()
366 { 373 {
367 visitor->trace(m_dummyClient); 374 visitor->trace(m_dummyClient);
375 RawResourceClient::trace(visitor);
368 } 376 }
369 377
370 private: 378 private:
371 Member<DummyClient> m_dummyClient; 379 Member<DummyClient> m_dummyClient;
372 }; 380 };
373 381
374 TEST(RawResourceTest, RemoveClientDuringCallback) 382 TEST(RawResourceTest, RemoveClientDuringCallback)
375 { 383 {
376 Resource* raw = RawResource::create(ResourceRequest("data:text/html,"), Reso urce::Raw); 384 Resource* raw = RawResource::create(ResourceRequest("data:text/html,"), Reso urce::Raw);
377 385
(...skipping 14 matching lines...) Expand all
392 400
393 TEST(RawResourceTest, CanReuseDevToolsEmulateNetworkConditionsClientIdHeader) 401 TEST(RawResourceTest, CanReuseDevToolsEmulateNetworkConditionsClientIdHeader)
394 { 402 {
395 ResourceRequest request("data:text/html,"); 403 ResourceRequest request("data:text/html,");
396 request.setHTTPHeaderField(HTTPNames::X_DevTools_Emulate_Network_Conditions_ Client_Id, "Foo"); 404 request.setHTTPHeaderField(HTTPNames::X_DevTools_Emulate_Network_Conditions_ Client_Id, "Foo");
397 Resource* raw = RawResource::create(request, Resource::Raw); 405 Resource* raw = RawResource::create(request, Resource::Raw);
398 EXPECT_TRUE(raw->canReuse(ResourceRequest("data:text/html,"))); 406 EXPECT_TRUE(raw->canReuse(ResourceRequest("data:text/html,")));
399 } 407 }
400 408
401 } // namespace blink 409 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/fetch/RawResource.cpp ('k') | third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698