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") {
"$target_gen_dir/devtools/protocol/schema.h",
"$target_gen_dir/devtools/protocol/security.cc",
"$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.h",
"$target_gen_dir/devtools/protocol/system_info.cc",
......
......@@ -76,6 +76,8 @@ inspector_protocol_generate("protocol_sources") {
"protocol/schema.h",
"protocol/security.cc",
"protocol/security.h",
"protocol/service_worker.cc",
"protocol/service_worker.h",
"protocol/storage.cc",
"protocol/storage.h",
"protocol/system_info.cc",
......
......@@ -643,7 +643,7 @@ fields = []
includes = []
fields_init = []
browser_domains_list = ["Target", "ServiceWorker", "Input"]
browser_domains_list = ["Target", "Input"]
browser_commands_list = []
async_commands_list = [
"Input.synthesizePinchGesture",
......
......@@ -11,18 +11,11 @@
#include "base/macros.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_manager.h"
#include "content/browser/service_worker/service_worker_context_observer.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 {
......@@ -30,37 +23,32 @@ class RenderFrameHostImpl;
class ServiceWorkerContextWatcher;
class ServiceWorkerContextWrapper;
namespace devtools {
namespace service_worker {
namespace protocol {
class ServiceWorkerHandler {
class ServiceWorkerHandler : public ServiceWorker::Backend {
public:
typedef DevToolsProtocolClient::Response Response;
ServiceWorkerHandler();
~ServiceWorkerHandler();
~ServiceWorkerHandler() override;
void Wire(UberDispatcher*);
void SetRenderFrameHost(RenderFrameHostImpl* render_frame_host);
void SetClient(std::unique_ptr<Client> client);
void Detached();
// Protocol 'service worker' domain implementation.
Response Enable();
Response Disable();
Response Unregister(const std::string& scope_url);
Response StartWorker(const std::string& scope_url);
Response SkipWaiting(const std::string& scope_url);
Response StopWorker(const std::string& version_id);
Response UpdateRegistration(const std::string& scope_url);
Response InspectWorker(const std::string& version_id);
Response SetForceUpdateOnPageLoad(bool force_update_on_page_load);
Response Enable() override;
Response Disable() override;
Response Unregister(const std::string& scope_url) override;
Response StartWorker(const std::string& scope_url) override;
Response SkipWaiting(const std::string& scope_url) override;
Response StopWorker(const std::string& version_id) override;
Response UpdateRegistration(const std::string& scope_url) override;
Response InspectWorker(const std::string& version_id) override;
Response SetForceUpdateOnPageLoad(bool force_update_on_page_load) override;
Response DeliverPushMessage(const std::string& origin,
const std::string& registration_id,
const std::string& data);
const std::string& data) override;
Response DispatchSyncEvent(const std::string& origin,
const std::string& registration_id,
const std::string& tag,
bool last_chance);
bool last_chance) override;
private:
void OnWorkerRegistrationUpdated(
......@@ -75,7 +63,7 @@ class ServiceWorkerHandler {
void ClearForceUpdate();
scoped_refptr<ServiceWorkerContextWrapper> context_;
std::unique_ptr<Client> client_;
std::unique_ptr<ServiceWorker::Frontend> frontend_;
bool enabled_;
scoped_refptr<ServiceWorkerContextWatcher> context_watcher_;
RenderFrameHostImpl* render_frame_host_;
......@@ -85,8 +73,7 @@ class ServiceWorkerHandler {
DISALLOW_COPY_AND_ASSIGN(ServiceWorkerHandler);
};
} // namespace service_worker
} // namespace devtools
} // namespace protocol
} // namespace content
#endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_SERVICE_WORKER_HANDLER_H_
......@@ -51,6 +51,9 @@
{
"domain": "Security"
},
{
"domain": "ServiceWorker"
},
{
"domain": "Storage"
},
......
......@@ -395,8 +395,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
RenderFrameHostImpl* host)
: DevToolsAgentHostImpl(base::GenerateGUID()),
input_handler_(new devtools::input::InputHandler()),
service_worker_handler_(
new devtools::service_worker::ServiceWorkerHandler()),
target_handler_(new devtools::target::TargetHandler()),
frame_trace_recorder_(nullptr),
protocol_handler_(new DevToolsProtocolHandler(this)),
......@@ -406,7 +404,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
frame_tree_node_(host->frame_tree_node()) {
DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher();
dispatcher->SetInputHandler(input_handler_.get());
dispatcher->SetServiceWorkerHandler(service_worker_handler_.get());
dispatcher->SetTargetHandler(target_handler_.get());
SetPending(host);
......@@ -509,6 +506,10 @@ void RenderFrameDevToolsAgentHost::Attach() {
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_->Wire(session()->dispatcher());
storage_handler_->SetRenderFrameHost(handlers_frame_host_);
......@@ -549,6 +550,8 @@ void RenderFrameDevToolsAgentHost::Detach() {
security_handler_->Disable();
security_handler_.reset();
}
service_worker_handler_->Disable();
service_worker_handler_.reset();
storage_handler_->Disable();
storage_handler_.reset();
tracing_handler_->Disable();
......@@ -615,7 +618,6 @@ void RenderFrameDevToolsAgentHost::OnClientDetached() {
#if defined(OS_ANDROID)
power_save_blocker_.reset();
#endif
service_worker_handler_->Detached();
target_handler_->Detached();
frame_trace_recorder_.reset();
in_navigation_protocol_message_buffer_.clear();
......@@ -964,7 +966,8 @@ void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers(
network_handler_->SetRenderFrameHost(host);
if (page_handler_)
page_handler_->SetRenderFrameHost(host);
service_worker_handler_->SetRenderFrameHost(host);
if (service_worker_handler_)
service_worker_handler_->SetRenderFrameHost(host);
if (security_handler_)
security_handler_->SetRenderFrameHost(host);
if (storage_handler_)
......
......@@ -41,7 +41,6 @@ class RenderFrameHostImpl;
namespace devtools {
namespace input { class InputHandler; }
namespace service_worker { class ServiceWorkerHandler; }
namespace target { class TargetHandler; }
}
......@@ -54,6 +53,7 @@ class NetworkHandler;
class PageHandler;
class SchemaHandler;
class SecurityHandler;
class ServiceWorkerHandler;
class StorageHandler;
class TracingHandler;
} // namespace protocol
......@@ -191,8 +191,7 @@ class CONTENT_EXPORT RenderFrameDevToolsAgentHost
std::unique_ptr<protocol::PageHandler> page_handler_;
std::unique_ptr<protocol::SchemaHandler> schema_handler_;
std::unique_ptr<protocol::SecurityHandler> security_handler_;
std::unique_ptr<devtools::service_worker::ServiceWorkerHandler>
service_worker_handler_;
std::unique_ptr<protocol::ServiceWorkerHandler> service_worker_handler_;
std::unique_ptr<protocol::StorageHandler> storage_handler_;
std::unique_ptr<devtools::target::TargetHandler> target_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