Commit b31e7730 authored by dgozman's avatar dgozman Committed by Commit bot

Reland of [DevTools] Migrate ServiceWorker domain to new generator. (patchset...

Reland of [DevTools] Migrate ServiceWorker domain to new generator. (patchset #1 id:1 of https://codereview.chromium.org/2577233002/ )

Reason for revert:
Fixed crash reason in https://codereview.chromium.org/2579923002/

Original issue's description:
> Revert of [DevTools] Migrate ServiceWorker domain to new generator. (patchset #2 id:20001 of https://codereview.chromium.org/2573993003/ )
>
> Reason for revert:
> Crashes.
> BUG=674474
>
> Original issue's description:
> > [DevTools] Migrate ServiceWorker domain to new generator.
> >
> > BUG=664683
> > TBR=pfeldman
> >
> > Committed: https://crrev.com/b41d221cb138f0f5e3824229f12bf794172e106f
> > Cr-Commit-Position: refs/heads/master@{#438676}
>
> TBR=caseq@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=664683
>
> Committed: https://crrev.com/2cbd54ce7ac7c807af2c9065a6eedd81ac97a3c5
> Cr-Commit-Position: refs/heads/master@{#438942}

TBR=caseq@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=674474

Review-Url: https://codereview.chromium.org/2580833004
Cr-Commit-Position: refs/heads/master@{#439015}
parent d158d7bd
...@@ -184,6 +184,8 @@ source_set("browser") { ...@@ -184,6 +184,8 @@ source_set("browser") {
"$target_gen_dir/devtools/protocol/schema.h", "$target_gen_dir/devtools/protocol/schema.h",
"$target_gen_dir/devtools/protocol/security.cc", "$target_gen_dir/devtools/protocol/security.cc",
"$target_gen_dir/devtools/protocol/security.h", "$target_gen_dir/devtools/protocol/security.h",
"$target_gen_dir/devtools/protocol/service_worker.cc",
"$target_gen_dir/devtools/protocol/service_worker.h",
"$target_gen_dir/devtools/protocol/storage.cc", "$target_gen_dir/devtools/protocol/storage.cc",
"$target_gen_dir/devtools/protocol/storage.h", "$target_gen_dir/devtools/protocol/storage.h",
"$target_gen_dir/devtools/protocol/system_info.cc", "$target_gen_dir/devtools/protocol/system_info.cc",
......
...@@ -76,6 +76,8 @@ inspector_protocol_generate("protocol_sources") { ...@@ -76,6 +76,8 @@ inspector_protocol_generate("protocol_sources") {
"protocol/schema.h", "protocol/schema.h",
"protocol/security.cc", "protocol/security.cc",
"protocol/security.h", "protocol/security.h",
"protocol/service_worker.cc",
"protocol/service_worker.h",
"protocol/storage.cc", "protocol/storage.cc",
"protocol/storage.h", "protocol/storage.h",
"protocol/system_info.cc", "protocol/system_info.cc",
......
...@@ -643,7 +643,7 @@ fields = [] ...@@ -643,7 +643,7 @@ fields = []
includes = [] includes = []
fields_init = [] fields_init = []
browser_domains_list = ["Target", "ServiceWorker", "Input"] browser_domains_list = ["Target", "Input"]
browser_commands_list = [] browser_commands_list = []
async_commands_list = [ async_commands_list = [
"Input.synthesizePinchGesture", "Input.synthesizePinchGesture",
......
...@@ -11,18 +11,11 @@ ...@@ -11,18 +11,11 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "content/browser/devtools/protocol/devtools_protocol_dispatcher.h" #include "content/browser/devtools/protocol/service_worker.h"
#include "content/browser/devtools/service_worker_devtools_agent_host.h" #include "content/browser/devtools/service_worker_devtools_agent_host.h"
#include "content/browser/devtools/service_worker_devtools_manager.h" #include "content/browser/devtools/service_worker_devtools_manager.h"
#include "content/browser/service_worker/service_worker_context_observer.h" #include "content/browser/service_worker/service_worker_context_observer.h"
#include "content/browser/service_worker/service_worker_info.h" #include "content/browser/service_worker/service_worker_info.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/devtools_agent_host_client.h"
// Windows headers will redefine SendMessage.
#ifdef SendMessage
#undef SendMessage
#endif
namespace content { namespace content {
...@@ -30,37 +23,32 @@ class RenderFrameHostImpl; ...@@ -30,37 +23,32 @@ class RenderFrameHostImpl;
class ServiceWorkerContextWatcher; class ServiceWorkerContextWatcher;
class ServiceWorkerContextWrapper; class ServiceWorkerContextWrapper;
namespace devtools { namespace protocol {
namespace service_worker {
class ServiceWorkerHandler { class ServiceWorkerHandler : public ServiceWorker::Backend {
public: public:
typedef DevToolsProtocolClient::Response Response;
ServiceWorkerHandler(); ServiceWorkerHandler();
~ServiceWorkerHandler(); ~ServiceWorkerHandler() override;
void Wire(UberDispatcher*);
void SetRenderFrameHost(RenderFrameHostImpl* render_frame_host); void SetRenderFrameHost(RenderFrameHostImpl* render_frame_host);
void SetClient(std::unique_ptr<Client> client);
void Detached(); Response Enable() override;
Response Disable() override;
// Protocol 'service worker' domain implementation. Response Unregister(const std::string& scope_url) override;
Response Enable(); Response StartWorker(const std::string& scope_url) override;
Response Disable(); Response SkipWaiting(const std::string& scope_url) override;
Response Unregister(const std::string& scope_url); Response StopWorker(const std::string& version_id) override;
Response StartWorker(const std::string& scope_url); Response UpdateRegistration(const std::string& scope_url) override;
Response SkipWaiting(const std::string& scope_url); Response InspectWorker(const std::string& version_id) override;
Response StopWorker(const std::string& version_id); Response SetForceUpdateOnPageLoad(bool force_update_on_page_load) override;
Response UpdateRegistration(const std::string& scope_url);
Response InspectWorker(const std::string& version_id);
Response SetForceUpdateOnPageLoad(bool force_update_on_page_load);
Response DeliverPushMessage(const std::string& origin, Response DeliverPushMessage(const std::string& origin,
const std::string& registration_id, const std::string& registration_id,
const std::string& data); const std::string& data) override;
Response DispatchSyncEvent(const std::string& origin, Response DispatchSyncEvent(const std::string& origin,
const std::string& registration_id, const std::string& registration_id,
const std::string& tag, const std::string& tag,
bool last_chance); bool last_chance) override;
private: private:
void OnWorkerRegistrationUpdated( void OnWorkerRegistrationUpdated(
...@@ -75,7 +63,7 @@ class ServiceWorkerHandler { ...@@ -75,7 +63,7 @@ class ServiceWorkerHandler {
void ClearForceUpdate(); void ClearForceUpdate();
scoped_refptr<ServiceWorkerContextWrapper> context_; scoped_refptr<ServiceWorkerContextWrapper> context_;
std::unique_ptr<Client> client_; std::unique_ptr<ServiceWorker::Frontend> frontend_;
bool enabled_; bool enabled_;
scoped_refptr<ServiceWorkerContextWatcher> context_watcher_; scoped_refptr<ServiceWorkerContextWatcher> context_watcher_;
RenderFrameHostImpl* render_frame_host_; RenderFrameHostImpl* render_frame_host_;
...@@ -85,8 +73,7 @@ class ServiceWorkerHandler { ...@@ -85,8 +73,7 @@ class ServiceWorkerHandler {
DISALLOW_COPY_AND_ASSIGN(ServiceWorkerHandler); DISALLOW_COPY_AND_ASSIGN(ServiceWorkerHandler);
}; };
} // namespace service_worker } // namespace protocol
} // namespace devtools
} // namespace content } // namespace content
#endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_SERVICE_WORKER_HANDLER_H_ #endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_SERVICE_WORKER_HANDLER_H_
...@@ -51,6 +51,9 @@ ...@@ -51,6 +51,9 @@
{ {
"domain": "Security" "domain": "Security"
}, },
{
"domain": "ServiceWorker"
},
{ {
"domain": "Storage" "domain": "Storage"
}, },
......
...@@ -395,8 +395,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( ...@@ -395,8 +395,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
RenderFrameHostImpl* host) RenderFrameHostImpl* host)
: DevToolsAgentHostImpl(base::GenerateGUID()), : DevToolsAgentHostImpl(base::GenerateGUID()),
input_handler_(new devtools::input::InputHandler()), input_handler_(new devtools::input::InputHandler()),
service_worker_handler_(
new devtools::service_worker::ServiceWorkerHandler()),
target_handler_(new devtools::target::TargetHandler()), target_handler_(new devtools::target::TargetHandler()),
frame_trace_recorder_(nullptr), frame_trace_recorder_(nullptr),
protocol_handler_(new DevToolsProtocolHandler(this)), protocol_handler_(new DevToolsProtocolHandler(this)),
...@@ -406,7 +404,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( ...@@ -406,7 +404,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
frame_tree_node_(host->frame_tree_node()) { frame_tree_node_(host->frame_tree_node()) {
DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher(); DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher();
dispatcher->SetInputHandler(input_handler_.get()); dispatcher->SetInputHandler(input_handler_.get());
dispatcher->SetServiceWorkerHandler(service_worker_handler_.get());
dispatcher->SetTargetHandler(target_handler_.get()); dispatcher->SetTargetHandler(target_handler_.get());
SetPending(host); SetPending(host);
...@@ -509,6 +506,10 @@ void RenderFrameDevToolsAgentHost::Attach() { ...@@ -509,6 +506,10 @@ void RenderFrameDevToolsAgentHost::Attach() {
security_handler_->SetRenderFrameHost(handlers_frame_host_); security_handler_->SetRenderFrameHost(handlers_frame_host_);
} }
service_worker_handler_.reset(new protocol::ServiceWorkerHandler());
service_worker_handler_->Wire(session()->dispatcher());
service_worker_handler_->SetRenderFrameHost(handlers_frame_host_);
storage_handler_.reset(new protocol::StorageHandler()); storage_handler_.reset(new protocol::StorageHandler());
storage_handler_->Wire(session()->dispatcher()); storage_handler_->Wire(session()->dispatcher());
storage_handler_->SetRenderFrameHost(handlers_frame_host_); storage_handler_->SetRenderFrameHost(handlers_frame_host_);
...@@ -549,6 +550,8 @@ void RenderFrameDevToolsAgentHost::Detach() { ...@@ -549,6 +550,8 @@ void RenderFrameDevToolsAgentHost::Detach() {
security_handler_->Disable(); security_handler_->Disable();
security_handler_.reset(); security_handler_.reset();
} }
service_worker_handler_->Disable();
service_worker_handler_.reset();
storage_handler_->Disable(); storage_handler_->Disable();
storage_handler_.reset(); storage_handler_.reset();
tracing_handler_->Disable(); tracing_handler_->Disable();
...@@ -615,7 +618,6 @@ void RenderFrameDevToolsAgentHost::OnClientDetached() { ...@@ -615,7 +618,6 @@ void RenderFrameDevToolsAgentHost::OnClientDetached() {
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
power_save_blocker_.reset(); power_save_blocker_.reset();
#endif #endif
service_worker_handler_->Detached();
target_handler_->Detached(); target_handler_->Detached();
frame_trace_recorder_.reset(); frame_trace_recorder_.reset();
in_navigation_protocol_message_buffer_.clear(); in_navigation_protocol_message_buffer_.clear();
...@@ -964,7 +966,8 @@ void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers( ...@@ -964,7 +966,8 @@ void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers(
network_handler_->SetRenderFrameHost(host); network_handler_->SetRenderFrameHost(host);
if (page_handler_) if (page_handler_)
page_handler_->SetRenderFrameHost(host); page_handler_->SetRenderFrameHost(host);
service_worker_handler_->SetRenderFrameHost(host); if (service_worker_handler_)
service_worker_handler_->SetRenderFrameHost(host);
if (security_handler_) if (security_handler_)
security_handler_->SetRenderFrameHost(host); security_handler_->SetRenderFrameHost(host);
if (storage_handler_) if (storage_handler_)
......
...@@ -41,7 +41,6 @@ class RenderFrameHostImpl; ...@@ -41,7 +41,6 @@ class RenderFrameHostImpl;
namespace devtools { namespace devtools {
namespace input { class InputHandler; } namespace input { class InputHandler; }
namespace service_worker { class ServiceWorkerHandler; }
namespace target { class TargetHandler; } namespace target { class TargetHandler; }
} }
...@@ -54,6 +53,7 @@ class NetworkHandler; ...@@ -54,6 +53,7 @@ class NetworkHandler;
class PageHandler; class PageHandler;
class SchemaHandler; class SchemaHandler;
class SecurityHandler; class SecurityHandler;
class ServiceWorkerHandler;
class StorageHandler; class StorageHandler;
class TracingHandler; class TracingHandler;
} // namespace protocol } // namespace protocol
...@@ -191,8 +191,7 @@ class CONTENT_EXPORT RenderFrameDevToolsAgentHost ...@@ -191,8 +191,7 @@ class CONTENT_EXPORT RenderFrameDevToolsAgentHost
std::unique_ptr<protocol::PageHandler> page_handler_; std::unique_ptr<protocol::PageHandler> page_handler_;
std::unique_ptr<protocol::SchemaHandler> schema_handler_; std::unique_ptr<protocol::SchemaHandler> schema_handler_;
std::unique_ptr<protocol::SecurityHandler> security_handler_; std::unique_ptr<protocol::SecurityHandler> security_handler_;
std::unique_ptr<devtools::service_worker::ServiceWorkerHandler> std::unique_ptr<protocol::ServiceWorkerHandler> service_worker_handler_;
service_worker_handler_;
std::unique_ptr<protocol::StorageHandler> storage_handler_; std::unique_ptr<protocol::StorageHandler> storage_handler_;
std::unique_ptr<devtools::target::TargetHandler> target_handler_; std::unique_ptr<devtools::target::TargetHandler> target_handler_;
std::unique_ptr<protocol::TracingHandler> tracing_handler_; std::unique_ptr<protocol::TracingHandler> tracing_handler_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment